個人的に micro:bit より IoT学習 に適していると感じている教育用マイコン、makecode社 の CyberPi の LED制御 と サンプルプログラム(きらきら星)を実践しました!
LED と 音 の 同時制御 にもチャレンジ!アップロードモードとライブモードの違いについても触れています。
Scratch と同じ操作感で IoT に強みのある mBlock を用いて制御します。
プログラミングやIoTの初学者でもわかる入門(使い方)向けの内容でもあります。
LEDの制御
CyberPi のLED機能
CyberPi(サイバーパイ)には、本体の側面にフルカラーLEDが5つ内蔵されています。
そして、それぞれのLEDに対して、下記を制御できます(テンプレートのLEDアニメーションは5つのLEDすべてを使用します)。
- 色(24ビットフルカラー(RGB))
- 明るさ(0~100%)
- 点滅(時間)
- LEDアニメーション(7つのテンプレート)
これらを、ブロック型のビジュアルプログラミング(Scratch(スクラッチ))で簡単に制御できます(Pythonでの制御も可能)。
フルカラーで光らせる
LEDをフルカラーで光らせるには、一つのブロックを使えば簡単にできます。
左メニューのデバイスタブから、「CyberPi」を選択し、「LED」ブロック内の下記画像のブロックを選択するだけです。
デフォルトでは虹色が表示される設定となっていますが、ブロック内の色をクリックすることで、各LEDの色を9種(消灯含む)から選択することができます。また、色の組み合わせを保存することも可能で、他のプログラムに流用することも可能です。保存した組み合わせは下記画像内の下部に表示されます。
別のブロックで、LED一つ一つを個別に設定したり、RGB(レッド、グリーン、ブルーの組み合わせ)を 0〜255 の値で操作して、詳細に色を設定したりすることも可能です(スポイト機能有)。
明るさを変える
明るさは 0〜100% で設定できます(0% が消灯)。また、「明るさを◯%増加」ブロックで相対的に明るさを変更することも可能です(減少させたい場合にはマイナスで数字を指定する)。
ただし、5つのLEDの明るさを個別に設定・変更することはできません。
点滅させる
LEDの点灯時間を指定して、点滅させることが可能です。LEDブロック内の一つのブロックでも実現可能ですが、制御ブロック内の「◯秒待つ」ブロックと組み合わせることでも可能です。
LEDアニメーションを表示させる
これまでに記述した、「フルカラーで光らせる」、「明るさを変える」、「点滅させる」を組み合わせることによってLEDアニメーションの作成が可能です。
しかし、mBlock には、いくつかのLEDアニメーションのテンプレートが用意されています。また、手軽にLEDアニメーションを作成するためのブロックも用意されています。
「LED◯を右に回転する」ブロックは、左から数えて◯番目のLEDを右のLEDにズラす操作となります。自動販売機の購入前のボタンのLEDアニメーションをイメージしていただくとわかりやすいでしょう。
サンプルプログラム
mBlock には、いくつかのサンプルプログラムが用意されています。
サンプルプログラムの開き方
mBlock の画面右上の 「チュートリアル」から「サンプルプログラム」を選択します。
サンプルプログラムの一覧が表示されるので、動かしてみたいサンプルプログラムを選択します。なお、サンプルプログラムで用意されている言語は、現在(2021年6月時点)では英語と中国語のみとなります。
プログラム名の冒頭に「(CN)」と付いているものが中国語、「(EN)」付いているものが英語となります。
今後、mBlock や CyberPi が日本でも流行っていけば、サンプルプログラムも日本語でサポートされていくこととなるでしょう。
試しに左上の「(EN)Twinkle, Twinkle」を開いて実行してみると、「きらきら星」が CyberPi本体より流れます(「Twinkle, Twinkle」の日本語訳は「きらきら星」)。
サンプルプログラム以外で公開されているプログラム(mBlockコミュニティ)
mBlockではコミュニティサイトが用意されており、そこで世界中のプログラムが共有されています。
自分が作ってみたいプログラムに近いものが既に作成・公開されている可能性は十分にあります。参考に探してみるのも良いでしょう。
そして、自分が作成したプログラムは個人情報や著作権等に留意してぜひ公開してみてください。簡単なものでも構いません。世界中のプログラミング教育の活性化に繋がっていきますよ?
ライブモードとアップロードモード
CyberPi と mBlock には、ライブモードとアップロードモードがあり、mBlock上で切り替えることが可能です。それぞれに特徴がありますので、しっかりと理解してトラブルにならないようにしましょう。
ライブモード
ライブモードでは、下記の特徴があります。
- メリット
- 作成したプログラムをmBlock上で実行することにより、CyberPiを動作させることが可能
- CyberPiとスプライトで変数の共有が可能
- 通常のメッセージ機能でCyberPiとスプライトを連携させることが可能
- 「旗が押されたとき」や「〇〇キーが押されたとき」といったmBlock上での操作がトリガーとなるイベントブロックが使える
- プログラムをCyberPiにアップロードする手間がない
- 作成したプログラムをmBlock上で実行することにより、CyberPiを動作させることが可能
- デメリット
- PCとCyberPiが接続されていることが前提(CyberPi単体ではライブモード不可)
- AI機能やIoT機能のほとんどが使えない
- CyberOSを操作することができない
- CyberPiに保存されているプログラム(デモプログラム含む)を実行することができない
- 言語設定等ができない
一言で述べると、
PCとCyberPiが接続した状態で、スプライト等との連携など、手軽に操作することが可能(高機能なことは不可)
といったモードとなります。
アップロードモード
アップロードモードでは、下記の特徴があります。
- メリット
- CyberPi単体で動作することが可能
- CyberOSを操作することが可能
- CyberPiに保存されているプログラム(デモプログラム含む)を実行することができる
- 言語設定等ができる
- AI機能やIoT機能が使える
- デメリット
- mBlock上で作成したプログラムをCyberPiにアップロードする手間がある
- スプライトとの連携に、ネットワーク接続が必須となる
- CyberPiとスプライトで変数の共有ができない
- 通常のメッセージ機能でCyberPiとスプライトを連携させることができない
- 連携には、「アップロードモードメッセージ」や「ユーザークラウドメッセージ」が必要となる
一言で述べると、
手間は多少かかるようになるが、CyberPi単体で様々なことができるようになる
といったモードとなります。
コメント