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×L298N 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 (30 sensoren/displays)
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)
  • L298N 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 L298N 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

ESP32 2WD auto bedradingsschema

This image is created using Fritzing. Click to enlarge image

ESP32 2WD auto bedradingsschema

Meestal zijn er twee stroombronnen nodig:

  • Één voor de motor (indirect via de L298N module).
  • Één voor het ESP32-board, de L298N module en de IR-ontvanger.

Er is echter een manier om dit te vereenvoudigen door alles met één stroombron te voeden. Dit bereikt u door vier 1.5V batterijen te gebruiken (totaal 6V). Zo doet u dat:

  • Sluit de batterijen aan op de L298N-module zoals getoond in het schema.
  • Verwijder twee jumpers die de ENA en ENB pinnen verbinden met 5 volt op de L298N-module.
  • Plaats een jumper genaamd 5VEN, deze is geel weergegeven in het schema.
  • Verbind de 12V pin op de schroefklem van de L298N-module met de Vin pin van het ESP32-board. Zo krijgt de ESP32 stroom direct van de batterijen (6V).

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 ENA_PIN 14 // The ESP32 pin GPIO14 connected to the ENA pin L298N #define IN1_PIN 27 // The ESP32 pin GPIO27 connected to the IN1 pin L298N #define IN2_PIN 26 // The ESP32 pin GPIO26 connected to the IN2 pin L298N #define IN3_PIN 25 // The ESP32 pin GPIO25 connected to the IN3 pin L298N #define IN4_PIN 33 // The ESP32 pin GPIO33 connected to the IN4 pin L298N #define ENB_PIN 32 // The ESP32 pin GPIO32 connected to the ENB pin L298N DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); pinMode(IN3_PIN, OUTPUT); pinMode(IN4_PIN, OUTPUT); pinMode(ENB_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); // set full speed digitalWrite(ENB_PIN, HIGH); // set full speed } 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(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, HIGH); digitalWrite(IN4_PIN, LOW); } void CAR_moveBackward() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_PIN, HIGH); } void CAR_turnLeft() { digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_PIN, LOW); } void CAR_turnRight() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, HIGH); digitalWrite(IN4_PIN, LOW); } void CAR_stop() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_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 L298N-module om.
  • U kunt de uitvoer ook volgen in de Seriële Monitor van Arduino IDE.
COM6
Send
CAR - MOVING FORWARD CAR - MOVING BACKWARD CAR - TURNING LEFT CAR - TURNING RIGHT CAR - STOP
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • 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!