ジャイロセンサーで角度と角速度を測る - HondaLab/Robot-Intelligence GitHub Wiki

ジャイロセンサーを2番のインターフェイスにつないで,角度と角速度を同時に測定する例を下に示しました.

他のセンサーと少し違うところは,gyro.modeを'GYRO-G&A'に指定した場合,2つの値を読む必要がある点です. それぞれ,value(0), value(1)で読み込みます.

#!/usr/bin/python3
# gyro_test_xx.py by Yasushi Honda 2019 1/2
# ------------------------------------------------
import ev3dev.ev3 as ev3
import time

gs=ev3.GyroSensor(ev3.INPUT_2)
print('modes: %s' % gs.modes)
gs.mode='GYRO-G&A'
print('Current mode: %s' % gs.mode)
print('Number of values: %d' % gs.num_values)

ts=ev3.TouchSensor(ev3.INPUT_3)
print('[ Push touch sensor to stop ](/HondaLab/Robot-Intelligence/wiki/-Push-touch-sensor-to-stop-)')
print('  angle  a-velocity')
while ts.value()==0:
   agl=gs.value(0) 
   rate=gs.value(1) 
   print("\r %5d %8d" % (agl,rate),end='')
   time.sleep(0.2)
print('\n bye-bye')

このやり方は,Sensorクラスに共通する方法です. 他の複数の値を返すセンサーの場合にも,同様に値を読み取ることができます.

PythonでLEGOロボットをうごかすにもどる