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) を使い上手く行けば、現実のロボットにも 対応出来る…はず。
© Copyright 2024 ExpyDoc