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

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

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

 

マイクロビットを使って、実際に何かが動いたりLEDが光ったりするとお子様もプログラミングに興味を持たれるのではないでしょうか。現在シリーズでマイクロビットのホームページのレッスンを紹介していますが、並行してこちらもシリーズで紹介していきたいと思います。

昔からプラモデル作りが好きでしたので、ラジコンの戦車やバイクを作って子供と遊んでいました。ただ、ラジコンでは送信器、受信機、サーボコントローラーで簡単に動いてしまうので、プロモデル作りは別にしても動かす楽しみが主でした。しかし、マイクロビットであれば動くようになるまでにプログラムや、電子回路の知識も必要なのでその過程もプラモデル同様作る楽しみになります。これから、数回に分けて紹介していきます。まず、第一回目はスマホアプリをどうするかからテスト的にマイクロビットを動かすところまでです。

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

2018/7/2追記:Micro:bitとスマホをペアリング後、Micro:bit Blueアプリが上手く動かない件の問題判別結果

  • 原因 ①プログラムと②ペアリング後の手順と考えられます。
    ①ブルートゥースサービスを『最初だけ』ブロックで定義していた為に、ペアリング後Micro:bitを一度リセットしないとブルートゥースサービスが立ち上がらない。
    ②Micro:bitアプリでペアリングすると✔マークが表示される。そのままMicro:bit Blueアプリで接続すると①の理由でエラー
  • 対策 以下の手順がどんなプログラムにも対応可能と思われる
    1.Micro:bitに新しいプログラムをロード
    2.スマホの設定→ブルートゥースでペアリング済みのMicro:bitを削除(又はペアリング解除)
    3.Micro:bitアプリを立ち上げ、CONNECTで『PAIR A NEW MICRO:BIT』をタップして手順に従う
    4.Micro:bitをペアリングモードにする(アプリの指示通り)
    5.Micro:bitアプリでMicro:bitに表示されたLEDパターンを入力して『PAIR』をタップ(アプリの指示通り)
    6.前にペアリングしたことがあるMicro:bitであれば、パスワード不要でペアリング完了するので、アプリ終了
    7.Micro:bitには✔が表示されているのでリセットボタンでリセットする
    8.Micro:bit Blueを立ち上げ、『FIND PAIRED BBC MICRO:BITS』をタップして見つかったMicro:bitを選択

2018/6/29追記:OS7でもOS4.4でもServiceが動いていないのメッセージが出て使えない場合があることが分かりました。また、どちらのOSでも動く場合があります。(2018/7/2追記:問題判別の結果は上にまとめました。なお、Ipadでのペアリング方法については、次の記事で紹介します。)

1.スマホアプリとマイクロビットをブルートゥースで繋ぐ

マイクロビットには、無線(radio)とブルートゥースの2種類の通信方法があります。今回は殆どのスマホに標準となっているブルートゥースを使って、マイクロビットと通信することにします。次に紹介するAについては、MIT APP INVENTORでアプリを作るのが大変そうなので採用しませんが、参考になると思われるので紹介しておきます。ざっと見ていただきBの手順をみてください。

A.スマホアプリ、マイクロビットプログラムを共に自作する
A.スマホアプリ、マイクロビットプログラムを共に自作する

A-1.BlockyTalkyBLEのサイトをひらくと、以下のような画面になります。このサイトでは、MIT  APP  INVENTORを使ってアンドロイドスマホアプリを作るための『ブルートゥース拡張モジュール』とマイクロビットのプログラム開発環境のMakecode用の『ブルートゥース拡張モジュール』を提供しています。英語版ではありますが、作成手順についてビデオでも使い方の紹介がありますので、エラーが無ければ使えそうです。Makecode用、スマホアプリ用のサンプルプログラムも準備されています。
microbit_tank-1

A-2.MIT APP INVENTOR は、Web上でアンドロイドスマホアプリが開発できます。ユーザー登録は必要ですが、無料で使えます。こちらの記事は、自称小学生のねぎさんが1時間でスマホアプリを作られたものです。使い方がもう少し詳しく知りたい方は参考にしてください。この記事では、使い方の紹介は別の機会にさせていただき、どんなことができるのかを紹介していきます。BlockyTalkyBLEサイトを下のほうにスクロールダウンしていくこと、以下のようにMIT  APP  INVENTOR用のサンプルプログラムと、マイクロビット用のサンプルプログラムがダウンロードできます。
microbit_tank-2

A-3.ダウンロードしたファイルをMIT APP INVENTORに読み込ませると、以下のような画面になります。これは画面のデザインをするところです。スマホの画面にボタンやメッセージを表示する場所が配置されています。ここに自分で部品を追加していき、自分専用アプリを作ることができます。
microbit_tank-3

