相生コンピュータークラブ第2期(2026年4月)~ロータリーエンコーダーを使う~

2026年第2期は、ものづくりプログラミング。昨年作ったRaspberrypi Pico実験基盤を使って、4月はロータリーエンコーダーを動かします。
Contents
タイピング練習とアルゴロジック
私たちが主宰するクラブは、ゴリゴリのコーディングをさせることで有名です。タイピングが速くて正確だからこそ、楽しくてやりがいのあるプログラミングが可能です。
大人にとっては、もしかすると苦い経験があるタイピングかもしれません。しかし、ゲームでタイピングを学べるので、メンバーは楽しく練習しています。ツールはフリーのものでも十分楽しめ、実力がつきます。

ただし、手順を追ってきちんと練習することが大切です。ただタイピングゲームをやっているだけでは、いつまで経っても上達しません。本編のクラブの前に実施している入門の入門講座で小学2年~小学4年生が驚くほどの成長を見せています。
ロータリーエンコーダーでLEDの明るさを連続的に変える
ロータリーエンコーダーとは、なんでしょうか。難しい名前がついていますが、要はボリュームダイヤルです。
と、今の小中学生であるメンバーに言ってもピンときていなかったようです。たしかに、ダイヤルを回すタイプのボリュームは見なくなりました。
ともあれ、回転して値を連続して変えるような操作をする場合、よく使うのがロータリーエンコーダーです。最初は、ロータリーエンコーダーで青色LEDの明るさを変えるプログラムを手打ちしました。

独立した赤青緑のLEDを選択して明るさを変える
続けて、実験基板にはんだ付けしてある赤・緑・青のLEDを選択して明るさを変えるプログラムを確認します。

実験基板には、RGBのLEDが一つずつ独立してはんだ付けしてあります。それぞれの明るさをロータリーエンコーダーで変化させるのが、このプログラムです。明るさを変える部分は先ほどと一緒。これまた実験基板に設置してあるタクトスイッチを押して、対象のLEDを選択する部分が追加です。
先月から導入したgithubからのソースコードのコピーについては、わたしからは何も言いません。コピーしてもいいし、手入力してもいいし。
時間内に解決できるなら、手入力したほうが伸びます。時間内に解決できないレベルだと、まずはコピペで動く歓びを感じましょう。
NeoPixel(WS2812B)の色相と明るさを変化させる
この日の最後は、NeoPixelを制御します。
光の三原色は、先月学習したところです。先月のプログラムだと、毎度毎度手入力でRGBの値を変えなければいけません。今日のプログラムだと、連続的に、まるで絵の具を少しずつ混ぜるようにLEDの色が変わります。

ロータリーエンコーダー移動に使うシューティングゲームを作る
予告通り、シンプルなシューティングゲームを作ります。まずはみんなに完成形を見せて説明します。


なにができるか理解したら、さっそく写経です。


できたら改造
全コードを写経すると300行以上あるので、そこまでは求めません。1時間すこしだと終わらないので。(それでも、自主的に全部の写経にチャレンジしているメンバーもいました)
ロータリーエンコーダーに関するところだけを写経します。これだけだとあっという間に終わってしまいます。そこで、終わったメンバーから改造です。

お手本は、わざと雑に作ってあります。ゲームに対して色々不満が出るのは想定通り。
ゲームに不満があるなら、自分で作ってみよう! というのがわたしたちのクラブの方針です。納得するものは、自分で作るのが原則です。



あるメンバーが作ったのが、ボタンによって弾の種類が変わるのと、敵の爆発エフェクト追加。自分で考えて、コードを書いていました。素晴らしい。
ハードの追加なしでもソフト変更でここまでできる
なお、今回はハードウエアの追加をしていません。今までの取り組みの中で、持っているハードを使い、プログラムを工夫しました。
プログラムの工夫次第で、様々なことができるということをなんとなくでも分かってくれたらいいなあと思います。
RaspberryPi Picoを使ったプログラミング(第2期)は、いったん終了です。第3期は、パソコンの画面だけで動くプログラムを作ります。
5月6日が振替休日で公民館が休みのため、クラブも休みです。第3期は3回の予定です。

