Arduinoのセットアップ
題して、「ながてぃ~の。でごにょごにょしてみる(1)」!!……別名「わっちと始めるエレクトロニクス」……うーむ、どっちも微妙だ。困った。
てなわけでこんな記事を書きたいがためにコメント投稿機能を復活させたわけで、私自身も勉強しながらブログにアウトプットできればいいなぁと思ってる。あとはソースコードをいい感じに表示する仕組みが欲しいね、うん。そのうち追加しよう。
わっち(以下「わ」)「どうぞ、よろしくの!」
今回使う予定のもの
- ながてぃ~の。(Arduino互換機)
昨年組み立てたまま放置してたやつ。 - Acer ICONIA TAB A500(Androidタブレット)
つまりはUSBホスト機能付きのAndroid端末。こいつとArduino を通信させる予定。 - RC-S620/S(FeliCa リーダ/ライタ)
組み込み用途向けのFeliCa リーダ/ライタ。Arduino に接続して使う予定。
目標・期限
最終的にはAndroid + Arduino + RC-S620/Sでカードエミュレーションしたい。んで、その様子を動画にして、ニコ動に上げる。期限の目安としては夏までにできると面白いかもね(夏コミや8月にやる予定のNFC勉強会に間に合うとなおよし)。
RC-S620/Sを使ったカードエミュレーションはNFC猛者さんが既にやられているし、Arduino + A500はJuJuさんがやられてる。できないことはないはず。
猛者さんの方でPaSoRiのAndroid用ドライバを作られてるみたいだから、あるいはArduinoかませるというまどろっこしいことはせんでもいいのかもしれんけど、そこはひとまず置いとこう。
まあ、ながてぃ~の。を使った方が、見た目に華やかだしね。あわよくば電子工作の勉強になるかもしれないし。
Arduinoのセットアップ
わ「まずはWindows PCでの開発環境を整えるのじゃ!開発ソフトはArduinoのサイトからダウンロードできんす。Arduinoとの接続にはプリンタとかとUSB接続するときなどに使われているUSB Aオス-USB Bオスのケーブルは家電量販店に売っておる。ところによっては100円均一なんかでも買えるようじゃの。」
この辺りは感覚的にできた。なぜか手持ちのノートには日本語化された環境が入っていた。きっと以前もArduino使おうとしたことがあって、ダウンロードしたのだろう。Arduino IDEのバージョンは1.0。このバージョン番号が後にちょっとしたトラブルにつながったのだが、それはまた別の話。
わ「ダウンロードした圧縮ファイルを解凍したらまずは起動してみるのじゃ。こんな画面が出てくるはずじゃ」
わ「ここでながてぃ~の。とPCを接続してみんす。わっちらの場合は、特にドライバエラーが出ることなくすんなり認識してくれたのじゃが。はて、過去に接続したことがあったかの?」
ひとまず動かしてみぬことには話にならないということで、サンプルのBlinkプログラムを転送しようとするもののなぜかエラーが出て上手くいかない。萎える。
エラーメッセージをそのまま検索すると、リセットしろだの、しばらく放置してみろだの出てくるんだけど、どれを試しても解決には至らず。はじめに陥りやすいポートの設定(デバイスマネージャUSB Serial Portの番号、COM Xを確認し、Arduino IDEの「Tools」→「Serial Port」で設定する作業)はちゃんとできているのに。
わ「こういう時はどこに原因があるのかいろいろ変えて試してみるものじゃ。障害の切り分けというやつじゃの。写真は今出回っている一般的なモデル、Arduino UNO R3じゃ。千代県庁口のマルツで2,500円程度で手に入れんす。」
こいつをながてぃ~の。の代わりにPCに接続してみたところ、なぜか今度はうまく認識してくれない。認識できていないデバイスを右クリック→ドライバの更新で<Arduinoルートフォルダ>以下の「drivers」フォルダを探索させたら解決。これくらいは朝飯前。
それでシリアルポートをデバイスマネージャで確認した上で、ながてぃ~の。のとき同様にサンプルプログラム「Blink」(「File」→「Examples」→「1.Basics」→「Blink」)をコンパイル・転送してみると、今度はあっさり通る。挙動を見ても、ちゃんと動いてるぽかった。なぜだ。
わ「この問題は結局、「Tools」→「Board」を「Arduino Duemilanove w/ ATmega328」に変更したら解決したわけじゃが。……たわけが、ちゃんと確認しないからじゃ。」
でも、Arduinoが思った以上におしゃれなことに気付けて良かったよ!裏面とか、いい感じで流石イタリア製。しかも3,000円もしないでこんなに素敵なボードを買えるということも分かったし!うん、これは決して無駄な出費じゃないよ!
わ「……たわけが」
Arduino サンプルプログラム「Blink」
これ、ソースコードの中に「digitalWrite(13, HIGH);」なんて、Digitalの13番ポートに電圧をかけているっぽい記述があるんだけど、なんか直感的にわかりづらい。
ここで登場するのが高校2年のころに演習で組み立てたマルチテスター。12V Maxの直流電圧モードにして、-端子にGNDを、+端子にDigitalの13番ポートをつないでみると……
おお、DC 5Vがちゃんとかかってるっぽい。いいね。