A-4.右上にあるBlocksボタンをクリックするとブロックでプログラミングできる画面に変わります。以下はサンプルプログラムの内容です。
microbit_tank-4

A-5.スマホにMIT  APP  INVENTOR 2 と呼ばれるアンドロイドアプリを入れておき、上記のサイトと接続しておき開発中のアプリの動きを実際のスマホで確認できます。以下スマホの画面キャプチャーです。
microbit_tank-6

A-6.で、今回この案を採用しなかったもう一つの理由は、上の画面がスマホに表示されると同時にアプリ開発画面に次のエラーメッセージが表示されるためです。(Android OS 4.4では問題ないのですが、OS7ではエラー。)
microbit_tank-5

A-7.以下はダウンロードしたマイクロビット用のサンプルプログラムをMakecodeで読み込んだところです。今回自作の戦車用プログラムはこのプログラムを参考にさせていただきました。
microbit_tank-7

B.スマホアプリは既存製品を使い、マイクロビットプログラムを自作する
B.スマホアプリは既存製品を使い、マイクロビットプログラムを自作する

色々ネットで調べると、Micro:bitとMicro:bit Blueの2つのアプリが使えそうです。導入して実験してみたところ使えそうなので、この2つのアプリを利用していきたいと思います。以下の2つのアプリをアンドロイドスマホに導入しました。そのアプリの使い方を紹介します。

Micro:bit Blue  :このアプリではペアリングしたMicro:bitから温度を読み取ったり、LEDを点灯させたりメッセージが表示したりできます。また、私が使いたいゲームパッド機能もついています。現在、このアプリの後継版は、Bitty Softwareが作っておりIpad版もあるようです。

Micro:bit:このアプリは、Samsungが提供しており、スマホとMicro:bitのブルートゥースでペアリングができ、その後スマホからWeb版のMakecodeでプログラムが作成とかできます。私の記事では、ペアリングの目的だけに使用します。

B-1.まず、Samsungが提供しているMicro:bitアプリのペアリング機能を使いたいので、その部分を紹介します。ペアリングするためにはBluetooth機能を組み込んだMicro:bit用のソフトがロードされている必要があります。例えば、購入時に導入されているプログラムでもOKです。但し、プログラムをロードするごとにペアリングが必要なので、自分が使いたいプログラムを入れてペアリングするのが良いです。一旦ペアリングすれば、再度プログラムを入れ替えるまでは電源を切っても大丈夫です。ペアリング手順はQiitaサイトに紹介されていますので、こちらの記事をご覧ください。ペアリングが完了しましたら、この記事に戻って下さい。

B-2.Qiitaサイトの手順に補足です。ペアリング後、Micro:bitにプログラムを新しくロードすると、再度ペアリングが必要です。ただ、1度ペアリング済みなので、6桁のパスワードは入れなくても良いようです。Micro:bitはA,Bボタンを押してから、裏側のResetボタンを押してから離してPEIRING MODE!を表示後以下の様にLEDが点灯している状況にします。
microbit_tank-8

B-3.Micro:bitアプリを起動して、『Connect』をタップして表示されるメニューで『Connect previously paired micro:bit』をタップします。
microbit_tank-9

B-4.以下の様な画面が表示され、ペアリングがうまくいくと上の画面に戻ります。Micro:bitのLEDには✔が表示されます。
microbit_tank-10

B-5.理由は分かりません(ロードされているプログラムによる?まだ調査中)が、上の手順でエラーする場合があります。何回やり直してもうまくいかない場合はアンドロイドスマホの設定メニューからブルートゥースを選択して、ペアリング済みのMicro:bitを削除します。その後、Micro:bitアプリで『PAIR A NEW MICRO:BIT』をタップして、初めてと同じ手順でペアリングします。

B-6.ここからは、Micro:bitに購入時のプログラムがロードされており、ペアリングも完了している前提でMicro:bit Blueの使い方を紹介します。注:購入時に導入されていたプログラムは自分のプログラムで消されていると思いますので、こちらの下のほうにプログラムがありますので、ダウンロードしてマイクロビットにコピーしてペアリングしておいてください。Micro:bit Blueのアイコンをクリックしてアプリを起動します。
microbit_tank-12

B-7.アプリが起動すると、最初に以下の画面になりますので『FIND PAIRED BBC MICRO:BIT 』をタップします。
microbit_tank-13

B-8.ペアリングが完了していれば、下のようにMicro:bitが見つかりますので、見つかったMicro:bitをタップします。
microbit_tank-14

B-9.アプリの初期メニューが表示されますので、Buttonsを選択します。
microbit_tank-15

B-10.以下のような画面が表示され、Micro:bitのAボタンかBボタンを押すと緑色に変わります。以下はBボタンを押したときです。長押しすると赤くなります。
microbit_tank-16

2.Micro:bit Blueと繋ぐためのプログラムをMakecodeで作成する

以下の手順は、Web版のMakecodeで確認しています。Makecode Windows版の入手はこちらから

A.Makecodeにブルートゥースのパッケージを追加
A.Makecodeにブルートゥースのパッケージを追加

A-1.Makecodeを立ち上げ、右上の歯車アイコンをクリックして表示されるメニューから『パッケージを追加する』を選択します。
microbit_tank-17

A-2.『パッケージを追加する』ウインドウが開くので、Bluetoothを選択します。
microbit_tank-18

A-3.『いくつかのパッケージが削除されます』警告メッセージが表示されますので、追加するを選択します。注:削除される『radio』パッケージは、同じ手順で元に戻す事ができます。
microbit_tank-19

A-4.Bluetoothが追加されました。
microbit_tank-20

A-5.ゲームデバイス用のモジュールを追加したいので、再度右上の歯車アイコンをクリックして表示されるメニューから『パッケージを追加する』を選択し、開いた『パッケージを追加する』ウインドウから、『devices』を選択します。
microbit_tank-21

A-6.Bluetooth接続機器が追加されました。
microbit_tank-22

B.Makecodeでブルートゥースのテストプログラムを作成
B.Makecodeでブルートゥースのテストプログラムを作成

B-1.今回利用させて頂く、Micro:bit Blueのゲームパッドは以下です。各ボタンについて、実験の結果以下のようでしたのでこれを元にプログラムを作りました。注:ボタンにある英数字は、私が追記したもので、実際のゲームパッドにはありません。
microbit_tank-23

B-2.作成したテスト用プログラム第一弾です。まだ、モーター制御などはしておらず、各ボタンの動きとLEDの点滅のみです。LEDはP0につないであります。次のステップで順に各ブロックの説明をしていきます。
microbit_tank-24

B-3.プログラムがスタートした事を示す為に、最初だけ『Test』とメッセージを表示します。
microbit_tank-25

B-4.ブルートゥースが接続された時は、急にモーターなどが動き出さないように、P0デジタル出力をOFF(0)にして、接続完了を示す為に『C』とメッセージを表示します。
microbit_tank-26a

B-5.ゲームパッドの『1』ボタンを押したときの動作を指定します。『1』ボタンが押された事を示すために、『1』とメッセージを表示します。また、LEDを点灯させるにP0デジタル出力を1にします。
microbit_tank-28

B-6.ゲームパッドの『1』ボタンを離したときの動作を指定します。『1』ボタンが離された事を示すために、『0』とメッセージを表示します。また、LEDを消灯させるにP0デジタル出力を0にします。
microbit_tank-29

B-7.ゲームパッドの他のボタンも同様にプログラムします。LED点灯はないので、ボタンが押されたらそのボタン名を表示するようにしています。ボタンが離されたら、ブランクを表示(ボタン名を消す)します。他のボタンも同様にプログラムしてあります。
microbit_tank-30
microbit_tank-31

B-8.完成したテスト用プログラムです。試してみたい方ダウンロードしてください。手

C.プログラムをMicro:bitにロードしてテスト
C.プログラムをMicro:bitにロードしてテスト

C-1.プログラムをロードしてペアリングが完了したら1度リセットボタンを押してから、Micro:bit Blueを実行します。アプリが起動すると、最初に以下の画面になりますので『FIND PAIRED BBC MICRO:BIT 』をタップします。
microbit_tank-13

C-2.ペアリングが完了していれば、下のようにMicro:bitが見つかりますので、見つかったMicro:bitをタップします。
microbit_tank-14

C-3.アプリの初期メニューが表示されますので、スクロールダウンしてゲームパッドを選択します。
microbit_tank-32

C-4.以下の様に接続完了すると『C』が表示され、ゲームパッドのボタンを押したり離したりすると以下の様になります。ボタン1の時だけLED点灯します。
ble_test

戦車を動かす1回目の記事は以上です。残念ながら、現時点スマホとMicro:bitのペアリング時の不具合原因が分かりません。継続調べていきます。Ipadでは問題ないようですが、Ipadではゲームパッドが有料アプリになっています。

尚、接続関連の不具合がありましたら、コメントいただけましたら調べて見ますのでよろしくお願いします。


最後まで記事をお読みいただきありがとうございます。
記事の改善に役立てたいと思いますので、よろしければアンケートにご協力ください。

記事内容についてお伺い


    良く解る解る解りにくい部分がある解りにくい 


     

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