Electronics

2014.02.25

初めてのArduinoプロジェクト:学ぶということを学んだ

Text by kanai

これは、私同様、Maker初心者で、Arduinoを使って何かを作りたいと考えているみなさんのための記事だ。少し大変そうだと感じるかも知れない。自分には習得は無理だと思うかもしれない。マイクロコントローラーとプログラミングとデザイン(設計)の世界はほとんど知らないという人は、私だけではないはずだ。ルーキーである私は、手を付けるまで怖かった。私が言いたいのはそこだ。これを読まれている間、私が物理的な装置を作った経験がほどんどない人間であることを忘れないでいただきたい。そんな私が実行した。その理由を説明しよう。

IMG_20131201_125107_detail

私は、ティーンエイジャーになる前から、新品のVIC-20でBASICで“プログラミング”をしていた、長年にわたるコンピューターとテクノロジーのギークだ。しかし、“ボンネットの中”のものは、ほとんどいじったことがなかった。その気がなかったからではない。新しいことに挑戦する自信(このごろでは時間)がなかったからだ。これまでたくさんの本を読み、インターネットをサーフィンし、ビデオを見て、技術教育分野の知識は、私の小さなライブラリーを埋めるほどになっている。コンピューターの歴史から、ネットワーク、Linux、あらゆる言語でのプログラミング、ロボットの製作、最近では電子と電気の理論も本で読んで知識を得た。しかし、それほど豊富な情報を持ってはいるものの、理論は理論に過ぎない。好きな本を読んで得た知識を実際に試そうとは思わなかった。コンセプトは十分に理解しているのに、それを実践に移したり、何かに応用することがなかったので、私は何も学んでいなかった。

Arduinoを始める

2年前、私はたまたまWired誌に載っていたRadioShackの広告に目が留まった。Arduino Duemilanoveを宣伝するもので、パーツリスト、コード、ステップ・バイ・ステップの解説付きの初心者向けプロジェクトも紹介されていた。まさに、コンピューター、プログラミング、電子回路、技術がひとつの小さなパッケージに収まったDIYセットだ。

私はインターネットで検索を開始し、eBayでDuemilanoveのキットと適当な電子部品を注文した。私は長年パイロットをしていたが、生活費は高くなるし遊びに使える収入も減っているので、生活を変えなければならない。これなら趣味として楽しめるに違いないと、私は飛びついたのだ。

その後2年間、私は本を読んで勉強した。安いパーツも集めた。PIRセンサー、3軸ジャイロ、シフトレジスター、7セグメントLED、いろいろなIC、555タイマー、リファレンスシート、液晶ディスプレイ、抵抗、大量のコンデンサーなど、必要と言われたもの、言われてないもの、すべてを揃えて積み上げた。どの部品も理論的には理解しているので、きれいに分類しておいた。ハイテクなハンダごてと、高級なマルチメーターも買った。ちょっとした作業スペースも作り、そして……何もしなかった。

パーツは置かれたままだ。本で読んだサンプルのプロジェクトはブレッドボードで作るものだったので、誰か他の人が考えたプロジェクトで遊んだあとは、パーツをバラして片付けた。

それでも学ぶことは好きだから、新しいものに挑戦するのは楽しかった。しかし、最後には理論しか残らない。何か問題にぶち当たったとき、何かを知りたいと思ったときは、フォーラムを読んだりYouTubeを見たり、Google+のプロジェクトを見たりする。熱中はするのだが、残るのは頭の中のものだ。3色LEDのための関数やループをもっと効率的にする方法などのアイデアは浮かぶのだが、実際に作ったことはない。

いろいろなプロジェクトを見ると、基礎レベルでも難しすぎるように感じられた。何が書いてあるのかさっぱりわからない。しかしいつだって、勉強すればわかるようになった。そのプロジェクトがどれだけクールなものかは簡単に読み取れても、実際に作ってみなければ満足度は得られない。そこで私は気がついた。私の問題は、頭が悪いことではなく、自信がないことだと。「これを作っても動かなかったらどうしよう」「初歩的な質問をしてバカに思われないだろうか」「役に立たないくだらないプロジェクトを作っても、どうしよう」

その問題に気がついた私は、なんでもいいからとにかく飛び込むことを決意した。

IMG_20131119_005524

私はDrawdioと出会った。鉛筆の黒鉛を利用して、紙に何かを描くいろいろな音がするという、楽しい555タイマーを使ったプロジェクトだ。私はインターネットで作り方を読み、ビデオも見た。数時間、ハンダごてと格闘してた結果、ジャーン、動いた! 私のブレッドボード以外の初めての電子プロジェクトだ。すごくいい。子どもたちも気に入ってくれた(私には2人の子どもがいる)。それよりも大切だったのは、それが動いたことで、永遠の初心者であった私に欠けていた自信がついたことだ。

