carcon999のブログ

12年間Y!ブログの記載を移行しました。電子工作関連の記事が多いです。

iPod Touchで無線シリアル通信

先駆者のおかげで、iPod Touch, iPhoneで、シリアル通信がDockコネクタを通してできることがわかっています。私も先駆者の方とどうように、このデバイスiPod Touch, iPhone)で、外部機器を制御するようなソフトを作れれば、いろいろ楽しめる機器が作れると思っています。

とりあえず、シリアル通信をiPod Touchで試してみたいので、以下のような構成で試してみました。

イメージ 1

PCと、iPod Touchの間は、無線のXBeeを利用します。幸い、iPod Touchからは、XBeeを利用するのに適した3.3VがDockコネクタから取り出すことができます。別にXBeeを利用して無線化しなくても良いですが、先駆者の方々と同じことを行っても面白くないので試しました。

■前提条件
先駆者のおかげで、以下のことが分かっています。調べた内容をまとめてみました。

★Dockのコネクタからは、シリアル通信のTx,RxラインがTTLレベルで出力されています。
更に、3.3Vの電源もそこから取り出して利用することができる。
appleが提供する、開発用のSDKでは、シリアルを制御するプログラムは開発できない(みたい)。
★シリアル通信を行うためには、iPod Touchを脱獄する必要がある。

■さて、じゃあ具体的にどうするか?
1.脱獄する。
2.XBeeをつなげられるようなDockコネクタを作成する。
3.テストする。

脱獄については、ネット上にたくさんの情報があるので、他に譲ります。
本題は、Dockコネクタの作成です。

■Dockコネクタの作成
まず、Dockコネクタからシリアルの通信ラインを取り出す必要があります。取り出すための格安の基板が、aitendoさんで、『iPodドックPCB』として販売されています。(記載時点では、300円!また、宣伝みたいだな。)

下記の写真のように、2.54ピッチのシングルピンヘッダーを8本立てます。本来は、MAX232を取り付ける場所ですが、いい感じでここから、Tx,Rx,GND,3.3Vが取り出せるのでピンを立てます。(これらの4線は、XBeeを取り付けるのに必須のラインです。)
30pinは、2mmピッチで左側からフルで取り出せるのですが、2mmピッチは使いにくいので・・・

イメージ 2

左側を1番とすると、8本のピンの3,4、7,8番を利用します。順番に、3:Rx、4:Tx, 7:GND, 8:3.3vです。回路図にするまでも無いですが、XBeeと以下のようにこれを接続します。

イメージ 3

私の場合は、スイッチサイエンスさんで購入したXBeeのピッチ変換基板を利用し、ジャンパーケーブルで仮接続しているので、プラプラしています。(まあ、仮なので・・・)

イメージ 5

■それではテストします。
1.まず、利用する2台のXBeeは、X-CTUツールで、通信速度を9600bpsで書き込みしておきます。
理由は、iPod Touchのシリアル通信速度がデフォルトで、9600bpsだからです。(多分)

2.PC側はハイパーターミナル(OS標準)を利用することにします。通信速度をこちらも9600bpsで設定しておきます。PC側のXBeeは、XBeeエクスプローラや、ここの記事を参考にしてください。

3.iPod TouchのTerminalを起動します。脱獄したときに、パスワードを変更するときに利用しているはずです。まずは、受信から確認します。以下を打ち込みます。(結構大変だったりする。)
Noviさんのブログを参考にさせていただきました。(感謝)

★PCから、iPod Touchへの送信確認
cat /dev/tty.iap
上記を、iPod Touchのターミナル上で打ち込みます。

ハイパーターミナルで、キーを打ち込むと、iPod TouchのTerminal上に文字が現れます。

iPod Touchから、PCへの送信確認
cat > /dev/tty.iap
上記を、iPod Touchのターミナル上で打ち込みます。

iPod TouchのTerminal上で、キーを打ち込んでreturnキーを押下すると、それまでに打ち込んだデータが、ハイパーターミナル上に現れます。

イメージ 4
写真だけ掲載しても動きが無いので、分かりにくいですね。時間があれば、動画にしよう。