This project was conducted as part of my master's Thesis in Aerospace Engineering at KTH Royal Institute of Technology, Stockholm.
The project aimed to develop a NanoSatellite testbed on which Simulink control algorithms could be tested in a zero-g-like environment. The hardware consists of a 1U CubeSat with a 1-axis reaction wheel mounted upon an air bearing to provide frictionless rotation.
The project involved designing the system architecture, developing the embedded system avionics units, building the mechanical chassis, and running control algorithm tests.
- Development Board: NUCLEO-F302R8 Development Board
- Motor Driver Shield: X-NUCLEO-IHM07M1
- Motor: Maxon EC 45 flat brushless 30 W motor
- HX711 ADC
- ADS1015 ADC
- NAU7802 ADC
- BNO055 IMU
There are two directories in this GitHub;
- Sensor Drivers contains the bare driver code later used in the main.c super loop to communicate to the peripherals. This code was written based on the sensor datasheets.
- STM32Cube Projects contains the project file for the STMCubeIDE environment where it can be built and deployed onto the target. The \Torque_Control\Src\main.c file contains the super loop which initiates the code, implements the sensor drivers, and calls the Simulink API to execute the control algorithm. The \Torque_Control\Torque_Control.stwb6 file contains the motor control workbench project used to configure the X-NUCLEO-IHM07M1 motor driver shield.
You can watch a video of a force feedback control algorithm running on the testbed here.
The write-up can be found on the KTH DIVA Web Portal

