roomba-hack-02 はんだ付け&動作テスト編

↓ MacBookとBluetoothで接続したRoomba

MacbookPro上でRubyからbluetooth経由でRoombaにコマンドを送って、掃除を開始させるところまでできました。

手順とかちょっとハマったところとかを書いていきます。

パーツに関しては前回の記事をご参照下さい

BlueSMiRFにコネクタを取り付ける

BlueSMiRFは1つ7000円ぐらいするので、取り外ししやすいようにコネクタをつけておきます。

今回はXHコネクタというものを使ってみました。手元に圧着ペンチがなかったので、ラジオペンチで無理やり圧着させましたが、専用の工具を買ったほうが良さそうです。

3端子レギュレータにコンデンサを付ける

Roombaから取れる電源は16Vなので、そのままではBlueSMiRF(5V)につなげません。
間に3端子レギュレータを接続します。

(回路図は秋月のパーツセットに入っています。)

コネクタに3端子レギュレータを(無理やり)付ける

写真だとちょっとわかりにくいのですが、コネクタのVCCの配線を切って3端子レギュレータのinoutをつないでいます。

GNDの接続も忘れずに。

Roombaに接続

XHコネクタと単線をつないで、単線の反対側をroombaにつないでみます。

ちなみに1番目のピンと6番目のピンは白い線でつないであります。

どこに何をつなぐかは、公式のリファレンスを参照しましょう。

とりあえずVCCとGNDが合っていればLEDが赤く点滅します。

それから、RxとTxのつなぎ方に注意です。

BlueSMiRFのRx ---> RoombaのTx
BlueSMiRFのTx ---> RoombaのRx

という感じにつなぎます。じゃないと僕みたいに小一時間なんで動かないんだろうと悩むことになりかねません。

MacとBlueSMiRFのペアリング

これはBluetoothマウスとかと同じような流れで行います。
確かパスコードは無しに設定した気がします。

シリアルポートの設定

ペアリングに成功したら、シリアルポートの設定をします。

Bluetooth設定の画面で、デバイス(FireFly-...)を選択して歯車ボタンからEdit serial ports...を選ぶと↑この画像のような画面になります。

この時のPath: /dev/tty.FireFly...は次で使うのでメモっておきましょう。

RubyからRoombaを操作するテスト

まずターミナルを開いて、必要なgemをinstallしておきます。

$ gem install serialport

次にirb(もしくはpry)から対話環境でシリアル通信してみます。

※Roombaの電源は入れておきましょう

$ irb

irb(main):001:0> require 'serialport'
irb(main):002:0> sp = SerialPort.new('/dev/tty.FireFly-86A2-SPP', 115200, 8, 1, 0)
# '/dev/tty.FireFly-86A2-SPP'はさっきメモしたもの
# この時点でBlueSMiRFのLEDが緑に点灯するはず

irb(main):003:0> sp.write 128.chr
irb(main):004:0> sp.write 130.chr
irb(main):005:0> sp.write 135.chr
# roombaが掃除を始めるはず

128とか130とかが気になる人は公式のリファレンスを読みましょう。

つづく

次はいよいよTwitter連携とかをしていきたいと思います。