finaly fix hopefully

This commit is contained in:
2025-01-28 14:50:33 +01:00
parent f4c1bff75e
commit 9b5edfa40f

View File

@@ -7,102 +7,104 @@
First used the wrong library I used the adafruit bno0xx library instead of the sparkfun bno08x library First used the wrong library I used the adafruit bno0xx library instead of the sparkfun bno08x library
??? failure ??? failure
```cpp
#include "conf.h"
#include <Adafruit_BNO08x.h>
#include <sh2.h>
#include <sh2_SensorValue.h>
#include <sh2_err.h>
#include <sh2_hal.h>
#include <sh2_util.h>
#include <shtp.h>
Adafruit_BNO08x bno08x(BNOINTERRUPTSIG); ```cpp
sh2_SensorValue_t sensorValue; #include "conf.h"
#include <Adafruit_BNO08x.h>
#include <sh2.h>
#include <sh2_SensorValue.h>
#include <sh2_err.h>
#include <sh2_hal.h>
#include <sh2_util.h>
#include <shtp.h>
void setup() { Adafruit_BNO08x bno08x(BNOINTERRUPTSIG);
Serial.begin(9600); sh2_SensorValue_t sensorValue;
Serial.println("setup started");
// Setup all ESC
// ledcAttach(MOTOR1, PWMFREQ, PWMRESOLUTION);
// ledcAttach(MOTOR2, PWMFREQ, PWMRESOLUTION);
// ledcAttach(MOTOR3, PWMFREQ, PWMRESOLUTION);
// ledcAttach(MOTOR4, PWMFREQ, PWMRESOLUTION);
Serial.print("Setup Started");
}
void loop() { void setup() {
// put your main code here, to run repeatedly: Serial.begin(9600);
sleep(3) Serial.println("setup started");
if (!bno08x.begin_I2C()) { // Setup all ESC
Serial.println("Failed to find BNO08x chip"); // ledcAttach(MOTOR1, PWMFREQ, PWMRESOLUTION);
sleep(1); // ledcAttach(MOTOR2, PWMFREQ, PWMRESOLUTION);
} // ledcAttach(MOTOR3, PWMFREQ, PWMRESOLUTION);
// ledcAttach(MOTOR4, PWMFREQ, PWMRESOLUTION);
Serial.print("Setup Started");
}
void loop() {
// put your main code here, to run repeatedly:
sleep(3)
if (!bno08x.begin_I2C()) {
Serial.println("Failed to find BNO08x chip");
sleep(1);
}
Serial.print("Game Rotation Vector - r: "); Serial.print("Game Rotation Vector - r: ");
Serial.print(sensorValue.un.gameRotationVector.real); Serial.print(sensorValue.un.gameRotationVector.real);
Serial.print(" i: "); Serial.print(" i: ");
Serial.print(sensorValue.un.gameRotationVector.i); Serial.print(sensorValue.un.gameRotationVector.i);
Serial.print(" j: "); Serial.print(" j: ");
Serial.print(sensorValue.un.gameRotationVector.j); Serial.print(sensorValue.un.gameRotationVector.j);
Serial.print(" k: "); Serial.print(" k: ");
Serial.println(sensorValue.un.gameRotationVector.k); Serial.println(sensorValue.un.gameRotationVector.k);
} }
//https://randomnerdtutorials.com/esp32-pwm-arduino-ide/ //https://randomnerdtutorials.com/esp32-pwm-arduino-ide/
//https://github.com/adafruit/Adafruit_BNO08x/blob/master/examples/rotation_vector/rotation_vector.ino#L25 //https://github.com/adafruit/Adafruit_BNO08x/blob/master/examples/rotation_vector/rotation_vector.ino#L25
``` ```
??? example ??? example
```cpp
#include <SparkFun_BNO080_Arduino_Library.h>
#include <Wire.h>
#include "conf.h"
BNO080 myIMU; ```cpp
#include <SparkFun_BNO080_Arduino_Library.h>
#include <Wire.h>
#include "conf.h"
void setup() { BNO080 myIMU;
Serial.begin(9600);
Serial.println("setup started");
// Setup all ESC
// ledcAttach(MOTOR1, PWMFREQ, PWMRESOLUTION);
// ledcAttach(MOTOR2, PWMFREQ, PWMRESOLUTION);
// ledcAttach(MOTOR3, PWMFREQ, PWMRESOLUTION);
// ledcAttach(MOTOR4, PWMFREQ, PWMRESOLUTION);
Serial.print("Setup Started");
Wire.begin(); void setup() {
myIMU.begin(); Serial.begin(9600);
Wire.setClock(400000); //Increase I2C data rate to 400kHz Serial.println("setup started");
myIMU.enableRotationVector(50); //Send data update every 50ms} // Setup all ESC
} // ledcAttach(MOTOR1, PWMFREQ, PWMRESOLUTION);
// ledcAttach(MOTOR2, PWMFREQ, PWMRESOLUTION);
// ledcAttach(MOTOR3, PWMFREQ, PWMRESOLUTION);
// ledcAttach(MOTOR4, PWMFREQ, PWMRESOLUTION);
Serial.print("Setup Started");
Wire.begin();
myIMU.begin();
Wire.setClock(400000); //Increase I2C data rate to 400kHz
myIMU.enableRotationVector(50); //Send data update every 50ms}
}
void loop() { void loop() {
if (myIMU.dataAvailable() == true) { if (myIMU.dataAvailable() == true) {
float roll = (myIMU.getRoll()) * 180.0 / PI; // Convert roll to degrees float roll = (myIMU.getRoll()) * 180.0 / PI; // Convert roll to degrees
float pitch = (myIMU.getPitch()) * 180.0 / PI; // Convert pitch to degrees float pitch = (myIMU.getPitch()) * 180.0 / PI; // Convert pitch to degrees
float yaw = (myIMU.getYaw()) * 180.0 / PI; // Convert yaw / heading to degrees float yaw = (myIMU.getYaw()) * 180.0 / PI; // Convert yaw / heading to degrees
Serial.print(roll, 1); Serial.print(roll, 1);
Serial.print(F(",")); Serial.print(F(","));
Serial.print(pitch, 1); Serial.print(pitch, 1);
Serial.print(F(",")); Serial.print(F(","));
Serial.print(yaw, 1); Serial.print(yaw, 1);
Serial.println(); Serial.println();
} }
} }
void calibrateESC() { void calibrateESC() {
ledcWrite(MOTOR1, 1100); ledcWrite(MOTOR1, 1100);
ledcWrite(MOTOR2, 1100); ledcWrite(MOTOR2, 1100);
ledcWrite(MOTOR3, 1100); ledcWrite(MOTOR3, 1100);
ledcWrite(MOTOR4, 1100); ledcWrite(MOTOR4, 1100);
} }
//https://randomnerdtutorials.com/esp32-pwm-arduino-ide/ //https://randomnerdtutorials.com/esp32-pwm-arduino-ide/
//https://github.com/sparkfun/SparkFun_BNO080_Arduino_Library/blob/main/examples/Example24-UncalibratedGyro/Example24-UncalibratedGyro.ino //https://github.com/sparkfun/SparkFun_BNO080_Arduino_Library/blob/main/examples/Example24-UncalibratedGyro/Example24-UncalibratedGyro.ino
``` ```