回転センサとステアリング機構
4輪ロボットには、本物の自動車と似たつくりのステアリング機構をつけてあります。
モーターの回転からウォームギアを使って回転速度を落としトルクを上げ、そこからラックギアーを使ってタイヤに接続されたロッドを動かしてステアリングをきります。
以下に4輪ロボットのステアリング機構部の拡大図を示します。
 |  |
ウォームギア | ラックギア |
 |
ステアリング機構 |
ここで、この図の真中のあたりに青い四角い箱が見えます。右端に少しケーブルが出ている物です。
これが回転センサになります。
回転センサはNQCチュートリアルの中でも解説していますが、これはRISに付属のパーツではありません。
別売りで売っています。
回転センサから出ているロッドがモーターへ接続されています。
ここでは回転センサを使用してステアリング機構を制御します。
しかし制御といっても、少しも難しくありません。
回転センサの使用例(ステアリング機構部)
ステアリング機構では、ステアリングをきりコーナリングをした後、直進するときは必ずタイヤを
垂直にしなければなりません。
そこで、この回転センサが活躍します。回転センサでステアリングを駆動するモーターの回転角を
読み取り、タイヤを垂直にもどすプログラムが簡単に作成できます。
まず回転センサを使用して、タイヤの角度を元にもどすプログラムをサンプルプログラムとして以下に示します。
回転センサを使用したサンプルプログラム
 |  |
このプログラムは、ランダムな角度と方向にステアリングをきって、それをもとの位置(垂直)にタイヤをもどす
テストプログラムです。
ランダムにステアリングをきり、タイヤを元の位置にもどしあとに、ビープ音がなるように設定されています。
プログラム詳細解説
- メインタスク
メインタスクでは、変数rolとangにランダムな数値を与え、ステアリングを左右角度もランダムに動かします。
- サブルーチン vertical
verticalでは、今現在、タイヤが左右どちらへ曲がっているかを検索します。回転センサの値は、RCXのプログラム
を走らせた瞬間がゼロなので、ゼロより大きいか小さいかで、左右どちらに曲がっているか検出できます。
そして左に曲がっていたら右、右に曲がっていたら左、とモーターを回転させステアリングを逆にきりはじめます。
- インライン関数 turn
turnでは、verticalでステアリングを逆に回して垂直に戻しているのを、回転センサがゼロの値を検出した時点で
モーターをストップさせます。この動作をしないと、永久にモーターは回りつづけてしまい、ステアリングを逆にきった
意味がなくなります。
前述した通り回転センサは、プログラムを走らせた瞬間がゼロの値になります。ですからこのプログラムでは
プログラムを走らせる前のタイヤの角度が垂直という前提で行っています。
初めにタイヤの角度が傾いていると、プログラムを実行しても、垂直でなく初めのタイヤの角度に戻る事になります。
NQCにはセンサの値をクリアする関数も存在しますが、ここでは使用していません。
NQCのチュートリアル対応表
- random():ゼロから()内までの整数値をランダムで与える。→チュートリアル14ページ
- サブルーチン:重複するプログラムを別にまとめておく。NQCでは8個まで製作可能。→チュートリアル23ページ
- インライン関数:引数をしようできる。無限に製作可能。サブルーチンに比べメモリをくう。
呼び出された数だけ複製される。メモリ→チュートリアル24ページ
|
ここでは、4輪ロボットのステアリング機構と回転センサの使用について解説しました。
次のページで、駆動部分と全体のプログラミングを解説します。