This project was a continuation of the “Stackable Embedded System” project, aiming to further enhance the functionality of our custom-designed PCBs.
The objective was to enable remote control and incorporate several advanced features into our mobile robot platform. Key technical achievements of this project include:
Live Video Streaming: Enabled real-time video streaming with an onboard webcam mounted on a stepper motor and servo assembly, allowing for remote adjustability along the x and y axes.
Optimized Motor Control: Implemented and fine-tuned a closed-loop, interrupt-driven PI motor control algorithm to achieve adjustable set speeds for each independent DC motor.
Linux-Based Server: Designed and hosted a Linux-based server on a Raspberry Pi, serving as the platform supervisor.
Remote Communication: Developed a Linux-based client application for seamless remote communication with the server via Wi-Fi.
Fail-Safe System: Integrated a fail-safe system using a 'heartbeat' communication protocol between the server and client, ensuring the robot automatically enters emergency stop mode within 200 milliseconds in the event of a server or client crash.
Master-Slave System: Established a master-slave configuration with a Raspberry Pi as the master and an STM32 microcontroller as the slave, utilizing Direct Memory Access (DMA) for optimal input response efficiency in the interrupt-driven finite state machine on the STM32.
Gaming Controller Integration: Implemented socket programming to integrate a gaming controller for enhanced user control.
Status Display: Added an LCD to display the status of the mobile robot, facilitating troubleshooting and debugging.
Final Result Demonstration
Presentation Gallery