LogicBots

LogicBots

Not enough ratings
エリア1で覚えるロボット制御
By Aoneko
ハーイ! 楽しいロボット制御の時間だよ。
このガイドでは、回路の組み方を中心にエリア1の攻略を目指します。
(ボディの組み立て方は、ほかの人に教えてもらってね)
   
Award
Favorite
Favorited
Unfavorite
ロボットの曲がり方
まず、ロボットの進路を変えるには2種類のやり方があります。
カーブ内側の車輪をストップさせるかバックさせるか、ですね。
前者だと緩やかに曲がって、後者だとその場でクイックに回転するので、コースの特性に合わせて選びましょう。
ライントレース
序盤は床に書かれた線を追跡するステージ。
そして、ここで使うラインセンサーは、黒い床が目の前にあると「high」になるセンサー。

つまり、このセンサーからの入力をそのまま「Motor On/Off」の端子に繋いであげると、床が黒い限り走り続けるロボット君ができるわけです。
あとは、センサーを2つ以上つけて、線から外れた時に右に曲がるか左に曲がるか判断させればGoodですね。

ちなみにステージ「Smooth Line」は、とてもシンプルな構造で走破できます。


センサーが反応してる側と反対のタイヤが回転する、つまりセンサーが片側しか反応しなかった時は、線がある方のタイヤにブレーキがかかるわけです。
ただし【ロボットの曲がり方】で説明した、クイックじゃない方の曲がり方だから、後のステージ「Tight Bends」や「Sharp Bends」には対応できないかもですね。
続ライントレース
それではクイックに曲がるロボットを作ってみます。

直角コーナーではオーバーランしがちになるので、センサーは少し幅を置いて設置してみます。

その回路はこちら。
黄色い配線はモーターを回しっぱなしにするための信号。
青い配線は左のセンサー、赤は右のセンサーからの信号。
2列目の素子「NOT」は信号を反転させます。
3列目の素子「AND」は入力が両方「high」の時だけ「high」を出力します

片側の流れだけを見ると
「左センサーが反応していて、右センサーが反応してない時は、左のタイヤをバックさせるよ!」
って感じの意味になります。
つまり、左側にだけ黒い床がある場合は、左に回転させて線を追いかけるわけですね。

残りのステージもこれの応用でなんとかいけると思います。
距離センサーの使い方
ステージ「Platform」から登場するこのセンサー。

後から出てくる超音波センサー同様、対象との距離を測るセンサーです。

信号の内容が距離を表す数値なので、こんな風に他の数値と比較して利用します。

あとはライントレースの応用ですね。
センサーを床ではなく前や横に向ければ、障害物の有無を判定できます。
色センサー&ジャイロ
ステージ「Colour Maze」で登場する2種類のセンサーについて。

まずカラーセンサーは、色を判別するセンサーです。

何色なのかを数値で出力するので、こんな風に目的の色を表す数字と比較して使います。

次。
ジャイロスコープは、ロボットの向いている角度を数値として出力するセンサーです。

ちなみにスタート時の向きが「0」で、上から見て時計回りに数字が増えます。
例えば、90度単位で直角に曲がるような制御をしたい場合は、こんな風に目的の角度と比較したりして使います。

この例では、カウンターを使って90度単位で目標の角度を定めています。
カウンターは真ん中の端子に信号がきてないとリセットされずに値が残ったままになるので、とりあえずNOT素子かスイッチを繋いでおきましょう。

あとは、ただひたすらに試行錯誤です……(遠い目)
ヒント
信号の種類
距離センサーが登場したあたりから、数値の足し算や引き算のできる素子が増えてきます。
よく見ると線をつなぐ端子の色が違うので、信号の種類がデジタル(high/lo)なのかアナログ(数値)なのか、間違わないよう配線の色で区別してみるといいかもしれません。
 デジタル端子:出力=緑 入力=赤
 アナログ端子:出力=青 入力=オレンジ

走破時間とセンサーの配置
例えばラインセンサーを緩めの間隔に配置すると、ある程度の距離を無調整で走るようになるので時間短縮にはなります。ただし、コーナーに外向きで突っ込んでオーバーランするケースも増えますのでほどほどに。

スナップ機能
タイヤの配置には、チュートリアルの最後に説明されるスナップ機能を活用しましょう。
特に4輪以上のロボットで、タイヤの配置が対称になってないと、ガタガタして大変です。
2 Comments
Edkinville 1 Jul, 2017 @ 9:17pm 
nice bro,really helpful
T A U R U S 18 Dec, 2014 @ 7:36am 
DANKE / THANKS !