相生コンピュータークラブ第4期(2026年7月)~マイコンプログラムの原理を知る~

2026年第4期は、Raspberry Pi Picoを使ったプログラミングです。実験基盤に実装してあるLEDとタクトスイッチを使った反射神経ゲームを作ります。6月はその準備運動です。」

タイピング練習とアルゴロジック

私たちが主宰するクラブは、ゴリゴリのコーディングをさせることで有名です。タイピングが速くて正確だからこそ、楽しくてやりがいのあるプログラミングが可能です。

タイピングの練習を漫然と続けたとしても、上達するわけではありません。前回の自分の記録を見ながら、悪いところやできないところを少しずつ修正し、精度を保ったまま徐々にスピードを上げていく。このプロセスを地道に繰り返していくことによって、初めて上達していきます。

まさに「ローマは一日にして成らず」であり、「千里の道も一歩から」です。根気強く続けていくことが大切です。

練習のためのツールは、はっきり言ってしまえば何でも構いません。Web検索をすればたくさんのタイプのものがありますし、どれを使ったとしても、ある程度の上達は見込めます。自分の好きなものを選べば良いでしょう。

しかしながら、クラブでは決まったものを使っています。何を根拠に選んでいるかというと、以下の要素が重要だからです。

  1. 正タイプ率
  2. 打鍵速度(タイプ数)

これらがはっきりと数値として出るものをピックアップして使っています。

そして何よりも記録をすることが重要です。時系列で記録をすること、ここが重要です。

タイピングゲームをした後に出るスコアを見るだけでは不十分です。1日経ってしまえば忘れてしまうからです。そうではなくて、その日の一番良かったスコアを紙に記録していくこと、これが重要です。

時系列に並べて自分の記録を見ることで、どのように上達していったかということが分かります。さらに忘れずに過去の自分を超えていくことが可能です。

数値的な記録ではなくて、どのように自分が何を試したかといったところまで、細やかに記録していくとさらに良いのです。しかし、小中学生にそれを求めるのも難しいところです。

そこまでは求めていませんが、ICTクラブに限らず、自分でやる人がいれば、そこまで記録しておくと重宝するでしょう。

アルゴロジックはよくできているゲームだ

アルゴロジックは、ブロックを積み上げていくプログラミング体験ゲームです。このゲームは非常によくできていると思います。

内容はだんだん難しくなっていくのですが、前の簡単な問題を適当にクリアしていると、次第に解けなくなってきます。実際にメンバーを見ていても、難易度が上がったところで悩み込んでしまうメンバーが散見されます。

こういったメンバーには、前の問題をもう一度解くようにうながします。「答えを忘れてしまった」と言われることもありますが、答えは覚えておくものではありません。大切なのは、解き方や考え方を身につけることであって、答えの記憶自体はさほど重要ではないのです。

解き方や考え方が身についていれば、見た瞬間にすぐ解けるはずです。一度解いた問題がすぐに解けないということは、その解法が自分のものになっていないということなので、もう一度考え直してもらうようにしています。そうすることで、難しい問題もスムーズに解けるようになることがよくあります。

プログラミング入門の入門講座(相生・龍野)

AI時代の“学びの土台”を育てる、完全初心者向け準備講座 AI時代に強い子へ。プログラミングの“その前の力”を丁寧に育てる準備講座です。 本編クラブへのスムーズなステッ…

マイコンプログラムはスイッチのON/OFFだ

Raspberry Pi Picoを使ったマイコンプログラムは、7月から2ヶ月間、全4回で進めていきます。

まず最近加入したメンバーは、Raspberry Pi Picoにピンをハンダ付けするところからスタートします。

はんだ付けは初めてだったということでしたが、コツがあるので、そのコツを掴んでしまえばさほど難しいものではありません。

せっかくの良い機会なので、100カ所くらいハンダ付けをこなしましょう。これで腕も上がります。道具は良いものを揃えていますので、ここで腕を上げてください。

身近なものに置き換えて理解しよう

マイコンプログラミングが、パソコンの画面の中だけで完結するプログラミングと大きく違うのは、電圧を扱う点です。

