飛行機のプロペラの企画、まだ続いていたのですね?ムムム、今日はいつになく厳しいな。マイクロビットがもう一つあるので、無線で操作できるようにしてみたのだ。その手があったか!興味がわいてきました!では、さっそくいってみよう。最初の設定も忘れずに。まとめどんな改造を施したのか?これまで作ってきたプロペラのプログラムでは、マイクロビットのボタンを押すとプロペラが動いたり止まったりしていた。プロペラがゆっくり回ったり、速く回ったりしましたね。今回は、もう一つ別のマイクロビットから操作できるようにしたのだ。テレビのリモコンみたいな感じですか?まさにリモコンだね。リモコン用のマイクロビットのボタンを押してごらん。本当だ!プロペラが回ったぞ!!プロペラが回っているのがお分かりいただけるでしょうか?いったいこれ、どうやってやったのですか?マイクロビットの無線機能を使ったのデ~ス。無線機能って、なんだか難しそうですね?話についていけるのだろうか?最初は簡単なやつを試してみようと思う。分かりました!で、どんなことをやるのですか?マイクロビットを2つ用意して、片方を「リモコン」、もう一方を「表示器」となるようにプログラムをロードしておいた。「リモコン」で「Aボタン」を押してごらん。「表示器」で「a」と表示されましたね!次は「Bボタン」を押してごらん。「b」と表示された!いったいどんなプログラムを作ったんですか?すごくややこしいんじゃないですか?「リモコン」のプログラムいや、そんなことはないョ。初めに「リモコン」のプログラムを見てみよう。radio.send(‘b’)本当だ!思ったよりも短いですね。どんなところかな?1行目の「import」は音楽を鳴らしたときに使いましたね。音楽のライブラリを組み込むやつでしたっけ?その通り。「【マイクロビット入門】(10)マイクロビットの機能を使ってみよう。」の「音楽の演奏」で出てきたね。*「while」とか「if」とかは、おなじみのやつですね。button_a.get_presses():ウム。radio.on()その通りだ。読んで字のごとくだね。radio.send(‘b’)これも読んで字のごとくだね。自分で全部理解してしまったではないか!オヒョ~「表示器」のプログラムでも、その分「表示器」のプログラムはややこしいのではないですか?そうかな?では、実際に見てみよう。radio.show(‘b’)6行目までは「リモコン」のプログラムと同じですね。7行目の「receive()」で受信したものを取り出している、ということですか?ィエース!リモコンで「Aボタン」や「Bボタン」が押されると、「’a’」や「’b’」が送られて、「表示器」のマイクロビットが受信する。すると、「receive()」で受信したものを取り出すことができるのだ。あとは、LEDで表示する部分ですね。ややこしくなかったですね。無線機能の使い方が分かってきたところで、次はプロペラのプログラムの改造について説明しよう。「リモコン」と「プロペラ」の両方の説明をするのですか?「リモコン」は先ほど説明したものがそのまま使えるのだ。改造したのは、「回転数が徐々に遅くなって止まる」バージョンの「プロペラ」のプログラムなのだ。【マイクロビット応用】プラモの飛行機のプロペラのプログラム:回転が徐々に遅くなって止まるバージョンこのプログラムでは、ボタンで操作していたのは覚えているね。「aボタン」ではプロペラが動いて、「bボタン」では止まるのでしたね。おおざっぱだが、その通りだね。例として「停止」の状態のプログラムを見てみよう。nextStateこのプログラムの19行目~21行目で「aボタン」が押されるとプロペラが回りだすのだったね。「セルモーター」でゆっくり回るのでしたね。今回は、「aボタン」のほかに、「リモコン」の操作でもプロペラが動かないといけない。プログラムを見やすくするため、ボタンの操作やリモコンの操作を関数としてまとめることにした。関数の作り方は前にやりましたね。【マイクロビット入門】(8)関数を作ってみよう。そこで、まずはこのプログラムを、次のように改造した。む、随分長くなってしまいましたね。13行目~18行目が新しく追加した関数だ。「aボタン」が押されると「’a’」を、「bボタン」が押されると「’b’」を返すようになっている。‘」すなわちスペースを返すようになっているのだ。nextState「aボタン」が押されていると、「’a’」が返ってくるので、次の27行目の「if文」が成り立つわけですね?その通り!そしてあとは、元のプログラムと同じく「STATE_CELL_MOTOR」を返して、セルモーターの状態に動きが変わっていくのだ。元のプログラムは以下に掲載していますよ。(新しいタブで開きます。次は、ボタンの操作をまとめた関数に無線の機能を追加しマ~ス。‘これを次のようにしマ~ス。‘14行目~18行目が追加されましたね。「表示器」の時と同じで、「radio.receive()」で「リモコンから送られてきたものを受け取っているのですね?そうだね。マイクロビットのLEDに表示する代わりに呼び出し元に「’a’」または「’b’」を返すようにしたのだ。「リモコン」から送られてきたのが「’a’」なら「’a’」を、「’b’」なら「’b’」を返す、という訳ですね。「停止」以外の状態の動作を行う関数も同様に改造しました。詳しくは、プログラム全体を見てね。(新しいタブで開きます。)【マイクロビット応用】プラモの飛行機のプロペラのプログラム:無線バージョン最初の設定も忘れずに。これで完成ですか!いや、まだこのままでは動かない。えー、どうしてですか?無線機能がONになっていないからなのだ。「radio.on()」とするのでしたっけ?その通りだ。「リモコン」のプログラムで説明したやつだね。True:プログラムの先頭で無線機能のライブラリ「radio」をインポートするのも忘れないでね。*まとめまとめ行ってみよ~ゥ無線のライブラリ「radio」をインポートすると、無線機能を使える。)」、受信は「radio.receive()」を使うことで行える。「radio.on()」で無線機能をONすることを忘れずに。今回のプログラムはこちらをご覧ください。(新しいタブで開きます。プラモの飛行機のプロペラのプログラム:無線バージョン次回はチャンネル指定など、もう少し無線に関する機能を追加してみます。プラモの飛行機のプロペラのプログラム:無線のチャンネル指定と双方向通信マイクロビット、パイソンのプログラミング応用編で作成したプログラムのソースです。解説したプログラムのソースコード全文です。本文と一緒にご覧ください。マイクロビット【マイクロビット入門】(15)「for」ループで配列を扱おう。教育用マイコンボード「マイクロビット」のプログラミングを解説します。使用言語はパイソンです。配列の各要素をループで扱うのに便利な「for」文について説明します。配列と「for」文を上手く組み合わせれば、プログラムをシンプルに作成することができます。「while」文と合わせて「for」文も理解しよう。プラモの飛行機のプロペラ(3)回転が徐々に遅くなって止まるように改造マイクロビット、パイソンのプログラミング応用編です。飛行機のプロペラのプログラムを改造しました。高速回転から停止するときに、プロペラが徐々に減速して止まるようにしてみました。プログラムを「状態を切り替える」方式で作成したので、簡単に改造することができます。プロペラの動きがよりリアルになりました。プラモの飛行機のプロペラ(2)マイクロビット、パイソンのプログラミング応用編です。ハセガワ1/32「F6F-5ヘルキャット」のプロペラを回すプログラムを解説します。今回は、前回解説しきれなかった部分の続きです。プラモの飛行機のプロペラ(1)マイクロビット、パイソンのプログラミング応用編です。ハセガワ1/32「F6F-5ヘルキャット」のプロペラを回すプログラムを解説します。マイクロビット【マイクロビット入門】(7)関数ってなんだろう?教育用マイコンボード「マイクロビット」のプログラミングを解説します。「関数」と聞くだけで拒否したくなる気持ちは分かるけど、プログラミングではとっても便利な機能です。コメントをキャンセルメールアドレスが公開されることはありません。※サイト上に表示された文字を入力してください。最初の設定も忘れずに。映画などを見て、登場する乗り物をプラモで作ります。マイクロビットという教育用マイコンを使ったプログラミング入門の記事も書いていきます。青木鳥をフォローする無断転載を禁止します。道具ホーム検索トップサイドバータイトルとURLをコピーしました。