diff --git a/docs/firmware.md b/docs/firmware.md index b073d68..45ad004 100644 --- a/docs/firmware.md +++ b/docs/firmware.md @@ -13,7 +13,7 @@ The main loop is running at 1000 Hz. All the dataflow is happening through globa * `rates` *(Vector)* — filtered angular rates, *rad/s*. * `attitude` *(Quaternion)* — estimated attitude (orientation) of drone. * `controls` *(float[])* — user control inputs from the RC, normalized to [-1, 1] range. -* `motors` *(float[])* — motor outputs, normalized to [-1, 1] range; reverse rotation is possible. +* `motors` *(float[])* — motor outputs, normalized to [0, 1] range; reverse rotation is possible. ## Source files diff --git a/flix/flix.ino b/flix/flix.ino index f07619a..97212a4 100644 --- a/flix/flix.ino +++ b/flix/flix.ino @@ -25,7 +25,7 @@ Vector gyro; // gyroscope data Vector acc; // accelerometer data, m/s/s Vector rates; // filtered angular rates, rad/s Quaternion attitude; // estimated attitude -float motors[4]; // normalized motors thrust in range [-1..1] +float motors[4]; // normalized motors thrust in range [0..1] void setup() { Serial.begin(SERIAL_BAUDRATE); diff --git a/flix/imu.ino b/flix/imu.ino index 0c5d1aa..e2b4b3f 100644 --- a/flix/imu.ino +++ b/flix/imu.ino @@ -10,9 +10,8 @@ MPU9250 IMU(SPI); // NOTE: use 'ca' command to calibrate the accelerometer and put the values here -Vector accBias(0, 0, 0); +Vector accBias; Vector accScale(1, 1, 1); - Vector gyroBias; void setupIMU() { diff --git a/flix/motors.ino b/flix/motors.ino index 6200b8c..79db78b 100644 --- a/flix/motors.ino +++ b/flix/motors.ino @@ -49,7 +49,7 @@ bool motorsActive() { return motors[0] != 0 || motors[1] != 0 || motors[2] != 0 || motors[3] != 0; } -void testMotor(uint8_t n) { +void testMotor(int n) { Serial.printf("Testing motor %d\n", n); motors[n] = 1; delay(50); // ESP32 may need to wait until the end of the current cycle to change duty https://github.com/espressif/arduino-esp32/issues/5306