3. 移動と回転

このプロジェクトでは、Zeus Carは回転のパラメータを増やすことで、その場でスピンしたり、弧を描いて外に出たりすることができます。

どのように実行するか?

  1. ESP32-CAMとArduinoボードは、同じRX(受信)およびTX(送信)ピンを共有しています。そのため、コードをアップロードする際は、ESP32-CAMの接続を一度切断して、衝突や潜在的な問題を避ける必要があります。

    ../_images/unplug_cam1.png
  2. zeus-car-main\examples\3_rotate_and_move のパスの下にある 3_rotate_and_move.ino ファイルを開きます。

  3. コードが正常にアップロードされた後、電源スイッチを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は自身を回転させます。