ESP32 - Auto

Een van de leukste projecten om mee te beginnen als u net start met de ESP32, is het maken van een robotauto. In deze handleiding leert u hoe u een robotauto bouwt met de ESP32 en deze bestuurt met een IR-afstandsbediening (infrarood). Wilt u de robotauto via Web (WiFi) bedienen, bekijk dan de tutorial ESP32 controls Car via Web.

ESP32 IR-afstandsbediening auto

Hardware Vereist

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×2WD RC Auto
1×L9110S Motordriver Module
1×IR Afstandsbediening Kit
1×CR2025 Batterij (voor IR-afstandsbediening)
1×1.5V AA Batterij (voor ESP32 en auto)
1×Jumperdraden
1×Breadboard (experimenteerprint)
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de Robotauto

In de context van de ESP32 wordt de robotauto vaak met verschillende namen aangeduid zoals robotauto, RC-auto, afstandsbediening auto, slimme auto of doe-het-zelf auto. Deze kan draadloos worden bestuurd zonder snoeren. U kunt hiervoor een speciale afstandsbediening gebruiken die infraroodlicht zendt, of een smartphone-app via Bluetooth of WiFi. De robotauto kan naar links, rechts, vooruit en achteruit bewegen.

Een 2WD (Two-Wheel Drive) auto voor ESP32 is een klein robotvoertuig dat u bouwt en bestuurt met een ESP32-board. Het bestaat doorgaans uit de volgende onderdelen:

  • Chassis: De basis of het frame van de auto waarop alle andere componenten worden gemonteerd.
  • Wielen: Twee wielen die de auto laten rijden. Ze zijn gekoppeld aan twee DC-motoren.
  • Motoren: Twee DC-motoren die de wielen aandrijven.
  • Motor Driver: De motor driver board is een essentieel onderdeel dat de verbinding vormt tussen de ESP32 en de motoren. Het ontvangt signalen van de ESP32 en levert de benodigde stroom en sturing aan de motoren.
  • ESP32 Board: Het "brein" van de auto. Het leest input van sensoren en gebruikerscommando’s uit en bestuurt de motoren dienovereenkomstig.
  • Stroomvoorziening: De 2WD auto heeft een stroombron nodig, meestal batterijen in een houder, om de motoren en het ESP32-board van stroom te voorzien.
  • Draadloze ontvanger: een infrarood, Bluetooth of WiFi-module voor draadloze communicatie met een afstandsbediening of smartphone.
  • Optionele componenten: Afhankelijk van de complexiteit van uw project kunt u extra componenten toevoegen zoals sensoren (bijvoorbeeld ultrasone sensoren voor obstakelvermijding, lijnvolgsensoren) enzovoorts.

In deze handleiding maken we het eenvoudig met:

  • 2WD Auto kit (inclusief chassis, wielen, motoren, batterijhouder)
  • L9110S Motor Driver
  • IR infrarood kit (inclusief IR-controller en IR-ontvanger)

Controleer de hardwarelijst bovenaan deze pagina.

Hoe Het Werkt

ESP32 2WD auto - hoe het werkt
  • De ESP32 is verbonden met de DC motoren van de robotauto via de L9110S motor driver module.
  • De ESP32 is verbonden met een IR-ontvanger.
  • De batterij voorziet de ESP32, DC motoren, motor driver en IR-ontvanger van stroom.
  • De gebruiker drukt op de UP/DOWN/LEFT/RIGHT/OK knoppen van de IR-afstandsbediening.
  • De ESP32 ontvangt de UP/DOWN/LEFT/RIGHT/OK opdrachten via de IR-ontvanger.
  • De ESP32 bestuurt de auto om VOORUIT/ACHTERUIT/RECHTS/LINKS/STOP te rijden door de DC motor te sturen via de motor driver.

Bedradingsschema

Het onderstaande schema laat zien hoe u de ESP32, de L9110S motor driver, de twee DC-motoren en de IR-ontvanger verbindt, waarbij een breadboard wordt gebruikt om de gemeenschappelijke voedings- en aardingslijnen te delen:

ESP32 2WD robotauto bedradingsschema op een breadboard

Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.

Als u niet weet hoe u ESP32 en andere componenten van stroom moet voorzien, vindt u instructies in de volgende tutorial: Hoe ESP32 van stroom te voorzien.

Opmerking: Het bovenstaande schema toont de juiste bedrading. In de praktijk is het niet eenvoudig om meerdere draden (zoals de gedeelde VCC- en GND-lijnen) in hetzelfde pinheader-gaatje van de ESP32 te steken. Een handige oplossing is het gebruik van een schroefklemmen breakout-board voor ESP32 — meerdere draden kunnen in dezelfde schroefklem worden vastgezet, of één draad in de schroefklem en een andere in de aangrenzende headerpin.

ESP32 2WD robotauto bedradingsschema met een schroefklemmenblok

Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.

De L9110S module voedt de motoren rechtstreeks via de VCC- en GND-pinnen en heeft geen ingebouwde 5V-regelaar. Hierdoor kunt u alles met één enkele stroombron voeden — vier 1.5V AA-batterijen (totaal 6V). Zo doet u dat:

  • Verbind de 6V-batterij met de VCC- en GND-pinnen van de L9110S module om de motoren te voeden.
  • Verbind dezelfde 6V-batterij met de Vin- en GND-pinnen van het ESP32-board om de ESP32 te voeden.
  • Zorg ervoor dat de L9110S module, het ESP32-board en de IR-ontvanger een gemeenschappelijke GND delen.

