3. 移動と回転¶
このプロジェクトでは、Zeus Carは回転のパラメータを増やすことで、その場でスピンしたり、弧を描いて外に出たりすることができます。
どのように実行するか?
ESP32-CAMとArduinoボードは、同じRX(受信)およびTX(送信)ピンを共有しています。そのため、コードをアップロードする際は、ESP32-CAMの接続を一度切断して、衝突や潜在的な問題を避ける必要があります。
zeus-car-main\examples\3_rotate_and_move
のパスの下にある3_rotate_and_move.ino
ファイルを開きます。コードが正常にアップロードされた後、電源スイッチをONにしてZeus Carを起動します。Zeus Carは左に回転してから右に戻り、元の位置に戻ります。その後、車は外側の弧をゆっくりと回転し、回転角度が徐々に減少して、最終的に自分自身で回転します。
動作原理は?
ここでは、Zeus Carの移動関数 carMove()
に回転力パラメータ rot
が追加されています。
void carMove(int16_t angle, int8_t power, int8_t rot)
angle
: 車を移動させたい方向。車の前方を0度として、反時計回りに角度を増やします。power
: 移動のパワー、範囲は-100% ~ 100%です。power
が正の場合、車は前進し、その逆の場合は後退します。rot
: 回転力、範囲は-100% ~ 100%です。rot
が正の場合、車は反時計回りに回転し、その逆も同様です。
power
が0で rot
が0でない場合、Zeus Carはその場でスピンします。回転力が高いほど、回転速度も速くなります。 rot
が正の場合、車は反時計回りに回転し、その逆も同様です。
power
が0でない場合、Zeus Carが弧を描いて外に出ることがわかります。 rot
が増加するにつれて、回転角度も増加し、値が十分に大きくなると、Zeus Carは自身を回転させます。