「ものづくり:make」を楽しみながら学ぶ人へ向けた独習サポートサイト。

micro:bit Lab.【マイクロビット】

micro:bit Lab.では、micro:bit【マイクロビット】に関する情報を紹介しています。

ユニークな構造が独特な動きを生み出す!
5-11

Tumble:bit【無線操縦編】

2020-01-302020-01-30

micro:bitの無線機能を使って「Tumble:bit」を無線操縦するプログラムを紹介します。micro:bitに搭載された加速度センサーのみで、前進・後進・左右への旋回・その場回転の動作と移動速度を制御します。

5-11-1.Tumble:bit

Yahboom(中国名:亚博)Tumble:bitは、LEGO互換のブロックで組み立てるキットで、LEGOと接続可能なDCモーターと、同社の多機能・低価格なmicro:bit用の拡張ボード「Super:bit expansion board」を使って作るロボットカーです。詳しくは「付録3-14.Super:bit expansion board」をご覧ください。

Tumble:bitの最大の特徴は、その構造です。本体の両側に大きなタイヤが取り付けられ、この2輪のタイヤだけで本体を支えています。この構造によって、本体が揺れるように動くため、走行時nに独特な動きが生み出されます。急な方向転換時には、本体が回転することも!

図5-11-1-1.Tumble:bit
図5-11-1-1.Tumble:bit

タイヤは、中心のハブとリムを、赤い輪ゴムのスポークでつなぐ構造で、そのデザインの美しさが目を引きます。

図5-11-1-2.デザインが美しいタイヤ
図5-11-1-2.デザインが美しいタイヤ

LEGOと接続可能な2個のDCモーターを使って、左右のタイヤを別々に駆動します。タイヤの回転する方向(正転・逆転)と回転速度を組み合わせることで、前進・後進・左右への旋回・その場回転などが行えます。

図5-11-1-3.LEGOと接続可能な2個のDCモーター
図5-11-1-3.LEGOと接続可能な2個のDCモーター

DCモーターとタイヤは、十字軸によって接続されています。

図5-11-1-4.DCモーターとタイヤの接続
図5-11-1-4.DCモーターとタイヤの接続

本体の内部に、同社の多機能・低価格なmicro:bit用の拡張ボード「Super:bit expansion board」を搭載しています。

Tumble:bitの組み立て

Tumble:bitを組み立てましょう。組立説明書は、同社のウェブサイト「Tumble:bitのチュートリアル」で公開されています。

組み立てが完了したら、DCモーターのリード線を、拡張ボード「Super:bit expansion board」の端子へ接続します。進行方向に対して左側のDCモーターをM1、右側のDCモーターをM2へ接続します。コネクターの向きが決まっているので、写真を見ながらリード線の色を合わせて、端子へ差し込みましょう。

micro:bitとバッテリー(18650型充電池)も忘れずに取り付けましょう。バッテリーは、Super:bit expansion boardに取り付けたまま、USBケーブルを使って充電することができます。詳しくは「付録3-14.Super:bit expansion board」をご覧ください。

図5-11-1-5.Super:bit expansion boardへの接続
図5-11-1-5.Super:bit expansion boardへの接続

5-11-2.デモ

コントローラー側のmicro:bitを前後左右へ傾けることにより、Tumble:bitが移動します。前後左右の傾きの検出には、micro:bitにあらかじめ搭載されている加速度センサーを使っています。傾きの向きと大きさによって、Tumble:bitの左右に取り付けられたモーターの回転する方向(正転・逆転)と回転速度を変化させ、前進・後進・左右への旋回・その場回転といった動作と、それぞれの移動速度を調節しています。

Tumble:bitのスイッチをオンにした直後は、ブレーキがかかっています。ボタンAでブレーキを解除して走行を楽しんでください。ボタンBを押すと、赤と白のランプが点灯します。ボタンA+Bを押すと、メロディを演奏します。

5-11-3.このプログラムの動作に必要なもの

