micro:bitでおみくじ。振ると大吉の時だけ音が鳴る
マイクロビットとは
イギリスのBBCが子供向けに作った、1ボード(約4x5cm)マイクロコンピューターです。USBや電池で動き、プログラミングを学ぶ教材として世界中の学校で使われています。主な機能は次のとおりです。
- 5×5のLEDで文字や絵を表示
- A/Bボタン、加速度・コンパス・温度・光・タッチなどのセンサ
- Bluetooth、ピン端子GPIO(外部のLEDやモーターをつなげる)
- マイクやスピーカー(V2以降)
こんなに小さいのに、センサ、無線まで備えているとは優れものです。プログラムはブラウザのMakeCodeでブロックやJavaScript、またはPythonで書けます。USBでつないで転送するか、無線で送ります。
基板上(V2.21)のチップ
マイクロコンピューターのSoCはNordicのRF52833です。中身はArm Cortex-M4 32bitで速度は64MHzです。しかもFPU(浮動小数点計算)を内蔵しています。プログラム領域は512KB、作業用メモリは128KBです。こういう風に書くとすぐ昔々のマイコンボードNEC TK-80(1976年)と比べたくなってしまうのですが、TK-80はμPD8080A(8bit, 約2MHz),ROM/RAM 最大約1KB程度だったと思います。大きさは約310x180mm, 価格は88,500円で当時高校生でしたけど手が出ませんでした。処理スピードだと数百倍にもなると思います。
プログラミングツール
プログラミングツールとしてMicrosoft MakeCodeが使えます。ブラウザベースとなっていて、https://makecode.microbit.org/ からアクセスします。ブロック(視覚的)、JavaScriptが使えます。ほかにもPython(MicroPython)でもプログラムできますが言語だけで領域を消費してしまうのでブロックかJavaScriptを使うのが無難です。

注)basic.foreverの中にinput.onGesture, input.onButtonPressedが入っていますが、その必要はないです。両方ともトリガー起動なので。
おみくじのプログラムの動作
| 結果 (数値) | 画面 5×5 LED表示 | 音 |
| 大吉 (0) | ハート | ビープ音 |
| 中吉 (1) | 笑顔 | 鳴らない |
| 小吉 (2) | 普通の顔 | 鳴らない |
| 凶 (それ以外) | 悲しい顔 | 鳴らない |
fortune = rand(0,3) で 0~3までの数値を発生させて結果にしています。
基板を振る(振動させる)Gesture.Shake または Aボタンを押す Button.A で動作します。

大吉!
プログラムを基板にダウンロードしたあとは、電池だけでも動作します。
まとめ
小さいころから(小学生くらい)からマイコンと遊ぶことで、子供がプログラミングの無限の可能性を感じて将来、科学技術領域で活躍してもらえることが期待できます。ぜひ親子で遊んでみませんか。子供向けとは言っても、十分IoTとして実用になる性能を持っています。電池で動作することから、動くものにも搭載できるので応用範囲が広いです。
