BAD_ACCESS

おもにiOS、ときどき変な電子工作、ガジェット話。

iPadとArduino Unoを接続する(1)

今週注文していた部品が色々届いた!
今月にiOSとArduinoをくっつけて何かつくるという目標に向けて部品だけは揃いつつある。
やりたいのはこんな感じ。正規品としてのiPadアクセサリーは「Made for iPad」の称号(?)を取らないといけないみたいなので、なんとか方法を見つけてみた。

Arduino UnoをHID化

HIDとはHuman Device Interfaceの略で要するにマウスやキーボードみたいな機器のこと。
Arduinoは普通につなぐとそれはただのArduinoとしてしか認識されないのでこれをUSBKeyboardとして認識してもらうようにする。

Arduino UnoのUSB処理用チップ Mega8U2

はやる気持ちを抑えつつ、どうやって HID化していくのかの覚書きを書いておく。
HID化するためにはArduinoのメインボードのプログラムを書き換えるだけではダメみたい。
USB処理を司っているチップのファームウェアを書き換える必要がある。
※ここまで見ると「えーめんどくせぇ」となるかもしれないけど、1回やれば理解できる(はず)
手順はこの記事を参考にした。(今回は覚書きだから細かい部分まで書いておく)
古いArduino Unoのバージョン TETRASTYLE-dev-BLOG: Arduino Uno DFU プログラミング
新しい(R2)バージョンTETRASTYLE-dev-BLOG: Arduino Uno R2

Mega8U2のファームウェア書き換え

Mega8U2のファームウェア書き換えをするためにはArduinoをDFUモードにする必要がある。
DFUとはDevice Firmware Upgradeの略で、実はArduinoにはデバイスのファームウェア書き換えのためのモードが用意されている。

DFUモードへの切り替え

参考にした記事には、

ICSP の5番、6番 (USB コネクタ寄りの2つ) をそのままショートすれば、DFU モードに入ります。

と書いてありますが、私にはさっぱり何のことかわかりませんでした。色々調べると、
Arduino UnoのR2バージョンからMega8u2用の ICSP 端子が標準で付いている。
・ショートさせる=端子同士をくっつける(という解釈で良さそう)
ことが分かった。ので下記の写真の通りに端子部分をブリッジさせてあげる。(ブリッジさせるのはピンソケットの足をはんだ付けしてやっただけ)

ブリッジ付ける前(「このMacについてー>詳しい情報...ー>USB」を見て)

ブリッジを外した後。(外すとモードが切り替わるみたい)

これでDFUモードに入れた!

dfu-programmerをインストール

DFUモードに入れたら次にdfu-programmerをインストールする必要があります。
dfu-programmerとは何かというと、DFUモードに入ったデバイスに対してファームウェアをインストールさせるプログラムです。
これを使ってファームウェアの書き換えを行うことになります。
インストール手順は、(MacPortsもしくはHomeBrewがない方はどちらか必要になります)
MacPortsの場合

sudo port install dfu-programmer

HomeBrewの場合

brew install dfu-programmer

うまくいけばインストール完了です!

iPadとArduino Unoを接続する(2)につづく