...
Develop a real-time telemetry system that captures, transmits, and analyzes data from an Inertial Measurement Unit (IMU) connected to an STM32 microcontroller, visualizes the data through a web dashboard, and performs dynamic simulations using the PyChrono library for mechanical analysis.
Acquisition
Hardware
The first step in the data acquisition pipeline is digitizing the target signal—in our case, vehicle positional information. We use the LSM6 IMU, an always-on 3-axis accelerometer and 3-axis gyroscope to achieve this. Since there are several revisions of this IMU, it’s essential to ensure that the datasheet you reference corresponds to the specific version you're working with. Below is the link to the datasheet for the IMU you are likely using for this project:
...
We also require a Micro Controller Unit (MCU), to interface, process, and transmit the data from the IMU. On LHRS we primarily utilized low-power MCUs developed by STMicroelectronics, which provide MCUs with varying clock speeds, onboard memory, and I/O peripherals. There are several STM MCU product lines, so make sure the data sheet you work with corresponds to the MCU you are targeting. Attached is a link for the dev. board MCU you are likely using for this project:
https://www.st.com/en/evaluationmicrocontrollers-toolsmicroprocessors/nucleo-f042k6stm32f042k6.html
We also need a way to communicate between the MCU and our laptop. For this purpose, we will be utilizing a UART to USB IC. Attached is a link to the peripheral you are likely to be using for this project:
...
We will be using KiCad for our PCB prototyping/design, and I have provided a KiCad project folder in the starter project GitHub. The project already contains the appropriate symbols for the design. Using the data sheets, it is your job to make the correct electrical connections on the schematic and PCB between the different peripherals. (Clue: we are using SPI to communicate from the IMU to STM32, and UART to communicate from the STM32 to the USB).
Some helpful pages:
...
Firmware
Once the hardware is complete, it should look something like this:connect based on schematic + uartis time to develop the firmware that will be running on our MCU. The goal of this firmware is to configure the correct peripherals on the MCU and to transmit the data from the IMU to the USB.
To accomplish this, we will be using the STM32Cube IDE. I have already generated the project using the correct MCU, it is now your job to enable the correct pins on the MCU based on your electrical schematic.
...
Once you have configured the correct pins, go ahead and generate the code using the button in the top right corner.
setup stm
generate hal
dev firmware
...
done with this part
Display
https://github.com/astrolancing/lhr-svt-da-bootcamp-2024
WIP
setup npm, setup next.js …
we are feeding the imu data to a terminal, now take this data on and display it on a locally hosted website
Analysis
https://github.com/astrolancing/lhr-svt-da-bootcamp-2024
WIP
setup chrono
https://api.projectchrono.org/pychrono_installation.html
...