กลับไปหน้ารวมไฟล์
play-dinosaur-game-using-arduino-and-python3-4b0caa.md

ชื่อโปรเจกต์: เล่นเกมไดโนเสาร์ด้วย Arduino และ Python3 ฉบับเด็กช่างเท่ๆ

รายละเอียดโปรเจกต์:

เชื่อดิว่าพวกเอ็งเกือบทุกคนต้องเคยเล่นเกมไดโนเสาร์ของ Google เวลาเน็ตตัดกันมาบ้างแหละ แต่ถ้าใครยังไม่เคยเล่นก็ไม่ต้องนอยด์ไป เพราะวันนี้เราจะมาเล่นกันแบบไม่ธรรมดา ไม่ต้องมานั่งกดปุ่มให้เมื่อยนิ้ว แต่เราจะใช้ "ท่าทางมือ" ในการสั่งกระโดดแทน! โปรเจกต์นี้เราจะใช้ [Sensor](https://s.shopee.co.th/7VBG2rX65j) [LDR](https://s.shopee.co.th/1BHCUqb0Tt) (Photo Resistor) ส่งค่าไปหาบอร์ด [Arduino](https://s.shopee.co.th/7fUgFAWSki) แล้วให้ Arduino ยิงข้อมูลต่อไปที่ Python3 จากนั้นเราจะใช้ Library สุดเทพอย่าง `pyautogui` มาสั่งกดปุ่มลูกศร "ขึ้น" ให้เราอัตโนมัติ จัดไปวัยรุ่น! :)

ทำไมพี่ถึงอยากทำโปรเจกต์นี้?

เรื่องของเรื่องคือพี่เพิ่งไปดูคลิปใน YouTube มา เป็นโปรเจกต์ใช้ท่าทางมือคุมคอมพิวเตอร์ด้วย Arduino แล้วแบบ เห้ย! มันหล่อเท่มากว่ะ แต่อยากทำบ้างติดที่ตอนนี้พี่ไม่มี Sensor Ultrasonic ในมือนี่ดิ พี่เลยลองมานั่งแกะดูว่ามันทำงานยังไง? แล้วก็ปิ๊งไอเดียว่า "ใช้แค่ LDR (Photo Resistor) ก็ทำได้นี่หว่า" เลยตัดสินใจเอามาคุมปุ่มลูกศรขึ้นเพื่อเล่นเกมไดโนเสาร์ซะเลย ที่สำคัญคือน้องๆ มือใหม่ก็ทำตามได้ไม่ยาก ช่วยอัปเวลความอยากรู้อยากเห็นได้ดีนักแล

ลองดูคลิปที่พี่ไปดูมาข้างล่างนี้ดิ

เอาล่ะ มาเริ่มลุยกันเลยดีกว่า:

ของที่ต้องใช้ (เตรียมให้ครบนะน้อง):

  • บอร์ด Arduino UNO 1 ตัว
  • Breadboard
  • Photo Resistor หรือที่เรียกกันว่า LDR
  • Resistor 10k ohm
  • สาย Jumper

แค่นี้แหละ จบปิ๊ง

Schematic (วงจรการต่อ):

ข้อมูลเกี่ยวกับ Python3:

ทีนี้ เพื่อให้โปรเจกต์นี้ทำงานได้ น้องต้องลง Python3 ในเครื่องก่อนนะ ใครที่ยังลงไม่เป็นหรืออยากรู้วิธีการเชื่อมต่อระหว่าง Python3 กับ Arduino พี่แนะนำให้ลองไปหาข้อมูลเพิ่มเติมเรื่องการติดตั้งดู จะได้เข้าใจพื้นฐานเวลาใช้งานร่วมกับบอร์ด Arduino ของเรามากขึ้น :)

ลองเช็คข้อมูลเรื่อง "Python3 and Arduino Communication" ดูนะน้อง

ขั้นตอนสุดท้าย: ลง Library pyautogui:

เราต้องมี Library ที่ชื่อว่า `pyautogui` มาเป็นตัวช่วยในการสั่งงานกดปุ่ม "ลูกศรขึ้น" แทนมือเรา

หลังจากที่น้องลง Python3 เสร็จแล้ว ให้ทำตามขั้นตอนนี้:

