我想通过串口从我的Raspberry Pi发送一些数据到arduino。我的问题是发送它,我读了sudo echo "8933" > /dev/ttyUSB0
之类的内容,但它不起作用。通过Arduino-IDE中的串行监视器发送也可以正常工作sudo screen /dev/ttyUSB0
。
如何以编程方式执行此操作?
如果它是一个bash脚本会很好,因为我想通过ssh运行它。
答案 0 :(得分:1)
如果您已经有一些生成数据的脚本,您希望发送到您的Arduino串行监视器,您可以尝试使用简单的python包装器来发送数据。类似的东西:
#!/usr/bin/python2
import sys
import serial
def main():
data = sys.argv
if data[1:]:
ser = serial.Serial('/dev/ttyUSB0', 19200, timeout=1)
for d in data[1:]:
print d
ser.write(str(d))
ser.close()
else:
print "No Input given!\n"
if __name__ == "__main__":
main()
此脚本将接受作为参数传入的任何内容,并通过串行发送(即发送到Arduino串行监视器)。
./[this_script] `[your_script]`
这只是我刚刚鞭打的东西,它应该被清理干净。我考虑熟悉Python,因为它非常适合像这样的一次性脚本化任务。
答案 1 :(得分:0)
我发现sudo echo "8933" > /dev/ttyUSB0
存在两个问题。
echo
为其输出的内容添加换行符。尝试
而是printf "8933"
。
sudo
命令仅适用于实际回显。输出文件仍然由"你"打开。 sudo
运行之前(不是root)。试试printf "8933" | sudo tee /dev/ttyUSB0 > /dev/null
。