Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Bouw een Web-ingeschakelde Arduino Auto Race Brick Game

Onderdelen en benodigdheden

  • Arduino UNO – 1 stuk
  • PHPoC Shield voor Arduino – 1 stuk (PHPoC Shield of PHPoC WiFi Shield)
  • USB WiFi dongle – 1 stuk (Ralink RT3070/RT5370 chipset, aan PHPoC Shield. Of gewoon Ethernetkabel aan PHPoC Shield, dan geen dongle nodig)
  • Draaihoek-sensor (potentiometer) – 1 stuk

Over dit project

Demo

Deze klassieker roept nostalgische jeugdherinneringen op. Spelregels: vermijd tegenstander-auto's en behaal zo veel mogelijk punten. De auto kan schakelen tussen 5 banen, en er zijn 15 snelheidsniveaus. Hoe hoger de snelheid, des te sneller de tegenstanders, des te moeilijker het spel.

Bedrading

  • PHPoC Shield op Arduino steken.
  • Draaihoek-sensor: GND, VCC, SIG → Arduino GND, 5V, A0.

Bouw een Web-ingeschakelde Arduino Auto Race Brick Game

Data Flow

Arduino → PHPoC Shield → Webbrowser

Gebruiker bedient draaihoek-sensor. De invoerwaarde bepaalt de auto-positie (baan).

Arduino leest de sensorwaarde. ADC-waarden worden verdeeld in 5 niveaus. Wisselen tussen niveaus = baan wisselen. Als signaal naar ander niveau schakelt, stuurt Arduino het bijgewerkte niveau naar PHPoC Shield.

PHPoC WiFi Shield stuurt waarde via WebSocket naar webbrowser. JavaScript werkt de auto-positie bij. JavaScript updatet continu tegenstander-posities en spel-snelheid.

Te doen

  • WiFi-verbinding instellen voor PHPoC Shield (SSID/wachtwoord)
  • Nieuwe UI uploaden naar PHPoC Shield
  • Arduino-code uploaden

WiFi instellen voor PHPoC Shield: Zie instructies.

Web UI uploaden naar PHPoC Shield:

  • Download remote_racing_game.php
  • Upload via PHPoC Debugger (zie instructies)

Arduino-code uploaden:

  • Installeer PHPoC Library voor Arduino (zie instructies)
  • Upload Arduino-code

En tenslotte

  • Klik Serial Monitor in Arduino IDE voor IP-adres.
  • Open browser: https://<ip-adres>/remote_racing_game.php
  • Klik "Connect" en speel!

Meer over potentiometer: Potentiometer Tutorial

Functiereferenties

  • pinMode()
  • analogRead()
  • digitalWrite()
  • Serial.begin()
  • Serial.println()
  • for loop
  • while loop
  • if else
  • loop()
  • setup()

Code

Arduino-code

#include "SPI.h"
#include "Phpoc.h"

PhpocServer server(80);
int adcPin = A0;
float adcVal = 0;
int 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 server address: ");
  Serial.println(Phpoc.localIP());
}

void loop() {
  PhpocClient client = server.available();
  if (client) {
    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;
      delayMicroseconds(50);
    }
  }
}

remote_racing_game.php (PHP/JavaScript voor PHPoC Shield)

<!DOCTYPE html>
<html>
<head>
  <title>Arduino - Web-based Game</title>
  <meta name="viewport" content="width=device-width, initial-scale=0.7, maximum-scale=0.7">
  <style>
    body { text-align: center; font-size: 15pt; font-family: Arial, Helvetica, sans-serif; }
    h1 { font-weight: bold; font-size: 25pt; }
    h2 { font-weight: bold; font-size: 15pt; }
    button { font-weight: bold; font-size: 15pt; }
  </style>
  <script>
    // ... volledige JavaScript game logic (zie origineel) ...
    // Bevat: canvas tekenen, WebSocket communicatie, game loop, botsing detectie, score, levels, etc.
  </script>
</head>
<body>
  <center>
    <p><h1>Arduino - Car Race </br> Brick Game</h1></p>
    <canvas id="remote" width="500" height="400"></canvas>
    <h2>
      <p>WebSocket: <span id="ws_state">null</span></p>
      <button id="bt_connect" type="button" onclick="connect_onclick()">CONNECT</button>
    </h2>
  </center>
</body>
</html>

De volledige JavaScript-code is uitgebreid. Zie originele projectpagina voor de complete remote_racing_game.php.

Productieproces

  1. Web-gestuurd DMX-verlichtingssysteem – Arduino Master Controller
  2. Bouw een Klassiek Pong-spel op Arduino UNO met OLED-display – Stap-voor-stap Tutorial
  3. Bluetooth-gecontroleerde Arduino Spybot bouwen
  4. DIY Arduino USB Gaming Controller – Bouw Je Eigen High-Performance Gamepad
  5. Arduino Touch Breakout-spel: Bouw een Klassieke Arcade op een 2,4″ TFT LCD
  6. Een oude RC-auto ombouwen tot joystick-gestuurd voertuig met Arduino
  7. Arduino Web-gecontroleerde MP3 Speler: Eenvoudige Audio Afspelen via Browser
  8. Pixel Chaser: Interactieve één-tik LED-spel met Arduino Nano
  9. Beveilig uw Arduino met Webpatroonontgrendeling – Eenvoudige Setup & Remote Control
  10. Bouw een geautomatiseerde Google Chrome Dino Game met Arduino
  11. Bouw je eigen RC Porsche-auto met Arduino: Stap-voor-stap handleiding