かんたんライントレーサをつくる

ふりがなをつける

全体

ライントレーサとは

ライントレーサとは、床の上に引かれた線の上を辿って走行する、自律的なロボットのことです。
(自律的なロボットとは、人間の力を借りず、自分で状況を判断し行動するロボットのこと)

仕組み

ライントレーサのコースには、白い床に黒い線、黒い床に白い線などありますが、ここでは白い床に黒い線を例として取り上げます。

床は白くて明るく、線は黒くて暗いため、この明るさを光センサで読み取ってロボットが線の上にいるか、それとも線から外れているかを判断します。

下記の図は、赤丸で光センサが見ている範囲を表し、そのなかの色で光センサが検出している明るさを表しています。線の上では暗く、線を外れるほど明るくなることがわかります。

線と光センサの位置による検出される明るさの違い

線から外れた場合に線に近づくようにロボットを動かせば、線の上を走行するロボットが出来上がります。

アルゴリズム

光センサは1個から複数のものがあり、それぞれ特徴があります。

  • 1個
  • 床と線の境界を検出して走行する
  • センサが一個だけで済む
  • 検出範囲が狭いため、ロボットが線から外れやすい
  • 床や線の材質、周囲の照明に左右されやすく、光センサの厳密なキャリブレーションが必要
  • 2個
  • 左右の光センサの明るさのバランスを検出して走行する
  • 左右のバランスだけみるため、光センサの厳密なキャリブレーションが不要
  • プログラムが簡単
  • 左右の光センサの明るさから、線の位置を検出して走行する
  • 光センサの厳密なキャリブレーションが必要
  • 1個の場合より検出範囲が広がるため、ロボットが線から外れにくい
  • 3個以上
  • 検出範囲がさらに広がるため、ロボットが線から外れにくい
  • 線が交差した部分の検出も容易

今回つくるライントレーサは、プログラムを簡単にするため、光センサ2個で明るさのバランスを検出する方式を採用します。

使う部品

使う工具

  • プラスドライバ
  • ニッパ
  • カッターナイフ
  • かなづち
  • はんだごて
  • はんだ
  • テスター
  • 両面テープ
  • はがせることを謳っているものがおすすめ

はんだ付けの注意

はんだごては非常に高温(300℃以上)になるため、こて先や金属部分に触ったり、燃えやすいものに近づけたりしないこと。
コードに触ってはんだごてを落としたりしないよう、はんだごて台などを使い、安定した場所に置くこと。
慣れていないニンジャは、大人と一緒にやるようにしましょう。

組み立てかた

  1. ブルドーザー工作基本セットを組み立てる
    ※リモコンは組み立てなくてよい

  2. ブルドーザーのモーターから伸びた線を20cmくらいで切断し、先端のビニール被覆を5㎜ほど剥いておく

  3. DCプラグ付バッテリースナップを真ん中くらいで切断し、先端のビニール被覆を5㎜ほど剥いておく
    ※バッテリースナップ側は使用しない

  4. テスタの導通チェック機能または抵抗測定機能を使用して、DCプラグの内側(プラス側)がどちらの線か確認して印を付けておく

  5. フォトリフレクタアレイを6個と2個に分離し、2個側にピンヘッダとジャンパ線をはんだ付けする
    ジャンパ線は付属の100Ω抵抗のリード線の切れ端を使うとよい
    センサ

  6. 以下のように配線する
    フォトリフレクタアレイはジャンパワイヤで配線し、モーターの線は moto:bit のピンソケットに差し込みテープで固定する。
    配線図 メイン
    配線図 バッテリー

  7. 両面テープで各部品をロボットに固定する
    部品の配置 上から
    センサとロボットの間に7mmに切った消しゴムをはさむ。(床との距離をセンサに最適な3mmにするため)
    また、センサの横の位置は真ん中にする。
    部品の配置 下から

  8. 配線が正しいかよく確認する

  9. 電池ボックスのスイッチが「OFF」になっていることを確認する

  10. DCプラグを moto:bit に差し込み、moto:bit のスイッチが「RUN MOTORS」になっていることを確認する

  11. 電池ボックスに電池をいれる

プログラム

https://makecode.microbit.org/_UwUePsPskUtz

プログラム

プログラムの動かしかた

  1. 以下のURLをクリックし、MakeCodeを開く
    https://makecode.microbit.org/#lang=ja

  2. プログラムをつくる

  3. 画面下の「ダウンロード」をクリックして、HEXファイルをダウンロードする

  4. micro:bitをコンピュータに接続する
    このとき「MICROBIT」というドライブが認識される

  5. 「MICROBIT」ドライブに先ほどダウンロードしたHEXファイルをドロップする

  6. 書き込みが終わると、自動的に実行が開始される

コースのつくりかた

白っぽい床に黒い線が書ければ、たいてい動きます。

  • 大きな紙にマジックでコースを描く
  • 丸められるタイプのホワイトボードに、マーカーでコースを描く
  • 紙やホワイトボードなど白いものに、黒いマスキングテープでコースをつくる

プログラムを改造する

滑らかにライトレースする

左右の明るさの差が大きいときは速く曲がる、小さいときはゆっくり曲がるなどの工夫をすることで、滑らかにライントレースすることができます。

線が交差しているコースに対応する

線が交差しているところは、コースが曲がっているのか、線が交差しているだけなのかロボットにはわからないため、横道にそれたりすることがあります。
線が交差しているところでも、必ずまっすぐ進むためには、どうしたらいいか考えてみましょう。

ロボットを改造する

  • 光センサの数を増やす
  • 別の工作キットのロボットに換装する
  • 自分だけのロボットを一から作る

など、いろいろ工夫できそうです。

ステップアップする

大会に出場する

自信がついてきたら、大会に挑戦してみるのもいいでしょう。

ロボカップジュニア レスキューライン

ライントレースを基本とし、障害をクリアしていく競技です。

ロボカップジュニア公式サイト
http://www.robocupjunior.jp/

ロボカップジュニア レスキューライン 2017年 ルール
https://drive.google.com/file/d/0B-L-Ct_ZkSmudnl5X3ZQd0NzQWM/view

おまけ

ライントレースも極めるとこのようになります。

こちらはタイヤでなく虫の足みたいなもので動いていますね。

ABOUTこの記事をかいた人

小川 久史

CoderDojo紙屋町メンター。ソフトからハードまで、つくることならなんでもござれ。ニンジャの好奇心を刺激する術を模索中。