diff --git a/flix/flix.ino b/flix/flix.ino index ef270ad..cbf9671 100644 --- a/flix/flix.ino +++ b/flix/flix.ino @@ -35,14 +35,10 @@ Vector acc; // accelerometer data, m/s/s Quaternion attitude; // estimated attitude bool calibrating; // flag we're calibrating -void setupDebug(); -void lowPowerMode(); - void setup() { Serial.begin(SERIAL_BAUDRATE); Serial.println("Initializing flix"); - setupTime(); setupLED(); setupMotors(); setLED(true); diff --git a/flix/imu.ino b/flix/imu.ino index 7b99cec..9c74121 100644 --- a/flix/imu.ino +++ b/flix/imu.ino @@ -59,7 +59,7 @@ static void calibrateGyro() Serial.println("Calibrating gyro, stand still"); delay(500); int status = IMU.calibrateGyro(); - Serial.println("Calibration status: " + String(status)); + Serial.printf("Calibration status: %d\n", status); Serial.print("Gyro bias: "); Serial.print(IMU.getGyroBiasX_rads(), 10); Serial.print(" "); Serial.print(IMU.getGyroBiasY_rads(), 10); Serial.print(" "); diff --git a/flix/led.ino b/flix/led.ino index 1884202..4815a97 100644 --- a/flix/led.ino +++ b/flix/led.ino @@ -1,18 +1,7 @@ // Copyright (c) 2023 Oleg Kalachev // Repository: https://github.com/okalachev/flix -#define LED_PIN 2 -#define BLINK_FAST_PERIOD 300000 -#define BLINK_SLOW_PERIOD 1000000 - -static bool state; - -static enum { - OFF, - ON, - BLINK_FAST, - BLINK_SLOW -} LEDscheme = OFF; +#define BLINK_PERIOD 500000 void setupLED() { @@ -24,20 +13,7 @@ void setLED(bool on) digitalWrite(LED_BUILTIN, on ? HIGH : LOW); } -void proceedLED() -{ - // TODO: this won't work - // TODO:: just check is current second even or odd - if (LEDscheme == BLINK_FAST && stepTime % BLINK_FAST_PERIOD == 0) { - state != state; - digitalWrite(LED_BUILTIN, state ? HIGH : LOW); - } else if (LEDscheme == BLINK_SLOW && stepTime % BLINK_SLOW_PERIOD == 0) { - state != state; - digitalWrite(LED_BUILTIN, state ? HIGH : LOW); - } -} - void blinkLED() { - setLED(micros() / 500000 % 2); + setLED(micros() / BLINK_PERIOD % 2); } diff --git a/flix/pid.hpp b/flix/pid.hpp index 16fc76a..5a16bc7 100644 --- a/flix/pid.hpp +++ b/flix/pid.hpp @@ -1,6 +1,8 @@ // Copyright (c) 2023 Oleg Kalachev // Repository: https://github.com/okalachev/flix +// PID controller implementation + #pragma once class PID diff --git a/flix/time.ino b/flix/time.ino index 0dca65e..5830ea1 100644 --- a/flix/time.ino +++ b/flix/time.ino @@ -7,11 +7,6 @@ const uint32_t S = 1000000; static uint32_t stepsPerSecondCurrent; static uint32_t stepsPerSecondCurrentLast; -void setupTime() -{ - startTime = micros(); -} - void step() { steps++; auto time = micros(); diff --git a/flix/util.ino b/flix/util.ino index 80e1c6b..c9b9f1f 100644 --- a/flix/util.ino +++ b/flix/util.ino @@ -13,11 +13,6 @@ float mapff(float x, float in_min, float in_max, float out_min, float out_max) return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } -// float hypot3(float x, float y, float z) -// { -// return sqrt(x * x + y * y + z * z); -// } - int8_t sign(float x) { return (x > 0) - (x < 0); @@ -28,19 +23,4 @@ float randomFloat(float min, float max) return min + (max - min) * (float)rand() / RAND_MAX; } -// === printf === -// https://github.com/jandelgado/log4arduino/blob/master/src/log4arduino.cpp#L51 -// https://webhamster.ru/mytetrashare/index/mtb0/16381244680p5beet5d6 - -#ifdef ARDUINO -#define PRINTF_MAX_STRING_LEN 200 -void printf(const __FlashStringHelper *fmt, ...) -{ - char buf[PRINTF_MAX_STRING_LEN]; - va_list args; - va_start(args, fmt); - vsnprintf(buf, PRINTF_MAX_STRING_LEN, (PGM_P)fmt, args); - va_end(args); - Serial.print(buf); } -#endif diff --git a/flix/wifi.ino b/flix/wifi.ino index c64ed4b..3832859 100644 --- a/flix/wifi.ino +++ b/flix/wifi.ino @@ -3,6 +3,7 @@ // https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFi/examples/WiFiAccessPoint/WiFiAccessPoint.ino // https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFi/examples/WiFiClient/WiFiClient.ino +// https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFi/examples/WiFiUDPClient/WiFiUDPClient.ino #if WIFI_ENABLED == 1