BAD_ACCESS

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

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

前回に引き続き、iPadArduino Unoの接続。前回はdfu-programmerのインストールの部分まで書いた。iPadとArduino Unoを接続する(1) - BAD_ACCESS

dfu-programmerを使ってMega8U2を書き換え

まず前回のおさらいも兼ねてArduinoの通常モードとDFUモード、これから行うUSBKeyboardへの変換について整理する。(さらにDFUモードから通常モードに戻る方法も確認しておこう)


書き換えを行うための設定ファイル(Hexファイル)を揃えよう。

USBシリアル変換用のファームウェア(コレがないとArduinoの通常モードに戻せない)

こちらから取得可能。Arduino/hardware/arduino/firmwares at master · arduino/Arduino · GitHub
ダウンロードが完了したら/hardware/arduino/firmwares/arduino-usbserial のフォルダを所定の場所に保存。
Arduinoの公式サイトArduino - DFUProgramming8U2によると下記の場所に保管せよとのこと。


同様にUSBキーボードへと変換する用の設定ファイル(Hexファイル)も取得する。

Arduino UNO Keyboard HID ファームウェア

こちらから取得可能。Arduino-keyboard-0.3.hexというファイルをダウンロード。
Arduino UNO Keyboard HID version 0.3
ダウンロードが完了したら先ほどと同じフォルダに放り込んでおけばOK。(本当はHexファイルの置き場を作ったほうがいいかも)

dfu-programmerを実行

まず、先程保管したHexファイルの保管場所までディレクトリを移動。これ忘れないように。
おそらくこんな感じ。

$ cd /Applications/Arduino.app/Contents/arduino-usbserial 

続いて

$ sudo dfu-programmer at90usb82 erase

続いてUSBキーボードとして認識してもらうための設定ファイルを読み込ませる。

$ sudo dfu-programmer at90usb82 flash Arduino-keyboard-0.3.hex

最後に忘れずに

$ sudo dfu-programmer at90usb82 reset

完了したら、USBケーブルを抜き、数秒待って挿し直すとMacにUSBキーボードとして認識されるはず!
(これを自分のiPadにつなぐと、ワイヤレスキーボードと同じ振る舞いとなる。これは次回)

Arduinoの通常モードに戻す

USBキーボードとして認識されたはいいが、このままではArduino側にプログラムを送りこむことができない!このままではまずいのでArduinoの通常モードに戻す方法を。

まず、DFUモードにする。
そしてディレクトリを移動(USBシリアル変換用のファームウェアを保存した場所へ)

$ cd /Applications/Arduino.app/Contents/arduino-usbserial 

続いて

$ sudo dfu-programmer at90usb82 erase

USBシリアル変換(Arduinoの通常モードへ戻す)用のファームウェア

$ sudo dfu-programmer at90usb82 flash Arduino-usbserial-uno.hex

最後に忘れずに

$ sudo dfu-programmer at90usb82 reset

例のごとくUSBケーブルの抜き差しを行うと、通常のArduinoとして認識されるはず!

次回はUSBキーボードとして認識されたArduinoからiPadへの通信部分について実装予定。