ArduinoによるBoe-Bot制御
H209951 蟹井 翔貴
Boe-Botとは?
•
独立した2つの車輪で
動くロボット
•
各種センサーの搭載が可能
•
CPUとしてArduinoを使用
(ArduinoとはAVRマイコン、入出力
ポートを持ったマイコンでC言語に
より構成されるシステム)
研究背景
ゼミの授業で行ったロボット制御をさらに発展
させ、より実用的なロボットを作りたいと考え
た。
研究目的
無線通信によるロボットの操作、写真を撮り
その画像をPCに表示させる。
研究の流れ
• Bluetoothを用いてPCからBoe-Botに命令を
送り移動の制御をする
(bluetoothとは、無線通信の規格の一つであ
り近距離で使用される)
• PCではなくスマートフォンからでも操作できる
ようにする
• Boe-Botにカメラを取り付け、撮った写真を
PC上に画像として表示させる
使用したBluetooth機器
• 使用するモジュールは「RBT-001」
このモジュールは3.0V対応
のため専用のシリアルコン
バータを使い5.0V環境でも
使えるようにする。
• 最大の ボーレートは115200
Boe-Botの制御
• ArduinoにはBoe-Botのサーボモータをコント
ロールするservoライブラリがある。
サーボモータは色々
な種類があるが、連
続回転仕様のものを
つかう。
• 対応するキーを押すことにより
移動するプログラムを書く。
(例:Fを押すと、前進
Bを押すと、後進
スペースを押すと、その場回転
スマートフォンからの制御
• Bluetoothが内蔵されているスマートフォンで
同じように制御する。
• フリーソフトの「Blue Term」
からコマンドを送信する。
実演
• PC、スマホからの操作を実演する。
Boe-Botにカメラを取り付ける
• 使用するカメラはJPEGカメラ(LS-Y201)
• カラーの静止画を撮ることが
でき、出力はシリアル。
電圧は3.0Vと5.0Vで選べる。
• 初期状態でのボーレートは
38400
JPEGカメラの処理
• ArduinoにはJPEGカメラを扱うためのライブ
ラリがあるのでそれを使用する。
• Arduinoには撮影を開始してJPEG画像をPC
に送るプログラムを書く。
データが送られるので何らかの方法で
画像処理をしなければならない。
PC上のProcessingで表示。
Processingとは?
• デザイナー向けの言語で様々なアート表現が
可能。
• Arduinoとの連携もしやすく扱い易い。
• 今回はJPEGカメラから受け取ったデータを
画像として表示させるために使用。
実際に写真を撮る
• 実際に写真を撮り、PC上に
表示させることが出来た。
• ピントを合わせるためには
レンズのネジを調節しない
とならないため時間と手間
がかかる。
考察
• 画像内に「特定のマーカー」があるときだけ、
画像を取得してPCに表示させる。
↑OpenCVやARとの組み合わせで
物体や人の検出に使える。
カラーの静止画を撮ることがで
き、小型なので場所を選ばない
監視カメラを作ることができる。
Boe-Botにカメラを載せる
• JPEGカメラはサーボモータを使った回転台
に乗せる。
ここで使うサーボモー
タは180度回転仕様
のもの。
• 目的の場所までBoe-Botを操作し、PCからコ
マンドを送り写真を撮る。
サーボモータを使った回転台
• 電源をいれた直後は必ず
正面を向くようにする。
• 回転域(0~180度)を超えて
回転させようとした場合に
初期位置(正面)を向くように
制御する。
(サーボモータへの高負荷
を防ぐため。)
結果
• 無線通信によりBoe-Botの操作が出来た。
(スマートフォンでの操作も同じように出来た)
• JPEGカメラで写真を撮り有線による通信で
PC上に表示させることが出来た。
↑しかし、無線で画像を表示させようとすると
出来なかった。
何故出来なかったか??
• 単純な設計orプログラムのミス??
(有線と同じプログラムを使っているため
可能性低)
• Bluetoothモジュールの通信速度の限界??
(スペック上では十分だが電力不足等で
通信速度が下がっているため可能性中)
• 無線通信によるデータの欠落??
(有線より不安定なため可能性大)
データの欠落を防ぐには??
有線では「64byte」ずつ送信出来たのに対し、
無線では「2byte」ずつしか送信出来ない。
フロー制御を試してみたところ、多少改善
することが出来た。
さらに通信速度を落とすことにより
「32byte」ずつ送信が出来るようになった。
しかし、画像の表示には至らず。
対策案
• 別のbluetoothモジュールを使用する。
• Bluetoothではなく、wi-fi等の無線通信を試し
てみる。
• カメラを無線機能を搭載したネットワークカメ
ラに変更する。
今後の展望
• 無線通信により画像データを転送出来るよう
にする。
人の手の届かない場所の写真を撮れる。
• 各種センサーを取り付けその情報をPCに転
送する。
物体までの距離などがわかるようになる。
最終目的
• 目標(ゴール)を定め、その目標に向かって自
律走行させる。
人がわざわざ操作する必要がなくなり
ロボットが自ら考え、自身のセンサーを使い
目標まで辿り着く、自律走行型のロボットを
作りたい。
御清聴ありがとうございました。
御質問、御意見お願い致します。
おまけ
• 質問をあらかじめ予測し、それに対するスマ
ートな回答を用意しておく。
予測される質問とその回答
Q,AVRマイコンってどんな特徴??
A,フラッシュメモリ搭載、フリーのコンパイラ
が使える
Q,実用的ってどう実用的なの??
A,人が入れない環境(狭い、汚染)で人の
かわりに活動する。
Q,いっそのこと全てスマホですれば??
A,JAVA等の知識に乏しく、スマホアプリ開発は
難しいが、今後の課題として是非やりたい。
Q,キー入力ではなく傾けて操作とかは??
A,同上
ここで、先行研究(2012年度 神戸)の」紹介
をしてもいいかも
Q,Boe-Botの各種センサーって具体的に??
A,赤外線センサー、光センサーの紹介をする
BasicStampを出しても面白いかも
Q,何故Arduino??
A,初心者オススメのマイコンボードだから
今後はラズベリーパイ等にも手を出したい。
Q,壮大な最終目的だがアテはあるのか??
A,ロボットに目標を認識させる方法を探す。
自己位置推定の勉強を頑張る。
ロボットシミュレータ(ゼミでやったBonanza)
を使い上手く行けば、現実のロボットにも
対応出来る…はず。
ダウンロード

発表資料