じゃがいもログ

脊髄性筋萎縮症(SMA)1型の息子と生活中

iPad/iPhoneでUSB接続スイッチインターフェース

iPadにスイッチをつなげるときは、自作したBluetooth接続のインターフェースを普段使っていますが、接続先のiPad/iPhoneを変えたい時にペアリングがいちいち必要になることと、インターフェース本体にバッテリーが必要になることが面倒くさいなーと思っていました。

そこで、こちらの記事で紹介していたUSB接続のスイッチインターフェースをiPad(およびiPhone)で使えないか試行錯誤してみました。

jagaimolog.hatenablog.jp

まず必要になるのは、Apple Lightning USBカメラアダプタです。これを使って下の画像のようにiDevice(写真だとiPhone)とUSB接続スイッチインターフェスをつなげます。でも、これだけだと、「This accessory requires too much power」とエラーがメッセージが出て使えません。

いろいろ調べてみたところ、こちらのページに行き当たりました。ArduinoはUSB接続時に、接続先のコンピュータに「私は500mA使いますよ」と宣言しているらしく、それでiPad/iPhone側で「そんなに電力を供給できません」と判断してしまっているようです。でも実際にはそんなに電力は使わないので、Arduinoのコアライブラリにあるヘッダファイルを一箇所いじればいいことがわかりました。

USBCore.hの中に、USB_CONFIG_POWER_MA(500) という部分があるので、これをUSB_CONFIG_POWER_MA(100)に変更します。

USBCore.hは、私の環境(Mac)ですと、$HOME/Library/Arduino15/packages/arduino/hardware/avr/1.6.19/cores/arduino にありました。1.6.19の部分は、使っているArduinoライブラリのバージョンによって変わってくると思います。