いろいろつなげて動かしてみた!
Raspberry Pi の場合
・LCD (Arduino経由のi2c接続)
モータードライバのパルスカウンタ値、ジョイスティック値を表示する。
・ジョイスティック (MCP3206経由のIO接続)
上下でモーターの回転方向とスピードを操作する。
左右で加速度センサによるモーター制御への切替を行う
・加速度センサMPU6050 (i2c接続)
左右に傾けることによりモーターの回転方向とスピードを操作できる。
・モータードライバインターフェース MED-G9001A-SPI (SPI接続)
エムイーシステム社製モータードライバと通信する。モーターを制御する。
モーターは maxon社製です。
・WiFiUSBドングル (USB接続)
BUFFALO社製でネット接続する。 TeratermでRaspberry Piへアクセスしています。
一応、接続している機器は作成したプログラムにて同時に使えるようにしています。
GR-KURUMIの場合
・LCD (Arduino経由のi2c接続)
モータードライバのパルスカウンタ値、ジョイスティック値を表示する。
・2×8キャラクタLCD (i2c接続) 秋月で購入
とりあえずつけてみました。
・ジョイスティック (MCP3206経由のIO接続)
上下でモーターの回転方向とスピードを操作する。
左右で加速度センサによるモーター制御への切替を行う
・加速度センサMPU6050 (i2c接続)
左右に傾けることによりモーターの回転方向とスピードを操作できる。
・モータードライバインターフェース MED-G9001A-SPI (SPI接続)
エムイーシステム社製モータードライバと通信する。モーターを制御する。
モーターは maxon社製です。
・SDカードスロット (SPI接続)
SDカードのファイル読み書きやフォルダ内のファイル一覧表示、ファイルの削除、
ファイルの内容の表示は行える。モーターを制御しながらSDカードアクセスが可能です。
・WiFiUSBドングル (USB接続)
BUFFALO社製でネット接続する。 TeratermでRaspberry Piへアクセスしています。
一応、接続している機器は作成したプログラムにて同時に使えるようにしています。
動作確認に使用したプログラムについて
Raspberry Pi とGR-KURUMIで動かしているプログラムは単一のソースファイルをビルドできるように工夫して作成しております。 SPIやi2c(Wire)はArduino互換のRaspberryPi用のライブラリを作成して対応しております。一部互換性を保てない特殊なケース(i2cの拡張機能)もありますが、注意してアプリを作成すれば問題ない範囲だと思います。
Raspberry Piに LCD(2×8 i2c接続)を繋げると他の i2c接続機器が使えなくなったので Raspberry Piへの接続はやめました。
今回使用したプログラムの構成は次のようになっています。