我正在使用Raspberry Pi(Kunbus的Revolution Pi)通过串行通信(usb)控制多个arduino。我想知道是否可以一次控制/与多个串行端口通信。我知道多序列的aruduinos,例如MultiSerialMega,可以让您列出Serial.begin(9600);。和Serial1.begin(9600);一次与多个通信,Raspberry Pi是否存在?就目前而言,我切换了端口,但在另一台arduino上运行的程序一经停止便立即停止。
总结:我可以使用python中的三个串行端口(例如MultiSerialMega中)吗?
谢谢, 列维
我已经尝试过添加一个,例如MultiSerialMega的示例,但这是行不通的(不足为奇)
import serial
import time
while True:
ser = serial.Serial('/dev/ttyACM0)
steps = int(input("How many steps?")
ser.write(b'%d' %steps)
ser = serial.Serial('/dev/ttyACM1)
steps = int(input("How many steps?")
ser.write(b'%d' %steps)
此刻我只是在玩步进电机,但是一旦我切换了串行端口,程序就会结束/电机停止移动。
答案 0 :(得分:0)
据我了解,您想写入连接到Rpi的多个串行端口。您应该能够使用尽可能多的端口来执行此操作,就像使用具有多个硬件UART的Arduino一样。
尝试一下:
import serial
import time
import sys
ser1 = serial.Serial("/dev/ttyACM0")
ser2 = serial.Serial("/dev/ttyACM1")
while True:
steps = input("How many steps for serial 1? (press q to quit")
if steps == "q" or steps == "Q":
ser1.close()
ser2.close()
sys.exit()
else:
ser1.write(int(steps))
steps = input("How many steps for serial 2? (press q to quit)")
if steps == "q" or steps == "Q":
ser1.close()
ser2.close()
sys.exit()
else:
ser2.write(int(steps))