iPhoneのシリアルインターフェイス
とあることでフィジカルコンピューティングのArduinoを触る。
今まではGCC(WinAVR)で組んでいたがライブラリやシールドがあるので、あまり余計なことは勉強しなくても買ってきてつければOKという感じ。
プロトタイプなら手早くできてお手軽に思った。
ただ仮に出来たとして、「どうやってデモするか?」がある。
勿論、Arduinoに液晶を積んだりスイッチをつけるのもいいが、これがまたそれなりに¥がかかるし、Pinを占有する。
手っ取り早いのはPCに変わるシリアル端末でGUIを自分で書けるものがいい。
「PCがあれば」デモは問題ないのだが、どう考えても「それならPCでやらせれば?」と突っ込まれると反論できそうにない。そのほうが多分格段複雑なことができる。
なので小さな端末がいい。スマホとか。
これなら感動するかもしれない。今だけかもしれないが。
で候補になるのが、iPhoneとAndroidになる。
AndroidはシリアルのAPIも公式で
http://code.google.com/p/android-serialport-api/
にサンプルもある。
問題なのはAndroid端末は自由なハードでもあり、シリアルポートを持った端末なのか?に尽きる。
自分の中華パッドはUSB-Hostがあり、PL2303シリアルドライバが入っていた。このPL2303はどうもGPSドングルがだいたこれみたいで、そのせいで入っているのかもしれない。GPSドングルも認識する。
これがFTDIのドライバとなると標準にはなかったので探してきてやってみた。ここが一番大変ともいえる。
当然rootがとれないとドライバを組み込むことはできないので、これも条件になる。
なんとか認識したので、Androidはシリアル端末にできた。
Androidの場合「できる」「できない」はハードにかかっていて、OSはAPIは提供しているので、それに従って記述すれば動くようだ。
でもシリアルは人気がない。(TT)
次にiPhoneを考えてみる。
中華パッドはパッドなので7"あってそれよりはiPhoneの方が小さい。
実はシリアルはDockコネクタに出ている。
http://mt.yukine.info/torneo/2009/09/iphone.html
よくやられているのは、脱獄してminicomなどのシリアル端末ソフトを入れる方法。
これもやってみた。
minicomはCydiaから入るようになってなくて、MobileTerminalをまず入れる。
これがまたVer4以降動かないものもあるので注意すること。
次にsuでrootになってapt-get install minicomで入れる。で設定して使う。
と書けばそうなのだが、実際はキーが小さくちょっと使いにくい。
それに、脱獄はともかく、UIを自分でかけないとarduinoでは面白くない。
市販ではredparkという会社が出している。
http://redpark.com/c2db9.html
これは脱獄不要。$59らしい。ソフトはSDKになっていて、サンプルがついているらしく、それを見ながら自分で作るらしい。
ここらが、順当な気もするが、大げさなので自作している人を探してみた。
http://vanishlab.web.fc2.com/vanishlab/Top.html
でやっていた。
https://github.com/yusukeSekikawa/SerialCommunicationFramework
にソースがある。
これ、前は(多分iOS3)ビルドできたが、今(多分iOS4)はビルドできない。
それとMakeにarm-apple-darwinのgccがあって、これもできない。
ビルドできたときに起動に1度成功したがArduinoを作ろうとしているうちにiOS4にしちゃったので今はコンパイル不能。
ToolChainも入れないといけないのかしら?それだと大変なので一旦挫折しそうになる。
ソースを見ると
http://devdot.wikispaces.com/Iphone+Serial+Port+Tutorial
を参考にしていた。(そのままに近いのが入っている。)
CなのでObjective-Cに入れたら動きそうな予感。
複雑なものよりキャラクタベースのターミナルを書いてみる。
久々のXCodeで殆ど失念していたがなんとか書けた。
でもってaitendoのiDoc基盤(以下の古いものでTxdRxdを間違えているもの)でPCと通信。
http://www.aitendo.co.jp/product/2924
見事に通信できた。
(このボードを入れると「アクセサリが最適でない」と出る。)
よくわからないが、脱獄しなくてもいけそうな気がする。
ただ、配布の問題が残るので脱獄したほうがいいかもしれない。
なのでGUIというかXCodeでシリアル通信はできそうである。
コメントはありません