​大会でよく使う制御の一つであるライントレースをマスターしましょう。

プログラムを作るうえで一番最初に考えることは順序だててアルゴリズムを考えることです。

その中で「フローチャート」というアルゴリズムを図を使って見やすくしたものがあります。ではどういうものか体験してみましょう。

身近にあるのアルゴリズムを考えてみましょう。

​と、その前にお手本のライントレースを見てみましょう。

 

​下図に簡単にまとめましたがこれにはループ・スイッチの機能があります。

yesi.png
no.png
フローチャート.PNG

次は実際に自分でライントレースのフローチャートを考えてみましょう。

ライントレースは左図のように黒線に沿ってロボットを動かすことを言います。またライントレースにはいろいろなやり方がありその中でこのページでは二種類紹介します。今から紹介するのはON、OFF制御といいます。これは黒になったらこう、白になったらこうなど1か2みたいな感じでおこなうからです。

​WROのコースでも黒線がとても多いのでマスターしましょう。

zu1.PNG
フローチャート2.PNG

それでは上図のフローチャートをもとにマインドストームでつくるとこうなります。

「光センサーの値が25以上?」というのは目標値です。黒線の値が約8~19で白が55~70でON、OFF制御の場合、中間より少し黒寄りにするとよいです。

コメント 2019-10-31 235757.png

​参考動画

これが一つ目のプログラムです。二つ目はP制御といい比例を使ったプログラムを作ります。今回はステアリングを使ってステアリングの値を変えていきます。ほかに左右のモーターのパワーを調整するのもありますが今回は省略します。

​まずはP制御がどういうものかを説明します。

].png

P制御はセンサーの値と目標値との差に比例させてモーターのステアリングの値を調整します。比例はy=axですよね。その「a」を比例ゲイン(Kp)といいます。例えば目標値が30で実際のセンサーの値が50だとすると差が+20なのでその差にKpをかけます。Kpを2とすればステアリングに入れる値は40となり右に曲がります。センサーの値が10だったら差がー20になります。そこにKpをかけてー40となります。なので左に曲がります。これを式で表すと

   P = (目標値 ー 計測した値) × Kp(比例ゲイン)

 

となります。「P」とはステアリングに入れる値です。調整をするときはKpの値を調節します。機体の揺れが大きかったらKpを下げカーブで曲がり切らなかったらKpを上げるなどして完璧にしましょう。 これをもとにプログラミングを作ってみましょう。

​下のブロックは今回使う「数学ブロック」です。このブロックは自動で指定した数字を入れると計算してくれるブロックです。

コメント 2019-11-01 204410.png

ライントレースのプログラム

コメント 2019-11-01 204046.png

このプログラムは光センサーは一つでやっていますが次は二つでやります。

二つの時は「目標値ー計測した値」ではなく

 

     「右の光センサーの値 - 左の光センサーの値」

に変えることでできます。プログラム上にある黄色い線でつながっているものは「データワイヤー」といい数値などをほかのブロックに伝えるときに使うものです。光センサーブロックのように下に凸の形から出しへこんでいるところに入れられます。二つの時も今回はステアリングを使います。ではやってみましょう!

コメント 2019-11-01 213522.png

青色のブロックはメモなので無視していいです。ですがプログラミングを作るうえで自分だけがわかるプログラムを作るのではなく誰でもがわかるものを作ることが大切です。なのでメモなどを残すことも一つの手です。

​数学ブロック等のデーター操作ブロックの説明は応用編でやります。