これは、私の最初のころの97パーセントオリジナルの作品「The MO-MARS 4000」です。

IMG_20131130_222020

私は、何かオリジナルで、ちょっとふざけたものを作りたかった。何かの役に立つものではなく、作ることで多くのことが学べて、チャレンジングなものが作りたかった。そのために、手持ちのパーツをかき集め、それで何が作れるかを考えた。

それで何ができかたって? マルチモード・メカニカル・Arduino制御の輪ゴム飛ばし機だ。私はこれを、Minion Operated – Motorized Arduino Rubberband Shooter(MO-MARS)4000と呼んでいる。

インターネットで見たサーボモーターを使って動いたり発射したりできる輪ゴム銃を参考にした。そのアイデアを大変に気に入ったのだが、私はあえて作り方の解説は読まずに、自分のプロジェクトとして、自分でデザインすることにした。PIRセンサー、ボタン、スイッチ、可変抵抗、LED、ホットグルーガン、リード線、プロトボード、アイスキャンディーの棒、ハッピーセットでもらったミニオンの人形を集めて、さあ、ゲームの始まりだ。

最大のハードルは「どこから始めるか」だった。まずはアイデアをスケッチしてみることにした。

MO-MARS 4000

最初は、平らな板にサーボを取り付けて輪ゴムを飛ばすことを考えていたが、発射台を回転できたり角度を変えられたりするようにしたくなった。私は画材店へ行き、軽量な板の端材を袋いっぱい買ってきた。安い塗料も買った。塗料を見ている間に、メタリックで“警告模様”の入った感じにしたいという気持ちになった。きっちりと計画を立てないまま、私は離陸した。木工用ツールにはあまり興味がなかったので、工具はカッターとネジ回しとドレメルに限定される。

いくつかのモードに切り替えられるのもいいなと考えた。そのとき、盛り込みたい機能を書き出す必要性を感じ、簡単なフローチャートと、じつに素人くさいラフな回路図を描いた。

IMG_20131203_231944

これが手がかりだ。IEEE規格に準拠する必要なんてない。100パーセント正しくなくてもいい。そのとき修正すればいいのだ。作りながら学ぶのだ。

手持ちのパーツのなかに三極のトグルスイッチがあった。それを何に使うかって? マニュアル、ランダム、PIRセンサーの3つのモードに切り替えられたら面白くないか。私はその他のパーツを見て、配線を考え、Sketch(Arduinoのプログラム)を記述し、試してみた。プログラミングの完璧なチャレンジだ!

さらに、LEDのないプロジェクトなんてつまらない。私はRGB LEDを持っていた。このプロジェクトにはどうしても必要というものではないのだが、できるだけたくさんプログラムに挑戦したかった。そこで私は、RGB LEDのための機能を加えることにした。それが最高なのだ。サーボが動いている間はLEDを点滅させようと思った。サーボがランダムな方向を選び、ゆっくりと回転するようにもしようと考えた。

MO-MARS 4000

MO-MARS 4000

私のプログラム(約400ライン)には複雑な部分はひとつもないのだが、ところどころで非効率な部分があった。しかし、先に学んだことをあれこれ分析するのを止めて、まず作ってみることで、それがわかったのだ。それでいいのだ。まず作ることだ!

結果として、私は欲しかったものを手に入れることができた。機能満載のプロジェクトとデザインへの挑戦だ。それまで自分には無理だと思っていた方法でプログラムが書けるようになった。マスターハッカーになった気分だ。ハンダ付けも、やるたびに上手になった。プルアップ抵抗とプルダウン抵抗の大切さと、実装の簡単さも知った。スイッチの抵抗の跳ね返りについても経験した。すべて、それまでは単なる理論だった。パーツ作りにドレメルを服従させられるようにもなった。18カ月前に買ったホットグルーガンにも初めて火を入れた。アイスキャンディーの棒が工作にとても便利であることも発見した。多くのDIY愛好家にとって、これらは当たり前のことなのであろうが、このプロジェクトを始める前まで、私にとってはただ知識であり、一度も試したことがなかったのだ。

この記事が、何かを作りたいが今までためらってきた人たちの刺激になればと願う。たしかに、これはただの輪ゴム飛ばし機だが、私にとってこれは、目的地のない旅だったのだ。[編注:とは言うものの、その目的地はじつにクールなものだった。下のビデオで MO-MARS 4000 が動いているところが見られます(日本語版編注:日本語版サイトでは埋め込みがうまく行かなかったので、動画は原文にてご覧ください)]

MO-MARS 4000

MO-MARS 4000

MO-MARS 4000

MO-MARS 4000

MO-MARS 4000

MO-MARS 4000

MO-MARS 4000 launch!

– Gary Rudd

原文