We designed WALL-E, an autonomously balancing two-wheel robot driven wirelessly via Bluetooth.
WALL-E prioritizes safe navigation and secure access.
- Detects the nearby environment (i.e. obstacles, color recognition)
- Prevents unauthorized control with RFID authentication and BLE pairing code.
- Generates live camera feed and uploads to AWS S3 cloud storage.
-
Microcontrollers:
- Arduino Nano 33 BLE Sense Rev2 (Balancing & BLE)
- STM32L051K8T6 (Environmental Sensors, Auth)
- Raspberry Pi Zero 2 W (Camera Feed)
-
Sensors and Modules:
- BMM150 IMU
- HC-SR04 Ultrasonic Distance Sensor
- TCS34725 Color Sensor
- RC522 RFID Module
- CEM-1302 Buzzer
- Freenove 5MP Camera
-
Actuation:
- DRV8833 Motor Drivers
- Pololu 37D DC Motors
- Autonomously balances robot with closed-loop control system (i.e. PID controller).
- Uses complementary filter to measure angular input from accelerometer and gyroscope sensors.
- Drives motors by generating PWM (slow decay) output to DRV8833 chip.
- Uses statemachine to prioritize balancing / movement functionality.
- Injects noise (i.e. angular offset, PWM signals) to induce movement along axis / turning.
Source Code in Arduino_Firmware directory.
- Handles auxiliary features to reduce computational load on Arduino.
- Distance Sensing: Toggles GPIO signal-low when object detected within 30cm.
- Color Detection: Toggles GPIO signal-low when red is detected. WALL-E avoids red-lights at all costs.
- RFID Authentication: Verifies UID and signals Arduino on success.
- Buzzer: Alerts user on successful auth, errors, or warnings via PWM tone generation.
Source Code in STM32_Firmware directory.
- Flask web application hosted via ngrok for mobile access
- Uses GET/POST requests to update server with UI updates and perform Bluetooth operations.
- Handles BLE pairing authentication in backend (i.e. without affecting user experience).
Source Code in Driver_App directory.
- Python application with live camera stream on Tkinter GUI.
- Camera runs at ~20 FPS with reduced resolution for performance on Pi Zero 2 W.
- Snapshot and recording functionality with automatic upload to AWS S3 bucket.
Source Code in Dashboard_App directory.
Watch our final robot demonstration here: 📽️ YouTube Demo
Read our final project report here: 📝 Project Report
This was completed as part of the ELEC 391 - Design Studio project course in The University of British Columbia Electrical and Computer Engineering undergraduate program.
Team B-17
- Muntakim Rahman
- Tomaz Zlindra
- Xianyao Li
Special thanks to Dr. Joseph Yan for tremendous support and guidance.