feat: 全量同步 254 个常用的 Arduino 扩展库文件
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
#include <MPU9250_asukiaaa.h>
|
||||
|
||||
#ifdef _ESP32_HAL_I2C_H_
|
||||
#define SDA_PIN 21
|
||||
#define SCL_PIN 22
|
||||
#endif
|
||||
|
||||
MPU9250_asukiaaa mySensor;
|
||||
float aX, aY, aZ, aSqrt, gX, gY, gZ, mDirection, mX, mY, mZ;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
while(!Serial);
|
||||
Serial.println("started");
|
||||
|
||||
#ifdef _ESP32_HAL_I2C_H_ // For ESP32
|
||||
Wire.begin(SDA_PIN, SCL_PIN);
|
||||
mySensor.setWire(&Wire);
|
||||
#endif
|
||||
|
||||
mySensor.beginAccel();
|
||||
mySensor.beginGyro();
|
||||
mySensor.beginMag();
|
||||
|
||||
// You can set your own offset for mag values
|
||||
// mySensor.magXOffset = -50;
|
||||
// mySensor.magYOffset = -55;
|
||||
// mySensor.magZOffset = -10;
|
||||
}
|
||||
|
||||
void loop() {
|
||||
uint8_t sensorId;
|
||||
if (mySensor.readId(&sensorId) == 0) {
|
||||
Serial.println("sensorId: " + String(sensorId));
|
||||
} else {
|
||||
Serial.println("Cannot read sensorId");
|
||||
}
|
||||
|
||||
if (mySensor.accelUpdate() == 0) {
|
||||
aX = mySensor.accelX();
|
||||
aY = mySensor.accelY();
|
||||
aZ = mySensor.accelZ();
|
||||
aSqrt = mySensor.accelSqrt();
|
||||
Serial.println("accelX: " + String(aX));
|
||||
Serial.println("accelY: " + String(aY));
|
||||
Serial.println("accelZ: " + String(aZ));
|
||||
Serial.println("accelSqrt: " + String(aSqrt));
|
||||
} else {
|
||||
Serial.println("Cannod read accel values");
|
||||
}
|
||||
|
||||
if (mySensor.gyroUpdate() == 0) {
|
||||
gX = mySensor.gyroX();
|
||||
gY = mySensor.gyroY();
|
||||
gZ = mySensor.gyroZ();
|
||||
Serial.println("gyroX: " + String(gX));
|
||||
Serial.println("gyroY: " + String(gY));
|
||||
Serial.println("gyroZ: " + String(gZ));
|
||||
} else {
|
||||
Serial.println("Cannot read gyro values");
|
||||
}
|
||||
|
||||
if (mySensor.magUpdate() == 0) {
|
||||
mX = mySensor.magX();
|
||||
mY = mySensor.magY();
|
||||
mZ = mySensor.magZ();
|
||||
mDirection = mySensor.magHorizDirection();
|
||||
Serial.println("magX: " + String(mX));
|
||||
Serial.println("maxY: " + String(mY));
|
||||
Serial.println("magZ: " + String(mZ));
|
||||
Serial.println("horizontal direction: " + String(mDirection));
|
||||
} else {
|
||||
Serial.println("Cannot read mag values");
|
||||
}
|
||||
|
||||
Serial.println("at " + String(millis()) + "ms");
|
||||
Serial.println(""); // Add an empty line
|
||||
delay(500);
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
#include <MPU9250_asukiaaa.h>
|
||||
|
||||
#ifdef _ESP32_HAL_I2C_H_
|
||||
#define SDA_PIN 21
|
||||
#define SCL_PIN 22
|
||||
#endif
|
||||
|
||||
#define CALIB_SEC 20
|
||||
|
||||
MPU9250_asukiaaa mySensor;
|
||||
|
||||
uint8_t sensorId;
|
||||
float mDirection, mX, mY, mZ;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
while(!Serial);
|
||||
Serial.println("started");
|
||||
|
||||
#ifdef _ESP32_HAL_I2C_H_ // For ESP32
|
||||
Wire.begin(SDA_PIN, SCL_PIN); // SDA, SCL
|
||||
#else
|
||||
Wire.begin();
|
||||
#endif
|
||||
|
||||
mySensor.setWire(&Wire);
|
||||
while (mySensor.readId(&sensorId) != 0) {
|
||||
Serial.println("Cannot find device to read sensorId");
|
||||
delay(2000);
|
||||
}
|
||||
mySensor.beginMag();
|
||||
|
||||
float magXMin, magXMax, magYMin, magYMax, magZ, magZMin, magZMax;
|
||||
|
||||
Serial.println("Start scanning values of magnetometer to get offset values.");
|
||||
Serial.println("Rotate your device for " + String(CALIB_SEC) + " seconds.");
|
||||
setMagMinMaxAndSetOffset(&mySensor, CALIB_SEC);
|
||||
Serial.println("Finished setting offset values.");
|
||||
}
|
||||
|
||||
void setMagMinMaxAndSetOffset(MPU9250_asukiaaa* sensor, int seconds) {
|
||||
unsigned long calibStartAt = millis();
|
||||
float magX, magXMin, magXMax, magY, magYMin, magYMax, magZ, magZMin, magZMax;
|
||||
|
||||
sensor->magUpdate();
|
||||
magXMin = magXMax = sensor->magX();
|
||||
magYMin = magYMax = sensor->magY();
|
||||
magZMin = magZMax = sensor->magZ();
|
||||
|
||||
while(millis() - calibStartAt < (unsigned long) seconds * 1000) {
|
||||
delay(100);
|
||||
sensor->magUpdate();
|
||||
magX = sensor->magX();
|
||||
magY = sensor->magY();
|
||||
magZ = sensor->magZ();
|
||||
if (magX > magXMax) magXMax = magX;
|
||||
if (magY > magYMax) magYMax = magY;
|
||||
if (magZ > magZMax) magZMax = magZ;
|
||||
if (magX < magXMin) magXMin = magX;
|
||||
if (magY < magYMin) magYMin = magY;
|
||||
if (magZ < magZMin) magZMin = magZ;
|
||||
}
|
||||
|
||||
sensor->magXOffset = - (magXMax + magXMin) / 2;
|
||||
sensor->magYOffset = - (magYMax + magYMin) / 2;
|
||||
sensor->magZOffset = - (magZMax + magZMin) / 2;
|
||||
}
|
||||
|
||||
void loop() {
|
||||
Serial.println("sensorId: " + String(sensorId));
|
||||
|
||||
mySensor.magUpdate();
|
||||
mX = mySensor.magX();
|
||||
mY = mySensor.magY();
|
||||
mZ = mySensor.magZ();
|
||||
mDirection = mySensor.magHorizDirection();
|
||||
Serial.println("mySensor.magXOffset = " + String(mySensor.magXOffset) + ";");
|
||||
Serial.println("mySensor.maxYOffset = " + String(mySensor.magYOffset) + ";");
|
||||
Serial.println("mySensor.magZOffset = " + String(mySensor.magZOffset) + ";");
|
||||
Serial.println("magX: " + String(mX));
|
||||
Serial.println("maxY: " + String(mY));
|
||||
Serial.println("magZ: " + String(mZ));
|
||||
Serial.println("horizontal direction: " + String(mDirection));
|
||||
|
||||
Serial.println("at " + String(millis()) + "ms");
|
||||
Serial.println(""); // Add an empty line
|
||||
delay(500);
|
||||
}
|
||||
Reference in New Issue
Block a user