如何选择raspberry pi 3B +上的特定USB端口来使用arduino-mk编程两个arduino板?

问题描述 投票:0回答:1

我在我的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)")

只有连接在USB端口上的mega一切正常,并且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工作吗?

linux arduino serial-port usb raspberry-pi3
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.