自動掃除機(机から落ちない自走ロボット)

赤外線、もしくは可視光の照度センサー、距離計測機を用いた「机から落ちないロボット」があります (参照,2000円のキット)。 前回、モーターの制御を学びましたので ArduinoとSharpの距離センサーGP2Y0A21を用いて、「机から落ちない自走ロボット」を自作することにしました。 センシングと自動制御を含む方式で自由度が高いですので、 様々なロボット製作に応用できるかと思います。
A hand-made robot that does not fall off a table is shown in this page. It detects edgee of a table by using three IR distance sensors(Sharp GP2Y0A21),and runs automatically on the table. Automation is realized by Arduino, TA7291P motor controller and an analog circuit. Mabuchi motors and Tamiya gear boxes are used for the motion.

Updated on June. 20, 2010.
動作状況の動画(YouTube)
電池を入れてから自動で走りだす様子です。

Automatic controlled model car for house cleaning.
Equipped with Arduino, Tamiya gear boxes and Mabuchi motors.
Three IR sensors detect edges of a table, and decide correct direction to move.
赤外線センサーからの信号で机から落ちない自動掃除機。
アルドゥイーノ、田宮ギヤボックス、マブチモータ使用。
アナログ回路はTA7291Pを用いて自作。

ハードウェア(組み立て)

まずは制御用の基板を示します。 初めての方は複雑そうに見えるかもしれませんが、 後述の回路図をきちんと見れば1.5時間程度で組み立てることが 出来ると思います。部品代は1000円くらいです。 ケーブルを直接基板にはんだ付けするのではなく、 端子台を使用することをお勧めします(修理や改造がずっと簡単になります。)


モーター制御用基板
Circuit board for motor control.

続いて、車体を組み立てます。 田宮のユニバーサルプレートセットを使いました。 最終版を作製するときにはアクリル板に穴あけをして製作するのが 理想的です。このプレートは軽量で強度も十分にありますので、 そのままでも問題はないかもしれません。


車体
Charssis

途中まで組み立てた車体は以下のようになりました。


左右のギヤーボックスとタイヤを装着した車体。
Two gear boxes and tires on the charssis.

違う角度から。
Side view

掃除用の 花王クイックルワイパーを取り付けた車体。これで掃除をします。ワイパーの 本体は100円ショップで購入した非正規品です。ワイパーの上に 電池を配置して重しとしています。 写真の左側に Arduino Duemilanove 328です。試作機はこれで作って、 軽量化が必要になった場合には Arduino Pro Miniに置き換える予定です。 1.3V*4=5.2Vで直接Arduinoを動かします。 前に1個と後ろに2個、黒色の飛び出た部品が見えます。 これらが赤外線距離計です。


マシン全体写真。3個の赤外線距離センサーを持つ。
Automatic cleaning robot equipped with a wiper arm,
Arduino board, analog circuit and size AA batteries.
Three IR sensors are attached on the front bar and back side of each tire.

回路部分拡大図。
Enlarged image.

制御回路図

今回用いた回路図は以下の通りです。 前回同様、モータードライバーとしてToshibaの TA7291Pを 用いています。2個のTA7291Pを用いており、 それぞれが右と左の車輪に対応します。D1,D2を回転方向の制御、AO1を回転速度の制御用に用います。


回路図。The circuit diagram used here.

赤外線センサーの取り扱い

続いて、床が無いことを検知する 赤外線センサーを使ってみます。付属のケーブルは 赤と黒の配線が通常とは逆になっているので注意が必要です。 ここでVoutをArduinoのanalog inに接続すれば、 距離に応じた電圧を得ることができます。 誤差が大きいのでデータシートには記載がありませんが、 GP2Y0A21において、距離x (cm)と出力電圧Vの関係は大雑把に

y=20/x, (10 < x < 80)

です。正確な値が必要な場合には 2つ以上の異なる距離で電圧を測定して

y=a+b/x,

のようにして係数a,bを求めるのが良いかもしれません。

センサーの取り付け方式等を以下に示します。


赤外線距離センサー部拡大図
IR distance sensor.

赤外線距離センサー部拡大図2
IR distance sensor2.

前部センサー拡大図
IR distance sensor on the front bar.

プログラム

最後に、机から落ちない自動制御をする のArduinoのスケッチを示します。 制御は簡単で、前の赤外線センサーが80cm以上を示した時には 後進を初めます。後ろのタイヤの片方が落ちそうに なった時にはそれとは左右のタイヤを逆方向に回転させることで 向きを変えます。動きのランダムさを出すために 乱数を用いて、方向転換するように設定しています。 全体のコードはここからコピーしてください。 コーディングはほとんど練っていませんので、 不必要な部分がたくさんあります。 ご自由に改変してご使用ください。



戸田システムウェア

ここで公開するアイデア/装置は安全性を保障しておりません。 用途に応じた設計を行い、十分な安全検査を行ってからご利用ください。 本サイトの情報の営利目的での利用はご遠慮ください。 本サイトの内容の無断転載を禁じます。© 2010 TYK