The balancing robot uses the high level core for internet communications and deferred update, and one of the real time cores running Azure RTOS for real-time control.
File/folder | Description |
---|---|
Azure_IoT_Central_Template |
Azure IoT Central Device Template |
HighLevelApp |
High level application |
inc |
Inter core interface definition |
RTOS |
Real time application |
README.md |
This README file. |
The Robot project has two Azure Sphere CMake based applications, one for the high level core, and one that's deployed to one of the real time cores.
For this code to actually work, you will need to build out the robot electronics and enclosure as per the other subdirectories.
However, you can build and run this software out using any Azure Sphere development board. If you do this, it will communicate with IoT Central showing default/zero data for most telemetry.
Setup instructions for the demo environment are in the Documentation/Balancing_Robot_Software_Setup_Guide.pdf
The high level application is responsible for sending telemetry to Azure IoT Central, handling Azure IoT Central Device Twin messages, and inter-core communications with the real time application.
The high level application README provides more information.
The real time application is responsible for reading the ICM-20948 IMU (accelerometer, gyroscope, magnetometer), Time of Flight sensors, and controlling the motors.
The real time application README provides more information.
Instructions for running the project can be found in the Documentation/Balancing_Robot_Demo_Guide.pdf