EV3を制御する際に一つの指標として、モーターの角度を取得したいことがある。また、Pythonを用いている中で機械学習を行う際などは必ず何かしらのデータが必要になるが、センサーのデータと合わせてモーターのデータも取得したいことがあるだろう。
今回はEV3のPython環境でリアルタイムにモーター今何度の角度分回っているのかモニターしてみる。
EV3について
教育版 LEGO® MINDSTORMS EV3(以降EV3)
参考
本記事の内容は以下の書籍を参考にしている。
Pythonを使ったEV3の基本的な制御等については以下に網羅されている。
本記事内での環境
PC
Windows10
Python 3.7.3
開発環境 VisualStudioCodeEV3
ev3dev
APIリファレンス
※環境構築やVSCodeでのソース作成やEV3への転送・実行方法は以下を参照
EV3×Pyrhon 機械学習その1 環境構築編
ソースコード
position.py
from ev3dev2.motor import LargeMotor, OUTPUT_B
from ev3dev2.button import Button
import time
button = Button()
lm_bT = LargeMotor('outB')
lm_bT.reset()
def main():
while not(button.backspace):
time.sleep(0.2)
print(lm_bT.position)
lm_bT.stop(stop_action = 'brake')
if __name__ == '__main__':
main()
実行
モーターの角度は正の方向に回すと+に、負の方向に回すと-に数値が変わる。
今回はモーターにタイヤが付いているが、例えばタイヤが正の方向に1回転すれば0から360に角度の数値が変わる。
まとめ
今回はpositionのメソッドを利用して、モーターの角度を確認してみた。
このデータを記録したり、positionを指定することで正確にモーターを制御することができるだろう。