1

pingセンサーを使用して距離を測定する簡単なプログラムをunoで実行していますが、Pythonで距離に基づいていくつかのサーボを制御しようとしていますが、このような単純なコードでも条件付きのものは機能しません

import serial
data = serial.Serial('COM7',9600)
while(1):        
    if(data.inWaiting()>0):
        dist = data.readline()
        if(dist>100):
            print("dist is greater than 100")
        else:
            print("this shit does not work")

それが機能する場合は常にそうです、私は初心者です助けてください!

4

1 に答える 1

1

シリアル ポート タイプからのデータはstr

あなたはデータを読み込もうとしていますが、if .... > 100これは決してうまくいきません。

データをバッファに読み込んでチェックする必要があります。また、すべてのデータを取得したことを知るために同期フレームが必要です (必須ではありませんが、はるかに簡単です)。

たとえば、読み取ったデータが同期フレームであるとします100!!

import serial
my_serial = serial.Serial('COM7',9600)
my_data = ""
while(1):        
    if(my_serial.inWaiting()>0):
        my_data = my_serial.readline()
        if '!' in my_data:
            break

my_data = [:my_data.find("!")]
if int(my_data) > 100:
    print("dist is greater than 100")
else:
    print("this shit does not work")
于 2014-08-10T12:24:35.990 に答える