作品タイトル:GR-CITRUSで作るお掃除ロボット
表示名:@takjn
コンセプト・作品説明 |
---|
GR-CITRUSとWA-MIKANを使ってお掃除ロボットを作りました。 前面にはフローリングワイパーがついており、スマホのブラウザから手動で操縦をしながら楽しく部屋を掃除することができます。 この作品は「GR-CITRUS かんきつ系ミニハッカソン - RubyとIoTでアイデアをカタチに」で作成したプログラムをリファクタリングしたものです。 |
はじめに
GR-CITRUSがWiFiのアクセスポイント兼Webサーバーとなっています。スマホのブラウザからアクセスすることで、前進、後進、右回転、左回転の操作をすることができます。プログラムによる簡単な自動運転を行うこともできます。
部品表
部品 | 個数 | 備考 |
---|---|---|
GR-CITRUS | 1 | ピンヘッダ付きのFULL版を使います。購入先や基本的な使い方は製品紹介ページを参照してください。 |
WA-MIKAN | 1 | ピンソケット付きのFULL版を使います。 |
SANBOU-KAN または TB6612搭載モータードライバボード | 1 | SANBOU-KANはGR-CITRUS用のモーター制御ボードです。ルアリダワークスで購入できます。SANBOU-KANの代わりに秋月電子通商のTB6612使用 Dual DCモータードライブキットなどを使用することもできます。詳細は後述するSAMBOU-KANを使わない場合を参照してください。 |
1.27mm ピンヘッダ、1.27mm ジャンパーピン | 1 | GR-CITRUSに書き込んだプログラムを自動実行するために必要となります。 |
タミヤ ツインモーターギヤーボックス | 1 | 付属の説明書に従い組み立ててください。 |
タミヤ スポーツタイヤセット (56mm径) | 1 | 付属の説明書に従い組み立ててください。 |
タミヤ ユニバーサルプレート (2枚セット) | 1 | シャーシとして使います。 |
microSDカード | 1 | GR-CITRUSの内部処理で利用します。WA-MIKANに挿してください。 |
3x15mm 丸ビス、3.2x5mm スペーサー | 4 | SANBOU-KANをプレートに固定する際に使用します。ユニバーサルプレートに付属してくる丸ビスで代用することもできます。 |
モバイルバッテリー | 1 | 両面テープでプレートに固定します。 |
フローリングシート | - | 市販のものを半分にカットして使います。 |
組み立て手順
(0) 事前準備
microSDカードをWA-MIKANに挿してください。
GR-CITRUSの JP2 にピンヘッダーをハンダ付けしてください。SANBOU-KANのモーター接続用端子とモーターの配線にコネクターを取り付けてください。
(1) シャーシの組み立て
プッシュリベットを使ってユニバーサルプレートにアングル材と軸受けを固定します。
(2) SANBOU-KANの固定
ユニバーサルプレートにSANBOU-KANをネジとスペーサー、ナットでしっかりと固定します。
(3) ギヤーボックスの固定
ユニバーサルプレートの裏面にツインモーターギヤーボックスをネジとナットでしっかりと固定します。
(4) フローリングワイパーの固定
プレート同士をネジで接続します。
(5) タイヤの取り付け
SANBOU-KANとモーターを接続し、タイヤを取り付けます。
(6) フローリングシートの取り付け
フローリングワイパー用のシートを半分の大きさにカットしてください。プレートを包み込んでから端をホチキスで固定します。
(7) プログラムの書き込み
以下のプログラムを書き込んでください。
https://github.com/takjn/CitrusSweeper/blob/master/main.rb
プログラムを書き込む際は、GR-CITRUS の JP2 が開放されていることを確認してください。JP2にジャンパーが刺さっていると書き込みに失敗します。
(8) バッテリーの取り付け
プログラムの書き込み終了後、GR-CITRUSからUSBケーブルを取り外し、GR-CITRUSのJP2にジャンパーを刺してください。
モバイルバッテリーを両面テープでシャーシに固定してください。
実行方法
(1) GR-CITRUSの電源を入れます。
GR-CITRUSのJP2にジャンパーピンが挿されていること、WA-MIKANにmicroSDカードが挿されていることを確認してください。
モバイルバッテリーとGR-CITRUSをUSBケーブルで接続してください。
(2) スマホとGR-CITRUSをWiFiで接続します。
GR-CITRUSがWiFiのアクセスポイントとなっています。スマホのWiFi 設定を開き、 Sweeper 192.168.4.1 に接続してください。パスワードは 37003700 です。
(3) ブラウザからGR-CITRUSにアクセスします。
スマホのブラウザを開き、 http://192.168.4.1/ にアクセスしてください。
Forwardボタンを押すと前進、 Backwardボタンを押すと後進、LeftとRightで左右に回転します。
Autoボタンを押すと予めプログラムされた内容に従い自動運転します。
Exitボタンを押すとプログラムが終了します。終了後に再度実行したい場合は電源を入れなおしてください。
プログラムの補足
移動速度の変更について
デフォルトの移動速度を変えたい場合、TB6612Driverクラスの MOTOR_SPEED の値を変更してください。大きな値を指定するとより速く動きますが、100程度を上限としてください。
HTMLの変更について
操作画面をカスタマイズしたい場合、CitrusSweepwerクラスの INDEX_BODY の中身を変更してください。EOSとEOSの間に任意のHTMLを書くことができますが、メモリの制限などがあるため大きなHTMLは避けた方が良いでしょう。
自動運転プログラムの変更について
CitrusSweepwerクラスのrunメソッドの中にある自動運転プログラムを変更してください。工夫をすれば、部屋の中を自動で掃除するプログラムも作れるかもしれません。
WiFiのSSID、パスワードについて
デフォルトのSSIDとパスワードを変更したい場合、プログラムの最終行にある、CitrusSweepwerクラスをnewする際の引数の値を変更してください。
SAMBOU-KANを使わない場合
SANBOU-KANは便利なボードですが入手が少し難しいと思います。SANBOU-KANの代わりにTB6612FNGが使用されているモータードライバを利用することができます。GR-CITRUSとTB6612FNGは以下の通り配線してください。また、TB6612のA01とA02には左側の車輪のモーター、B01とB02には右側の車輪のモーター、VMとPGNDにはモーター駆動用電源のプラスとマイナスを接続してください。
GR-CITRUSのピン番号 | TB6612FNG |
---|---|
4 | PWMA |
10 | PWMB |
18 | AIN1 |
3 | AIN2 |
15 | BIN1 |
14 | BIN2 |
3.3V | VCC |
3.3V | STBY |
GND | VCC |
補足事項
接続するGR-CITRUSのピンを変更する場合はプログラムの修正が必要です。TB6612Driverクラスのインスタンスを作成するときに(newメソッド呼び出し時に)、引数としてピン番号を指定してください。
本職はWeb系のソフトウェアエンジニアをしています。
ハードウェアは素人です。電子工作は趣味として楽しんでいます。
ソースコードはGitHubで公開しています。Pull Requestもお待ちしています。