micro:bit(マイクロビット)を活用したプログラミング教育を考える「ものづくり:make」を楽しみながら学ぶ人へ向けた独習サポートサイト。Lab.では、micro:bit【マイクロビット】に関する情報を紹介しています。無線操縦で走る!荷台が動く!サイレン音が鳴り響く!5-10Running:bit【無線操縦編】2019-10-062019-10-06FacebookTwitterB!Bookmarkmicro:bitの無線機能を使って「Running:bit」を無線操縦するプログラムを紹介します。旋回・その場回転の動作と移動速度を制御します。ボタンAで荷台の上下、ボタンBで通常モードと緊急モード(サイレン音あり)を切り替えます。board」を使って、動きの異なる5種類のロボットカーを作ることができます。Running:bitは「付録3-15.Running:bit」で詳しく紹介しています。Carrier」です。荷台を上下に動かすことができます。motor)を使って、左右の後輪を別々に駆動します。旋回・その場回転などが行えます。motor)前輪は、金属製のボールキャスターです。後輪の動きに合わせて、あらゆる方向へ自在に進みます。servo)と二つのギアを組み合わせることによって、上下に動きます。Carrierを組み立てましょう。組立説明書は、同社のウェブサイト「Running:bitのチュートリアル」で公開されています。board」の端子へ接続します。進行方向に対して左側のDCモーターをM1、右側のDCモーターをM3へ接続します。サーボモーターをS1へ接続します。コネクターの向きが決まっているので、写真を見ながらリード線の色を合わせて、端子へ差し込みましょう。micro:bitとバッテリー(18650型充電池)も忘れずに取り付けましょう。boardに取り付けたまま、USBケーブルを使って充電することができます。board」をご覧ください。組み立て後は、荷台に取り付けられたグレーのギアを外しておきます。servo)の位置が初期化されます。この位置が、荷台の最下部になるので、調節してギアを取り付けてください。boardへの接続5-10-2.デモコントローラー側のmicro:bitを前後左右へ傾けることにより、Running:bitが移動します。前後左右の傾きの検出には、micro:bitにあらかじめ搭載されている加速度センサーを使っています。旋回・その場回転といった動作と、それぞれの移動速度を調節しています。ボタンAを押すと、荷台を上下します。ボタンBを押すと、走行モードが変化します。走行モードには、通常モードと緊急モードの2種類があります。通常モードは、緑と黄のランプが点灯します。緊急モードは、赤と白のランプが点灯して、サイレン音が鳴り響きます。Running:bitのスイッチをオンにした直後は、ブレーキがかかっています。ボタンA+Bでブレーキを解除して走行を楽しんでください。5-10-3.このプログラムの動作に必要なものこのプログラムの動作には次のものが必要です。boardを含む)電池ボックスと電池(コントローラー用)パソコン(*1)USBケーブル(*1)(*1):パソコン・USBケーブルは、プログラミングに必要なものです。5-10-4.コントローラー側のサンプルプログラム(ブロック)コントローラー側のサンプルプログラム(ブロック)です。最初だけ実行されるプログラム無線のグループ設定と変数の初期化を行っています。グループの番号は、コントローラーとRunning:bitで一致していれば36以外でもかまいません。図5-10-4-1.最初だけ実行されるプログラムずっと実行されるプログラムmicro:bitに搭載されている加速度センサーで、前後(加速度Y)と左右(加速度X)の傾きを測定しています。前後の傾きに応じて、モーターの速度が変化するように、-255(後進の最大速度)~255(前進の最大速度)の範囲でマッピングしています。左右の傾きに応じて旋回(または回転)するように、旋回(または回転)の内側にあるモーターの速度を-100%(逆回転の最大速度)~100%(順回転の最大速度)の範囲で変化するように計算しています。最後に求めたモーターの速度を無線で送信します。この動作は、変数「動作中」が真の場合のみ行います。図5-10-4-2.ずっと実行されるプログラムボタンAが押されたときに実行されるプログラム変数「荷台の位置が上」が真なら「DOWN=0」、偽なら「UP=0」を無線で送信します。そのあと、変数の値を反転(真偽を入れ替え)します。図5-10-4-3.ボタンAが押されたときに実行されるプログラムボタンBが押されたときに実行されるプログラム変数「緊急」が真なら「EMER=0」、偽なら「NONEMER=0」を無線で送信します。そのあと、変数の値を反転(真偽を入れ替え)します。図5-10-4-4.ボタンBが押されたときに実行されるプログラムボタンA+Bが押されたときに実行されるプログラム変数「動作中」の値を反転(真偽を入れ替え)します。図5-10-4-5.ボタンA+Bが押されたときに実行されるプログラム5-10-5.コントローラー側のサンプルプログラム(JavaScript)コントローラー側のサンプルプログラム(JavaScript)です。5-10-6.Running:bit側のサンプルプログラム(ブロック)Running:bit側のサンプルプログラム(ブロック)です。拡張機能「https://github.com/lzty634158/SuperBit」の追加が必要です。最初だけ実行されるプログラム無線のグループ設定と変数の初期化を行っています。グループの番号は、コントローラーとRunning:bitで一致していれば36以外でもかまいません。通常モードのライト点灯と荷台を一番下へセットしています。図5-10-6-1.最初だけ実行されるプログラムずっと実行されるプログラムライト(NeoPixel)をひとつずつずらして点灯します。通常モードと緊急モードで点灯時間が異なります。図5-10-6-2.ずっと実行されるプログラム無線で受信したときに実行されるプログラムコントローラーから送信される値によって、モーターの回転速度の設定・荷台の上下・ライトの点灯(通常モード・緊急モード)を行います。走行モードに応じた色(通常モード:緑と黄、緊急モード:赤と白)でライト(NeoPixel)を点灯します。図5-10-6-4.関数:ライト点灯バックグラウンドで実行されるプログラム緊急モード時にサイレン音を鳴らします。図5-10-6-5.バックグラウンドで実行されるプログラム5-10-7.Running:bit側のサンプルプログラム(JavaScript)Running:bit側のサンプルプログラム(JavaScript)です。拡張機能「https://github.com/lzty634158/SuperBit」の追加が必要です。キットで楽しむこの記事を読んだ人は、こんな記事にも興味があります。Lab.では、micro:bit【マイクロビット】に関する情報を紹介しています。泉保宗也(せんぼむねや)。