Tools: Cloud-connected Sphero Rvr Robot With Aws IOT Core And Seeed Studio...
Posted on Jan 20
• Originally published at chiwaichan.co.nz
Note: This is a simplified version of the original post. For the full version with interactive components, visit chiwaichan.co.nz.
A Sphero RVR integrated with a Seeed Studio XIAO ESP32S3 with telemetry uploaded into, and also, basic drive remote control commands received from any where leveraging AWS IoT Core.
Lately I have been aiming to go deep on AI Robotics, and last year I have been slowly experimenting more and more with anything that is AI, IoT and Robotics related; with the intention of learning and going as wide and as deep as possible in any pillars I can think of. You can check out my blogs under the Robotics Project to see what I have been up to. This year I want to focus on enabling mobility for my experiments - as in providing wheels for solutions to move around the house, ideally autonomously; starting off with wheel based solutions bought off-shelve, followed by solutions that I build myself from open-sourced projects people have kindly contirbuted online, and then ambitiously designed, 3D Printed and built all from the ground up - perhaps in a couple of years time.
This project uses a Seeed Studio XIAO ESP32S3 microcontroller to communicate with a Sphero RVR robot via UART, while simultaneously connecting to AWS IoT Core over WiFi. The system publishes real-time sensor telemetry and accepts remote drive commands through MQTT.
The system publishes comprehensive sensor data every 60 seconds:
The XIAO Expansion Board's OLED display shows real-time sensor readings for local monitoring.
The XIAO ESP32S3 acts as a bridge between the Sphero RVR and AWS IoT Core:
The Sphero RVR uses a binary packet-based protocol over UART. Each packet contains a start-of-packet byte (0x8D), an 8-byte header with device ID and command ID, variable-length data body, checksum, and end-of-packet byte (0xD8). The RVR has two internal processors: Nordic (handles BLE, power, color detection) and ST (handles motors, IMU, encoders).
I ported the code into this project to control the RVR using the UART protocol based on the Sphero SDK.
Source: Dev.to