กลับไปหน้ารวมไฟล์
controling-an-rc-car-from-a-computer-game-9f65d8.md

ชื่อโปรเจกต์: การควบคุมรถ RC จากวิดีโอเกมบนคอมพิวเตอร์

ผมเริ่มเขียนเกม City Building มาพักหนึ่งแล้ว ระหว่างที่พยายามคิดหาวิธีที่จะทำให้มันแตกต่างจากเกม City Building อื่น ๆ อีกหลายร้อยเกมที่มีอยู่ ผมก็ปิ๊งไอเดียขึ้นมาในห้องน้ำว่า มันจะเจ๋งแค่ไหนถ้าเราสร้างโลกเสมือนจริงขึ้นมา แล้วให้วัตถุในชีวิตจริงเคลื่อนที่ไปในนั้นได้

ต้องขอบคุณ Arduino ที่ทำให้การสร้างต้นแบบสิ่งนี้ไม่ได้เป็นเรื่องที่เป็นไปไม่ได้สำหรับนักพัฒนาเดี่ยวอย่างผม ผมจึงลงมือทำ ผมสร้างรถ RC ขึ้นมาด้วยชุดคิทที่เจอในอินเทอร์เน็ต และใช้ Arduino Mega กับ Motor Control Shield (L298P - ผมได้ทำวิดีโอสอนการใช้งานซึ่งคุณสามารถดูได้ที่นี่) ผมเชื่อมต่อมันเข้ากับ ESP 8266 เพื่อให้สามารถเชื่อมต่อกับ WiFi ได้ ESP 8266 จะเชื่อมต่อกับเครือข่าย WiFi และส่งคำสั่งที่ได้รับผ่าน MQTT ไปยัง Arduino ผ่านการสื่อสารแบบ serial ซอร์สโค้ดทั้งหมดมีอยู่ใน git คุณสามารถดูได้ในคำอธิบายของวิดีโอ YouTube.

คำสั่ง MQTT ที่ ESP 8266 ได้รับนั้นถูกเผยแพร่ผ่าน PC ของผมที่กำลังรันเกมอยู่ ผมใช้แอปพลิเคชันทดสอบที่ผมเขียนไว้เมื่อนานมาแล้ว ซึ่งสอนให้รถขับไปรอบ ๆ สนามโดยใช้ machine learning หากคุณสนใจ คุณสามารถดูวิดีโอที่ผมทำเกี่ยวกับเรื่องนี้ได้ที่นี่.

รายละเอียดทางเทคนิคเพิ่มเติม

ตัวเชื่อมข้อมูล Telemetry ระหว่างโลกเสมือนจริงกับโลกทางกายภาพ

โปรเจกต์นี้ช่วยให้ผู้เล่นสามารถขับรถ RC จริงๆ โดยใช้การควบคุมเดียวกับวิดีโอเกมเสมือนจริงบนคอมพิวเตอร์ ซึ่งสร้างประสบการณ์ mixed-reality ที่ทรงพลัง

  • การจับมือ (Handshake) ด้วย Unity MQTT: วิดีโอเกม (ที่สร้างด้วย Unity) จะจับค่าอินพุตจากคีย์บอร์ด/จอยสติ๊ก และเผยแพร่ไปยัง MQTT broker Arduino (บนรถ) จะสมัครรับข้อมูลจาก topic เหล่านี้ผ่าน WiFi module
  • การแมป Actuator แบบเรียลไทม์: Arduino รับแพ็กเก็ต MQTT และปรับสัญญาณ PWM สำหรับ steering servo และ ESC (Electronic Speed Controller) ทันที เพื่อสะท้อนฟิสิกส์ของรถเสมือนจริงในโลกแห่งความเป็นจริง

ประสิทธิภาพ

  • การเล่นเกมที่มี Latency ต่ำ: ได้รับการปรับแต่งเพื่อให้เกิด latency น้อยกว่า 50ms ระหว่างการกดปุ่มบน PC และการเคลื่อนที่ทางกายภาพของรถ เพื่อให้มั่นใจว่าประสบการณ์การใช้งานตอบสนองได้ดีและซิงโครไนซ์กัน

ข้อมูล Frontmatter ดั้งเดิม

title: "Controling An RC Car From A Computer Game"
description: "Imagine a city building game where real life objects are controller by way of machine learning, and navigate your virtual city using AR."
author: "tvtig"
category: ""
tags:
  - "cars"
  - "ai"
  - "games"
views: 2563
likes: 0
price: 2450
difficulty: "Intermediate"
components:
  - "1x Arduino Mega 2560"
  - "1x ESP8266 ESP-01"
  - "1x Development Board, Motor Control Shield"
  - "1x Jumper wires (generic)"
tools: []
apps:
  - "1x MQTT"
  - "1x Unity"
  - "1x Arduino IDE"
downloadableFiles:
  - "https://github.com/Tvtig/Car_Arduino_ESP"
  - "https://github.com/Tvtig/Car_Arduino_ESP"
documentationLinks: []
passwordHash: "8dde52a0eb8ecd53e44988643364f429a3c3cc33319ee0944be913866b903186"
encryptedPayload: "U2FsdGVkX18KUTJcwTzNjtTMCtb4HHp4SLpuawdHmUE9lS8NR41E5Faob3pHc2Ce4xMrOVdHMfNLJJXoemx78m18FU9ouT7VhVVoKFEAGnrRDCr/DMqwAPsjQ3uaWM2v"
seoDescription: "Control an RC Car from a Computer Game using Machine Learning and AR to navigate a Virtual City."
videoLinks:
  - "https://www.youtube.com/embed/trn9DeV-ALQ"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/controling-an-rc-car-from-a-computer-game-9f65d8_cover.jpg"
lang: "th"