Skip to content

ckwolfe/ROAR_Embedded

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 

Repository files navigation

ROAR_Embedded

Embedded code running on the ROAR ESP32 chip

BLE + SPEED

Parts required:

  • Mini/Micro USB Wires supporting Data Transmission

  • Jumper wires

  • ESP32 Motherboard

  • ROAR customized PCB Board

Procedure:

Google Doc: https://docs.google.com/document/d/1D5ydaaLVN3bytds7K1XcLaF4Gcsg35xMvoRSOgNlM3k/edit?usp=sharing

  1. STEP1: Connect all the jumper wires according to the below config
  2. STEP2: Plugin the USB wire into the laptop and the ESP-32-CAM-MB boardOn Platform IO, make sure the code compiles before uploading
  3. STEP3: Upload, and when seeing “Connecting…..” in the terminal, press the RST on the ESP32-CAM-MB until the data is being transferred.
  4. 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.

STEP 1:

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:

img

img

img

Notes:

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

Step2: BUILD

you should see a SUCCESS message

img

Step3: UPLOAD

When you see Connecting … in the terminal output

Hold Down the RST Button on the ESP32-CAM-MB

Post upload you should see SUCCESS

img

APPENDIX

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

img


ROAR (Robotic Open Autonomous Racing) Project Overview

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/

Components Required

  1. STAGE1 > PC: ROAR Main Repo
  2. STAGE2 > iPhone: custom iOS app
  3. STAGE3 > ESP32 board will perform localized PID control with kp, ki, kd inputs and optional wheel encoder compatibility.
  4. 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

img

1. ROAR MAIN REPO

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

2. ROAR iOS & ROAR_iOS_xcode

  • 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

    img

3. ESP32 Repo

  • 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.

    img

4. Traxxas Cars

The cars come in multiple models, they have front facing iPhone mounts, the ROAR system is compatible with multiple Traxxas Models.

Most up to date model:

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.

img

Prior Model:

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.

img

About

Embedded code running on the ROAR ESP32 chip

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.8%
  • C 2.0%
  • Shell 0.2%