Arduino - Auto

Een van de meest opwindende projecten voor Arduino beginners is het maken van een Arduino robotauto. In deze handleiding ontdekken we hoe u Arduino kunt gebruiken om een robotauto te bouwen en deze te besturen met een IR-afstandsbediening (infrarood). We verkennen ook een andere tutorial waarin we leren hoe u deze kunt omzetten in een auto die via Bluetooth bestuurd kan worden.

Arduino IR afstandsbediening auto

Hardware Benodigd

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×RC Auto
1×L298N Motordriver Module
1×IR Afstandsbediening Kit
1×CR2025 Batterij (voor IR-afstandsbediening)
1×1.5V AA Batterij (voor Arduino en auto)
1×Jumperdraden
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

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 Robotauto

In de context van Arduino wordt een robotauto meestal aangeduid als robotauto, RC-auto, afstandsbedieningauto, smart auto of doe-het-zelf auto. Deze kan draadloos en op afstand worden bestuurd met een IR-afstandsbediening of een smartphone-app via Bluetooth/WiFi. De robotauto kan naar links of rechts draaien en vooruit of achteruit rijden.

Een 2WD (Two-Wheel Drive) auto voor Arduino is een klein robotvoertuig dat u kunt bouwen en besturen met een Arduino board. Het bestaat doorgaans uit de volgende componenten:

  • Chassis: De basis of het frame van de auto, waar alle andere onderdelen op gemonteerd worden.
  • Wielen: De twee wielen die de auto voortbewegen. Deze zijn verbonden met twee DC-motoren.
  • Motoren: Twee DC-motoren die de twee wielen aandrijven.
  • Motor Driver: De motor driver board is een essentieel onderdeel dat de interface vormt tussen de Arduino en de motoren. Het ontvangt signalen van de Arduino en levert de benodigde stroom en aansturing aan de motoren.
  • Arduino Board: Het "brein" van de auto. Het leest input van sensoren en gebruikerscommando’s en besturing van de motoren hierop aan.
  • Voeding: De 2WD auto heeft een stroombron nodig, meestal batterijen met een batterijhouder, voor het voeden van de motoren en het Arduino board.
  • 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 verschillende optionele componenten toevoegen zoals sensoren (bijv. ultrasone sensoren voor obstakelvermijding, lijnguidsensoren) en meer.

In deze tutorial gebruiken we om het simpel te houden:

  • 2WD auto kit (inclusief chassis, wielen, motoren, batterijhouder)
  • L298N motor driver
  • IR infrarood kit (inclusief IR-controller en IR-ontvanger)

Bekijk de hardwarelijst bovenaan deze pagina.

Hoe Het Werkt

Arduino 2WD auto werking
  • Arduino is verbonden met de DC-motoren van de robotauto via de L298N motor driver module.
  • Arduino is verbonden met een IR-ontvanger.
  • De batterij voedt de Arduino, de DC-motoren, de motor driver en de IR-ontvanger.
  • Gebruikers drukken op de UP/DOWN/LEFT/RIGHT/OK knoppen op de IR-afstandsbediening.
  • Arduino ontvangt de UP/DOWN/LEFT/RIGHT/OK commando’s via de IR-ontvanger.
  • Arduino bestuurt de auto om te bewegen naar VOORUIT/ACHTERUIT/LINKS/RECHTS/STOP door de DC-motor via de motor driver aan te sturen.

Bedradingsschema

Arduino 2WD auto bedrading schema

This image is created using Fritzing. Click to enlarge image

Gewoonlijk zijn er twee stroombronnen nodig:

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

Er is echter een methode om alles met één stroombron te voeden. U kunt hiervoor vier 1,5V batterijen gebruiken (in totaal 6V). Zo kan het:

  • Verbind de batterijen met de L298N module volgens het bovenstaande schema.
  • Verwijder twee kleine connectoren (jumpers) die de ENA en ENB pinnen verbinden met 5 volt op de L298N module.
  • Plaats een speciale jumper met label 5VEN, gemarkeerd met een gele cirkel in het schema hierboven.
  • Verbind de 12V pin op het schroefaansluitblok van de L298N module met de Vin pin van het Arduino board. Hiermee wordt de Arduino direct gevoed door de batterij (6V totaal).

Let op: tijdens de ontwikkelfase, wanneer u de USB-kabel aansluit om de Arduino te programmeren, moet u de stroomverbinding tussen batterij en Arduino loskoppelen door een draad van de Vin pin te verwijderen. Het Arduino board mag niet tegelijkertijd door twee stroombronnen worden gevoed.

Arduino Code

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-car */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN 9 // The Arduino pin connected to IR receiver #define ENA_PIN 7 // The Arduino pin connected to the ENA pin L298N #define IN1_PIN 6 // The Arduino pin connected to the IN1 pin L298N #define IN2_PIN 5 // The Arduino pin connected to the IN2 pin L298N #define IN3_PIN 4 // The Arduino pin connected to the IN3 pin L298N #define IN4_PIN 3 // The Arduino pin connected to the IN4 pin L298N #define ENB_PIN 2 // The Arduino pin 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("MOVING FORWARD"); CAR_moveForward(); break; case Key17::KEY_DOWN: Serial.println("MOVING BACKWARD"); CAR_moveBackward(); break; case Key17::KEY_LEFT: Serial.println("TURNING LEFT"); CAR_turnLeft(); break; case Key17::KEY_RIGHT: Serial.println("TURNING RIGHT"); CAR_turnRight(); break; case Key17::KEY_OK: Serial.println("STOP"); CAR_stop(); break; default: Serial.println("WARNING: unused key:"); break; } } } vvoid 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); }

Snel aan de slag

  • Installeer de DIYables_IRcontroller bibliotheek in de Arduino IDE door de instructie hier te volgen.
  • Maak de bedrading zoals aangegeven in het schema hierboven.
  • Koppel de draad van de Vin pin op de Arduino los omdat we de Arduino straks via USB kabel van stroom voorzien bij het uploaden van de code.
  • Draai de auto ondersteboven zodat de wielen bovenkant zijn.
  • Verbind de Arduino met de computer via de USB-kabel.
  • Kopieer de meegeleverde code en open deze in de Arduino IDE.
  • Klik op de Upload knop in de Arduino IDE om de code naar de Arduino te sturen.
  • Gebruik de IR-afstandsbediening om de auto vooruit, achteruit, links, rechts te laten rijden of stoppen.
  • Controleer of de wielen bewegen zoals de commando’s aangeven.
  • Als de wielen de verkeerde kant op draaien, verwissel dan de draden van de DC-motor op de L298N module.
  • U kunt ook de resultaten zien in de Serial Monitor van de Arduino IDE.
COM6
Send
MOVING FORWARD MOVING BACKWARD TURNING LEFT TURNING RIGHT STOP
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Als alles goed werkt, koppel dan de USB-kabel los van de Arduino en verbind de draad weer terug met de Vin pin om de Arduino van batterijvoeding te voorzien.
  • Draai de auto terug naar normale positie met de wielen op de grond.
  • Veel plezier met het besturen van de auto!

Code Uitleg

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

U kunt meer leren over de code via de volgende tutorials:

U kunt dit project uitbreiden door:

  • Het toevoegen van sensoren voor obstakelvermijding om de auto onmiddellijk te laten stoppen als er een obstakel wordt gedetecteerd.
  • Het toevoegen van een functie om de snelheid van de auto te regelen (zie Arduino - DC Motor tutorial). De meegeleverde code bestuurt de auto met volle 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 helpt u het project gemakkelijker te doorlopen.

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!