Deze tutorial legt uit hoe u draadloos een robotauto bestuurt met een Arduino via een webbrowser op uw smartphone of pc via WiFi. De besturing verloopt via een grafische webgebruikersinterface die gebruikmaakt van WebSocket-technologie, waardoor soepele en dynamische bediening van de auto mogelijk is.
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 2WD RC Auto en WebSocket
Waarom kiezen voor WebSocket? Hieronder de redenen:
Zonder WebSocket zou u elke keer de pagina moeten herladen wanneer u de rijrichting van de auto wilt veranderen. Dat is niet efficiënt!
Met WebSocket wordt er een speciale verbinding opgezet tussen de webpagina en de Arduino. Dit maakt het mogelijk om commando’s op de achtergrond naar de Arduino te sturen, zonder de pagina te hoeven herladen. Het resultaat? De robotauto reageert soepel en direct. Best indrukwekkend, toch?
Kortom, WebSocket zorgt voor een vloeiende, real-time besturing van de robotauto.
We hebben aparte tutorials over de 2WD RC Auto en WebSocket. Elke tutorial bevat gedetailleerde informatie en stapsgewijze instructies over hardware pinout, werkingsprincipe, bekabeling met Arduino, Arduino code... Leer er meer over via de volgende links:
De Arduino code zet zowel een webserver als een WebSocket server op. Zo werkt het:
Wanneer u het IP-adres van de Arduino intypt in een webbrowser, vraagt deze een webpagina (gebruikersinterface) op bij de Arduino.
De webserver van de Arduino reageert door de inhoud van de webpagina (HTML, CSS, JavaScript) te versturen.
Uw webbrowser toont vervolgens deze webpagina.
Binnen deze pagina start de JavaScript-code een WebSocket-verbinding met de WebSocket-server op de Arduino.
Zodra de WebSocket-verbinding actief is, stuurt de JavaScript discreet commando’s naar de Arduino telkens u een knop indrukt of loslaat op de webpagina.
De WebSocket-server op de Arduino ontvangt deze commando’s en bestuurt de robotauto overeenkomstig.
Hieronder vindt u een tabel met de lijst van commando’s die de webpagina naar de Arduino stuurt, afhankelijk van de gebruikersactie:
Gebruikersactie
Knop
Commando
Actie auto
DRUKKEN
UP
1
VOORWAARTS RIJDEN
DRUKKEN
DOWN
2
ACHTERWAARTS RIJDEN
DRUKKEN
LEFT
4
LINKS DRAAIEN
DRUKKEN
RIGHT
8
RECHTS DRAAIEN
DRUKKEN
STOP
0
STOPPEN
LOSSEN
UP
0
STOPPEN
LOSSEN
DOWN
0
STOPPEN
LOSSEN
LEFT
0
STOPPEN
LOSSEN
RIGHT
0
STOPPEN
LOSSEN
STOP
0
STOPPEN
Bedradingsschema tussen 2WD RC Auto en Arduino
Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.
Normaal gesproken zijn er twee aparte voedingsbronnen nodig:
Eén voor de motor.
Een andere voor zowel het Arduino-bord als de L298N-module (de motor driver).
U kunt deze opstelling vereenvoudigen door slechts één voeding te gebruiken – vier 1.5V batterijen die samen 6V leveren. Zo werkt het:
Sluit de batterijen aan op de L298N-module zoals aangegeven.
Verwijder de twee jumpers van de ENA- en ENB-pinnen naar de 5 volt op de L298N-module.
Plaats een jumper gemarkeerd 5VEN (aangeduid door een gele cirkel in het schema).
Verbind de 12V-pin op de L298N-module met de Vin-pin van de Arduino. Zo krijgt de Arduino direct stroom van de batterijen.
De 2WD RC auto is uitgerust met een aan/uit-schakelaar, waarmee u de batterij via de schakelaar kunt verbinden. Hiermee kunt u de stroom naar de auto eenvoudig aan- en uitzetten. Wilt u het liever simpel houden, dan kunt u de schakelaar ook geheel overslaan.
Arduino Code
De inhoud van de webpagina (HTML, CSS, JavaScript) wordt opgeslagen in een aparte index.h-bestand. Op Arduino IDE heeft u dus twee codebestanden:
Een .ino-bestand met Arduino code die een webserver en WebSocket-server opzet en de auto aanstuurt
Nu heeft u twee codebestanden: ArduinoGetStarted.com.ino en index.h
Klik op de Upload knop in Arduino IDE om de code naar de Arduino te uploaden.
Open de Seriële Monitor
Kijk wat er op de Seriële Monitor verschijnt.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Arduino Uno R4 WiFi - WebSocket Server
Connected! IP Address: 192.168.0.254
SSID: YOUR_WIFI_SSID
IP Address: 192.168.0.254
Signal strength (RSSI): -44 dBm
WebSocket server started on port 81
WebSocket URL: ws://192.168.0.254:81
WebSocket server enabled successfully
Ln 11, Col 1
Arduino Uno on COM15
2
Noteer het IP-adres dat getoond wordt en voer dit in de adresbalk van een webbrowser op uw smartphone of pc in.
U ziet de webpagina zoals hieronder:
Klik op de CONNECT-knop om de webpagina via WebSocket met Arduino te verbinden.
Nu kunt u de auto besturen en laten links/rechts draaien, voorwaarts/achterwaarts rijden via de webinterface.
Om Arduino-geheugen te besparen, worden de afbeeldingen van de bedieningsknoppen NIET op Arduino opgeslagen. In plaats daarvan staan ze op het internet, dus uw telefoon of pc moet met internet verbonden zijn om de afbeeldingen voor de webbediening te laden.
※ Notiz:
Als u de HTML-inhoud in index.h wijzigt zonder iets aan te passen in het ArduinoGetStarted.com.ino bestand, dan update de Arduino IDE de HTML-inhoud niet bij compileren en uploaden.
Om Arduino IDE de HTML-inhoud toch te laten updaten, maakt u een kleine wijziging in het ArduinoGetStarted.com.ino bestand (bijvoorbeeld een lege regel toevoegen of een commentaarregel).
Regel-voor-regel uitleg van de code
De bovenstaande Arduino code bevat commentaar met regel-voor-regel uitleg. Lees de opmerkingen in de code zorgvuldig!
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!