Cleaning Robot Controller
(V1) May 2020, (V2) November 2020, (V3) April 2022
For this project, I helped a startup build all the custom electronics in their deck staining and cleaning robot, from planning the system architecture to designing, assembling, testing the boards, and writing firmware for the STM32F407 MCU. We stayed in touch over time and I built several versions of the controller.
Architecture
The system architecture was established taking into consideration the mechanical design, space constraints and the startup team familiarity with some systems over others. It is also meant to leave enough flexibility to try different configurations and easily iterate on different submodules.
Main Board
4 Layer PCB that combines the main power and low level control systems for the robot:
24V to 5V, 5A Switching regulator that powers the main board, the Raspberry pi and its HAT board, as well as all onboard sensors.
Six 24v, 3A and Two 24V, 7A DC motor drivers for the various drive, cleaning and staining sub-systems
Various sensor inputs (analog and digital), Serial communication ports (USB, UART, SPI, I2C and RS485)
100% test point coverage
All within the 110x70mm size constraints available.
Firmware developed in C using STM CubeMX libraries, but cannot be made public as of yet.
Raspberry Pi HAT
In an effort to keep the navigation subsystem separate from the rest of the robot to improve its development speed, I kept some of the sensors (namely the main IMU and frontal ultrasonic sensors) directly connected to the Raspberry Pi (Ros master). A secondary SAMD21G (cortex M0) microcontroller was added on to facilitate testing different connection configurations and sensors.
the board can be directly programmed and debugged from the Raspberry Pi.
UI Board and custom IR sensors
Other custom boards in the system are:
An Interface board with buttons and indicator LEDs to test and display different working modes
An IR based Cliff sensor with a voltage controlled current source to adjust the IR LED current while testing in different conditions
A similar line following version of the cliff sensor using two IR LEDs controller by the same current source