iPadとArduino Unoを接続する(2)
前回に引き続き、iPadとArduino 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として認識されるはず!