A bit of a back-story of how this project came to be.
Sub if you like what you see.
Some pictures of the project
https://github.com/StuckAtPrototype/Thumbtroller
The project consists of
- Firmware
- Hardware
- Mechanical
- Scripts
These are structured into their own files. I could have used submodules, but decided against it.
Code for the little car. This lives on the ESP32
- ESP32 IDF version 5.3.1
- USB to Serial dongle
- Target set to ESP32-H2
PDF schematic included for your viewing pleasure.
All the gerber files you'd need to send to a fab house.
All the files you'd need to expand and work on this further. If you'd like.
All the step files you need to make one of these. Extrusion printer works well for this part.
A bit of caution on this one.. you'll need an SLA printer.
Did anyone say neural networks?
This folder has all the python code you'd need to train up your own neural network for the car. It also consists scripts that let you drive it using a keyboard -- just in case you dont want to make a physical controller.
- Python 3
- You'll need to install a bunch of pip modules
Training the neural network is as simple as running the training script with the data in the color_data.txt
file. For data format see the sample data in the file. You need to stick to the formatting.
To train run python trainer.py
To run the script python controller.py
Use w
s
a
d
for control. Modify the script for different speeds, etc
Protocol for motor control
60,1,60,1,5 -- translates to:
motor side A: speed 60, direction forward
motor side B: speed 60, direction forward
500 miliseconds run time
See firmware file motor.c
if you need more details
- Cleanup, but thats true for almost anything out there
- Some fun code that makes the little car drive using the color sensor -- think very fancy line follower
- LLM integration -- ChatGPT driving a physical little robot? anyone? :)
Let me know if you ever make one of these, I'd love to see it. Seriously, that'd be exciting and inspiring to keep making my projects open source!
http://www.apache.org/licenses/LICENSE-2.0
Thanks to Michael Angerer for his open sourced esp32_ble_ota
project. I used it to get BLE running in this project. His blog post and github repo are a great resource. Check it out. https://github.com/michael-angerer/esp32_ble_ota