首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在raspberry pi 3B+上选择一个特定的USB端口来使用arduino-mk对两块arduino板进行编程?

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

Stack Overflow用户
提问于 2019-04-15 08:33:10
回答 1查看 450关注 0票数 0

我在我的树莓派3B+上有一个python程序,它通过命令使用Arduino-mk来更新一个Arduino mega2560和一个Arduino Uno。每个Arduino都有自己的代码文件夹,其中包含自己的代码(.ino)和一个Makefile,如下所示:

代码语言:javascript
复制
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

当我调用以下命令时:

代码语言:javascript
复制
os.system("(cd ~/sketchbook/mega; make upload clean)")

只有mega连接在USB端口上,一切都可以正常工作,mega可以编程(只适用于Uno )。但是当我试图把两件事都做完的时候:

代码语言:javascript
复制
os.system("(cd ~/sketchbook/mega; make upload clean)")
os.system("(cd ~/sketchbook/uno; make upload clean)")

arduino-mk无法对Uno (多个超时)进行编程。

起初,Makefile中的第二行是:

代码语言:javascript
复制
ARDUINO_PORT = /dev/ttyAMC0

但它不起作用,所以我在网上查了一下,发现一些Arduino副本在以下方面工作得更好:

代码语言:javascript
复制
ARDUINO_PORT = /dev/ttyUSB0

然后它工作了,但是我在ttyUSB3上用ttyUSB1得不到任何结果(我希望它能像windows上的COM端口一样工作)。

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

请告诉我如何才能获得一个特定的端口名称?或者,还有其他方法可以让Arduino-mk工作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-23 03:20:11

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55681275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档