iRobot社のロボット掃除機ルンバにKonashi 2.0を接続することで、簡単にルンバをBLEリモコン化することが出来ます。
接続方法は色々考えられますが、私の行った方法を公開します。
免責事項
本記事の実行は、各自の責任において行って下さい。
なんらかの損害等が発生しても、著者は一切の責任を負わないものとします。
使用機材
・ルンバ
・Konasi 2.0
・ロジックレベル双方向変換モジュール
・ミニDIN8ピンコネクタ
・2極PHコネクタ
・ブレッドボード
・リード線etc
ミニDIN8ピンコネクタの準備
ルンバのインタフェース規格はiRobot社により公開されています。
http://www.irobot.lv/uploaded_files/File/iRobot_Roomba_500_Open_Interface_Spec.pdf
シリアルポートのコネクタはミニDIN7ピンの形上ですが、8ピンのコネクタでも接続できます。
以下の四本を使用します。
・1もしくは2番ピンVpwr、Konashi 2.0への電源供給
・3番ピンRXD
・4番ピンTXD
・6もしくは7番ピンGND
5番ピンのBRCは通信速度の切り替えですが、今回はデフォルトの115200で通信するため、使用しません。
ミニDIN8ピンコネクタの該当する端子にリード線をハンダ付けしておきます。
Konashi 2.0 の使用
Konashi 2.0の仕様は、ユカイ工学株式会社のサイトを参照して下さい。
http://konashi.ux-xu.com/documents/#specs-appearance
Konashi 2.0からは以下の端子を使用します。
・CN2バッテリ電圧、ルンバのVpwr端子から電源を供給します。
・UART RX
・UART TX
・DC5.0V、ロジックレベル双方向変換モジュールへ電源供給
・DC3.0V、ロジックレベル双方向変換モジュールへ電源供給
・GND
CN2は2極のPHコネクタになっているので当該コネクタにリード線を取り付けておきます。
短い辺に近い側がGNDになります。
UART RXをルンバのTXD、UART TXをルンバのRXDに接続しますが、電圧が違うため変換モジュールをかまします。
ロジックレベル双方向変換モジュールの使用
電圧の変換にsparfunのロジックレベル双方向変換モジュールを使用します。
https://learn.sparkfun.com/tutorials/bi-directional-logic-level-converter-hookup-guide
ロジックレベル双方向変換モジュールの端子は以下のように接続します。
・LV1 - Konashi 2.0 TX
・LV2 - Konashi 2.0 RX
・LV - Konashi 2.0 DC3.0V
・HV1 - ルンバ RXD
・HV2 - ルンバ TXD
・HV - Konashi 2.0 DC5.0V
・GND - GND
回路図
準備中\(IoT)/
配線
iPhoneからの制御
とりあえず、ユカイ工学株式会社が提供しているKonashi 2.0のサンプルプロジェクトから、UartSampleを改造して使用します。
readyメソッド内で通信速度の設定をルンバに合わせて115200に変更します。
// [Konashi uartBaudrate:KonashiUartBaudrateRate9K6];
[Konashi uartBaudrate:KonashiUartBaudrateRate115K2];
sendメソッドを以下のように書き換えて前進コマンドを送信するようにします。
また、停止用のボタンを追加しておきます。
// 前進
- (IBAction)send:(id)sender {
[Konashi uartWrite:128]; // Start
[Konashi uartWrite:132]; // Full
[Konashi uartWrite:146]; // Drive PWM
[Konashi uartWrite:0]; // [Right PWM high byte]
[Konashi uartWrite:50]; // [Right PWM low byte]
[Konashi uartWrite:0]; // [Left PWM high byte]
[Konashi uartWrite:50]; // [Left PWM low byte]
}
// 停止
- (IBAction)sendStop:(id)sender {
[Konashi uartWrite:128]; // Start
[Konashi uartWrite:132]; // Full
[Konashi uartWrite:146]; // Drive PWM
[Konashi uartWrite:0]; // [Right PWM high byte]
[Konashi uartWrite:0]; // [Right PWM low byte]
[Konashi uartWrite:0]; // [Left PWM high byte]
[Konashi uartWrite:0]; // [Left PWM low byte]
}
コマンドの詳細については、iRobot社の仕様書を参照して下さい。
実行方法
本モジュールをルンバのシリアルポートに接続して、ルンバの電源を入れます。
iPhoneでさきの改造したUartSampleを実行します。
BLE接続後、sendボタン押下でルンバが前進したら成功です。停止用のボタンで止めましょう。