asumism

あすみん(@an_asumin)のブログやで

Android x IOIO-OTG x TLC5940

IOIO-OTGというものを買いました.
IOIO-OTG - スイッチサイエンス

かわいいので,ピンソケットを付けた.

f:id:an_asumin:20130506234847j:plain
[左: IOIO-OTG 右: ArduinoUNO]


これはなかなかスグレモノ!!
AndroidやPCからI/Oをたくさん生やすことができるようになります.
AndroidのアプリをJavaっと書く中で,APIを叩けばDigital I/O,PWM,SPIなどなどが簡単に使えて,いろんなものを制御することができます.ADK(Arduino)のように,マイコン側のプログラムを作る必要がないので,ヒジョーに便利ですね.Androidにはマイコンに比べ物にならない計算リソースや通信環境などがあるので,可能性がすごそう.そしてなによりも,BluetoothアダプタをIOIO-OTGに刺すだけで,無線化できる.すごい!


f:id:an_asumin:20130506234632j:plain
[付属のケーブル,ださいな?]

[このBTアダプタが使用できたよ]


注意しないといけないのは,各ピンは3.3Vで動くってことでしょうか.ただし,多くのピンは5Vトレラントなので,どうしても5VのI/Oが必要な部分はオープンドレインでがんばればなんとかなりそう.電源に関しても5-15Vの間ならオッケーだし,レギュレータが5V/3Aと3.3V/0.5Aの出力を作ってくれるので痒いところに手が届くのでは!(;`ー´)o

チュートリアルやコードはGitHubにあるので,適当にcloneなどしていじるとよいと思う.
home · ytai/ioio Wiki · GitHub


手始めに,デイジーチェーン(カスケード接続)したTLC5940を使ってフルカラーLEDを自由に光らせることにした.TLC5940はArduino界隈では有名なLEDドライバですね.
TLC5940NT 16チャネル・PWM定電流LEDドライバ - スイッチサイエンス

3つのTLC5940で,16個のフルカラーLEDを制御します.
秋月電子通商 電子部品 ネット通販

f:id:an_asumin:20130602042325j:plain
[汚配線!]


Androidのアプリ側から無線で制御できるのはなかなかうれしい.

f:id:an_asumin:20130602042349j:plain
[好き放題光る]


IOIO-OTGにはArduinoのようにライブラリがないので,今回はデータシートを読んでがんばった.おかげでいろいろと知識がついたよ.

IOIO-OTGのPWMはどうやらサーボモータを動かすことを想定しているらしく,デューティサイクルを決定する関数で,浮動小数点を引数にしているのが気持ち悪い感じだった.GitHubを見てみると,PWMでピリオドを直接指定できるように改善されたブランチとかもあるので,確実に動かしたいならそちらを利用するとよさそう.

結果的に,グレイスケールデータ出力サイクルは960Hzぐらいで動くようになった.
当初はBLANKをオープンドレインにしていたのだけれど,出力サイクルが速まると上手く動作しなくなるので,とりやめた.グレイスケールデータの更新レートについては,Digital I/Oを使っているので,0.25Hzくらい.IOIO側のSPI機能を使えば実用に耐える速度になると思うので,もうちょっとがんばるよ.

イデア次第でいろいろできちゃいますね♪ヽ(`▽´)/


追記 [2013/6/27]

もうちょっとがんばった!
Android x IOIO-OTG x TLC5940 その2 - asumism