こんにちは、しゅうです。パン作り、今回はメロンパン作りました。メロンパンのあの模様って、クッキー生地とパン生地がちゃんとくっつくようにするためのものだったんですね。
前回はプログラムの書き込みを行いました。今回はPi:Co Classic 3でいよいよ迷路にチャレンジします、と思いきや・・・!
その前に!
同じPi:Co Classic 3を使用しているとはいえ、人によってはセンサが少し上向きだったり、左右の車輪幅が異なったりします。
そのため、作った機体をそのまま迷路の中で走らせようとすると失敗する可能性があります。
それを未然に防ぐために今回はパラメータ調整を行っていきます。これのやり方もなんとマニュアルに含まれています。以下順番に解説を行っていきます。
- 四つのセンサの角度調整
- センサ値の確認及び調整
- タイヤ径やタイヤ間距離の調整
特に二番目と三番目はかなり重要になります。厳密に調整すれば綺麗に迷路の走行を行うことができるので細かく調整していきます!(今回は少し長くなりそうなので、2番目のセンサ値までやります)
今回はサンプルプログラム8を用いるので、前回の復習もかねて書き込みをしておいて下さい。また、調整中にバッテリーのケーブルが邪魔になってしまう可能性があるので、いったん外して自由に動かせる状態で接続すると良いです。
1) センサの角度調整
半田付けを行った時に、LEDやフォトトランジスタの足を90度曲げてから実装を行いました。この時、センサの向きによって迷路の壁より上にLEDが照射してしまう場合があります。このままだと照射した光が反射されずに遠くまで行ってしまい、フォトトランジスタが上手に認識することができなくなってしまいます。
そこで、次の画像のように気持ち下向きにすると良いでしょう。
これにより、次の画像のようにセンサから出ている光が壁を超えないようになります。このLEDの便利なところですね、フォトトランジスタは赤外線をみているので本来は人間が見えない光を認識しているわけです。そこでPi:Coで用いられているLEDは赤色も発光することによりどこらへんに光が当たっているのかがわかるようになっています。
角度が決定したら、LEDをグルーガンなどで固定するとなおいいです!ただこの時、LEDやフォトトランジスタをノリで覆わないように注意しましょう。
2) センサ値の確認及び調整
調整モードに入ります、モード15を実行すると入れます。下のgif画像では調整モードに入るところを示しています。4番目のLEDがふんわり光る様子が見れますが、実は点滅しています笑
調整モード1を実行すると、Pi:CoがUSBを通じてパソコンにセンサの値を送信します。
この時、パソコン上でセンサ値を参照するためにTeraTermを用います。調整モード1を実行し、Pi:Coをパソコンに接続してください。この状態でTeraTermを起動します。すると、次のような画面が出てきます。
ここで、下段のSerialを選択してOKをクリックしましょう。この時、COMについている番号はパソコンによって異なりますので一致していなくても問題ありません。接続する機器をPi:Coだけに限定するといいかもしれません。OKをクリックすると、Pi:Coに搭載されている各センサ値とバッテリー残量が表示されます。
ここで表示されている各行は次のようになっております。手をかざして見ると、値が変化します。
r_sen 右センサ
fr_sen 右前センサ
fl_sen 左前センサ
l_sen 左センサ
VDD バッテリー残量
それでは各調整に入ります。まずは、次の図のようにPi:Co Classic 3を区画の中央に、横の壁と平行になるように置きましょう。
この時のr_sen
とl_sen
の値をparameters.h
に書き込みます。次の図にその様子を示しています。ここで調整する値はREF_SEN_R
とREF_SEN_L
です。
r_sen -> REF_SEN_R
l_sen -> REF_SEN_L
ちなみに、コメントアウトをしているところは会社で調整を行った時の数値で、その上にあるのが自宅で調整を行った時の数値です。かなり差がありますので、環境による影響は大きいということがわかります。次に左右の壁があるかないかの判定を行うための閾値を設定します。図のように、Pi:Coを左端か右端に設置してください。
ここで調整する値はTH_SEN_R
とTH_SEN_L
です。
左端に置いた時のr_sen -> TH_SEN_R
右端に置いた時のl_sen -> TH_SEN_L
最後に前方に壁があるかないかの判定を行うための閾値を設定します。図のようにPi:Coを設置してください。ここでは、横に搭載されているセンサと柱が並ぶようにしてください。
ここで調整する値はTH_SEN_FR
とTH_SEN_FL
です。
fr_sen -> TH_SEN_FR
fl_sen -> TH_SEN_FL
ひとまず・・・!
これでセンサ値の調整は完了です。変更した値が反映されるためには、parameters.h
を保存しビルド、コンパイル、そしてPi:Coに書き込みを行ってください。これでとりあえず左手法(モード1)を実行することができます。
次回は、より正確にそして綺麗に走行するためにタイヤ周りの調整を行います。