Otto Wheels with an ESP32 C3 SuperMini
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
OttoDIY Wheels with an ESP32 C3 SuperMini
- Ocena
- 0 / 5
- Polubienia
- 2
- Pobrania
- 17
- Wydruki
- 0
- Wyświetlenia
- 193
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- RC & Robotics
- Licencja
- Creative Commons — Attribution — Share Alike
Introduction
This is a version of the OttoDIY Wheels that features line following, obstacle avoidance and sound. It comes with an app to control the robot with bluetooth.
I couldn't find complete descriptions and 3D models of this version of the OttoDIY Wheels, so I decided to make one from scratch. It was a tight fit to squeeze in all the components, but it fits!
I created an app to control the robot. Get it here. the Arduino code is downloadable via the app, or you can get it here.
Printing
Most parts are printed with a 0.6 nozzle and need no support. I tried the body without supports and it actualy come out good. Since the supports are little I still recommend printing the body with supports.
The caster uses a 12mm steel ball and has a little spring retainer. This spring part I printed with 0.4 mm nozzle and at 0.10mm layer height (preset "Fast Detail").
The tires are printed with Flex filament. I used a fuzzy skin on the outer walls to better hide the seam.
BOM
1x ESP32 C3 SuperMini with expansion board
2x MG90S or SG90S continous servos
2x HW-870 infrared sensors (14mm x 31mm)
1x RCWL-1601 3.3v (use only this one, because it has on 3.3v on the signal pins)
1x 16340 Battery shield (provides 5v and charging)
1x 16340 Battery
JST connectors male and femal for the connection to the Battery shield
1x 8x8mm push switch
8x M2 screws 5mm
male to male dupont wires
1x 12mm steel ball
2x Microswitch 6x6mm (optional)
Assembly Instructions
There is some soldering involed. Solder a male JST connector to the middle 5v contact points of the battery shield. Crimp the female JST connector to two wires with on the other side two female dupont connectors. Solder the 8x8 switch in between the + wire.
![]() |
The battery shield and wires with switch |
When you have printed the body and head, the first components to fit are the battery shield and the infrared sensors. Leave the servos out for now because otherwise you won't have access to the sensitivity pots on the sensors anymore.
Fit the battery shield with four M2 screws to the body.
Fit the IRsensors with two M2 screws.
![]() |
IR sensors installed, servos will cover the adjustment pots |
Connect the IR sensors to the ESP32 C3 superMini, upload the Arduino code and start the app. Connect to the robot. You will find a button in the app that displays the output of the sensors. Test and if needed adjust the sensitivity from about 15mm from the ground using a piece of black tape of about 19mm width.
Once the sensors work you can fit the servos. Push them in from the outside with the wires facing the backside of the body. Fasten them with the screws that came with the servo.
Fit the buzzer. Best to put a drop of super glue on the buzzer to prevent it from falling out.
The Head holds the push button switch, the sonar senor and the ESP32 with expansion board. Leave the ESP32 with expansion board out for now, this will make connecting the wires easier.
Put a few lines of super glue on the switch and the sonar sensor.

The servos need 5v, so just remove the red wire from the dupont connector on the servo and put a single plastic cap on it. Then you can connect the servo to the expansion's board three pins row and connect the single 5v wire to one of the three 5v connectors on the expansion board.
Now connect all the other components to the ESP32.
Connect the dupont connectors of the 5v from the battery to one of the 5v rows of the expansion board. Remember to leave the switch off when you are connecting the ESP32 to your computer for uploading.
In the end you will have quite a lot of wiring going on.

The expansion board clicks into place in the recess in the head. Just position it under the retainers and give it a little push to have the USB-C port click into place.
Fit the head, the wheels and the caster and you're ready to go.
There is an alternative version of the head that has room for two micro switches. If you add those than you can start Line Following and Obstacle Avoiding by pressing the switches. Fix the switches with some hot glue.
PIN Confiuration
PIN | Component | Type | Voltage |
|---|---|---|---|
2 | Right Servo | SG90S/MG90S Continuous | VCC 5V |
3 | Left Servo | SG90S/MG90S Continuous | VCC 5V |
5 | Right Infrared sensor | HW-870 (14mm x 31mm) | VCC 3.3V |
6 | Left Infrared sensor | HW-870 (14mm x 31mm) | VCC 3.3V |
10 | Buzzer | Passive Buzzer 3-12V | |
0 | Sonar TRIG | RCWL-1601 3.3V | VCC 3.3V |
1 | Sonar Echo | RCWL-1601 3.3V | VCC 3.3V |
20 | Microswitch 1 | 6x6mm microswitch | |
21 | Microswitch 2 | 6x6mm microswitch |
The App
Get the app here. This is a PWA, so you can run it on your phone or pc in the browser. Chrome will also give you the option to install it as a real app on your phone.
There are two tabs in the app, one for the classic Otto and one for the Wheels variant. This project uses the Wheels variant.
With the joystick you can drive the robot in free roam mode. The Avoidance button sets the robot in obstacle avoidance mode. You can adjust the avoidance distance. The line follower mode will have the robot follow a black line of about 19 cm wide.
In the Utilities section you can dowload the latest version of the Arduino app. The two buttons for avoidance and line following are for debugging and fine tuning.
It is almost garanteed that the wheels will not have the exact same speed. This results in the robot to turn to one side while trying to drive straight. You can use the Calibrate function to even out this difference.

Arduino Code
Download the code from the repository or from within the app itself. Open the code in the Arduino IDE. As board choose "ESP32C3 Dev Module" (you may first have to install the ESP32 Boards in Arduino IDE). Upload the code to the microcontroller.
For a complete description on how to use the ESP32 C3 SuperMini in the Arduino IDE look here: https://randomnerdtutorials.com/getting-started-esp32-c3-super-mini/

