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.
De L9110S module (die dient als motor driver) 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 batterijen die samen 6V leveren. Zo werkt het:
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 de Arduino om het Arduino board te voeden.
Zorg ervoor dat de L9110S module en de Arduino 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.
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!