ジャイロセンサーで坂の角度を測定するプログラミング ~レゴマインドストームEV3~
Contents
ジャイロセンサーで坂の角度を測定する
教育用レゴマインドストームEV3の基本セットのジャイロセンサーで坂の角度を測定するプログラムを作成する。
まずトレーニングロボットを組み立てた後、ジャイロセンサーを縦に取り付ける。
ジャイロセンサーを縦に取り付けることにより坂の上り(下り)時に坂の角度が測定できるようになる。
またジャイロセンサーをトレーニングロボットの左側に取り付けた事により上りはプラスの数値、下りはマイナスの数値でジャイロセンサーの角度が表示される。
トレーニングロボットの前方に板で上り坂を用意した。
約200mm直進すれば坂を上がるのでジャイロセンサーを使って角度を測定してみる。
トレーニングロボットの組み立て動画
尚、トレーニングロボットの組み立ての動画はこちらを参照
プログラム概要
- 200mm直進する
- ジャイロセンサーの角度の差を計算してインテリジェントブロックのディスプレイに表示する
の2つの部分から構成されている。
尚、記事の最後にプログラミングと実際に動かした時の動画を載せているので確認してみて欲しい。
プログラム全体
200mm直進して坂を上る。
また同時にプログラム開始時のジャイロセンサーの値と坂を上った後のジャイロセンサーの値との差分より坂の角度を求めてディスプレイに表示する。
1 | プログラム開始 |
2 | ジャイロセンサーで現在の角度を測定する |
3 | 2の結果をstart変数に格納する |
4 | 200mm直進する為に必要な車輪の回転角度を計算する |
5 | 200mm直進する |
6 | ジャイロセンサーで現在の角度を測定する |
7 | 6の結果をend変数に格納する |
8 | strat変数を取り出す |
9 | end変数を取り出す |
10 | end時とstart時の差分を計算する |
11 | 10の計算結果をディスプレイに表示する |
12 | 10秒間待機する(11の表示結果が消えないようにしている) |
表示結果
プログラム実行時の11の表示結果。
この結果より坂の角度は約20度であることが分かる。
使用したブロック
今回使用したブロックは以下の6種類。
ジャイロセンサーブロック
角度や角速度を測定するブロック。
ジャイロセンサーで角度を測定する
|
変数ブロック
プログラム中の数値や文字列、ロジック(”真” or ”偽”)を保存することができる。
詳細はこちらの記事を参照。
ジャイロセンサーで測定したstart時とend時の角度を書き込んで保存する
| |
start時とend時の角度を呼び出す
|
数学ブロック
数学計算を行って結果を出力するブロック。
詳細はこちらの記事を参照。
200mm進む為に必要な車輪の回転角度を計算する
c×d:車輪の円周 | |
start時とend時の角度の差を計算する
上り坂:endの方が大きくなる |
ステアリングブロック
左右のLモーターを同時に制御するブロック。
前進、後退の他に旋回などの制御も可能。
指定された距離だけ前進する
|
表示ブロック
インテリジェントブロック(白い本体)のディスプレイにテキスト、図形、イメージなどを表示する為のブロック。
詳細はこちらの記事を参照。
数学ブロックで計算された坂の角度をディスプレイに表示する
|
待機ブロック
指定した条件になるまで待機するブロック
10秒間待機する
インテリジェントブロックのディスプレイに表示した後、待機を行わないとプログラムが終了して表示が消えてしまうので待機させる |
プログラミングと実際に動かしてみた時の動画
プログラミングと実際に動かしてみた時の動画。
トレーニングロボットが坂を上ってディスプレイに20が表示される様子が分かる。
最近のコメント