feat: 全量同步 254 个常用的 Arduino 扩展库文件

This commit is contained in:
yczpf2019
2026-01-24 16:05:38 +08:00
parent c665ba662b
commit 397b9a23a3
6878 changed files with 2732224 additions and 1 deletions

View File

@@ -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);
}

View File

@@ -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);
}