我是新来的,这是我的第一篇文章。我不是100%肯定在哪里发布这个。我认为它是操作系统级别的东西所以我选择在这里发布它。主持人如果不属于此,请将其移至正确的位置。
我正在开发一个控制器来控制工业类型的过程。我开始使用Arduino Yun,它是一个多功能一体板,在一块板上有一个Linux处理器和Arduino控制器(如果你还不知道的话)。它使用他们所谓的Bridge在2之间进行通信。基本上它通过com端口进行通信而你不必构建自己的协议,它就是为你做的。
现在,Yun正在为我想做的事情做好准备,所以现在我想使用Raspberry Pi并连接一个Arduino Mega来做所有的低级传感器。
幸运的是Paul Stoffregen移植了这个库,所以它可以在使用任何Arduino板的任何linux类型系统上运行
(Arduino代码)https://github.com/PaulStoffregen/Bridge (Linux端的Python代码)https://github.com/PaulStoffregen/BridgeUSB
所以它的作用就是你设置Pi所以当你连接Arduino时它将以root身份自动登录到comm端口(通过usb连接),然后它应该启动Bridge.py脚本。现在这是我的问题,实际上我有2个
1)Bridge.py脚本不会触发(它不会启动) 2)Arduino在Pi重启时不会自动连接。
我可以看到Arduino在插入
时以root身份连接root@RedPi:~# who
root ttyACM0 2016-03-10 18:01
我有Arduino方面工作,因为我可以看到它正在发送数据。 如果我抓住端口,我可以看到它正在发送数据
cat /dev/ttyACM0
run-bridge
▒XX100▒q▒XX100▒q▒XX100▒q▒XX100▒q▒XX100▒q▒XX100▒q▒X ...........................
但它没有运行或执行" run-bridge"命令。但是如果我在ssh会话中以root用户身份输入它就会运行。
然后,如果我重新启动Pi,我必须拔出插头并将其推回以再次连接到ttyACMo。但是当我做一个lsusb时,我可以看到那里的Arduino。我想我必须添加一些配置来告诉linux在启动时这样做。
您必须添加此位。我希望它能在启动时处理USB
# UDEV Rules automatically start a shell on a USB Serial device.
#
# This file must be placed at:
#
# /etc/udev/rules.d/00-bridge.rules
#
KERNEL=="ttyACM*", RUN+="/usr/bin/run-bridge-udev", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{MTP_NO_PROBE}="1"
我希望你能帮助我。我不想重写我在Yun上工作的所有代码。所以如果我能移植它就会很棒。