- Written using STM32 HAL Library and CubeMX.
- Main Control Board: DJI Robomaster Board A(STM32F427IIH6)
- 4 * M3508 Motors for Chassis
- 2 * M3508 Motors for Friction Wheels
- 2 * GM6020 Motors for Gimbal (Yaw & Pitch)
- 1 * M2006 Motor for Trigger
- 1 * Super Capacitor for Temporary Power Overload
-
Communications
- DR16 Remote Control
- Board A IMU
- MPU6050 IMU
- Motors
- Super Capacitor
- Referee System
-
Basic Controls
- Chassis (Forward/Backward, Leftward/Rightward, Rotate)
- Gimbal (Yaw, Pitch)
- Shooting (Friction Wheel On/Off, Single Shot, Burst)
-
Advance Controls
- Follow Gimbal Mode (Chassis Follow Gimbal)
- Not Follow Gimbal Mode (Chassis Not Follow Gimbal)
- SpinTop Mode (Gimbal Holds in Position while Chassis Spins)
- Power Limiting (Requires Referee System Communication)
- Shooter Heat Regulation (Requires Referee System Communication)
- Level Up Adjustments (Requires Referee System Communication)
graph TD;
BoilerBot_Infantry_2022-->Interrupt_Timer;
Interrupt_Timer--USART1-->DR16_Remote_Control;
Interrupt_Timer--USART6-->Referee_System;
BoilerBot_Infantry_2022-->FreeRTOS;
FreeRTOS-->General_Initialization;
FreeRTOS-->IMU_Communication_&_Calculation;
IMU_Communication_&_Calculation--SPI5-->MPU6500;
IMU_Communication_&_Calculation--I2C-->MPU6050;
FreeRTOS-->CAN_Send_Message;
CAN_Send_Message-->Send_to_All;
FreeRTOS-->CAN1_Receive_Message;
CAN1_Receive_Message-->M2006_Trigger_Motor;
CAN1_Receive_Message-->Super_Capacitor;
CAN1_Receive_Message-->4*M3508_Chassis_Motors;
CAN1_Receive_Message-->GM6020_Yaw_Motor;
FreeRTOS-->CAN2_Receive_Message;
CAN2_Receive_Message-->2*M3508_Friction_Wheel_Motors;
CAN2_Receive_Message-->GM6020_Pitch_Motor;
FreeRTOS-->Robot_Control;
Robot_Control-->State_Machine;
Robot_Control-->Chassis_Control;
Robot_Control-->Gimbal_Control;
Robot_Control-->Shooting_Control;