早安Arduino的pyFirmata的Python Windows錯誤(5,拒絕訪問)
我想我Arduino
板連接到使用pyFirmata lib
的電腦,但一個奇怪的問題已發生。前提:pySerial
和pyFirmata
已成功安裝在我的電腦上。我有windows 8.0 64 bit
。 Arduino
和USB端口的驅動程序工作正常(因爲我可以將每個草圖上傳到Arduino
)。
我想運行是很簡單的代碼:
如果button
(連接到銷4,配置爲通過所述method.get_pin()
從firmata library
輸入)被按壓紅色LED閃爍,否則一個綠色LED將做。我讓他們用一個簡單的功能閃爍:
from time import sleep
def Blink(pin):
board.digital(pin).write(1)
sleep(1)
board.digital(pin).write(0)
sleep(1)
板在全球範圍內定義爲pyfirmata.Arduino('com3')
所有接觸工作正常,因爲我有firmata_test.exe
測試他們,我敢肯定,沒有一個串行連接是在我啓動python之前打開。
這裏奇怪的事情:
如果我寫蟒每次命令shell整個事情工作正常,指示燈閃爍的權利! 但如果我寫一個模塊上的所有命令,然後我運行它給了這個錯誤:
"Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
board = pyfirmata.Arduino('com3')
File "C:\Python27\lib\site-packages\pyfirmata\__init__.py", line 16, in __init__
super(Arduino, self).__init__(*args, **kwargs)
File "C:\Python27\lib\site-packages\pyfirmata\pyfirmata.py", line 89, in __init__
self.sp = serial.Serial(port, baudrate, timeout=timeout)
File "C:\Python27\lib\site-packages\serial\serialwin32.py", line 38, in __init__
SerialBase.__init__(self, *args, **kwargs)
File "C:\Python27\lib\site-packages\serial\serialutil.py", line 282, in __init__
self.open()
File "C:\Python27\lib\site-packages\serial\serialwin32.py", line 66, in open
raise SerialException("could not open port %r: %r" % (self.portstr, ctypes.WinError()))
SerialException: could not open port 'com3': WindowsError(5, 'Access denied.')"
也就是說,它不能打開端口。我嘗試了一些調試,但它沒有幫助我。
如果我通過
por = serial.Serial()
por.port = 'com3'
por.isOpen()
>>False
檢查端口的狀態,但如果我使用
por = serial.Serial('com3')
它會彈出同樣的錯誤。
尋找Arduino
TX led定期閃爍,所以我可以想象它正在向串口發送一些數據。如果我打開arduino應用程序,它告訴我該端口很忙。我無法弄清楚它是否是管理員許可的問題,因爲我以管理員身份運行py IDLE。即使我在管理模式下從CMD運行腳本,錯誤仍然存在。
非常感謝您的回答。