こんにちは、宗村です。 世間では野球の50-50で盛り上がっておりますが、神楽坂プログラミング教室もついに50回目!
今回は参加者さんからのリクエストを受けて「シリアル通信」について考えてみる回を実施しました。
いきなり「シリアル通信とは」なんて話をしても「?」ってなってしまいますと思いますので、まずは通信の歴史を簡単に学びつつ簡単な通信を体験してもらうところから始めます。
まずはボタンを押すと光るだけの簡単なLEDを準備します。このLEDを使って参加者さん同士でモールス通信に挑戦します。LEDを短く光らせるのを「トン」LEDを長めに光らせることを「ツー」と呼んで、トンとツーの組み合わせで文字を送ります。モールス信号の表を見ながらみんな頑張って1文字分の情報を送る練習をしていました。
LEDそのままでも十分なのですが、あえて光ファイバーを使って、線の中を情報が通っていく感じを表現してみました。
光ファイバー自体の存在が結構新鮮だったみたいで、単純に光が向こうに届くだけでも一盛り上がりありました。
準備ができたらいよいよ練習したモールスのコードを送信! 相手の人はメモを取ったり、頑張って覚えたりしながら受信した発光パターンから文字を特定。 何回か送りなおしてもらったりしながらもなんとか正しい文字が届きました。
さて、光のオン・オフで情報が遅れることが実体験できたので、これをmicro:bitにもやらせてみることにします。 先ほどのボタンを押すと光るLED、実はmicro:bitにボタンを押させることもできるのです。
micro:bitからLEDを光らせる方法を学習したら、トンとツーを再現するプログラム作りに挑戦してもらいました。
ここで、便利なプログラミングのテクニックとして「関数」というものが登場するのですが、今まで行ったワークショップのなかで今回のモールス通信というネタが関数の基本を教えるのに一番やりやすかったです。初めて「関数」というものを触った子も「わかりやすい!こんなことができるんだ!」と喜んでくれていました。
「トン」と「ツー」という関数を作るという事を伝えたら、さらに「トン」「ツー」の組み合わせで、送る文字の関数も作れるという事に気が付きどんどん自分で関数を作ることに挑戦してくれていました。
これで、micro:bitに文字の情報をモールス信号で送信することができるようになり、先ほど人力で行ったことがプログラムでもできることが確認できました。
ここからは少し難しいお話ですが、実際に身の回りの装置がどのようなルールで通信しているのかを実演しながら確認しました。例としてテレビのリモコンの信号を確認して、micro:bitにリモコンの代わりをさせてみました。 さらに、実際のmicro:bit同士の通信はどのようなルールで文字を送っているのかを確認して今回のテーマである「シリアル通信」の学習はおしまいです。
最後に勉強したばかりの通信機能を使って、射的ゲームをつくってみんなで遊びました。
micro:bitを組み込んだ光線銃から文字の情報を送信して、的に文字の情報を伝えます。 参加者さんの光線銃は4色用意したので、それぞれ色の頭文字の文字を送るようにプログラムを調整してもらいました。赤「R」緑「G」青「B」黄「Y」の4文字ですね。
的が白く光ったときに最初に文字を届けられた人がポイントゲット!
射的ゲームはかなり盛り上がりました! 熱中しすぎて走り回る子がいたと思えば、それとは対照に離れた場所から冷静にポイントをさらっていく子もいたり、思い思いに楽しんでくれたようでした。
楽しかったのでまたやりたいですね~。 もうちょっと広い会場が用意できればいいんですけどねw
それではまた次回の神楽坂プログラミング教室のご参加お待ちしております!
今回使った部品(一部試作基板を利用しましたので代替品をご紹介します)
switch-education.com switch-education.com switch-education.com switch-education.com
神楽坂プログラミング教室についてはこちらです。