กลับไปหน้ารวมไฟล์
billiardbot-38a554.md

ตัวอย่าง:

  1. อยากรู้รายละเอียดเพิ่มเติม ไปดูในเว็บรุ่นพี่ได้เลยนะ

ภาพรวมแบบกว้างๆ (High-level overview)

  1. OpenCV วิเคราะห์ภาพจากกล้องที่ติดตั้งด้านบน เพื่อติดตามลูกบิลเลียดและหุ่นยนต์ รวมถึงคำนวณระยะทางและวิถีการชนบนโต๊ะพูล
  2. ซอฟต์แวร์ส่งคำสั่งไปยัง ESP32 ผ่าน Wi-Fi เพื่อบังคับหุ่นยนต์ให้เคลื่อนที่ไปยังพิกัดที่กำหนดโดยใช้ล้อออมนิวีล (omniwheels)
  3. เมื่อหุ่นยนต์ไปถึงตำแหน่งและทิศทางเป้าหมายแล้ว มันจะชาร์จและคายประจุจากตัวเก็บประจุ (capacitors) เพื่อจ่ายไฟให้โซลินอยด์ (solenoid) ดีดคิวตีกลูกคิวบอลให้วิ่งไปตามวิถีที่คำนวณไว้

ตัวหุ่นยนต์:

จำลองฟิสิกส์ (Phys simulation)

หน้าจอควบคุม (GUI)

Geometric Targeting: The BilliardBot

การสร้างหุ่นยนต์มาเล่นเกมมันก็สนุกดี แต่การสร้างเครื่องจักรจริงๆ ที่คำนวณและตีลูกบิลเลียดในโลกความเป็นได้เนี่ย ต้องใช้ฟิสิกส์ขั้นเทพเลยนะตัวนี้ โปรเจค BilliardBot นี้รวมเอาระบบติดตามภาพจากด้านบน (overhead visual tracker) เข้ากับคิวตีกที่ขับเคลื่อนด้วยมอเตอร์สองแกน แสดงให้เห็นว่าเรขาคณิตบน Arduino นี่สามารถเอาชนะมนุษย์บนโต๊ะพูลได้เลย

Overhead Computer Vision (OpenCV)

เพื่อจะเล่นพูลได้ หุ่นยนต์ต้องรู้ตำแหน่งของลูกบอลทุกลูกบนผ้าใบนั่น

  1. โปรเจคใช้แล็ปท็อปที่รัน Python และ OpenCV แยกต่างหาก เชื่อมต่อกับเว็บแคมที่ยึดติดไว้เหนือโต๊ะพูลพอดี ตามที่เห็นในภาพภาพรวม
  2. สคริปต์ Python จะแยกพื้นที่สีเขียวของผ้าออกมา
  3. มันจะสแกนหาเฉพาะพิกัดของลูกคิวบอลสีขาว (X_cw, Y_cw) และลูก 8-Ball (X_8, Y_8)
  4. คอมพิวเตอร์จะสร้างเส้นเวกเตอร์ทางคณิตศาสตร์ระหว่างลูกบอลสองลูกนั้น
  5. มันจะแปลงมุมเรขาคณิตที่แม่นยำนั้น (เช่น Aim: 34.5 Degrees, Power: 80%) และส่งผ่าน Wi-Fi ไปยังไมโครคอนโทรลเลอร์ ESP32 บนหุ่นยนต์

The Kinematic Execution (Steppers and Solenoids)

