こどもとIT

現場の技術者による本気のSTEM、ハンダとC言語でドローンプログラミング

――ハチラボ夏休み特別ワークショップ「ITテクノロジーの仕組みを学ぼう」レポート

2019年7月21日に東京都渋谷区の「こども科学センター・ハチラボ」にて「ITテクノロジーの仕組みを学ぼう」と題して、小学5年生と6年生を対象に、ハンダとドローン組み立てキット、C言語を使ったワークショップが開催された。

ハンダごてを使ってドローンを組み立てるだけではなく、完成したドローンにC言語で作成したプログラムを転送、プログラムによってドローンの挙動がどのように変わるのかを学べるというもの。IoTの基本的なエッセンスが盛り込まれた非常に歯ごたえがあるもので、当日は12組24名の親子が参加した。

ワークショップの講師を務めた株式会社ウルトラエックス 村上千佳氏は、普段はプログラマーとして、スマホやパソコンをターゲットにしたプログラミングをする現役の技術者だ
アントレキッズカレッジで子どもたちにプログラミングを教える講師をしているという、ワークショップをサポートする3名のスタッフ
今回のドローン作成も経験済みという、参加する子どもたちと同世代の村上氏の息子さんもアシスタントとしてフォローする

ワークショップで使うドローン制作キットのベースは、もともとは企業の新人研修などに利用できるよう、大人向けに作られたものだ。村上氏によると、ハンダ付けに慣れた人でも完成させるには8時間程度はかかるとのことだった。今回のワークショップでは、ハンダ付けが初めてでも4時間くらいで完成できるように、あらかじめ大部分のパーツを組み上げた状態で提供されている。トランジスタや抵抗など数点のパーツのハンダ付け、モーターやマイコンボードへの結線のみで完成できるとのことだった。

今回使われたドローン工作キットは、ハンダ付け初心者でも完成できるように重要なパーツはあらかじめ取り付けされている

作業を始める前に、安全上の注意点が説明された。ひとつはハンダ付けに関して。ハンダごてや溶けたハンダは非常に高温なため、さわらないようにすること。もうひとつはドローンそのものについて。ドローンのプロペラは非常に高速に回転するため、プロペラに触れるとケガをしてしまうことや、回転中のプロペラが外れてしまうと大けがにつながるため、プロペラをのぞき込まないようにすることなどが注意された。

まずは、キットを使ったドローンの組み立てをはじめる前に、ユニバーサル基板とジャンパー線を使ってハンダ付けの練習から始まった。ほとんどの子どもたちが慣れない手つきで練習を始める。その練習が終わったら、実際のドローンの組み立てである。

ハンダ付けの経験がない子どもたちばかりなので、はじめはおそるおそるという感じでハンダごてを手にしていた

ドローンの組み立ては、村上氏がハンダ付けをするパーツの位置と、どのようにハンダ付けをするのかを説明し、子どもたちが実践、そして、すべての子どもたちの作業内容を村上氏がチェックするというように、ステップバイステップで進められた。1つの作業が終わったら確認するという手順は、その都度、配線が間違っていないか、接触不良になっていないかを防止することができる。時間はかかるが「完成したけど動かない。でも、原因がわからない」といったことがなるべく起きないように配慮されていた。

ドローンのパーツをハンダ付けするが、イモハンダ(ハンダ付け不良)になってしまうことも

ドローンの組み立てでは、ユニバーサル基板へのトランジスタや抵抗といった部品のハンダ付け、ジャンパー線のハンダ付け、基板からマイコンボードやモーターへのリード線のハンダ付け、熱収縮チューブを使った配線の処理など、ハンダ付けを使った電子工作の基本がもれなく学べるようになっていた。最初はハンダごてやハンダ付けに戸惑っていた子どもたちも、ドローンの完成が近づくにつれ、ハンダ付けの技術がどんどん向上していく。

ハーツのハンダ付けが終わるごとに村上氏にチェックしてもらう子どもたち
ハンダづけの不良を、ハンダ吸取り器でハンダを取り除き、再度きれいにハンダ付けし直す村上氏
親子で作業内容を確認しながら、ドローンのモーター、マイコンボードを接続していくとドローンが完成する

電子工作の脱落者もなく、全員のドローンが完成した。ドローンのモーターが回転することを確認してから、村上氏がドローンはなぜ飛ぶのかの説明を始める。ドローン全体がくるくる回ってしまわないようにはドローンのモーターを個別に制御しなければならないこと、ドローンが前進、後退する仕組み、ドローンがその場で水平方向に回転する仕組みなどを解説し、子どもたちは興味深そうに聞いていた。

ドローン(マルチコプター)はモーターを互い違いに回転させ、反作用で全体にかかる回転の力を打ち消すことで、安定した飛行が可能になる
後部モーターの回転速度を下げ、前部モーターの回転速度を上げると、ドローンは前進し、右側のモーターの回転速度を上げ、左側のモーターの回転速度を下げると、ドローンは左側に移動する

ドローンの仕組みの解説が終わったら、いよいよパソコンと接続してドローンをプログラムで制御する。このワークショップでは、制御ボードにはArduinoを、プログラミング言語にC言語を採用。あらかじめ動作するプログラムを改造する手法で、モーターの回転数を変更するといった、C言語によるドローンの制御プログラミング体験ができるようになっている。

