@@ -18,10 +18,21 @@ limitations under the License.
18
18
* @author Rikard Lindstrom <rlindsrom@google.com>
19
19
*/
20
20
#include " data_provider.h"
21
+
22
+ #if defined(ARDUINO_NRF52840_CLUE) || defined(ARDUINO_NRF52840_FEATHER_SENSE)
23
+
24
+ #include < Adafruit_LIS3MDL.h>
25
+ #include < Adafruit_LSM6DS33.h>
26
+
27
+ Adafruit_LSM6DS33 IMU; // Gyro and Accel
28
+ Adafruit_LIS3MDL IMUMag; // Magnetometer
29
+
30
+ #else
31
+
32
+ #error "Sensor driver library for your is not included"
21
33
// #include <Arduino_LSM9DS1.h> // change to Arduino_LSM6DS3.h for Nano 33 IoT or Uno WiFi Rev 2
22
- // #include <Arduino_LSM6DS3.h>
23
34
24
- #include < Arduino_LSM6DSOX.h >
35
+ #endif
25
36
26
37
namespace data_provider
27
38
{
@@ -57,7 +68,7 @@ namespace data_provider
57
68
bool setup ()
58
69
{
59
70
60
- if (! IMU.begin () )
71
+ if ( !( IMU.begin_I2C () && IMUMag. begin_I2C ()) )
61
72
{
62
73
Serial.println (" Failed to initialized IMU!" );
63
74
return false ;
@@ -74,10 +85,10 @@ namespace data_provider
74
85
Serial.println (IMU.accelerationSampleRate ());
75
86
Serial.print (" Gyroscope sample rate = " );
76
87
Serial.println (IMU.gyroscopeSampleRate ());
77
- # if 0
88
+
78
89
Serial.print (" Magnetometer sample rate = " );
79
- Serial.println(IMU .magneticFieldSampleRate());
80
- # endif
90
+ Serial.println (IMUMag .magneticFieldSampleRate ());
91
+
81
92
return true ;
82
93
}
83
94
@@ -105,16 +116,15 @@ namespace data_provider
105
116
buffer[4 ] = gy / 2000.0 ;
106
117
buffer[5 ] = gz / 2000.0 ;
107
118
108
- #if 0
109
119
if (useMagnetometer || calibrating)
110
120
{
111
121
float mx, my, mz;
112
122
113
123
// The Magnetometer sample rate is only 20hz, so we'll use previous values
114
124
// if no new ones are available
115
- if (IMU .magneticFieldAvailable())
125
+ if (IMUMag .magneticFieldAvailable ())
116
126
{
117
- IMU .readMagneticField(mx, my, mz);
127
+ IMUMag .readMagneticField (mx, my, mz);
118
128
lastMagneticFieldReading[0 ] = mx;
119
129
lastMagneticFieldReading[1 ] = my;
120
130
lastMagneticFieldReading[2 ] = mz;
@@ -161,6 +171,5 @@ namespace data_provider
161
171
buffer[7 ] = my / 50.0 ;
162
172
buffer[8 ] = mz / 50.0 ;
163
173
}
164
- #endif
165
174
}
166
175
}
0 commit comments