กลับไปหน้ารวมไฟล์
automated-beer-pong-game-moving-cups-755ba5.md

หลังจากเห็นโปรเจคยากๆ ที่เกี่ยวกับการทำระบบอัตโนมัติในเกมมาสองสามอันแล้ว ฉันเลยคิดว่า... มาลองทำเวอร์ชันที่ง่ายกว่าและไม่ต้องยุ่งยากมากกันดีกว่า โดยใช้ Arduino และของที่หาได้รอบตัว!

วิดีโอแสดงแนวคิด การประกอบ และการสาธิต

เจ้าเครื่องนี้ใช้ มอเตอร์สเตปเปอร์ (Stepper Motor), ไดรเวอร์มอเตอร์, สวิตช์ลิมิต (Limit Switch), โรตารีเอ็นโค้ดเดอร์ (Rotary Encoder) และจอ OLED เปลี่ยนเกมปาร์ตี้ธรรมดาๆ ให้กลายเป็นตู้เกมอาร์เคดสุดโหดที่ขยับได้แบบคาดเดาไม่ได้เลย!

ตอนเปิดเครื่อง ถ้วยจะทำการ "โฮมมิ่ง" (Homing) เพื่อหาขอบเขตของราง AL2020 ที่มันเลื่อนอยู่ ซึ่งแก้ปัญหาใหญ่เรื่อง "การหาตำแหน่งเริ่มต้น" ได้เลย เพราะถ้า Arduino ไฟดับระหว่างเล่น มันจะลืมตำแหน่ง Step 0 ทางคณิตศาสตร์ไปสนิท พอรีบูตใหม่มันอาจคิดว่าตัวเองอยู่ตรงกลาง แล้วพยายามขับไปซ้าย ชนกำแพงจริงๆ จนพังได้

  • การทำงานของสวิตช์ลิมิต: ติดตั้ง ไมโครสวิตช์ (Microswitches) แบบกลไกไว้ที่ขอบซ้ายของรางพอดี
  • เมื่อ Uno เปิดเครื่อง มันจะรัน Homing Sequence
  • มันจะสั่งให้สเตปเปอร์ขับไปทางซ้ายแบบมืดบอด ด้วยความเร็วที่ช้าและปลอดภัยสุดๆ (Speed = 50) จนกว่า digitalRead(LimitSwitch) == LOW
  • ทันทีที่สวิตช์ถูกกด Uno จะหยุดมอเตอร์ทันที: stepper.setCurrentPosition(0); (ได้ตำแหน่งศูนย์ที่แม่นยำเป๊ะเวอร์!)

หลังจากนั้น คุณก็สามารถเลือกความยากระดับ 1 - 10 และสั่งสตาร์ทมอเตอร์ผ่านเมนูที่แสดงบนหน้าจอ OLED ได้เลย Arduino จะไม่รันแพทเทิร์นตายตัว แต่จะสุ่มตัวเลขความเร็วและระยะทางแบบสมบูรณ์แบบแบบเรียลไทม์

The NEMA Randomization Matrix (AccelStepper.h)

ห้ามใช้มอเตอร์ DC ราคาถูก $2 เป็นอันขาด! มันจะกระแทกแท่นไม้หนักๆ เข้ากับขอบรางจนระบบรางพังทันที

  1. โปรเจคนี้ต้องใช้ไลบรารีสุดเจ๋ง <AccelStepper.h> ขับโมดูล A4988 และมอเตอร์ NEMA 17 Stepper Motor แบบจริงจัง
  2. ตัวเลขยักษ์พวกนี้คือความเร่งที่ลื่นไหลทางกลไก! stepper.setAcceleration(200); stepper.setMaxSpeed(400);
  3. การทำงานของซอฟต์แวร์: ฟังก์ชัน loop() มีเครื่องสุ่มตัวเลขยักษ์อยู่
