Embedded code running on the ROAR ESP32 chip
Parts required:
-
Mini/Micro USB Wires supporting Data Transmission
-
Jumper wires
-
ESP32 Motherboard
-
ROAR customized PCB Board
Google Doc: https://docs.google.com/document/d/1D5ydaaLVN3bytds7K1XcLaF4Gcsg35xMvoRSOgNlM3k/edit?usp=sharing
- STEP1: Connect all the jumper wires according to the below config
- STEP2: Plugin the USB wire into the laptop and the ESP-32-CAM-MB boardOn Platform IO, make sure the code compiles before uploading
- STEP3: Upload, and when seeing “Connecting…..” in the terminal, press the RST on the ESP32-CAM-MB until the data is being transferred.
- STEP4: Boom, you’re done!
A side note: connect the 5V to the + of throttle/steering is fine, but connecting it to the halleffect sensor +/- may risk frying the chip.
This code is designed to be used with a custom PCB made for ROAR and intelligent racing. The wiring diagram to flash the PCB is as follows:
It is highly recommended to use PlatformIO an IDE and dependency manager along with Visual Studio Code to Work on this project and properly manage dependencies. You can follow a Quick Start Installation Guide Here:
https://docs.platformio.org/en/latest/integration/ide/vscode.html
If you are new to PlatformIO or Arduino programming. For more resources and Tutorials see this helpful youtube tutorial playlist for ESP32 using PlatformIO
https://youtube.com/playlist?list=PLzvRQMJ9HDiQ3OIuBWCEW6yE0S0LUpWhGU
After opening the project in Visual Studio Code with PlatformIO
you should see a SUCCESS message
When you see Connecting … in the terminal output
Hold Down the RST Button on the ESP32-CAM-MB
Post upload you should see SUCCESS
Close up of Custom Intelligent Racing Board designed by @BerkeleyCurtis with pin connectors soldered and antenna connected, for the CAD model of this PCB reach out to Adam Curtis
The ROAR Project uses Traxxas RC Cars, in conjunction with this Board and an iPhone iOS application.
This board designed by Adam Curtis @BerkeleyCurtis has onboard PID control and is to be used in conjunction with an iPhone Application developed by Michael Wu @Wuwuxiaohua1011.
A new ROS2 based ROAR repo (STAGE1) is under development between Aman Saraf and Michael Wu. ROS2 Tutorials: https://docs.ros.org/en/foxy/How-To-Guides.html , https://www.theconstructsim.com/
- STAGE1 > PC: ROAR Main Repo
- STAGE2 > iPhone: custom iOS app
- STAGE3 > ESP32 board will perform localized PID control with kp, ki, kd inputs and optional wheel encoder compatibility.
- STAGE4 > Traxas RC Car ESP32 board plugs into the Traxxas 6519 TQ 2.4 GHz Micro Receiver (3CH), the system is compatible with multiple Traxxas Models
download the codebase and any prompted dependencies, and choose a python agent to run i.e runner_ios.py
-
ROAR MAIN (ROS2 Based): check with Michael Wu to verify new iOS app compatibility.
-
ROAR MAIN (Python Based): Stable Version
-
ROAR Pinned (Python Based): Older Pinned Stable ROAR Repo Compatible with Pinned Stable Version of iOS App that saves data locally on the iPhone
-
ROAR iOS (compatible with python based ROAR MAIN, unsure if compatibility has been updated for ROS2 check with Michael Wu to verify new iOS app compatibility. ):
-
ROAR iOS Pinned Older Pinned Stable Version of iOS App UI depicted below
-
ROAR_Embedded authored by @BerkeleyCurtis
-
ROAR_Embedded_Sum22 (forked) recommended check UUID compatibility with app. Current boards are flashed from this Repo.
The backplane (4x3 female connectors) of the custom ESP32 board plugs into the Traxxas 6519 TQ 2.4 GHz Micro Receiver (3CH), the main motor as well as the servo for turning both plug into and are controlled by the ESP32 board which used BLE to communicate with the iOS app.
The cars come in multiple models, they have front facing iPhone mounts, the ROAR system is compatible with multiple Traxxas Models.
Pros: offers better vibration damping to solve the SLAM noise issues, Cons: There is a plug-in on the ESP32 boards that allows for a Hall Effect sensor to be added, however there is not a good location to mount a hall effect sensor on the car for more precise velocity readings (transaxel inaccesssible), the hope is that the vibration damping will render SLAM through ARKit reliable enough without the need for an additional sensor.
Pros: There is a plug-in on the ESP32 boards that allows for a Hall Effect sensor to be added along the main metal transaxel to measure rotations of this axel and convert this RPM to the car's overall velocity. Cons: These Traxxas models have issues with Chassis vibration that causes problems with the iOS app's SLAM capabilities. The Phone vibrates too much and the picture quality is unstable.