1 / 1
Otto Wheels with an ESP32 C3 SuperMini — zdjęcie 1

Otto Wheels with an ESP32 C3 SuperMini

Zamów wydruk tego modelu

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/