if (stepper.distanceToGo() == 0) { // แท่นเพิ่งมาถึงจุดหมาย!
  // สุ่มตำแหน่งใหม่แบบคาดเดาไม่ได้ทันที!
  // รางนี้กว้าง 3000 สเตปพอดี!
  long nextRandomPosition = random(0, 3000); 
  
  // สุ่มความเร็วใหม่แบบมั่วสุดๆ ทันที!
  long nextRandomSpeed = random(100, 600);
  
  stepper.setMaxSpeed(nextRandomSpeed); // เปลี่ยนโปรไฟล์ความเร็วแบบสุดเหวี่ยง!
  stepper.moveTo(nextRandomPosition);   // ยิงพลศาสตร์เครื่องยนต์ใหม่!
}
stepper.run(); // คำสั่งสำคัญที่ไม่บล็อกการทำงานของฮาร์ดแวร์!

การสร้างแท่นเคลื่อนที่ต้องใช้

  • Arduino Uno/Nano (ความเร็วมาตรฐาน)
  • ไดรเวอร์สเตปเปอร์ A4988 หรือ TMC2208 (TMC2208 เป็นที่ต้องการมากเพราะมันกำจัดเสียงแหลมสุดน่ากลัวที่มอเตอร์สเตปเปอร์ชอบทำได้!)
  • มอเตอร์สเตปเปอร์ NEMA 17 (ขับด้วยพาวเวอร์ซัพพลายภายนอก 12V 2-Amp)
  • ชุดประกอบกลไกรางเส้นตรงและสายพานไทม์มิ่งเบลท์ (มักได้มาจากชิ้นส่วนโครงเครื่องพิมพ์ 3D มือสอง!)
  • ไมโครสวิตช์ลิมิตแบบกลไกมาตรฐาน

โต๊ะทำจากแผ่นไม้อัดหนา 3/4 นิ้ว และไม้ขนาด 2"x2" ใช้ทำขา รวมถึงใช้อะคริลิคหนา 1/4 นิ้วที่ปลายรางเพื่อโชว์กลไกด้านล่างโต๊ะ ในขณะที่ผิวโต๊ะด้านบนยังเรียบเสมอกันหมด คุณจึงใช้โต๊ะนี้เป็นโต๊ะเบียร์ปองปกติ หรือเป็นเวอร์ชันอัตโนมัติเมื่อเสียบไฟได้เลย! จัดไปวัยรุ่น! สู้งานนะน้อง ห้ามช็อตนะตัวนี้

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

apps:
  - "1x Arduino IDE"
author: "typalowski"
category: "Gaming & Entertainment"
components:
  - "1x Rotary Encoder with Push-Button"
  - "1x Stepper Motor, Mini Step"
  - "1x Limit Switch, 5 A"
  - "1x Arduino Nano R3"
  - "1x OLED Display, Blue on Black"
description: "Erratic kinematic automation! Force precise stepper mechanics into chaotic, wildly randomized horizontal sweeping motions carrying physical fluid-filled targets, actively evading projectiles through continuous non-repeating algorithm structures."
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles: []
encryptedPayload: "U2FsdGVkX19+rpvypnZ+oPJweNLplE4CZ45EaoHyg2CsZ/F1XVqw2V8pOT6zrsNxAjQF5fbWvmuwJK0K6BmqYrWdbRiRgDniVt8XOy5fy/E="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/automated-beer-pong-game-moving-cups-755ba5_cover.jpg"
lang: "en"
likes: 6
passwordHash: "2e35964e94e7196a7f472950bc4a3f7a9eb5406137b6d18ec385903babe1cd57"
price: 2450
seoDescription: "Upgrade your Beer Pong with Arduino! Build an Automated Beer Pong Game with moving cups to increase the challenge and fun."
tags:
  - "home automation"
  - "food and drinks"
title: "เกมเบียร์ปองอัตโนมัติ - แก้ววิ่งหนีได้!"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/RzPBX09sT4Y"
views: 8086