BeagleBoardにはGPIOやI2C, SPI等のインタフェースがありますが、電圧が1.8Vなので、3.3Vや5Vのセンサー等をつなぐ場合は電圧の変換が必要になります。
また、実験中に何かミスするとボードを壊してしまうかもしれません。
そこで、Arduinoとシリアルで接続し、ハード関係はArduinoに任せるようにすることにします。
<接続図>
センサー/DCモーター/サーボ等 – Arduino – <シリアル> – BeagleBoard
BeagleBoard-xMには通常のRS232Cのコネクタがありますが、コンソールで使用しているので、
USB-シリアルTTL変換機経由で接続するようにします。
今回はaitendoのUSB-シリアルTTL変換器(USB2UART-CP2102)を試してみました。購入時は¥600でした。
USB2UART-CP2102はBeagleBoard(Ubuntu10.10)に刺すだけで認識されました。
簡単なシリアル通信プログラムを書き込んだArduinoと接続して、9600bpsで試したところ問題なく通信できました。
BeagleBoard(Ubuntu)側はminicomというターミナルソフトを使用しました。
↓はArduinoではなく、以前作ったSanguinoと接続しているところです。
Sanguinoはシリアルが2系統あるのでやりやすいです。
(Sanguinoは最近メンテナンスされていないようで残念です。。。)
そのうち通信速度の上限を調べたいと思います。