Designer | Csongor Buzogany |
Last Version | v3 |
Last Updated | 30 June 2024 |
The Stm32f767zi microcontroller on the topboard is used to process and execute the commands received by the wireless module. The control loop on the robot is running on this chip, together with the code to receive and transmit commands via the wireless module. For more info, look in the embedded wiki. To see exactly what is connected to what pin, look in the schematics above.
The IMU used on the robot is the Xsens MTi-3 (uit de MTi 1-series). The Inertial Measurement Unit (IMU) is responsible for measuring acceleration, rotational velocity, and current heading. The IMU provides data at 100Hz. This frequency would not give enough data to properly estimate the robot state, were it not that much of the filtering and processing is already done by the IMU. The IMU has its own frame of reference, initialized at boot time. This frame can deviate from the computer's frame, which takes the width and height of the field as x-, and y-axis. The data provided by the IMU allows the robot to accurately execute commands from the computer. Instead of completely relying on the relatively slow feedback of the cameras, the robot can use the IMU data to precisely control its movements.
The wireless transceiver we use is the EBYTE E28-2G4M12S SX1280 2.4G LoRa Bluetooth Module 2.4GHz Wireless rf Transceiver SPI Long Range BLE rf Transmitter 2.4g Receiver. This is the only component on the topboard we buy from aliexpress, so take longer delivery time into account. This one can also be reused really easily so if you need to, you can desolder them from older broken robots and reuse them. The SX1280 is used to wirelessly communicate between robots and the basestation. The robot has one SX1280 for both transmitting and receiving. It can send and receive packets of variable length up to 127 bytes.
The topboard has 8 DIP switches and 6 buttons. Out of the 8 DIP switches, 4 are used to set the Robot's ID and the other 4 are set to enable/disable certain features (see embedded). 5 out of the 6 buttons are used to navigate through the robot's onboard menu system. The 6th button is the reset button, which can be used to reset the topboard's microcontroller. There are also 8 programmable LED's which are all connected to the microcontroller, through dedicated GPIO pins.
The topboard also has a buzzer, to notify people of the robot's status, even when the OLED is covered up by the skirt. For the exact meaning of the beeps, see embedded.
The motordrivers are connected to the topboard using wurth connectors. These connectors replace the old 90 degree connectors which caused issues on previous generation robots.
The motors, together with their encoders (3 cables per motor) are connected to the topboard, which is used as a pass-through to connect the motor to the motor drivers. When disconnecting the cables, be very careful to not pull on the cables, but only the plastic part of the connectors, as the cables are very fragile, and can break easily if disconnected improperly.
Part Name | Short description | Datasheet |
---|---|---|
STM32F767ZI | Microcontroller | cpu_stm32f767zi.pdf |
MTI-3-8A7G6T (AHRS) | IMU | xsens.pdf |
SX1280 | Wireless Transceiver | wireless_sx1280.pdf |
E28-2G4M12S | SX1280 Package | e28-2g4m12s_usermanual_en_v1.7.pdf |
74AHCV541A | Buffer | 74ahcv541a_datasheet.pdf |
AZ1117CH-3.3 | 3.3v linear voltage regulator | az1117ch-3.3_datasheet.pdf |
MC3486D | Differential line receiver | mc3486d_datasheet.pdf |
MCP2551 | CAN transciever | mcp2551_datasheet.pdf |
PFM250XNE | Small mosfet | pmf250xne_datasheet.pdf |
PUSB3FS4Z | TVS diode array | pusb3fs4z_datasheet.pdf |