Arduino - Webbasiertes Autorennen-Steinspiel
Komponenten und Verbrauchsmaterialien
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Über dieses Projekt
Demo
Dieses klassische Spiel kann einige von uns in Kindheitsnostalgie versetzen. Das Gameplay ist einfach, versuchen Sie, gegnerische Autos zu vermeiden und so viele Punkte wie möglich zu erzielen. Das Auto kann zwischen 5 Fahrspuren wechseln und es gibt 15 verschiedene Geschwindigkeiten. Mit zunehmender Geschwindigkeit fahren gegnerische Autos schneller, was das Spiel schwieriger macht.
Verkabelung
- Stapeln Sie PHPoC-Schild auf Arduino.
- Verbinden Sie die Pins GND, VCC und SIG des Drehwinkelsensors mit GND, 5V bzw. A0 von Arduino.
Datenfluss
Arduino ---> PHPoC Shield ---> Webbrowser
Benutzer interagiert mit dem Drehwinkelsensor. Der Eingangssignalwert des Drehwinkelsensors wird verwendet, um die Position des Fahrzeugs zu ändern.
Arduino liest den Wert vom Drehwinkelsensor. Die Eingangs-ADC-Werte sind in 5 verschiedene Stufen unterteilt. Das Wechseln zwischen den Ebenen bedeutet einen Spurwechsel. Wenn das Eingangssignal auf einen anderen Pegel umgeschaltet wird, sendet Arduino den aktualisierten Pegel einfach an PHPoC Shield.
Wenn der Wert empfangen wird, sendet PHPoC WiFi Shield ihn über Websocket an den Webbrowser. Dann aktualisiert die JavaScript-Funktion die Position (Spur) des Autos. Das JavaScript-Programm aktualisiert auch ständig die Position der Gegner und die Spielgeschwindigkeit.
Aktivitäten
- WLAN-Verbindung für PHPoC-Schild einrichten (SSID und Passwort)
- Neue Benutzeroberfläche auf PHPoC-Schild hochladen
- Arduino-Code hochladen
WLAN-Verbindung für PHPoC Shield einrichten
Siehe diese Anleitung.
Neue Web-Benutzeroberfläche in PHPoC Shield hochladen
- Laden Sie den PHPoC-Quellcode remote_racing_game.php herunter.
- Laden Sie es mit dem PHPoC-Debugger gemäß dieser Anleitung auf den PHPoC-Schild hoch.
Arduino-Code hochladen
- Installieren Sie die PHPoC-Bibliothek für Arduino (siehe Anleitung).
- Laden Sie Arduino-Code auf Arduino hoch
Und schließlich
- Klicken Sie auf die serielle Schaltfläche in der Arduino IDE, um die IP-Adresse zu erhalten.
- Öffnen Sie den Webbrowser, geben Sie
http://
einrelace_ip_address_here
/remote_racing_game.php
- Klicken Sie auf die Schaltfläche "Verbinden" und genießen Sie das Spiel.
Erfahren Sie mehr über Potentiometer in Arduino - Potentiometer Tutorial
Funktionsreferenzen
- pinMode()
- analogRead()
- digitalWrite()
- Seriell.begin()
- Seriell.println()
- for-Schleife
- while-Schleife
- wenn sonst
- Schleife()
- setup()
Code
- Arduino-Code
- remote_racing_game.php
Arduino-CodeArduino
#include "SPI.h"#include "Phpoc.h"PhpocServer server(80);int adcPin =A0; float adcVal =0; // Variable zum Speichern des vom sensorint kommenden Werts lastPos =-1; float adcMin =512-2,5 * 100;void setup () { Serial.begin (9600); while(!Seriell); Phpoc.begin(PF_LOG_SPI | PF_LOG_NET); server.beginWebSocket("Spiel"); Serial.print("WebSocket-Serveradresse:"); Serial.println (Phpoc.localIP()); }void loop() { // Wenn der Client das erste Byte sendet, sag hallo:PhpocClient client =server.available(); wenn (Kunde) {adcVal =0; for(int i =0; i <50; i++) adcVal +=analogRead(adcPin); adcVal /=50; int pos =(int)((adcVal-adcMin) / 100); wenn (pos<0) {pos =0; } else if (pos>4) pos =4; if(lastPos !=pos){ String txtMsg =String(pos) + "\r\n"; char buf[txtMsg.length()]; txtMsg.toCharArray(buf, txtMsg.length()); server.write(buf, txtMsg.length()); Serial.println (txtMsg); letztePos =pos; VerzögerungMikrosekunden (50); } } }
remote_racing_game.phpPHP
PHPoC Shield-CodeArduino - Webbasiertes Spiel
Arduino - Autorennen Brick Game
WebSocket :null
Herstellungsprozess