Edited at

Konashi 2.0 でルンバをBLEリモコン化する

More than 3 years have passed since last update.

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

シリアルポートのコネクタ図、iRobot社の資料より引用

roombaOI.png

シリアルポートのコネクタはミニ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)/


配線

ブレッドボードでの配線例です。

IMG_0287.JPG


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ボタン押下でルンバが前進したら成功です。停止用のボタンで止めましょう。