The robot is made using STM32F103C8T6 microcontroller development board, and the RC has STM8S105K4T6.
The PCBs for both devices are made using the toner transfer method.
The detection of cliffs and obstacles is carried out by the HC-SR04 ultrasonic rangefinder. The robot also can detect it's failure.
The robot has a buzzer to be able to make sound. It can be used in testing purposes and for determining robot location if you can't see him.
The robot has 2 accumulators:
- One for powering the MCU, sensors, radio module and camera;
- And another for powering chassis motors, servo motors of the manipulator and the lighting LED.
The battery charge level measurement on both devices is implemented using voltage dividers.
The FPV camera is not connected to robot circuit, it is just powered from it's accumulator through a DC-DC step-down converter.
Radio communication is made using NRF24L01+ transceivers, so I wrote (during the process of software support) a library for them: https://github.com/Danya0x07/NRF24L01_SimpleLibrary
As mentioned in the description the robot has 2 temperature sensors (DS18B20), so I wrote a library for them too: https://github.com/Danya0x07/ds18b20-simple-library
And for Nokia 5110 LCD display used in the remote control: https://github.com/Danya0x07/PCD8544_FlexibleLibrary
The robot software uses FreeRTOS with CMSIS-RTOS wrapper (unfortunately STM32CubeIDE doesn't allow user to remove that wrapper). The remote control uses the STM8S_StdPeriph_Driver library patched to work with SDCC.
I used STM32CubeIDE for programming robot, and SDCC for programming RC.
The old video demonstration:
FPV view demo: