From 7f453d4d28d2e8d36405fb7ac49248cb048ecadf Mon Sep 17 00:00:00 2001 From: pedromsousalima <32345730+pedromsousalima@users.noreply.github.com> Date: Thu, 20 Mar 2025 13:30:41 +0100 Subject: [PATCH 1/3] AddedGyro --- examples/Modulino_Movement/Basic/Basic.ino | 21 ++++++++++++++++++--- src/Modulino.h | 16 ++++++++++++++-- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/examples/Modulino_Movement/Basic/Basic.ino b/examples/Modulino_Movement/Basic/Basic.ino index 956ae54..b2de1c2 100644 --- a/examples/Modulino_Movement/Basic/Basic.ino +++ b/examples/Modulino_Movement/Basic/Basic.ino @@ -5,6 +5,9 @@ ModulinoMovement movement; float x; float y; float z; +float gx; +float gy; +float gz; void setup() { Serial.begin(9600); @@ -19,11 +22,23 @@ void loop() { y = movement.getY(); z = movement.getZ(); + gx = movement.getGyroX(); + gy = movement.getGyroY(); + gz = movement.getGyroZ(); + Serial.print("Movement data: "); + Serial.print("x "); - Serial.print(x, 3); + Serial.print(x,3); Serial.print(" y "); - Serial.print(y, 3); + Serial.print(y,3); Serial.print(" z "); - Serial.println(z, 3); + Serial.print(z,3); + + Serial.print("\t\t gx "); + Serial.print(gx,1); + Serial.print(" |gy "); + Serial.print(gy,1); + Serial.print(" |gz "); + Serial.println(gz,1); } \ No newline at end of file diff --git a/src/Modulino.h b/src/Modulino.h index 128c46d..14fb7b4 100644 --- a/src/Modulino.h +++ b/src/Modulino.h @@ -313,13 +313,15 @@ class ModulinoMovement : public Module { } int update() { if (initialized) { - return _imu->readAcceleration(x, y, z); + int accel = _imu->readAcceleration(x, y, z); + int gyro = _imu->readGyroscope(gx, gy, gz); + return accel && gyro; } return 0; } int available() { if (initialized) { - return _imu->accelerationAvailable(); + return _imu->accelerationAvailable() && _imu->gyroscopeAvailable(); } return 0; } @@ -332,9 +334,19 @@ class ModulinoMovement : public Module { float getZ() { return z; } + float getGyroX() { + return gx; + } + float getGyroY() { + return gy; + } + float getGyroZ() { + return gz; + } private: LSM6DSOXClass* _imu = nullptr; float x,y,z; + float gx,gy,gz; int initialized = 0; }; From db4c28b4512db0d024e78a96b5f0a93b8eb0b6fb Mon Sep 17 00:00:00 2001 From: pedromsousalima <32345730+pedromsousalima@users.noreply.github.com> Date: Tue, 15 Apr 2025 17:42:48 +0200 Subject: [PATCH 2/3] Added Gyro to Basic --- examples/Modulino_Movement/Basic/Basic.ino | 44 -------------- .../Movement_Basic/Movement_Basic.ino | 57 +++++++++++++++++++ 2 files changed, 57 insertions(+), 44 deletions(-) delete mode 100644 examples/Modulino_Movement/Basic/Basic.ino create mode 100644 examples/Modulino_Movement/Movement_Basic/Movement_Basic.ino diff --git a/examples/Modulino_Movement/Basic/Basic.ino b/examples/Modulino_Movement/Basic/Basic.ino deleted file mode 100644 index b2de1c2..0000000 --- a/examples/Modulino_Movement/Basic/Basic.ino +++ /dev/null @@ -1,44 +0,0 @@ -#include "Modulino.h" - -ModulinoMovement movement; - -float x; -float y; -float z; -float gx; -float gy; -float gz; - -void setup() { - Serial.begin(9600); - Modulino.begin(); - movement.begin(); -} - -void loop() { - movement.update(); - - x = movement.getX(); - y = movement.getY(); - z = movement.getZ(); - - gx = movement.getGyroX(); - gy = movement.getGyroY(); - gz = movement.getGyroZ(); - - Serial.print("Movement data: "); - - Serial.print("x "); - Serial.print(x,3); - Serial.print(" y "); - Serial.print(y,3); - Serial.print(" z "); - Serial.print(z,3); - - Serial.print("\t\t gx "); - Serial.print(gx,1); - Serial.print(" |gy "); - Serial.print(gy,1); - Serial.print(" |gz "); - Serial.println(gz,1); -} \ No newline at end of file diff --git a/examples/Modulino_Movement/Movement_Basic/Movement_Basic.ino b/examples/Modulino_Movement/Movement_Basic/Movement_Basic.ino new file mode 100644 index 0000000..2fde078 --- /dev/null +++ b/examples/Modulino_Movement/Movement_Basic/Movement_Basic.ino @@ -0,0 +1,57 @@ +/* + * Modulino Movement - Simple Serial Output + * + * This example code is in the public domain. + * Copyright (c) 2025 Arduino + * SPDX-License-Identifier: MPL-2.0 + */ + +#include "Modulino.h" + +// Create a ModulinoMovement +ModulinoMovement movement; + +float x, y, z; +float gx, gy, gz; + +void setup() { + Serial.begin(9600); + // Initialize Modulino I2C communication + Modulino.begin(); + // Detect and connect to movement sensor module + movement.begin(); + +} + +void loop() { + // Read new movement data from the sensor + movement.update(); + + // Get acceleration and gyroscope values + x = movement.getX(); + y = movement.getY(); + z = movement.getZ(); + gx = movement.getGyroX(); + gy = movement.getGyroY(); + gz = movement.getGyroZ(); + + // Print acceleration values + Serial.print("A: "); + Serial.print(x, 3); + Serial.print(", "); + Serial.print(y, 3); + Serial.print(", "); + Serial.print(z, 3); + + // Print divider between acceleration and gyroscope + Serial.print(" | G: "); + + // Print gyroscope values + Serial.print(gx, 1); + Serial.print(", "); + Serial.print(gy, 1); + Serial.print(", "); + Serial.println(gz, 1); + + delay(200); +} \ No newline at end of file From 756095169a69dacfada999e770aca6d8ee67ccf9 Mon Sep 17 00:00:00 2001 From: pedromsousalima <32345730+pedromsousalima@users.noreply.github.com> Date: Wed, 16 Apr 2025 11:56:36 +0200 Subject: [PATCH 3/3] Added more accurate terminology roll, pitch, yaw --- .../Movement_Basic/Movement_Basic.ino | 14 +++++++------- src/Modulino.h | 16 ++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/examples/Modulino_Movement/Movement_Basic/Movement_Basic.ino b/examples/Modulino_Movement/Movement_Basic/Movement_Basic.ino index 2fde078..dc8ccfb 100644 --- a/examples/Modulino_Movement/Movement_Basic/Movement_Basic.ino +++ b/examples/Modulino_Movement/Movement_Basic/Movement_Basic.ino @@ -12,7 +12,7 @@ ModulinoMovement movement; float x, y, z; -float gx, gy, gz; +float roll, pitch, yaw; void setup() { Serial.begin(9600); @@ -31,9 +31,9 @@ void loop() { x = movement.getX(); y = movement.getY(); z = movement.getZ(); - gx = movement.getGyroX(); - gy = movement.getGyroY(); - gz = movement.getGyroZ(); + roll = movement.getRoll(); + pitch = movement.getPitch(); + yaw = movement.getYaw(); // Print acceleration values Serial.print("A: "); @@ -47,11 +47,11 @@ void loop() { Serial.print(" | G: "); // Print gyroscope values - Serial.print(gx, 1); + Serial.print(roll, 1); Serial.print(", "); - Serial.print(gy, 1); + Serial.print(pitch, 1); Serial.print(", "); - Serial.println(gz, 1); + Serial.println(yaw, 1); delay(200); } \ No newline at end of file diff --git a/src/Modulino.h b/src/Modulino.h index 14fb7b4..aa37d47 100644 --- a/src/Modulino.h +++ b/src/Modulino.h @@ -314,7 +314,7 @@ class ModulinoMovement : public Module { int update() { if (initialized) { int accel = _imu->readAcceleration(x, y, z); - int gyro = _imu->readGyroscope(gx, gy, gz); + int gyro = _imu->readGyroscope(roll, pitch, yaw); return accel && gyro; } return 0; @@ -334,19 +334,19 @@ class ModulinoMovement : public Module { float getZ() { return z; } - float getGyroX() { - return gx; + float getRoll() { + return roll; } - float getGyroY() { - return gy; + float getPitch() { + return pitch; } - float getGyroZ() { - return gz; + float getYaw() { + return yaw; } private: LSM6DSOXClass* _imu = nullptr; float x,y,z; - float gx,gy,gz; + float roll,pitch,yaw; //gx, gy, gz int initialized = 0; };