首先,我对 Python 很陌生,但我正在尝试编写一个 Python 程序来将串行数据写入我的 Arduino 以控制伺服系统。我基本上希望我的电脑键盘充当伺服系统的控制器。该过程将是这样的:
- 一旦按下一个键,伺服就会开始向某个方向移动。
- 如果按住键,伺服将继续移动
- 松开按键后,伺服将停止移动。
我尝试过使用 Pygame 和 Pynput,但我无法让它工作。我一直在使用 Pyserial 连接到 Arduino。
任何相关问题已经在这里,帮助或其他链接将不胜感激。
最简单的方法是使用基本的串行 I/O。
我将这种设置用于我的数据记录器,这些记录器偶尔需要 Arduino 根据数据或时钟采取行动。
例子:
假设您想使用 USB 端口(例如在 RPi3 上),假设您想发送一个命令,该命令将导致 Arduino 发出两声长哔声。(或者它可以触发继电器,无论如何)代码看起来像这样:
蟒蛇侧:
#!/usr/bin/python
import serial
首先打开端口:
(通常如图所示,但对于 CHG340 Arduinos 会更像/dev/ttyACM0
)
ser = serial.Serial("/dev/ttyUSB0",9600)
要从端口读取,请使用:
linein = ser.readline()
要写入 Arduino,请使用:
ser.write("A")
ARDUINO SIDE,(记住它将作为 type 到达char
)
在设置()
char cTMP;
int beePin=12;
Serial.begin(9600);
while (Serial.available()>0) cTMP=Serial.read(); // flush the buffer
然后在 loop() 的某个地方
if (Serial.available) > 0) {
if (serIn=='A') {
digitalWrite(beePin,HIGH); delay(2000); digitalWrite(beePin,LOW);
delay(2000);
digitalWrite(beePin,HIGH); delay(2000); digitalWrite(beePin,LOW);
}
}
我倾向于坚持对 Arduinos 的单字母命令
此设置的美妙之处在于您还可以在 RPi3 上运行 Arduino IDE 进行 Arduino 编程,并且您可以使用 VNC 或xrdp
(使用 Windows 远程桌面或 remmina)远程访问它。
我称之为 Piduino。