今回もAfrelのホームスクーリング教材を参考に、EV3 Classroomでプログラミングしてみます。
10歳からの「教育版レゴ マインドストーム EV3 for home by アフレル」
教材はこれですね。
前回作ったEV3ベースロボに、ジャイロセンサーを今回は取り付けます。
ジャイロセンサーは、角度や角速度を測定して向きを検知できるセンサーです。
Switchとかのゲーム機やスマホ等に搭載されていますが、このセンサーを取り付けた物の向きを検知させて、何かアクションさせるという使い方が出来ると思います。
テキストに従うとこんな感じでロボットが出来ます。
ロボットの先にアームの代わりにジャイロセンサーを取り付けました。
次にプログラムです。
先ほどのホームスクーリング教材にジャイロセンサーの課題が掲載されてますので、それをやってみます。
メモ
プログラムを実行すると
・時計回りに180°旋回
・3秒待機
・反時計回りに0°に戻る
ではLet's Try!!
使うブロックは、センサーブロック(青)の中からジャイロセンサーを使います。
そして、今回は紫の表示ブロックを追加して、本体のディスプレイにジャイロセンサーの最終的な角度を表示させます。
サイバーエージェントが運営する 小学生向けプログラミング教室【テックキッズスクール】
で、後はジャイロセンサーの暴走対応です。
EV3の本体のPort Viewでポート1につなげたジャイロセンサーの状況がわかります。
こちらを確認した際に、角度表示がロボットが静止している状態で値がどんどん増加している場合があります。
これ暴走状態なので、電源を落とすか、ジャイロセンサーのケーブルを一旦抜いて再度取り付けると収まります。
ちなみに、ソフトリセットはこの暴走には意味がないです。(プログラム上でリセットブロックを入れても暴走は止まらない)
これが正常な状態。
ということで、真正面にロボットを置きます。
プログラムを走らせると・・・
時計回りに180°旋回して、3秒まって逆旋回するんです・・・が。
なんかまわり過ぎるんですよね・・・+42°、逆旋回でも−1°
でも、真正面にはちゃんと帰ってくるんですよね。
ぴったり180°で止めるにはどすれば良いのか。
しかも、ホームスクーリング教材では3秒待ちの間にわざと本体を持ち上げて旋回角度を変更しておいて、そしてスタートさせるという意地悪をするんですが、その無理やり変更した角度も考慮して正しく0°にちゃんと旋回するという検証があります。
これも今回組んだプログラムでは出来ません・・・
ん〜何かがおかしいんだな〜。
ということで検証は続く・・・
10歳からの「教育版レゴ マインドストーム EV3 for home by アフレル」