我和一些朋友正在尝试使用Raspberry Pi 3建造自动驾驶汽车。我们已经收集了训练数据,并且神经网络可以在Pi上运行,但是我们用来控制电动机和转向的arduino并不是。工作。
我将其简化为只发送转弯命令和节流命令的脚本。代码运行大约需要32秒钟,并且直到脚本完成后汽车才能动弹。通过将串行监视器与Arduino IDE结合使用,我们可以发送命令,并且arduino将立即做出响应。命令的格式如下:t或s(油门或转向)+行驶编号(油门为90-120,转向为65-200)。例如,t120将使汽车处于满功率状态,而s125将使汽车的转向居中。
简化脚本:
if (window.matchMedia('screen and (max-width: 768px)').matches) {
console.log('Screen is less then 768')
}
在Arduino上运行的代码:
from serial import Serial
from time import sleep
s = Serial('/dev/ttyUSB0', 9600, timeout=10)
s.rtscts = True
throt = "t100\n"
s.write(throt.encode("utf-8"))
steer = "s200\n"
s.write(steer.encode("utf-8"))
s.close()
在Raspberry Pi 3上运行,代码需要30秒钟才能执行。在此期间,Arduino接收指示灯亮起。代码完成后,指示灯将熄灭,汽车将根据命令开始行驶。