USB-シリアル変換チップ
A500とArduinoの通信ができる根拠としたJuJuさんの事例であるが、理解できていない部分がある。
すなわち、FTDIという用語と「UNOは使用不可」の根拠がわからなかったのだ。
サンプルプログラムを動かそうと試行錯誤している間にはその裏付けというか、どういう意味かを理解する必要があった。特に「UNOでは使えない」という記述に気付いたのがUNOを購入した後だったので、内心ドキドキしながら調べていた。FTDIでググると、チップメーカーらしきサイトが出てくる。そこでふとながてぃ~の。上のICを眺めていると、
あった、FTDI。
一方のUNO R3はというと似たようなパーツがあるにはあるが、なんか違う。ATMEL……?細かい。
どうもこれら、調べてみるとどちらもUSB-シリアル変換するためのチップらしい。USBケーブルをつないでマイコン上にプログラムを書きこむにしても、プログラム実行中にUSBを介して通信を行うにしても、このチップがゲートウェイになっている感じなのかな。前の投稿で、ながてぃ~の。をPCにつないだときにはドライバの手動インストールが必要なかったのに、その後つないだUNO R3では必要だったと書いたが、これもUSB-シリアル変換チップの種類の違いに起因するものなのだろう。すなわち、ながてぃ~の。はFTDIのチップを、UNO R3はAtmelのATmega16U2を使っているため、必要なドライバが別物なのだ。
スイッチサイエンスさんのサイトによると、Arduino のUSB-シリアル変換チップは次のように変遷している模様。
- Arduino Duemilanove 328 (最も標準的なArduino) …… FTDI
- Arduino Uno R2 …… ATmega8U2(Atmel)
- Arduino Uno R3 …… ATmega16U2(Atmel)
なるほど、JuJuさんが使われたAndroid – Arduino 間の通信を実現させるライブラリはFTDIという種類のUSB-シリアル変換チップ用で、UNOシリーズにはそれが搭載されていないから「UNOでは使用不可」なのだ。きっと。
いろいろと奥が深いのだな。とにもかくにも、FTDIのチップをのっけている「ながてぃ~の。」なら問題なさそうでよかった。