0

ラズベリーパイと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)
4

0 に答える 0