当サイトは2020年小学生のプログラミング必修化に関して、関連する情報を纏めています。

Micro:bit(マイクロビット)で学ぶ スマホで戦車を動かしてみる 3/3

Micro:bit(マイクロビット)で学ぶ スマホで戦車を動かしてみる 3/3

 

前回は、Moto:bitを使ってiPadのゲームパッドアプリから戦車を動かしてみました。ただ、Moto:bitが大きいため砲台部分無しで動かしました。今回は小さなモータードライバーを使い戦車の形で動くようにしてみました。

2021/7/27追記最新のMicrobitはV2となりますが、当記事はMicrobit V1を基にしています。V1.5とV2の違いはこちらをご覧ください。

1.モータードライバー

直接Micro:bitにモーターを接続する事はできません。Micro:bitからのデジタル信号を受けてモーターを動かすモータードライバーが必要です。戦車の中に組み込みたいので、出来るだけ小さいものが良いので、『TB6612FNG搭載 デュアルモータードライバ(ピンヘッダ付き)』を購入しました。2cm角でピンヘッダーの高さ1cmです。以下が組み込んだ状態のモータードライバーです。この部分は戦車の砲台部分に入れました。
microbit_tank-60

2.回路の作成

仕様は、以下のようにしました。

  • モータードライバーで2個のモーターを制御する
  • 停止したときは、ブレーキライトを点灯する(ターンシグナル兼用)
  • 左右に曲がる時は、ターンシグナルを点滅する(ブレーキライト兼用)
  • バックするときはバックライトを点灯する

回路図とモータードライバー用の信号は以下です。注:モータードライバーのSTBYはモータードライバーを制御する為にONにする必要があります。P13はプログラムで常にONにしています。

3.Micro:bitのプログラム作成

 

22021年8月11日更新
ブロックエディターが新しくなりました。ブロックの外観が変わりましたが、使い方はほぼ同じです。当記事は今までのブロックエディター(V0)のブロックを基に記事を作成していますので、新しいブロックエディターのブロックと見た目が異なりますので、ご了承ください。今後、順次新しく追加されたブロック等に対応していきます。

3-1.最初だけブロックには、ブルートゥースサービスの入出力サービスを組み込み、LEDライトの点灯条件を初期化(ブレーキライト点灯)するために変数LEDを3にします。
microbit_tank-62

3-2.ブルートゥースが接続されたときに、モーターなどが急に動かないように、全てのデジタル出力をOFFにします。
microbit_tank-75

3-3.ずっとブロックには、『もし…なら…でなければもし』ブロックを使い、変数LEDの値によってLEDの点灯状況を変更します。変数LEDの値は、ゲームパッドのボタンを押したときに変更します。
LED=1の場合は、左側の赤LEDを点滅
microbit_tank-63
LED=2の場合は、右側の赤LEDを点滅
microbit_tank-64
LED=3の場合は、左右の赤LEDを点灯
microbit_tank-65
LED=4の場合は白LEDを点灯(後進)、LED=0の場合は全LED消灯
microbit_tank-66

3-4.ゲームパッドのボタンを以下のような役目にしましたので、それに合わせてプログラムを作ります。
microbit_tank-67
Aボタンは前進なので、左右モーターを正転し全てのLEDを消すために変数LEDの値を0にします
microbit_tank-68
Bボタンは停止なので、左右モーターを停止し左右の赤LEDを点灯するために変数LEDの値を3にします
microbit_tank-69
Cボタンは左折なので、右モーターのみ正転し左の赤LEDを点滅するために変数LEDの値を1にします
microbit_tank-70
Dボタンは右折なので、左モーターのみ正転し右の赤LEDを点滅するために変数LEDの値を2にします
microbit_tank-71
2ボタンは後進なので、左右モーターを逆転し白LEDを点灯するために変数LEDの値を4にします
microbit_tank-72
3ボタンは後進左折なので、右モーターのみ逆転し白LEDを点灯するために変数LEDの値を4にします
microbit_tank-73
4ボタンは後進右折なので、左モーターのみ逆転し白LEDを点灯するために変数LEDの値を4にします
microbit_tank-74

4.Micro:bit、モータードライバー、電池を戦車に組み込む

4-1.場所が狭いので、Micro:bit用の電源は水銀ボタン電池にしました。100円ショップで購入したLED照明の電池ボックスを流用しました。モーター用電源は単四電池を3本直列にして、4.5Vとしました。これを戦車の車体の底に入れました。
microbit_tank-76

4-2.電池とモーターの上に、Micro:bitを入れました。丁度車体の幅に収まりました。上に浮かしてあるのは砲台部分に納めるモータードライバーです。
microbit_tank-77

4-2.LEDとLED用抵抗は車体上部分に内蔵しました。LEDから車体後部のライト部品までは光ファイバーで配線してあります。写真で黒いチューブが見えますが、この中に光ファイバーを通してあります。各部品はホットボンドで留めてあります。また、分解しやすいようにMicro:bitとの配線はコネクター接続としました。真ん中に汚い穴があけてありますが、砲台部分にモータードライバーを入れるための穴です。手抜きしてニッパーで入る大きさに切り取りました。なお、光ファイバーの工作については、どろぼうひげ様が運営しておられる『どろぼうひげの制作記』のこの記事この記事を参考にさせていただきました。ありがとうございます。
microbit_tank-78

5.実際に動かす

Microbit_tank

LEDの点灯が良く見えないので、そこだけアップで写しました
Microbit_tank_led

7.まとめ

3回に渡り、プラモデルをMicro:bitとスマホアプリを使いブルートゥースラジコン戦車にする記事を紹介してきました。使ったプラモデルはトランペッター社の『CHINESE 85-Ⅱ 105mm BATTLE TANK 1/35』を使用しました。元々前進後進ができるモーターライズプラモデルでしたので、ギヤボックスを『タミヤ 楽しい工作シリーズ No.168 ダブルギヤボックス 左右独立4速タイプ 』に交換しました。
microbit_tank-77

1/35でしたので、組み込みはできることはできましたが、ギリギリでした。1/24サイズなら余裕を持ってラジコン化出来ると思われますので、次は大きいサイズに挑戦したいと思います。サーボモーターを使って砲台を動かしたり、エンジン音再現、ライト類をリアルに再現するなどなどやれることがありそうです。

マイクロビットカテゴリの最新記事