初心者がプログラミング教室を開くまで

はじめに

 東京大学では毎年5月に五月祭という学園祭が開かれており、我々機械系はTechno Factoryという学生有志による企画展示を行っています。僕はプログラミング教室の企画担当をしていたのですが、僕自身ものづくり系の企画を持つのが初めてでかなり苦労しました。その体験談を長々と書かせてください。

発端

 もともとプログラミング教室という企画は毎年電気系など他の学科で開かれていたのですが、我々機械系にはありませんでした。僕は昨年度のTechno Factoryで「キカイ×アート」という企画に参加していたのですが、執行代になった今年は企画参加者が少なく開催できるか微妙でした。企画を廃止するか人手が少なくてもできそうな企画を新設するかという話になったとき、責任者の「代わりにプログラミング教室やってよ、君プログラミング得意でしょ?」という鶴の一声によってほぼ強制的にプログラミング教室の企画担当になってしまいました。

立案

 企画担当に任命された訳ですが、僕自身かなり情弱で何をやればいいのかさっぱりでした。Scratchというビジュアルプログラミングが子供の教育でよく用いられていることもこの時初めて知りました。ここ数年はPC内で完結するゲームをやっている電気系に対抗?して、ビジュアルプログラミングで実際にモノを動かせたら電気系との差別化もできるし、何より機械系ぽくていいよねという話になりました。

 こうして方向性は決まったのですが、具体的な内容は決められませんでした(これが去年の11月末)。12月は学科の演習課題で、1月は期末試験の勉強で忙殺されたことを言い訳にして五月祭のことを考える余裕はなく、責任者の「春休みに入りましたが準備は順調ですか?」という怒りの進捗確認が来るまで2ヶ月間何もしていませんでした。ごめんなさい。

 2月になりようやく具体案を考え始めました。Arduinoで作る!ライントレースロボットというブログ記事を見つけ、LチカしかやったことないけどArduinoなら触ったことあるし車を動かすのが楽しそうだと思い即採用。ただ、ライントレースはTechno Factoryの企画として別にあったので、プログラミングで車を動かして迷路をクリアしよう!みたいな内容でやっていくことにしました。

製作

ハード

 割としんどいところでした。電子工作はLチカくらいしかやったことないし、機械系なのにモーターもろくに触ったことがなかったので必要な部品を全て揃えるのまでに何回も秋葉原に通うハメになってしまいました。

f:id:ymtkds:20181123135235p:plain:w250

 TAMIYAの楽しい工作シリーズのギヤボックスやキャスター、タイヤなどを用いて車体をせこせこ作りました。説明書通りに作るだけなのに、グリス塗りやネジ締めなど繊細な部分も多く初心者には気が滅入る作業でした。

f:id:ymtkds:20181123144410p:plainf:id:ymtkds:20181123144934p:plain

 車に迷路をクリアさせたいので、超音波センサを2つ前と右につけることで条件分岐で前進・右折・左折が切り替えられるようにしていきます。いわゆる「右手法」という奴です。ArduinoでPWMを使えるピンは限られていることに注意しながら回路設計しました。

f:id:ymtkds:20181123151533p:plain:w250

 汚い配線とはんだづけを頑張り、ようやく車が1台完成しました。ものづくり初心者だと、ブレッドボードではなくユニバーサル基板を使うだけでかなりしんどみが深くなってしまうのですが、何とか形にはなりました。初心者にしては上出来だったんじゃないでしょうか(苦笑)。

ソフト

 どうやらArduinoはScratchでは動かせない?ということに気づき調べたところ、S4A・ArduBlock・BlocklyDuinoなどのツールを用いるとScratchのようにブロックをつなげるだけでArduinoを動かせることを知りました。子供でも読めるよう日本語化されている・必要なセンサがちゃんと使える・ArduinoとPCが接続されていなくても動く等の観点から最終的にArduBlockを用いることにしました。

f:id:ymtkds:20181123154937p:plainf:id:ymtkds:20181127122411p:plain:w250

 ArduBlock 日本語でArduinoをブロックプログラミングという記事を参考にして環境構築(圧縮ファイルをダウンロードするだけ)を行いました。上のようにブロックを組み合わせるだけで簡単にif文やwhile文が作れます。すんごい。ArduBlockの操作が楽だったおかげで、上のような右手法のアルゴリズムもパラメータ調整は糞面倒でしたが何とかそれっぽい形に実装できました。  

直前準備

 子供を10人ずつまとめて教えるという風に決め自分の首を絞めていたので車が10台必要でしたが、友人の協力もあって4月末までに何とか10台完成させることができました。5月になってからは当日用のスライドや、シフト用のマニュアル、宣伝用のパネル作成、当日使用する迷路の作成(ティッシュ箱を連結させただけw)などの作業に追われました。また、学科PCを借りるために先生や学生と連絡を取ったり、シフトに入ってくれる学生を集めて当日の説明をしたりと、色々な人とコミュニケーションを取る必要がありました。コミュ障にはつらい仕事だった。

五月祭当日

 当日のお話、感想については後日改めて書きます。

反省

 コミュニケーションを取ってもっと多くの人に企画に参加してもらうべきでした。人数不足が根本的な課題として残っていたのに最後の最後までずっと放置して、ぜーんぶ一人で抱え込もうとしてたんですね。それでも、何もしていない僕を見るに見兼ねたのか直前期になると色んな人が手伝ってくれました。仲間ってほんと大事。ありがとうございました。