先日、友人が企画した「車いす運動会」という、車いすに乗って参加する運動会に参加しました。
車いすが必要な方とそうでない方が、一緒に競技できる運動会で、競技内容も分かりやすく、初めて車いすに乗った人でも無理なく参加できる運動会でした。
私は、初めて車いすに乗りましたが、意外と小回りがきき、まっすぐ進むのが難しい(両輪を均等に回せない)な、ということを体感しました。
車いすというと、体が不自由な方の使う乗り物というイメージがありますが、こういう機会があるとまた違って見えますね。本当に良い体験をさせていただきました。
■HaloCodeでIoTプログラミング
以前から気になっていた、Makeblock社のHaloCode(ハロコード)というプログラミング学習用デバイスが、日本でも購入できるようになったので、早速購入してみました。
https://www.makeblock.com/steam-kits/halocode
サイトの説明には、このようにあります。
「HaloCodeは誰もが簡単にAIやIoTアプリケーションを体験し、楽しく創造できる機会を提供できます。」
AIやIoTと言われてもくくりが大きすぎて、具体的にどんなことができるのか、どんなふうに作れるのかわからなかったのですが、実際に使ってみてわかりました。
これは、子ども達がIoTのI(インターネット側)とT(モノ側)の両方を作れ
るデバイスなのです。
さっそく専用のプログラミングツールmBlock5で、音声認識プログラムを作ってみました。
1. HaloCodeの電源を入れると、LEDが全部赤色になりWi-Fiへの接続を開始。
2. Wi-Fiに接続されるとLEDが消える。
3. LEDが消えてからHaloCodeの真ん中のボタンを押すと、LEDが緑になり音声認識を開始する。
4. ボタンを押してHaloCodeに向かって「英語」で話す。
5. 認識処理が終わるとLEDが消える。
6. 話した言葉を認識した、PCの画面上に表示する。
このプログラムをたった12行(mBlock5は、Scratchベースのプログラミングツールなので12個のブロック)で作ることができます。
これは、単に人間が話した結果を表示するだけの「おうむ返し」プログラムですが、行われていることはAmazon EchoやGoogle Homeとほぼ同じです。
たとえば、ステップ6の処理で認識した言葉を表示するだけではなく、認識結果に応じた答えを返すようにすると、自動応答システムになります。
自分のPCと自分のHaloCodeの間だけという保護された環境ですので、プログラミングする上でセキュリティのことを考える必要はありません。
ビジュアルプログラミングツールで作れる、セキュリティ上の心配がいらない、これが子どもたちでもIoTの仕組みを作ることができる理由です。
さらに、ビジュアルプログラミングツールで作ったプログラムを、Python言語に変換できます。
さきほどのプログラムをPython言語に変換した結果はこちら。
# generated by mBlock5 for HaloCode
# codes make you happy
import event, halo
halo.speech_recognition.set_recognition_url(halo.speech_recognition.SERVER_MICROSOFT, "{NAVIGATEURL}")
halo.speech_recognition.set_token(halo.speech_recognition.SERVER_MICROSOFT, "{ACCESSTOKEN}")
halo.cloud_message.start('{TOPIC}')
@event.start
def on_start():
halo.led.show_all(255, 0, 0)
halo.wifi.start(ssid = 'ssid', password = 'password', mode = halo.wifi.WLAN_MODE_STA)
while not halo.wifi.is_connected():
pass
halo.led.show_all(0, 0, 0)
@event.button_pressed
def on_button_pressed():
halo.led.show_all(0, 255, 0)
halo.speech_recognition.start(halo.speech_recognition.SERVER_MICROSOFT, halo.speech_recognition.LAN_ENGLISH, 2)
halo.led.show_all(0, 0, 0)
halo.cloud_message.broadcast('word', halo.speech_recognition.get_result_code())
いきなりPythonで作るのは難しいかもしれませんが、ブロックで作ったプログラムをPythonで作るとどうなるかが見られる、というのはいいですね。
プログラミング初学者が取り組むなら、Scratch、Python、Node-REDがいいというのが私の持論なので、これは理想に近いプログラミングツールです。
しかも、mBotやCodey Rockyなど、Makeblock社が開発・販売している他の製品と連携するプログラムも作ることができるんです。
つまり、HaloCodeを信号機に見立て、mBotを自動運転車に見立てて、自動車と信号機が連携して実現する未来の交通システムを作ったり、HaloCodeを音声認識装置に見立てて、音声で制御する自動車をじっさいに作って動かすことができます。
ここまでできる環境が揃っていれば、あとはどんなことを実現するかのアイデアだけ。子どもたちはたくさんのアイデアを持っていますから、こんなことができると分かれば大人が思いつかないような(たまにとんでもないものもありますが)ものが出てくることは間違いありません。
いやー、子どもたちがこんなものを作れる環境が整ったとは、本当にすごい時代になったものです。
製品そのものは、ESP32という汎用のマイコンをコアに使った、どこでも開発できるようなものですが、プログラミングツールと合わせたMakeblock社のパッケージングのうまさはずば抜けています。
子ども向けではありますが、大人でも十分楽しめますし、価格も2,500円程度と手ごろなので、ぜひ大人のみなさんにも試してみていただきたいし、お子さんがいらしゃったら、一緒に何かを作るのも楽しいと思います。
自分も色々作ってみて、子どもたちにその可能性を伝えていこうと思います。
【若林健一 / kwaka1208】
https://croads.jp/aboutme/
子供のためのプログラミングコミュニティ「CoderDojo」
https://croads.jp/CoderDojo/