こんにちは。宗村です。 69回目の神楽坂プログラミング教室は「micro:bitで回転寿司屋さんのシステムを作ろう!」というタイトルで実施しました。

回転寿司屋さんに行くと、お店ごとにいろいろとお寿司を届ける仕組みがあったり、食事を盛り上げるような仕組みもあったりしますよね。
今回はそんな仕組みをmicro:bitで再現することに挑戦しました。
まずはお寿司を届ける仕組みから。
最近はぐるぐる回り続けるタイプよりも、テーブルまで直接お寿司を運んできてくれるタイプをよく見かけますね。 このタイプも、ベルトコンベアで運んでくるタイプもあれば、新幹線のような乗り物が運んできてくれるタイプもあります。
今回は後者、乗り物がお寿司を運んできてくれるタイプを再現してみました。
まずは、どうやってテーブルの前で止まるのか
その話をする前に、前回のワークショップでは「カーリング」のゲームで遊びました。そこで軽いお話だけですが、「ロータリーエンコーダー」という仕組みについて触れていました。
今回はそのロータリーエンコーダーという仕組みを実際に使って、目的のテーブルまでお寿司を届けるというのがやりたいことです。 簡単に言うとタイヤが何回転したかを調べるための仕組みです。 タイヤの直径を測って、何回転すれば目的のテーブルにたどり着くかを計算してもらい、それをプログラムで実現しました。
そしてもう一つ。タイヤの回転とモーターの回転についても勉強しました。

今回エンコーダーが直接回転数を調べているのはタイヤではなく、モーターです。 モーターとタイヤの回転数の比も計算に入れないといけません。
参加してくれるのはいつも小2~小5くらいの子なので、結構難しいお話になってしまったかな?と危惧していましたが、順番に話をしながら質問をしていくと問題なくスラスラ計算して正しい答えを導き出してくれていました。
計算が終わったらそれを元にプログラムを作るだけです。


複数の座席を指定して、それぞれにお寿司を届けることも難なく達成できました。
プログラムを作るうえで、算数の計算をしてもらうというのが今回の一番のポイントです。小学校で習う算数を実際に活用して目的を達成するという経験をしてもらうというのが一番の目的でした。
このお寿司配膳ロボット、移動の速さと時間を指定して距離を計算させることもできますので、算数の「はやさ」の単元に利用することなんかもできます。
ここまでは1時間もあれば終わってしまうなと思っていたので、おまけの要素も準備していました。 某お寿司屋さんで楽しめる、ガチャガチャシステムもついでに再現してみます。
お寿司を食べたお皿を投入して、あたりがでたら景品がもらえるあれですね。
まずはカプセルを放出する仕組みを組み立てます。

そしてお皿の枚数を数える投入口も作ります。

これで、ロボットが運んできたお寿司を食べて、ゲームをするという一連の流れが完成しました。
説明をしたのは、カプセルを放出する方法、お皿を数える方法だけです。 そこからどのような方式にするかは各自に考えてもらいました。
実際のシステムに合わせて、当たりはずれの判定を設けたり、お皿の枚数が一定数に達したときにくじが引けるようにしたり、音を出して盛り上げるようにしたり、はたまたロボットに直接お皿を投入口に入れさせることに挑戦したり、みんなそれぞれのお寿司屋さんシステム作りに挑戦してくれていました。
「うちに帰ったらお家のテーブルでお寿司屋さんつくってみる!」と完成した後も実際の運用をどうするか考えてくれたりして、とても楽しくプログラミング体験ができたのではないかと思います。
それでは、また次回の神楽坂プログラミング教室のご参加お待ちしております!