早上好
我想用pyFirmata lib
把我的Arduino
板连接到电脑上,但是出现了一个奇怪的问题。前提:pySerial
和{windows 8.0 64 bit
。Arduino
和USB端口的驱动程序工作正常(因为我可以将每个草图上载到Arduino
)。在
我要运行的代码非常简单:
如果按下button
(连接到插脚4,配置为来自firmata library
的method.get_pin()
的输入)时,红色led将闪烁,否则绿色led将闪烁。我用一个简单的功能让他们眨眼:
from time import sleep
def Blink(pin):
board.digital(pin).write(1)
sleep(1)
board.digital(pin).write(0)
sleep(1)
board在全局范围中定义为pyfirmata.Arduino('com3')
由于我用firmata_test.exe
测试了它们,所以所有的联系都工作得很好,而且我确信在我启动python之前没有一个串行连接是打开的。在
奇怪的是:
如果我在pythonshell上写每一个命令,整个过程都很好,led会正确闪烁!! 但是,如果我在一个模块上写下所有命令,然后运行它,就会出现以下错误:
^{pr2}$也就是说,它不能打开端口。我试过调试,但没用。在
如果我通过
por = serial.Serial()
por.port = 'com3'
por.isOpen()
>>False
但如果我用
por = serial.Serial('com3')
它会弹出同样的错误。在
看Arduino
TX led会定期闪烁,所以我可以想象它正在向串行端口发送一些数据。如果我打开arduino应用程序,它会告诉我端口正忙。我无法确定是否是管理员许可的问题,因为我以管理员身份运行py IDLE。即使我在管理模式下从CMD运行脚本,错误仍然存在。在
非常感谢你的每一个回答。在
伙计们,我解决了问题!我重新启动了电脑,然后(首先)我在管理模式下启动CMD并运行模块。。现在它起作用了!不知道为什么,似乎直到现在我还是第一次在没有管理员权限的情况下运行。之后,即使我在管理模式下打开CMD,错误仍然出现。在
希望这能对别人有所帮助。在
谢谢。在
相关问题 更多 >
编程相关推荐