モータに電圧を何パターンかかけて、その時のエンコーダの回転数を取得
値を表にして、近似曲線をだして、逆起電力とモータとギヤの摩擦分を推定する
逆起電力定数は0.07[mV/rpm]位になっている(モータはMK06-4.5)
モータに電圧を何パターンかかけて、その時のエンコーダの回転数を取得
値を表にして、近似曲線をだして、逆起電力とモータとギヤの摩擦分を推定する
逆起電力定数は0.07[mV/rpm]位になっている(モータはMK06-4.5)
壁検出の閾値を確認する
前壁
目標:柱位置-20mmで検出
実測:柱位置-25mmが閾値
横壁
目標:壁と反対側端に車体があるときも検出
実測:壁と反対側端に車体があり、かつ、壁が10mm離れている場所が閾値(感度を上げ過ぎていたような)
光軸の合わせ方のノウハウが無いので試行錯誤する。
横センサは、車体を区間中心に置いてから少しづつ前に進ませた時に、左右同時にセンサの反応が消える(ある閾値以下になる)ように角度を合わせる。上図左
前センサは、車体を区間中心に置いて、半区間前の左右から壁を突き出して行き、同じ突き出し量で左右の前センサが反応するように角度を合わせる。上図右
次にセンサ感度の調整
赤外LEDの発光から、その相手のフォトトラ出力のADC取り込みまでの時間で調整する。
フォトトラの応答はインパルス波形になるので、その最初の立ち上がり波形のどのタイミングで取り込みかで調整する
センサ感度を調整した後、もう一度光軸を微調整して完了とする
ジャンパー1本目。SPIの~CS端子にPUを忘れていた。
問題となったのはMPU-6000の動作で、電源投入時にアサートされているとクロックの入力に関係なくSDOから何かしらの信号を出すようだ。
今回の回路では、MPU-6000のSDO端子はRX631のPC7に繋がっている。PC7端子はファーム書き換え時にブートモードで起動するためにLである必要があるが、SDOがHになるタイミングによって、上手くブートモードで起動できない場合があった。
現在のアルゴリズムめも
最初のゴールまで:
・ゴール座標を目的地にして歩数のみで足立法
・Uターン発生時の停止中に仮想壁や枝刈り処理を実施
ゴール到達後の累計探索時間5分まで:
・4方向の壁のうち1方向も分からない区間をゴールとして歩数のみで足立法
・Uターン発生時の停止中に仮想壁や枝刈り処理を実施
・すべてのゴールに到達たら探索打ち切り
累計探索時間5分経過後:
・スタートからゴールまでの重みづけあり(計算量大)のルート上の未探索区間をゴールにして、歩数のみで足立法
・Uターン発生時の停止中に仮想壁や枝刈り処理を実施
・スタートからゴールまでの重みづけありのルートを再計算
・すべてのゴールに到達したら探索打ち切り
・6分経過以降にUターンが発生したら探索打ち切り
最後:
・スタート座標を目的地にして歩数のみで足立法
/////////
現在、時間のかかる重みづけありのルート計算は走行停止中のみ実施しているが
既知区間加速走行中やターン中に行えそうである
マウスを始めてからそのエンコーダにはネミコンの7Sを使用している。
このエンコーダは(内径6mm細目ネジの)ナットで固定するタイプのだが、付属してくるナットは大きくて使いにくい。
代替品を探した結果、3.5mmステレオジャックの固定用のナットが同サイズだったので使用している。
CUI Devices 3.5MM-NUT-E
左:付属ナット(0.37g) 右:3.5MM-NUT-E(0.23g)