如何在树莓派 3B+ 上选择一个特定的 USB 端口来使用 arduino-mk 对两个 arduino 板进行编程?



我的Raspberry pi 3B +女巫有一个python程序,通过使用Arduino-mk通过bash命令更新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

然后它工作了,但我无法得到任何结果,ttyUSB1到ttyUSB3(我希望它能像Windows上的COM端口一样工作)。

我还注意到,如果我继续使用 ttyUSB0 进行测试并尝试使用每个物理 USB 端口并工作,那么 ttyUSB0 指的是四个物理端口,对吗?

请问我怎样才能得到一个特定的端口名称? 或者有没有其他方法可以让Arduino-mk工作?

一次插入一个设备并查看ls -l /dev/serial/by-id/的输出,您应该会看到指向实际设备节点的符号链接,但为您的特定设备唯一命名。

然后,您可以在相应的生成文件中设置ARDUINO_PORT=/dev/serial/by-id/unique_name

相关内容

  • 没有找到相关文章

最新更新