Arduino - webgebaseerde autorace-steengame
Componenten en benodigdheden
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Over dit project
Demo
Dit klassieke spel kan sommigen van ons nostalgie uit de kindertijd doen voelen. Het spel is eenvoudig, probeer auto's van de tegenstander te vermijden en zoveel mogelijk punten te scoren. De auto kan schakelen tussen 5 rijstroken en er zijn 15 verschillende snelheden. Naarmate de snelheid toeneemt, zullen de auto's van de tegenstander sneller rennen, wat het spel moeilijker maakt.
Bedrading
- Stapel PHPoC-schild op Arduino.
- Sluit pin GND, VCC en SIG van de draaihoeksensor aan op respectievelijk GND, 5V en A0 van Arduino.
Gegevensstroom
Arduino ---> PHPoC Shield ---> Webbrowser
Gebruiker communiceert met draaihoeksensor. De ingangssignaalwaarde van de draaihoeksensor wordt gebruikt om de positie van de auto te veranderen.
Arduino leest de waarde van de draaihoeksensor. De ingangs-ADC-waarden zijn onderverdeeld in 5 verschillende niveaus. Wisselen tussen niveaus betekent wisselen van rijstrook. Gewoon, als het ingangssignaal naar een ander niveau wordt geschakeld, stuurt Arduino het bijgewerkte niveau naar PHPoC Shield.
Bij ontvangst van de waarde stuurt PHPoC WiFi Shield deze via Websocket naar de webbrowser. Vervolgens zal de JavaScript-functie de positie (rijstrook) van de auto bijwerken. Het JavaScript-programma werkt ook continu de positie van tegenstanders en de spelsnelheid bij.
Dingen om te doen
- WiFi-verbinding instellen voor PHPoC-schild (SSID en wachtwoord)
- Upload nieuwe gebruikersinterface naar PHPoC-schild
- Upload Arduino-code
WiFi-verbinding instellen voor PHPoC Shield
Zie deze instructie.
Upload nieuwe webgebruikersinterface naar PHPoC Shield
- Download PHPoC-broncode remote_racing_game.php.
- Upload het naar PHPoC-shield met behulp van PHPoC debugger volgens deze instructie.
Arduino-code uploaden
- Installeer PHPoC Library voor Arduino (zie instructie ).
- Upload Arduino-code naar Arduino
En tot slot
- Klik op de seriële knop op Arduino IDE om het IP-adres te krijgen.
- Open webbrowser, typ
http://
relace_ip_address_here
/remote_racing_game.php
- Klik op de verbindingsknop en geniet van het spel.
Meer informatie over potentiometer in Arduino - Potentiometer-zelfstudie
Functiereferenties
- pinMode()
- analogRead()
- digitalWrite()
- Serial.begin()
- Serial.println()
- for-lus
- terwijl-lus
- indien anders
- loop()
- 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; // variabele om de waarde op te slaan die afkomstig is van de sensorint lastPos =-1; float adcMin =512-2.5*100;void setup() {Serial.begin(9600); while(!Serial); Phpoc.begin(PF_LOG_SPI | PF_LOG_NET); server.beginWebSocket("game"); Serial.print("WebSocket-serveradres:"); Serial.println(Phpoc.localIP()); }void loop() { // wanneer de client de eerste byte verzendt, zeg hallo:PhpocClient client =server.available(); if (klant) { adcVal =0; for(int i =0; i <50; i++) adcVal +=analogRead(adcPin); adcVal /=50; int pos =(int)((adcVal-adcMin) / 100); if (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); lastPos =pos; vertraging Microseconden (50); } } }
remote_racing_game.phpPHP
PHPoC Shield-codeArduino - webgebaseerd spel
Arduino - Autorace Brick Game
WebSocket:null
Productieproces
- Web-gestuurde DMX-controller
- Arduino Pong Game - OLED-scherm
- Arduino Spybot
- Arduino-gamecontroller
- Arduino Touch Breakout-spel
- Met joystick bestuurde RC-auto
- Arduino - webgebaseerde mp3-speler
- Pixel Chaser-game
- Arduino - ontgrendeling webpatroon
- Geautomatiseerd Dino-spel met arduino
- RC Porsche Car (Arduino Project)