micro:bitのオプションパーツを使って、スピードメーターをつくってみようとおもいます。
超音波センサーと対象物の距離を2回測定します。
その間に進んだ距離を計算して、移動速度を計算してみます。
歩いたり走ったりするスピード。
ミニ四駆のスピードなど計ってみてください。
超音波センサー
今回は、micor:bitのオプションパーツ「超音波センサー」を使います。
その他、補助で「拡張用コネクター(GROVEシールド)」も使います。
これらの部品は、「マイクロビット アドバンスセット V2対応版」に含まれています。
基本的な勉強をするのにいい部品がそろったキットなのでお勧めです。
micor:bitの準備
今回使う備品はこれです。
①micor:bit本体
②超音波センサー
③超音波センサーをつなぐケーブル
④拡張用コネクター(GROVEシールド)
⑤USBケーブル(パソコンとつなぐ用)
これをこのように組み立てておいてください。
MakeCode for micro:bit
アドバンスセットを使えるようにする
超音波センサーなどの部品を使えるようにするためには拡張機能を追加する必要があります。
拡張機能をクリックします。
拡張機能画面で、
検索欄で「Grove」と入力して検索するか、
下のパネルから「Grove」を探して、クリックしてください。
Groveという部品が使えるようになります。
プログラム
Aボタンを押すと、速度を計って、速度の表示を行います。
Bボタンを押すと、速度を再表示します。
Aボタンを押したとき
プログラムの大まかな機能を説明します。
超音波センサーからの距離を2回測ります。
2回の測定で、進んだ距離を計算して速度を求めます。
まず、1回目の距離を測定します。
超音波センサーからの距離を測って、変数「初期位置」に登録します。
プログラムを1秒間停止します。
今回のプログラムでは1秒間進んだ距離から速度(時速)を計算することにします。
2回目の距離を測って変数「移動後位置」に登録します。
ここから先は、少し算数の話になってきます。
ちょっと難しいかもしれません。
初期位置と移動後位置の差から、1秒間に進んだ距離を計算します。
今回の計算では「初期位置 ー 移動後位置」の式にしています。
この場合、初期位置から近づいてくる物の速さを計るときは計算結果が0より大きくなります。
しかし、初期位置から遠くなる場合は、引き算の右辺が大きくなるのでマイナスの距離になっていまします。
距離がマイナスだと速度もマイナスになってしまうので「絶対値」に変換します。
(マイナスの速度でも構いませんが、格好悪いので絶対値を使う事にします。)
「絶対値」にすれば、マイナスを取った数字の部分だけにすることができます。
これを、変数「移動距離」に登録します。
速度の計算をします。
速度の単位をkm/h(km/時)にすることにします。
計算式は
1時間ですすんだ距離(km) ÷ 1時間
です。
ただ、このプログラムでは移動距離の単位はcmで、時間は秒です。
単位をkmと時間に変換する必要があります。
まず、移動距離はcmなので、100000で割ってkmにします。
「移動距離 ÷ 100000」の部分です。
次に時間を秒から時間に変換します。
1時間は3600秒なので
「1 ÷ 3600」で1秒を時間に変換することができます。
最後に「距離 ÷ 時間」の式にします。
画像が少し見えにくいですが、距離の変換と時間の変換を先にしていることに気を付けてください。
(移動距離 ÷ 100000)÷ (1 ÷ 3600)
という式になっています。
最後に、速度を表示します。
単位に「km/h」という文字をつなげて表示します。
Bボタンを押したとき
中身はAボタンを押したときの最後に行った、速度を表示する処理と同じです。
コメント