RWACS is a platform that simulates a real spacecraft attitude control.
The objective of this project was to design a device that could alter and sustain its position through the utilization of a reaction wheel. The RWACS device is able to hold its position steady and move to a predetermined location. The desired position can be set through the use of an encoder or a graphical user interface. To achieve this, custom hardware modules were developed and can be accessed in the "Components" folder.
- DRV8825 stepper motor driver
- NEMA 17 stepper motor
- Incremental encoder
- MPU6050 IMU
- NUCLEO-F746ZG
The attitude control of this device is accomplished with high precision and efficiency through the utilization of a PID controller. This controller can be optimized through the alteration of its proportional, integral, and derivative gain parameters. Given the presence of an integral component in the plant model, it was decided to set the integral gain to zero. The implementation of the PID controller was carried out utilizing the functions provided by the CMSIS library.
A dedicated graphical user interface was created to enhance the interaction experience with the RWACS. The development utilized Python programming language and PySimpleGUI library. The app allows one to change setpoint and PID gains. In addition, it displays and saves data transmitted by the device in a "log.csv" file for further analysis and plotting by the user.
A custom 3D model was created and 3D printed in the FDM technology. Files are provided in the repository under the "3D_model" folder.
A doxygen documentation was created for easy reference, and can be accessed in the "Doxygen" folder.



