我是Python和Raspberry Pi的新手,希望能在一个与Arduino有关的项目中使用它们。基本上,我想按下连接到Arduino的按钮然后让该输入在Raspberry Pi上播放视频文件。
通过串行数据进行此操作有些困难。我可以在Arduino和Pi之间连接串口消息,例如:"Hello world",但无法弄清楚如何打开一个视频文件。现在,当我运行Python代码时,没有任何显示,并且按钮按下没有反应。我有正确的USB端口,因为它可以用其他仅打印串口数据的程序正常工作。我该如何解决这个问题呢?
简而言之,最终目标是“按下按钮->播放视频”。
Arduino代码:
通过串行数据进行此操作有些困难。我可以在Arduino和Pi之间连接串口消息,例如:"Hello world",但无法弄清楚如何打开一个视频文件。现在,当我运行Python代码时,没有任何显示,并且按钮按下没有反应。我有正确的USB端口,因为它可以用其他仅打印串口数据的程序正常工作。我该如何解决这个问题呢?
简而言之,最终目标是“按下按钮->播放视频”。
Arduino代码:
int pushButton=2;
int buttonState=0;
void setup()
{
serial.Begin(9600);
pinMode(pushButton, INPUT);
}
void loop()
{
int buttonState=digitalRead(pushButton);
if (buttonState==HIGH)
{
Serial.println("a");
delay(100);
}
if (buttonState==LOW)
{
//do nothing
}
}
Python 代码:
import sys
import os
from subprocess import Popen
import serial
movie1=("/home/pi/Videos/test.mp4")
ser = serial.Serial('/dev/ttyUSB0',9600)
while True:
data = ser.read()
if data=="a":
os.system('killall omxplayer.bin')
print("a")
omxc = Popen(['omxplayer','-b', movie1])
ser.read()
的内容。也许它是b"a"
二进制的“a”(对Python 2.x无关紧要)。在您确信串行I/O正常之前,请删除subprocess.Popen()
。 - Kingsley