summaryrefslogtreecommitdiff
path: root/CODE/debug/prewk/IMU_comp/Calibrate
diff options
context:
space:
mode:
authorrobosoccer <robosoccer@mendelcollege.nl>2025-03-20 12:06:06 +0100
committerrobosoccer <robosoccer@mendelcollege.nl>2025-03-20 12:06:06 +0100
commit7e9328765f41a6055a722285678bc6bc09963c07 (patch)
tree7e02d638585b455fcea38a8e88d5fc71c3fcd1ba /CODE/debug/prewk/IMU_comp/Calibrate
parent2bcc96fb10a4a84a7e5537d1d3258a7f919b6917 (diff)
downloadrobotica-7e9328765f41a6055a722285678bc6bc09963c07.tar.gz
robotica-7e9328765f41a6055a722285678bc6bc09963c07.zip
update
Diffstat (limited to 'CODE/debug/prewk/IMU_comp/Calibrate')
-rw-r--r--CODE/debug/prewk/IMU_comp/Calibrate/Calibrate.ino42
1 files changed, 42 insertions, 0 deletions
diff --git a/CODE/debug/prewk/IMU_comp/Calibrate/Calibrate.ino b/CODE/debug/prewk/IMU_comp/Calibrate/Calibrate.ino
new file mode 100644
index 0000000..c5db31c
--- /dev/null
+++ b/CODE/debug/prewk/IMU_comp/Calibrate/Calibrate.ino
@@ -0,0 +1,42 @@
+//example from https://github.com/pololu/lis3mdl-arduino
+#include <Wire.h>
+#include <LIS3MDL.h>
+
+LIS3MDL mag;
+LIS3MDL::vector<int16_t> running_min = {32767, 32767, 32767}, running_max = {-32768, -32768, -32768};
+
+char report[80];
+
+void setup()
+{
+ Serial.begin(9600);
+ Wire.begin();
+
+ if (!mag.init())
+ {
+ Serial.println("Failed to detect and initialize magnetometer!");
+ while (1);
+ }
+
+ mag.enableDefault();
+}
+
+void loop()
+{
+ mag.read();
+
+ running_min.x = min(running_min.x, mag.m.x);
+ running_min.y = min(running_min.y, mag.m.y);
+ running_min.z = min(running_min.z, mag.m.z);
+
+ running_max.x = max(running_max.x, mag.m.x);
+ running_max.y = max(running_max.y, mag.m.y);
+ running_max.z = max(running_max.z, mag.m.z);
+
+ snprintf(report, sizeof(report), "min: {%+6d, %+6d, %+6d} max: {%+6d, %+6d, %+6d}",
+ running_min.x, running_min.y, running_min.z,
+ running_max.x, running_max.y, running_max.z);
+ Serial.println(report);
+
+ delay(100);
+}