In tegenstelling tot de L298N heeft de L9110S geen ENA/ENB enable-jumpers en geen 12V-schroefaansluiting, waardoor de bedrading eenvoudiger is.

ESP32 Code

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-car */ #include <DIYables_IRcontroller.h> // IR Remote Controller library #define IR_RECEIVER_PIN 13 // The ESP32 pin GPIO13 connected to IR receiver #define MOTOR_A_IA_PIN 14 // The ESP32 pin GPIO14 connected to the A-IA pin of the L9110S (Motor A) #define MOTOR_A_IB_PIN 27 // The ESP32 pin GPIO27 connected to the A-IB pin of the L9110S (Motor A) #define MOTOR_B_IA_PIN 33 // The ESP32 pin GPIO33 connected to the B-IA pin of the L9110S (Motor B) #define MOTOR_B_IB_PIN 32 // The ESP32 pin GPIO32 connected to the B-IB pin of the L9110S (Motor B) DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); pinMode(MOTOR_A_IA_PIN, OUTPUT); pinMode(MOTOR_A_IB_PIN, OUTPUT); pinMode(MOTOR_B_IA_PIN, OUTPUT); pinMode(MOTOR_B_IB_PIN, OUTPUT); } void loop() { Key17 key = irController.getKey(); if (key != Key17::NONE) { switch (key) { case Key17::KEY_UP: Serial.println("CAR - MOVING FORWARD"); CAR_moveForward(); break; case Key17::KEY_DOWN: Serial.println("CAR - MOVING BACKWARD"); CAR_moveBackward(); break; case Key17::KEY_LEFT: Serial.println("CAR - TURNING LEFT"); CAR_turnLeft(); break; case Key17::KEY_RIGHT: Serial.println("CAR - TURNING RIGHT"); CAR_turnRight(); break; case Key17::KEY_OK: Serial.println("CAR - STOP"); CAR_stop(); break; default: Serial.println("WARNING: unused key:"); break; } } } void CAR_moveForward() { digitalWrite(MOTOR_A_IA_PIN, HIGH); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, HIGH); digitalWrite(MOTOR_B_IB_PIN, LOW); } void CAR_moveBackward() { digitalWrite(MOTOR_A_IA_PIN, LOW); digitalWrite(MOTOR_A_IB_PIN, HIGH); digitalWrite(MOTOR_B_IA_PIN, LOW); digitalWrite(MOTOR_B_IB_PIN, HIGH); } void CAR_turnLeft() { digitalWrite(MOTOR_A_IA_PIN, HIGH); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, LOW); digitalWrite(MOTOR_B_IB_PIN, LOW); } void CAR_turnRight() { digitalWrite(MOTOR_A_IA_PIN, LOW); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, HIGH); digitalWrite(MOTOR_B_IB_PIN, LOW); } void CAR_stop() { digitalWrite(MOTOR_A_IA_PIN, LOW); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, LOW); digitalWrite(MOTOR_B_IB_PIN, LOW); }

Snelstartstappen

  • Is dit de eerste keer dat u de ESP32 gebruikt? Bekijk dan hoe u de ESP32 ontwikkelomgeving opzet in Arduino IDE.
  • Installeer de DIYables_IRcontroller bibliotheek in Arduino IDE volgens deze instructies.
  • Maak de bedrading volgens het bovenstaande schema.
  • Ontkoppel de draad van de Vin-pin op de ESP32, want we voeden de ESP32 tijdens het uploaden via de USB-kabel.
  • Draai de auto ondersteboven zodat de wielen bovenaan zijn.
  • Verbind het ESP32-board met uw PC via een micro USB-kabel.
  • Open Arduino IDE op uw PC.
  • Selecteer het juiste ESP32-board (bijvoorbeeld ESP32 Dev Module) en de juiste COM-poort.
  • Kopieer de meegeleverde code en open deze in Arduino IDE.
  • Klik op de Upload-knop om de code naar de ESP32 te sturen.
  • Gebruik de IR-afstandsbediening om de auto vooruit, achteruit, links, rechts te laten rijden of te laten stoppen.
  • Controleer of de wielen correct reageren op uw commando’s.
  • Bewegen de wielen verkeerdom? Wissel dan de draden van de DC motor op de L9110S-module om.
  • U kunt de uitvoer ook volgen in de Seriële Monitor van Arduino IDE.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
CAR - MOVING FORWARD CAR - MOVING BACKWARD CAR - TURNING LEFT CAR - TURNING RIGHT CAR - STOP
Ln 11, Col 1
ESP32 Dev Module on COM15
2
  • Als alles naar wens werkt, trek dan de USB-kabel uit de ESP32 en sluit het draadje weer aan op de Vin 5V-pin. Hierdoor wordt de ESP32 via batterij gevoed.
  • Zet de auto weer terug in de normale positie met de wielen op de grond.
  • Veel plezier met het besturen van uw auto!

Code Uitleg

Lees de uitleg regel voor regel in de commentaarregels van de code!

U kunt meer leren over de code via deze tutorials:

U kunt dit project uitbreiden door:

  • Obstakelvermijdingssensoren toe te voegen om direct te stoppen als er een obstakel wordt gedetecteerd.
  • Functionaliteit toe te voegen om de snelheid van de auto te regelen (zie ESP32 - DC motor tutorial). De geleverde code bestuurt de auto op maximale snelheid.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en laat stap voor stap zien hoe u de ESP32 2WD auto bouwt en bestuurt met een IR-afstandsbediening.

Gerelateerde Tutorials

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!