当サイトは広告が表示されます。

micro:bitでプラレールを制御する その2 走行編

2023年6月24日micro:bit,プラレール,動画

前回、プラレールの貨車に合わせて3Dプリンターで部品を作り、micro:bitと乾電池に加えてDCモーターを制御する拡張基盤を固定しました。今回は実際にmicro:bitのプロフラムを組んで、列車を走行させてみます。また、別のmicro:bitを利用しての遠隔操作や、Bluetooth機能でスマホアプリからの操作も試してみます。

スポンサーリンク

前回記事までの様子

前回記事でmicro:bitと乾電池、DCモーターを制御する拡張基盤と一緒に走行出来る様にしました。

「プラレール」関連記事

プラレールに関するその他の記事は、以下の「プラレール」タグの記事一覧(投稿順)より見て下さい。現在の記事とこれ以降に投稿した記事も含みます。

その他、micro:bitを使用している記事は以下の「micro:bit」タグの記事一覧(投稿順)から見て下さい。「その24」までの記事では、micro:bitの本体バージョンは「1.5」を使用しています。

列車を走行させる

※実際の走行の様子は、この記事の最後の方に動画で掲載しています。

列車のみ(micro:bit-1台)

まずは貨車に固定したmicro:bitにプロフラムを組んで、列車を走行させます。DCモーターを制御する拡張基盤のメーカーからは、Microsoft MakeCode用の拡張機能ブロックが用意されています。

Microsoft MakeCodeで「拡張機能」を選択します。

上部の検索欄に「Kitronik motor driver」と入力して検索します。検索結果の中から「Kitronik-motor-driver」をクリックします。

すると上記の様に「Motor Driver」という機能が追加されます。注意点として、この拡張機能は同じメーカーの他の製品とも共有しているので、中にはDCモーターの制御では使用しないブロックもあります。ブロックの使用例はここに記載されています。

拡張機能のブロックを使用せずに、通常のブロックのみでもプログラムを作る事は可能です。メーカーが用意しているデータシート(リンク先はpdfファイル)内に記載されています。

とりあえず、上記の様にプログラムを作りました。micro:bitのAボタンで前進、Bボタンで後退、AとBボタンの同時押しで停止です。AまたはBボタンを押してから1秒(1000ミリ秒)の一時停止を入れたのは、A→BまたはB→Aでモーターの回転方向を変更する場合に、モーターや列車のギヤに負荷を掛けない為です。

またスピードを「17」としていますが、ここは「0~100」の割合を指定します。この割合はDCモーターへ出力する電圧に対するものですが、「100」で拡張基盤に入力している電源電圧と同じ電圧になります。ここでは拡張基盤に9V乾電池を接続しています。プラレールの列車は単3(あるいは単2)乾電池1本の1.5Vで動作しているので、9Vの17%で約1.5Vです。17を最大として割合を減らせば、列車の走行速度は低くなりますが、あまり低い割合ではモーターの力不足で列車は走行出来なくなります。

遠隔操作(micro:bit-2台)

micro:bitには無線機能があり、複数のmicro:bitと通信する事が出来ます。従って列車と一緒に走行するmicro:bitではなく、手元で操作する事も可能です。

上記は手元で操作する(リモコン)micro:bit側のプログラムです。Aボタンで「進行」という文字と数値「1」、Bボタンで「進行」という文字と数値「2」、AとBボタン同時で「進行」という文字と数値「0」を、列車と一緒に走行するmicro:bitに送信します。

さらに上記は列車と一緒に走行するmicro:bit側のプログラムです。「進行」という文字と数値「1」を受信したら前進、「進行」という文字と数値「2」を受信したら後退、「進行」という文字と数値「0」を受信したら停止します。

ただしここでは「進行」という文字を送信したり、操作側の「進行」という変数を使用する必要はありません。この先、色々な操作を送受信させる事を考えた場合に必要になるかもしれないので、テストとして使用しています。

遠隔操作(micro:bit-1台・スマホBluetooth)

micro:bitにはBluetoothの機能もあり、スマホアプリ(公式コンパニオンアプリ)を利用してのスマホからのプログラム転送や、文字や数値の送受信が可能です。ただしBluetooth機能は拡張機能として追加する必要があり(上記)、先の無線機能とは排他利用となります。またメモリーを多く消費するので、プログラムが長くなる場合はmicro:bitのV2(バージョン)を使用する方が良いと思います。さらにスマホとの通信には、最初にペアリングが必要になります。詳しくは以前の記事を見て下さい。

今回は列車の操作用として、スマホに「EV-micro:bit」というアプリを利用してみました。このアプリはmicro:bitでロボット等を操作する為の汎用的なアプリの様です(公式アプリではありません)。使い方はアプリ内にデータシートが含まれていますが、それほど難しい事は無く、アプリの各ボタンを押すと「#」に続いて各ボタンに割り当てられた文字を送信しているだけです。

今回はアプリ内で上記赤枠内の3つだけを使います。左ボタンでは「l(エル)」、右ボタンでは「r」、下ボタンでは「b」が送信されます。

列車と一緒に走行するmicro:bit側のプログラムは上記の様にしました。基本的には無線機能の時と同じですが、万が一スマホとのBluetooth接続が切れてしまった場合に、AかBボタンでモーターを停止出来る様にしています。

今回の記事はここまでです。次回はセンサーを利用して、列車の動きを制御してみます。

動画

今回の内容の動画です。

ブログ記事公開後に再び同じ内容(翌年に同じ場所を走行など)の動画を作成・公開している場合があります。記事内の動画もなるべく最新を掲載する様にしていますが、最新や過去・その他の動画を見る場合はYoutubeを見て下さい。

注記

    • この記事を参考にしてのプラレールの改造は、自己判断と自己責任の下で行って下さい。事故や怪我が発生してもその責任を負う事は出来ません。
    • 記事内の内容はあくまで私の利用する製品(アプリ含む)や機器での場合です。他メーカーの製品や機器をはじめ、同じメーカーの製品・機器であってもバージョン違い等の場合もあるので、記事内容の保証や責任を負う事は出来ません。
    • 記事内で紹介している製品や、その他の類似製品を購入・利用する場合はそのメーカーや購入先で仕様等を確認し、自己判断と自己責任の下で利用して下さい。
    • 記事内で公開しているmicro:bit用プログラムは自由に利用・改変して頂いて構いません。ただし不具合やバグもありますので、プログラムを利用した際の故障や事故等についての保証や責任を負う事は出来ません。
    • micro:bit製品やプログラミング、その他記事内容について個別の問合せや依頼を頂いても回答する事は出来ませんので、予め御了承下さい。
    • BBC micro:bitは、micro:bit教育財団の登録商標です。
    • プラレールは、株式会社タカラトミーの登録商標です。
    • その他のブランド名または製品名は各所有者の商標です。