マイコンプログラミングの基本は、大きく分けて以下の2つです。

  1. 出力
    スイッチのオンオフ、つまり電圧のオンオフを制御することを指します。
  2. 入力
    電圧の状態を検知することを指します。これには大きく分けて2つの方法があります。
    (a) 電圧があるかないかを検知する(デジタル検知)
    (b) 何ボルトあるかを検知する(アナログ検知)

この入出力の制御こそが、マイコンプログラミングの基本です。

これを小学校5年生くらいに伝えても理解してもらうのは無理でしょう。そこで、学校の理科の実験に例えて説明しているのが下の写真の様子です。

学校の理科の実験では未だに豆電球を使っているということなので、豆電球を電気でつけたり消したりする回路で、説明しました。一方的に喋るだけでなく、対話型で進めるのがクラブの特徴です。

「電池は何Vか知ってる?」と聞いたら、「500Vくらい」という答えが返ってきたのには驚きました。乾電池で500Vもあったら感電死してしまいます。実際は1.5Vです。

そんな話をしながら、

  1. 1.5Vの電気を流した時にどうやって点いたり消えたりするのか
  2. テスター(電圧計)を入れた時にどのような数値が出るのか
    といった内容を示しています。

また、余談として以下の話も織り交ぜています:

  • コンセントは交流100Vであること
  • 乾電池1個は直流1.5Vであること

これらは中学校の技術の時間に習うような内容です。「覚える必要はないけれど、仕組みが少し違うんだよ」という話を添えながら進めています。

コーディング自体はあっという間に終わってしまいました

マイコンの原理を知ったところで、今度はプログラミングを進めていきます。

今日のお題は以下の2点です:

  1. LEDの3つが順についたり消えたりするというプログラム
  2. 3つあるスイッチのうち1つを押したら、どのスイッチを押したかがパソコンの画面上に表示されるというプログラム

写経はあっという間に終わってしまうというのが素晴らしいなと思います。写すだけなら並の大学生以上のレベルがあるのではないかと思うくらいに速くて正確です。しかも、自分でエラー対応までするというのはすごいなと見ています。

ただ、内容についてはまだ理解が浅い部分があるようなので、そこをフォローします。

今日は課題が少なくて時間があります。コードのこの部分の意味は何だろうかというのを調べてもらいました。

自分で調べるのもプログラミングの重要な練習です。それはAIを使ってもいいですし、Webで調べてもいいです。誰かから教えてもらうのではなく、自分で疑問に思ったものを自分で調べるということは、普段の学習でも重要なのかもしれませんが、プログラミングにおいては現実的に非常に重要です。

この日は新人さんがいたこともあって、さらに私一人でクラブを回していたため、サポートが手薄になっていたメンバーがいました。

ふと気づいて見てみると、自分で調べて何とかしようとした形跡があります。「なんでもっと早く言わないの」とは言ったものの、自分で調べたこと自体がものすごくいいなと思いました。

そのため、その点を称賛しています。自分で調べて、惜しいところまでたどり着いていたのが素晴らしいです。

そこから先は「こうやるんだよ」と調べ方を伝えました。しかし、何より自分でやろうとして、良いところまで自力で行ったことが本当に素晴らしいと思います。

チャタリングの説明をしました

チャタリングとは、ごく短い時間でスイッチのオンオフが繰り返される現象を言います。

なぜ起きるかと言うと、機械的な接点は動作する時に跳ねるため、このようなチャタリングが発生します。これは実体のあるマイコンプログラミングならではの現象です。

パソコンの画面だけで完結するプログラムでは、こういったことは考慮しませんし、知ることもありません。マイコンプログラミングをやるからこそ気づける、理解しなければならない概念です。

プログラムコードにも「チャタリング防止」という時素、つまりディレイを入れた箇所があります。なぜそれがあるのかというと、このチャタリングを考慮してのコードだからです。画面だけで動くプログラムには、このようなコードは必要ありません。

このあたりの動作に対する理解は、非常に工学的、エンジニアリング的だと思います。フロントのHTMLやCSSを書いているだけでは気づけない内容です。

物理現象に対する深い理解と、それをコードに落とし込む確かな洞察が必要だという点で、非常に高度な内容です。そして、先人がこれをどのように解決しようとしたのかという「知恵」に触れる良い機会でもあります。

ただコードを書ければ良いというわけではなく、こういった物理現象に触れながらコードを書いていくというのが、マイコンプログラミングの大変面白いところです。