このプログラムの動作には次のものが必要です。

  • micro:bit本体×2台(Tumble:bit用・コントローラー用)
  • Tumble:bit(Super:bit expansion boardを含む)
  • 電池ボックスと電池(コントローラー用)
  • パソコン(*1)
  • USBケーブル(*1)

(*1):パソコン・USBケーブルは、プログラミングに必要なものです。

5-11-4.コントローラー側のサンプルプログラム(ブロック)

コントローラー側のサンプルプログラム(ブロック)です。

最初だけ実行されるプログラム

無線のグループ設定と変数の初期化を行っています。グループの番号は、コントローラーとTumble:bitで一致していれば36以外でもかまいません。

図5-11-4-1.最初だけ実行されるプログラム
図5-11-4-1.最初だけ実行されるプログラム

ずっと実行されるプログラム

micro:bitに搭載されている加速度センサーで、前後(加速度Y)と左右(加速度X)の傾きを測定しています。前後の傾きに応じて、モーターの速度が変化するように、-255(後進の最大速度)~255(前進の最大速度)の範囲でマッピングしています。さらに、左右の傾きに応じて旋回(または回転)するように、旋回(または回転)の内側にあるモーターの速度を-100%(逆回転の最大速度)~100%(順回転の最大速度)の範囲で変化するように計算しています。最後に求めたモーターの速度を無線で送信します。この動作は、変数「動作中」が真の場合のみ行います。

図5-11-4-2.ずっと実行されるプログラム
図5-11-4-2.ずっと実行されるプログラム

ボタンAが押されたときに実行されるプログラム

変数「動作中」の値を反転(真偽を入れ替え)します。

図5-11-4-3.ボタンAが押されたときに実行されるプログラム
図5-11-4-3.ボタンAが押されたときに実行されるプログラム

ボタンBが押されたときに実行されるプログラム

変数「LED点灯中」の値を反転(真偽を入れ替え)します。その後、真偽に応じて「LED=1」「LED=0」を無線で送信します。

図5-11-4-4.ボタンBが押されたときに実行されるプログラム
図5-11-4-4.ボタンBが押されたときに実行されるプログラム

ボタンA+Bが押されたときに実行されるプログラム

「MUSIC=1」を無線で送信します。

図5-11-4-5.ボタンA+Bが押されたときに実行されるプログラム
図5-11-4-5.ボタンA+Bが押されたときに実行されるプログラム

5-11-5.コントローラー側のサンプルプログラム(JavaScript)

コントローラー側のサンプルプログラム(JavaScript)です。

5-11-6.Tumble:bit側のサンプルプログラム(ブロック)

Tumble:bit側のサンプルプログラム(ブロック)です。拡張機能「https://github.com/lzty634158/SuperBit」の追加が必要です。

最初だけ実行されるプログラム

無線のグループ設定と変数の初期化を行っています。グループの番号は、コントローラーとTumble:bitで一致していれば36以外でもかまいません。

図5-11-6-1.最初だけ実行されるプログラム
図5-11-6-1.最初だけ実行されるプログラム

ずっと実行されるプログラム

変数「LED点灯」が真の場合、ライト(NeoPixel)をひとつずつずらして点灯します。

図5-11-6-2.ずっと実行されるプログラム
図5-11-6-2.ずっと実行されるプログラム

無線で受信したときに実行されるプログラム

コントローラーから送信される値によって、モーターの回転速度の設定・メロディの演奏・ライト(NeoPixel)の設定を行います。

図5-11-6-3.無線で受信したときに実行されるプログラム
図5-11-6-3.無線で受信したときに実行されるプログラム

5-11-7.Tumble:bit側のサンプルプログラム(JavaScript)

Tumble:bit側のサンプルプログラム(JavaScript)です。拡張機能「https://github.com/lzty634158/SuperBit」の追加が必要です。

この記事を読んだ人は、こんな記事にも興味があります。
スポンサーリンク
TOPへ移動
目次へ移動