This is a simple autopilot for the NooBot project. It has an IMU and magnetometer for heading and tilt information.
It uses a simple PID controller to control the steering and throttle of the rover,
There's also an RK3588 board running ROS2 for AI functions, but it's not implemented yet.
- MCU: STM32G431BT6
- IMU: BMI088
- Magnetometer: QMC5883L
- Power: 6S LiPo
- Motors: 2x brushed DC motors with quadrature encoders
- Screen: ST7735 160x80 TFT
- A few buttons and LEDs
This is a PlatformIO project, so you need to install PlatformIO first.
Pin configuration (except for the screen) is in include/config.h,
the screen is configured directly in platformio.ini
- Clone this repo:
git clone https://github.com/HQU-gxy/ShittyRover-Autopilot/ --recursive --depth=1
- Open the project in PlatformIO
- Set the
debug_tool
andupload_protocol
in platformio.ini to fit your debugger - Build and upload the project