ul >
  • เปิด Command Prompt โดยคลิกขวาเลือก Run as administrator แล้วพิมพ์
  • cd C:\\Python37

    • จากนั้นพิมพ์คำสั่งอัปเกรด pip ตามนี้

    python -m pip install --upgrade pip

    • และนี่คือคำสั่งสุดท้ายที่ต้องพิมพ์

    pip install pyautogui

    วิดีโอสาธิต (Demonstration Video)

    ขอบใจมากเหล่านักประดิษฐ์ :)

    รายละเอียดทางเทคนิคเพิ่มเติม (เจาะลึกแบบวิศวะ)

    Physical-to-Digital Interfacing

    โปรเจกต์นี้คือการสร้างวิธีเล่นเกม "Chrome Dino" สุดคลาสสิกด้วยการสื่อสาร Serial ความเร็วสูงและการทำงานแบบ Automation

    • Python Automation Bridge: เราจะรัน Script Python บน PC โดยใช้ Library PyAutoGUI คอยเฝ้าดู Pixel บนหน้าจอ พอเจอ "กระบองเพชร" โผล่มา Python จะส่งตัวอักษร (เช่น 'J') ผ่าน Serial link ไปที่ Arduino
    • Hardware Triggering: (โหมดทางเลือก) หรือจะเอา Sensor LDR ไปแปะหน้าจอตรงจุดที่กระบองเพชรวิ่งผ่านก็ได้ พอ LDR ตรวจเจอการเปลี่ยนแปลงแสง บอร์ด Arduino จะจำลองตัวเองเป็น Keyboard (ถ้าใช้บอร์ดพวก ATmega32U4) หรือส่งคำสั่งกลับไปที่ Python เพื่อสั่งให้ตัวละครกระโดดทันที หล่อเท่เลยงานนี้

    Precision Timing (จังหวะต้องเป๊ะ!)

    • Low-Latency Loop: Code ตัวนี้ถูกปรับแต่งมาอย่างดีเพื่อให้เวลาตั้งแต่ "ตรวจจับจนถึงสั่งการ" (Detection to Action) ต่ำกว่า 10ms เพื่อให้เจ้าไดโนเสาร์กระโดดได้เป๊ะเวอร์ แม้เกมจะวิ่งเร็วแค่ไหนก็ตาม สู้งานนะน้อง!

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

    title: "Play Dinosaur Game Using Arduino and Python3"
    description: "A great project for beginners! You can play Dinosaur game not by pressing any keyboard buttons but by motion of your hand."
    author: "Jalal_Mansoori"
    category: "Gadgets, Games & Toys"
    tags:
      - "arduino"
      - "tracking"
      - "kids"
      - "communication"
      - "games"
      - "python3"
    views: 9759
    likes: 7
    price: 699
    difficulty: "Easy"
    components:
      - "1x Resistor 10k ohm"
      - "1x Arduino UNO"
      - "1x Breadboard (generic)"
      - "1x Photo resistor"
      - "1x Jumper wires (generic)"
    tools: []
    apps:
      - "1x Arduino IDE"
      - "1x Python3"
    downloadableFiles:
      - "https://projects.arduinocontent.cc/b7c4eec9-5733-4297-8c23-fc20c0457776.py"
      - "https://projects.arduinocontent.cc/118ddaa0-a62a-43cb-b629-770f3d162451.ino"
      - "https://projects.arduinocontent.cc/b7c4eec9-5733-4297-8c23-fc20c0457776.py"
      - "https://projects.arduinocontent.cc/118ddaa0-a62a-43cb-b629-770f3d162451.ino"
    documentationLinks: []
    passwordHash: "b201d09043d3362171d2f8dbe3238ed4b43183c4e1452814d44eb2f21ef5aecc"
    encryptedPayload: "U2FsdGVkX197NpuRXo/94MMzzJKg37NWUShx/hF1Re2jxBSNY7y2tKoc0YMkiwefDPddpkoGqxpC4FDMfID/bRKDx7tFNDdoqX+MHiIYHSU="
    seoDescription: "Play Dinosaur Game using Arduino and Python3. Control the game with hand motions instead of a Keyboard. Perfect DIY project for beginners."
    videoLinks:
      - "https://www.youtube.com/embed/F2TZuOhsjx4"
      - "https://www.youtube.com/embed/DNdKm7hIpZU"
    heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/play-dinosaur-game-using-arduino-and-python3-4b0caa_cover.jpg"
    lang: "th"