ラズベリーパイと2つの赤外線センサーを使用してpythonでプロジェクトを開発しています。
赤外線エミッターは Arduino 上にあり、50 ミリ秒ごとに継続的にコードを送信しています。このレートは変更できません。
2 つの赤外線センサー (左右) を 500 ミリ秒ごとにチェックするには、raspberrypi python スクリプトが必要です。左のセンサーがこの 500 ミリ秒の時間間隔内にコードを受信した場合は、受信したコードを表示します。それ以外の場合は、左のセンサーがコードを受信しなかったことを示します。このプロセスは、正しいセンサーで繰り返されます。
このための簡単な python スクリプトを作成しました。ただし、読み取られた古い値がチェックを妨げないように、常にバッファをクリアする必要があります。これは、バッファの値を 1 つずつ読み取る「while」で行っています。
EVDEV にはバッファをクリアするためのフラッシュ機能がありますか、それともこれを行うためのより良い方法はありますか?
#!/usr/bin/python2.7
from evdev import InputDevice
import time
device1 = InputDevice('/dev/input/event4')
device2 = InputDevice('/dev/input/event3')
while(True):
dataSensor1 = device1.read_one()
dataSensor2 = device2.read_one()
if(dataSensor1!=None):
print("Left: ", dataSensor1.value)
#delete old readings from the Left sensor queue
while device1.read_one()!=None:
pass
else:
print("no reading on the left sensor")
if(dataSensor2!=None):
print("Right: ", dataSensor2.value)
#delete old readings from the Right sensor queue
while device2.read_one()!=None:
pass
else:
print("no reading on the right sensor")
time.sleep(0.5)