DFRobotから超音波センサーを購入したので、早速使ってみました。シリアル通信モードで、コマンドを送ると、温度や距離を送り返してきます。
DFRobotのWebページにに載っていたサンプルプログラムはCで書かれていましたので、それを参考にPythonで書いてみました。普通に動いています。
import serial
import struct
import time
import datetime
ser = serial.Serial( 'COM11', 9600, timeout=None )
def sendCommand():
txx = [0x22, 0x00, 0x00, 0x22]
for b in txx:
a = struct.pack( "B", b )
ser.write(a)
ser.flush()
def recData():
while ser.in_waiting <= 0:
pass
r0 = ser.read(1)
while ser.in_waiting <= 0:
pass
r1 = ser.read(1)
while ser.in_waiting <= 0:
pass
r2 = ser.read(1)
while ser.in_waiting <= 0:
pass
r3 = ser.read(1)
rc = int.from_bytes( r1+r2, 'big' )
return rc
fn = 'data.txt'
fp = open( fn, "w", encoding="utf_8" )
for i in range(15):
for j in range(60):
for k in range(60):
sendCommand()
dist = recData()
dt_now = datetime.datetime.now()
print( dt_now, dist )
fp.write( str(dt_now) + " " + str(dist)+'\n' )
time.sleep(1)
ser.close()
fp.close()
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。