项目场景:
在win10系统下使用arduino(mega)和python 测试firmata协议
问题描述:
我通过arduinomega和一个双色小灯进行测试 led的三个引脚一个连GND剩下两个连在数字引脚3,4.(在使用firmata前需要下载pyfirmata库通过pip即可下载 )
我在cmd终端调试时的代码
from pyfirmata import ArduinoMega,util
board=ArduinoMega(‘COM4’)
回车后会报错serial has no attribute Serial
看过我以前文章的读者可能知道我之前用树莓派时使用的就是serial库 其中是有Serial这个方法的。
原因分析:
最初我以为是serial库文件编译问题
尝试1:卸载serial 再重新pip下载
尝试2: 卸载serial 通过编译安装方式再重新下载
最开始并没有考虑是serial库文件问题 因为依稀记得pyserial是针对python2
解决方案:
尝试后无果 我想到了pyserial,看过pyserial库文件发现它兼容python3
秉着死马当活马医的态度也试了试下载pyserial
通过pip下载了pyserial 再写上述代码时就没问题了
至此 serial has no attribute Serial
的bug解决
最后附上arduinomega使用pyserial协议的方法
1在arduinomega上上传标准协议
如图选择 如何选择对应的开发板和端口上传即可
附上代码
from pyfirmata import ArduinoMega,util
board=ArduinoMega(‘COM4’)
board.digital[3].write(1)#亮红灯
board.digital[3].write(0)
board.digital[4].write(1)#亮绿灯
亲测有效