Arduino/ESP32 ทำหน้าที่เป็น "กล้ามเนื้อ" ของหุ่นยนต์

  • แท่นเคลื่อนที่แบบคาร์ทีเซียน (แกน X และ Y): หุ่นยนต์จะเลื่อนตัวไปตามรางอลูมิเนียมที่ล้อมรอบโต๊ะพูล โดยใช้ มอเตอร์สเตปเปอร์ NEMA 17 แรงสูง ถ้าแล็ปท็อปบอกให้เล็งที่ 34.5 องศา ไมโครคอนโทรลเลอร์จะคำนวณว่ามอเตอร์แกน X และ Y ต้องหมุนกี่สเตปพร้อมกัน เพื่อวางตัวหุ่นยนต์ให้อยู่ในทิศทางที่ถูกต้อง ตามที่เห็นในภาพหุ่นยนต์
  • กลไกการตี: เซอร์โว SG90 ราคาถูกตีลูกบิลเลียดไม่ได้หรอก มันจะแตกซะก่อน
  • คิวตีกถูกขับเคลื่อนโดย โซลินอยด์แบบดัน-ดึง (Push-Pull Solenoid) ขนาด 12V อุตสาหกรรมตัวเบิ้ม หรือสปริงที่ขดแน่นและปล่อยโดยเซอร์โวแรงบิดสูง
  • ไมโครคอนโทรลเลอร์สั่งการตี รีเลย์คลิก ปล่อยกระแสสูงจากตัวเก็บประจุที่ชาร์จไว้เข้าสู่โซลินอยด์ แบ๊ม! แท่งโลหะก็จะดีดกระแทกลูกคิวบอลอย่างรุนแรง ลงไปตามวิถีพิกัดเวกเตอร์ที่คำนวณไว้เป๊ะๆ! จัดไปวัยรุ่น!

การผสานหุ่นยนต์โครงสร้าง

  • ESP32 (ตัวแปลคำสั่งหลักและควบคุมมอเตอร์)
  • มอเตอร์สเต็ปเปอร์ NEMA 17 พร้อมไดรเวอร์ A4988 แรงๆ
  • เว็บแคม USB แบบแขวน ส่งภาพเข้าไปในสคริปต์ Python OpenCV
  • โซลินอยด์อุตสาหกรรม 12V ทำหน้าที่เป็นคิวสไตรก์เกอร์แบบนิวแมติก
  • โครงอลูมิเนียมแบบสั่งทำพิเศษ เพื่อให้บอทสามารถเลื่อนไปรอบๆ ขอบโต๊ะได้จริง เหมือนที่เห็นในรูปโปรเจกต์

จัดไปวัยรุ่น! อย่าลืมเช็คสายไฟให้ดี ห้ามช็อตนะตัวนี้ สู้งานนะน้อง!

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

apps:
  - "1x AccelStepper library for Arduino"
  - "1x python"
  - "1x C++"
  - "1x Tkinter"
  - "1x OpenCV"
author: "rachad-ece"
category: "Gadgets, Games & Toys"
components:
  - "3x Suporte para Nema 17 Stepper motors"
  - "3x Buck Converter"
  - "2x capacitors"
  - "1x CNC Shield V3"
  - "1x Optocoupler, Optically Isolated Amplifier"
  - "1x laser sheet cutting machine"
  - "1x Dc-Dc booster"
  - "1x MOSFET Transistor, Switching"
description: "BilliardBot คือหุ่นยนต์เล่นพูลที่ใช้ Computer Vision ในการมองเห็นและตามหาลูกบอลแบบเทพๆ พอเจอตำแหน่งเป๊ะๆ มันจะใช้ Solenoid Kicker จัดการตีลูกคิวแรงๆ แบบตึงสุด! งานนี้ทั้งโค้ดทั้งช่าง วัยรุ่นต้องลอง"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://github.com/rachad47/BilliardBot"
encryptedPayload: "U2FsdGVkX19pt1NVTLiHL0fZ1ePJoMChSzXkYEer0pJ+MhrBVVI5hy37sJLkXDskTJNgV09fEf3E661UO7hXQapbEUAjIhpHdiVWiNGU7Uu+yBGmLGHppk0/n+77VWkht07LtttXvwj+5W95mNtnCkrh6SnosoGDgDB7skVCNjn6Xyjv8mccSqq59EavPqiU"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/billiardbot-38a554_cover.png"
lang: "en"
likes: 5
passwordHash: "c566dfc6624c82f2fc7ef54a8bbae9c8ec9080228892bc300663f9edb8f267b5"
price: 2450
seoDescription: "BilliardBot: A pool-playing robot using computer vision for ball detection and a solenoid powered kicker for precise cue ball strikes."
tags:
  - "Robots"
  - "Embedded"
title: "BilliardBot - หุ่นยนต์นักพูลสายเท่ งานง่ายแต่หล่อ!"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/A3wrN--Xe_s"
views: 4823