このプログラムは、Arduinoを用いて多方向移動ロボットの制御を行うものです。IMUセンサー(BNO055)による姿勢検出と、複数のアナログセンサーによるボール検知を組み合わせて、モーター出力を制御します。
-
IMUセンサー(BNO055)
姿勢(ヨー角)を取得し、ロボットの向きを補正します。角度が±180度を超えた場合は補正処理を行い、モーター出力に反映します。 -
ボールセンサー
前後左右および斜め方向の複数のアナログセンサー値を取得し、ボールの位置を推定します(ただし、明確な座標推定アルゴリズムは未実装)。センサー値に応じて、ロボットの移動方向を決定します。 -
モーター制御
姿勢補正値とボール検知値を合成し、4つのモーター(各2端子)に対してPWM出力を行います。これにより、ロボットはボールの方向に向かって移動しつつ、姿勢を維持します。
998989.ino
メインのArduinoスケッチ。センサー初期化、値取得、制御ロジック、モーター出力までを一括管理。
- ボール位置の座標推定は三角関数を用いて一部計算していますが、明確な位置推定アルゴリズムは未実装です。
- IMUセンサーのキャリブレーションが必要です。
- IMUセンサーと複数アナログセンサーによるロボット制御プログラムを追加
- 姿勢補正とボール検知値を合成し、モーター出力を制御
- ボール位置推定は三角関数を用いるが、座標推定は未実装
multi-directional-ball-robot-arduino