From 9c8f7e2f1101b4bb8e0c5459e14af253f150c8b7 Mon Sep 17 00:00:00 2001 From: Abel Tim Date: Mon, 17 Mar 2025 21:43:59 +0100 Subject: code --- .../debug/IMU_comp/Calibrate/Calibrate.ino | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 CODE/debugprewk/debug/IMU_comp/Calibrate/Calibrate.ino (limited to 'CODE/debugprewk/debug/IMU_comp/Calibrate/Calibrate.ino') diff --git a/CODE/debugprewk/debug/IMU_comp/Calibrate/Calibrate.ino b/CODE/debugprewk/debug/IMU_comp/Calibrate/Calibrate.ino new file mode 100644 index 0000000..c5db31c --- /dev/null +++ b/CODE/debugprewk/debug/IMU_comp/Calibrate/Calibrate.ino @@ -0,0 +1,42 @@ +//example from https://github.com/pololu/lis3mdl-arduino +#include +#include + +LIS3MDL mag; +LIS3MDL::vector 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); +} -- cgit v1.2.3