村上氏は、C言語は大人にならないと使わない言語で、Scratchなどの学習用の言語ではないこと、プロが利用している言語であると紹介。「皆さんは年齢を10年くらいワープしてC言語を体験してもらいたい」と語った。C言語の特徴については、難しい言語だが、いまでも人気が衰えないことや高速な実行ができること、C言語を覚えておけば、大人になってもプログラマーになるのが難しくないことなどを説明した。

C言語は、やや難しいが高速に実行できることや、比較的ハードウェア寄りの言語であることなどを説明

さらに、今回のドローンにあらかじめ組み込まれているプログラムの内容についても解説した。繰り返し呼ばれる関数の内部でモーターを制御すると、ドローンのコントロールができることや、変数の値を変えるとドローンの動きを変えられることなど、改造のヒントを披露してくれた。

説明が終わると、子どもたちにパソコンが配られ、子どもたちはそれぞれ、自分が作ったドローンとパソコンをUSBで接続、パソコンで作成したプログラムを改造してドローンに組み込んでいた。なお、今回制作したドローンキットは安全性の観点から飛ばないようになっているが、プロペラを付け替えると飛ぶようになるそうだ。

ドローンを制御するプログラムはC言語で書かれており、Arduino IDEで編集したプログラムを、USB経由でドローンに転送する

子どもたちは、そのままのプログラムを動かしたり、プログラムを変更してドローンに転送して動作させたりと、自分なりにいろいろなことを試していたようだ。何台ものドローンのモーターが一斉に動き出すと、教室内に「キーン」と甲高いモーター音が鳴り響く。

途中、子どもから「どうやってモーターの回転数を変えているの?」といった質問が出た。デジタル回路におけるモーター制御の核心を突く、素晴らしい質問である。

それに対し、村上氏は「ドローンのモーターは電圧で回転数を制御しているのではなく、リズムで制御している」と答える。ドローンに搭載しているモーターはずっと回転し続けているのではなく、非常に高速な間隔でオンとオフを繰り返すようにプログラムで制御している。普段は“オン→オフ→オン→オフ→オン→オフ”と高速で切り替わっているが、これを“オン→オフ→オフ→オン→オフ→オフ”のように、オフになる頻度をプログラムで増やすことで、モーターの回転数を下げることができる。逆に、オンになる回数を増やすと回転数を上げることができる。この方法はPWM(Pulse Width Modulation)と呼ばれ、ドローンに限らずモーターなどの制御によく使われる方法だ。

プログラムを改造して、変数の値を変えてモーターの回転数が変わることを調べていた

子どもたちがプログラムを思い思いに改造したり、モーターを回したりするのに夢中になっているうちに、あっという間に終了の時間となった。ワークショップの最後には、参加した子どもたちがそれぞれ感想を発表する。「コードをモーターにつなげるのが難しかった」、「プログラムが思い通りに動かなかったので、プログラミングが難しかった」、「ハンダ付けが難しかった」、「ハンダづけがきれいにできたときは嬉しかった」、「動いてよかった」など、どちらかというと電子工作寄りの感想が多いのが印象的だった。

ワークショップの感想を語る子どもたち

さらに、村上氏はワークショップで使ったキットの応用例を紹介。スマホで操作できるドローン、四輪駆動バギーなど、キットをベースにしてさまざまな工作ができることを強調してワークショップは終了した。

村上氏から「ドローン工作終了証」が子どもたちに渡された

世の中がハードからソフトへ、そしてプログラミング教育にシフトしていくなか、子どもたちが電子工作をする機会が少なくなってきており、こういったドローン制作ワークショップは非常に良い試みだと感じた。なにより、自分で作ったものが物理的に動くというのは、何事にも代えられない成功体験になるだろう。正直なところ、ほとんどの子どもたちがハンダ付け未経験だったことに少しショックを受けたのだが、それ以上に開始1時間くらいで全員が器用にハンダ付けをこなしている姿には驚かされた。

もちろん、初心者向けのプログラミング言語にC言語を使うという点で賛否両論あるだろう。しかし、筆者はプログラミング言語自体に得手や不得手はあるが、優劣はないと思っている。たとえどんな言語やプラットフォームを使おうと、子どもたちが目的や課題(今回はそれがドローン作りやその仕組み)に興味を持てることが重要であって、それ自体が素晴らしいことだ。そのハードルさえ超えてしまえば、プログラミング言語が何であるかはもはや関係がなくなる。言語は目的ではなく、興味のあることを実現するための手段なのだから。参加した子どもたちには、今回のワークショップで得た経験をきっかけに、さらなる高みを目指してほしい。

広野忠敏

プログラマ、テクニカルライター。デジタルガジェット、プログラミング、IT全般のテクノロジーに詳しい。主な著書は「できる パソコンで楽しむマインクラフト プログラミング入門 Microsoft MakeCode for Minecraft対応」、「できるWindows 10 パーフェクトブック 困った! &便利ワザ大全」、「できるAccess 2016 Windows 10/8.1/7対応」(インプレス刊)など多数。