7/31(日) のDEMOsa に向けて、Arduino - iPad 連携のサンプルを作ってみました。
Arduino に温度センサー(LM35D) を接続し、iPad 上に温度を表示します。
回路はかなり手抜きですが、温度センサーLM35D に電源を接続し、出力をArduino のAnalog input で直接読んでいます。
Arduino プログラムも手抜きです、、、平均などとらずに、1秒に1回計測・転送を行います。
(電圧 <> 温度の変換式は、センサー出力が +10mV/℃、10bit AD変換 のリファレンスに内部 1.1V を使用したので、Temperature = sensorValue *1.1/1024.0 *100.0 (℃) としています。)
転送部分が今回のキモですが、仕組みは HID (キーボード) エミュレーションです。iPad Camera Connection Kit を使って接続します。この記事で紹介している USB キーボードのファームウェア(Arduino-keyboard-0.3.hex) を、Arduino Uno の atmega8u2 に書き込んでいます。
メインのatmega328p のプログラムでは、まず温度の読み取りを行い、温度が+31.5℃なら、[+][3][1][.][5][Return] というキーを押すコードを送っています。
今回は iPad 側のプログラムも作成しましたが、内容は非常に簡単です。
一番上のテキストフィールドにキーボードで値を入力し、リターンが入力されると、そのテキストフィールドの値を大きく表示します。
UITextFieldの Delegateメソッド
- (BOOL) textFieldShouldReturn:(UITextField *)textField;
を実装するだけです。