ジャイロコンパス+測距輪でのナビゲーション(5)
ROSさんお手やわらかに/花岡ちゃんのウィークエンド
まずは回路図ですが、今回は作成していません。公開するPICのソースコードの最初の部分にポート割当がありますので、それを参照してください。PIC周りの回路はこのシリーズの投稿を参照願います。
ジャイロの接続はこの投稿を見てください。
使用している液晶は秋月の小型i2cタイプです。他のモノを使うにはコードを修正する必要があります。今回はこちらの変換基板がついたものを使いました。プルアップ抵抗が内蔵されているので便利です。
モータードライバは一般的なものでOKです。パワー制御はソフトでやっているので、ドライバにPWMの機能は必要ありません。小型モーターならTB6612FNGを使ったこのボードがお勧めです。PWMはHレベルに固定して使います。
ソフトウェアはおなじみMPLAB XとXC16で開発しました。
main.cに全てが記述してあります。ソフトを起動するとクレジットを表示した後、"PUSH START"を表示して待機します。このとき、LEDは1秒周期で点滅します。ボタンを押すと"INIT GYRO"としばらく表示します。ジャイロに初期化コマンドを送っているので、ロボットを動かさないようにしてください。その後、この投稿にあるように、1m四方の正方形を描いて走行します。走行中は、液晶にX座標(上側)Y座標(下側)を表示します。停止後、10秒すると再度"PUSH START"が表示されます。
使用する前に55行目からの「身体性パラメータ」を自作のロボットボディに合わせて設定する必要があります。
測距輪やジャイロ、モーターのテストのためのテストプログラムも入っています。1229行から、テストプログラムの使用法が記載されているので、参照してください。
プログラムは単純です。navigation(double x,double y)に目標地点のx,y座標を与えると、その位置へ直線移動します。目標地点との距離が3cm以下になると、モーターブレーキをかけてリターンします。座標系は一つ前の投稿を参照してください。
ロボットの初期位置はRposX,RposYにセットします。デモプログラムでは初期位置を0,0にしています。(1219,1220行)、同様にアタマの向いている方位(ヘッディング)はinit_Gcompass(double val)に与えてジャイロを初期化します。デモでは0(Y軸方向)に初期化しています。(1224行)
次回は実験を総括します。
« ジャイロコンパス+測距輪でのナビゲーション(4) | トップページ | ジャイロコンパス+測距輪でのナビゲーション(6) »
「花岡ちゃんのウィークエンド」カテゴリの記事
- レーザー距離センサVL53L0Xを複数使うには(2022.05.01)
- 【訂正!】PIC24Fでレーザー距離センサVL53L0Xを使う(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(おしまい)(2022.04.14)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その3)(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その2)(2022.04.12)
「ROSさんお手やわらかに」カテゴリの記事
- 3Dプリンターで作る簡単turtlebot(おしまい)(2017.01.07)
- 3Dプリンターで作る簡単turtlebot(raspberry pi3の取り付け)(2017.01.03)
- 3Dプリンターで作る簡単turtlebot(kinectの取り付け)(2017.01.02)
- 3Dプリンターで作る簡単turtlebot(パーツの組み立て2)(2016.12.29)
- 3Dプリンターで作る簡単turtlebot(パーツの組み立て1)(2016.12.25)
« ジャイロコンパス+測距輪でのナビゲーション(4) | トップページ | ジャイロコンパス+測距輪でのナビゲーション(6) »
コメント