亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

自制网页版 Arduino 赛车砖块游戏

组件与物料

Arduino UNO ×1
PHPoC Shield(或 PHPoC WiFi Shield) ×1
USB WiFi 网卡(Ralink RT3070/RT5370 芯片) ×1
旋转角度传感器(电位器) ×1

项目简介

演示

经典怀旧游戏:控制赛车在 5 条车道切换,躲避对手车辆,15 个速度等级,速度越快对手越快、难度越高。

接线

数据流向

Arduino → PHPoC Shield → 网页浏览器

用户转动电位器,Arduino 读取 ADC 值并分为 5 个等级对应 5 条车道。等级变化时通过 WebSocket 发送给 PHPoC Shield,再转发至浏览器。JavaScript 持续更新对手车辆位置和游戏速度。

准备工作

  1. 配置 PHPoC Shield WiFi(SSID/密码)
  2. 上传 Web UI 到 PHPoC Shield(remote_racing_game.php,用 PHPoC Debugger 上传)
  3. 安装 PHPoC Arduino 库并上传 Arduino 代码

运行

  1. 打开 Arduino IDE 串口监视器获取 IP 地址
  2. 浏览器访问 https://<IP>/remote_racing_game.php
  3. 点击 Connect 按钮开始游戏

函数参考

代码

Arduino 代码

#include "SPI.h"
#include "Phpoc.h"
PhpocServer server(80);
int adcPin = A0;
float adcVal = 0, adcMin = 512-2.5*100;
int lastPos = -1;

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);
    }
  }
}

PHPoC Shield 代码 (remote_racing_game.php)

<!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} h1{font-size:25pt} button{font-size:15pt} </style>
<script>
// 完整游戏逻辑:Canvas 绘制赛道、车辆、计分、等级、碰撞检测、WebSocket 通信
// 详见原文代码块
</script> </head> <body>
<center> <h1>Arduino - Car Race <br> Brick Game</h1>
<canvas id="remote" width="500" height="400"></canvas>
<h2> WebSocket: <span id="ws_state">null</span> </h2>
<button id="bt_connect" onclick="connect_onclick()">CONNECT</button> </h2> </center> </body> </html>

制造工艺

  1. 基于 Web 控制的 DMX 灯光系统 – Arduino 主控制器
  2. 用 Arduino UNO 和 OLED 显示屏制作经典 Pong 游戏:分步教程
  3. DIY 蓝牙控制 Arduino 间谍小车
  4. DIY Arduino USB 游戏手柄 — 自制高性能游戏手柄
  5. Arduino 触控打砖块:在 2.4 英寸 TFT LCD 上重现经典街机
  6. 废旧遥控车改装:Arduino + USB Host Shield 实现 Xbox 手柄无线控制
  7. Arduino 网页控制 MP3 播放器:浏览器实现无线点歌
  8. Pixel Chaser:Arduino Nano 单键 NeoPixel 追逐小游戏
  9. 用网页图案解锁保护你的 Arduino - 简单设置与远程控制
  10. Arduino 自动化 Chrome 恐龙游戏 - LDR 光敏电阻 + Python 实现全自动跳跃
  11. 自制 Arduino 遥控保时捷赛车:从改装底盘到手机 App 控制全攻略
  12. DIY LED 轮盘赌游戏机 —— Arduino Nano 打造单人桌面街机