我在我的树莓派3B+上有一个python程序,它通过命令使用Arduino-mk来更新一个Arduino mega2560和一个Arduino Uno。每个Arduino都有自己的代码文件夹,其中包含自己的代码(.ino)和一个Makefile,如下所示:
ARDUINO_DIR = /usr/share/arduino
ARDUINO_PORT = /dev/ttyUSB0 (here is the problem)
USER_LIB_PATH = /home/pi/sketchbook/libraries
BOARD_TAG = mega2560 (Uno for the uno one)
include /usr/share/arduino/Arduino.mk当我调用以下命令时:
os.system("(cd ~/sketchbook/mega; make upload clean)")只有mega连接在USB端口上,一切都可以正常工作,mega可以编程(只适用于Uno )。但是当我试图把两件事都做完的时候:
os.system("(cd ~/sketchbook/mega; make upload clean)")
os.system("(cd ~/sketchbook/uno; make upload clean)")arduino-mk无法对Uno (多个超时)进行编程。
起初,Makefile中的第二行是:
ARDUINO_PORT = /dev/ttyAMC0但它不起作用,所以我在网上查了一下,发现一些Arduino副本在以下方面工作得更好:
ARDUINO_PORT = /dev/ttyUSB0然后它工作了,但是我在ttyUSB3上用ttyUSB1得不到任何结果(我希望它能像windows上的COM端口一样工作)。
我还注意到,如果我继续使用ttyUSB0进行测试,并尝试每个物理USB端口并正常工作,那么ttyUSB0指的是四个物理端口,对吗?
请告诉我如何才能获得一个特定的端口名称?或者,还有其他方法可以让Arduino-mk工作吗?
发布于 2019-04-23 03:20:11
一次插入一个设备并查看ls -l /dev/serial/by-id/的输出,您应该会看到一个指向实际设备节点的符号链接,但该符号链接是针对特定设备唯一命名的。
然后,可以在相应的makefile中设置ARDUINO_PORT=/dev/serial/by-id/unique_name。
https://stackoverflow.com/questions/55681275
复制相似问题