You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Due to tricky component availability during the initial creation of the PROVES Kit, we employed a pair of IC's to accomplish IMU tasks rather than a single one. On V4 Flight Controller Boards you will find the LSM6DSOTR Accelerometer and Gyroscope alongside an LSM303AGR Accelerometer and Magnetometer. In the future it is possible that we will reconsolidate these two devices back into a single 9-DoF (9-Degree of Freedom) IMU, thus it might be productive to write the IMU component in a relatively generic way so you can just drop in and out the underlying device library while maintaining the structure of the function calls, telemetry, and events.
The IMU component has two functions, the first and primary being to provide gyroscope and magnetometer data while on-orbit to a future Attitude Determination and Control Component that will use these sensor inputs to orient the satellite. For now it will be good to just capture this data and make it available for logging into a state of health component. The second function of the IMU component is as one of the fundamental learning tools for understanding how to interact with hardware and sensors. Although the accelerometer is relatively useless in the zero g environment of space, here on the ground it is a fantastic way to have newcomers gain an intuition for using code to interact with hardware and see direct results from moving the board around in 3D space.
If using the Adafruit developed C++ libraries for these sensors it may be productive to explore using the Adafruit Unified Sensor System. The Unified Sensor Library seems to have been a way for Adafruit to try and introduce one generalized library that would provide an abstraction layer between common sensors and the resulting data that they output.
The F' Baremetal System Reference has a Sensors Component that wraps up code for interfacing with an MPU 9250 IMU and pulling accelerometer and gyro data from it. In previous iterations of the F' workshop, collecting IMU data was part of the tutorial task, but it seems like in recent years that has been descoped to just the LED tutorial.
What Does This Component Do?
This is a generic component for pulling data from an IMU sensor. This component should accomplish the following at this stage:
Design Notes
LSM303AGR Datasheet
LSM5DSOX Datasheet
Due to tricky component availability during the initial creation of the PROVES Kit, we employed a pair of IC's to accomplish IMU tasks rather than a single one. On V4 Flight Controller Boards you will find the LSM6DSOTR Accelerometer and Gyroscope alongside an LSM303AGR Accelerometer and Magnetometer. In the future it is possible that we will reconsolidate these two devices back into a single 9-DoF (9-Degree of Freedom) IMU, thus it might be productive to write the IMU component in a relatively generic way so you can just drop in and out the underlying device library while maintaining the structure of the function calls, telemetry, and events.
The IMU component has two functions, the first and primary being to provide gyroscope and magnetometer data while on-orbit to a future Attitude Determination and Control Component that will use these sensor inputs to orient the satellite. For now it will be good to just capture this data and make it available for logging into a state of health component. The second function of the IMU component is as one of the fundamental learning tools for understanding how to interact with hardware and sensors. Although the accelerometer is relatively useless in the zero g environment of space, here on the ground it is a fantastic way to have newcomers gain an intuition for using code to interact with hardware and see direct results from moving the board around in 3D space.
Relevant Libraries
Adafruit LSM6DS Library
Adafruit LSM303AGR Library
Adafruit LSM303 Arduino Tutorial
If using the Adafruit developed C++ libraries for these sensors it may be productive to explore using the Adafruit Unified Sensor System. The Unified Sensor Library seems to have been a way for Adafruit to try and introduce one generalized library that would provide an abstraction layer between common sensors and the resulting data that they output.
Adafruit Unified Sensor
Adafruit BusIO
The F' Baremetal System Reference has a Sensors Component that wraps up code for interfacing with an MPU 9250 IMU and pulling accelerometer and gyro data from it. In previous iterations of the F' workshop, collecting IMU data was part of the tutorial task, but it seems like in recent years that has been descoped to just the LED tutorial.
Example CircuitPython Implementation
In
pysquared.py
In
functions.py
Reference Schematic
The text was updated successfully, but these errors were encountered: