กลับไปหน้ารวมไฟล์
whack-a-mole-07b548.md

พี่ทำเกมตีตุ่นแมวขึ้นมาอันนึง ใช้ Arduino กับ BLE (Bluetooth Low Energy) ตัวนี้ชื่อว่า "Feline-Mole" เป็นการสำรวจขั้นสูงในเรื่อง Cross-Species HMI (Human-Machine Interface) แบบจัดเต็มเลย ดีไซน์มาให้แมวบ้านเล่นโดยเฉพาะ เชื่อมต่อตรรกะการตัดสินใจจากแอพมือถือเข้ากับการเคลื่อนไหวทางกลไฟฟ้า (Mechatronic) แบบจับต้องได้

เซอร์โวมอเตอร์ 3 ตัวที่ต่อกับ Arduino ถูกควบคุมจากมือถือผ่านบลูทูธ ด้วยการเชื่อมต่อ Bluetooth Low Energy (BLE) ที่ดีเลย์ต่ำ มือถือ Android เลยกลายเป็นจอยเกม ใช้สุ่มสั่งให้ "ตุ่น" โผล่ขึ้นมาผ่านเซอร์โวที่เรียงกัน 3 แกน

ลงลึกกันแบบช่างๆ

  • เจาะลึก BLE GATT Profile:
    • Universal Unique Identifiers (UUIDs): ระบบสร้าง BLE Service แบบกำหนดเองขึ้นมา พร้อม Characteristics สำหรับเลือกเซอร์โว แอพ Android ทำหน้าที่เป็น GATT Client ส่งคำสั่งระดับไบต์ (เช่น [ServoID, State]) ไปให้ Arduino Nano
    • จัดการดีเลย์: สถาปัตยกรรม Low-Power ของ BLE ถูกออกแบบมาให้ส่งข้อมูลเป็นช่วงสั้นๆ เฟิร์มแวร์ใช้บัฟเฟอร์แบบ non-blocking รับข้อมูลจาก Serial ไปสั่งเซอร์โว ทำให้ตุ่นโผล่ได้ภายในมิลลิวินาทีหลังกดจากมือถือ สำคัญมากถ้าอยากให้เจ้านายแมวไม่เบื่อ!
  • จังหวะการเคลื่อนที่ของเซอร์โว & PWM 50Hz:
    • สั่งงานหลายช่อง: การควบคุมเซอร์โว SG90 3 ตัวพร้อมกัน ต้องใช้สัญญาณ PWM ที่มีความแม่นยำรอบละ 20ms Arduino Nano แจกจ่ายสัญญาณพวกนี้ผ่านไลบรารี Servo.h ทำให้การหมุน 180° ของ "ตุ่น" เนียน ไม่กระตุก
    • ช่วงจู่โจม: เพื่อเลียนแบบการเคลื่อนไหวของเหยื่อ เซอร์โวจะถูกขับไปยังตำแหน่งเป้าหมายด้วยความเร็วเชิงมุมสูงสุด จากนั้นก็สุ่มดีเลย์ก่อนจะหดกลับ ทำให้แมวคาดเดาไม่ได้และท้าทายขึ้น
  • การออกแบบกลไฟฟ้าที่ปลอดภัยต่อสิ่งมีชีวิต:
    • โครงสร้างป้องกัน: โครง 3D-Print ถูกออกแบบมาเพื่อแยกส่วนประกอบไฟฟ้าและแขนเซอร์โวออกจากสัตว์เลี้ยง มีแค่ส่วนหัว "ตุ่น" ที่เรียบลื่นโผล่ออกมาจากโครงเท่านั้น ใช้รูปทรงโค้งมนเพื่อป้องกันการบาดเจ็บ

วิศวกรรมและการนำไปใช้

  • สถาปัตยกรรมระบบ (Android-to-Nano):
    • Frontend: อินเทอร์เฟซที่พัฒนาด้วย Android Studio ให้ผู้ควบคุมมีปุ่มสลับโหมด "Manual" และ "Auto"
    • Data Link: ใช้โปรโตคอลมาตรฐานของ BLE ในการ Advertising และ Connection เพื่อสร้างการเชื่อมต่อที่ปลอดภัยและประหยัดพลังงาน
    • Backend: Arduino Nano ทำหน้าที่แยกความหมายแพ็กเก็ตข้อมูลที่ได้รับ (hex-packets) แมปไปยังพินดิจิทัลที่เกี่ยวข้อง และสั่งให้เซอร์โวขยับ (ซึ่งกินกระแสสูง)
  • แยกวงจรไฟ:
    • เพราะเซอร์โวสร้างแรงดันย้อนกลับ (back-EMF) จากขดลวดได้มาก เราจึงแยกวงจรไฟ 6V ของเซอร์โว ออกจากวงจรลอจิก 5V ที่บอบบางของ Nano โดยใช้กราวด์ร่วมกันแต่จ่ายไฟแยกกัน ป้องกันระบบรีเซ็ตตอนแมวตีตุ่นสุดแรง!

ซอร์สโค้ดและข้อมูลสำหรับพิมพ์ 3D มีให้ดาวน์โหลด

พี่ใช้ Arduino IDE 1.8.13 สำหรับพัฒนา Arduino และ Android Studio 4.0 สำหรับพัฒนาแอพ

ปกติพี่จะเน้นทำระบบในเซิร์ฟเวอร์กับมือถือ แต่การพัฒนา IoT แบบนี้ก็สนุกดีนะ! Feline-Mole แสดงให้เห็นศักยภาพของ IoT ในการเพิ่มความสมบูรณ์ให้ชีวิตสัตว์ (Animal Enrichment) การเชี่ยวชาญเรื่อง BLE Data Bridging และ Dynamic Kinetic Actuation จะทำให้เราสร้างสภาพแวดล้อมที่ตอบสนองและมีชีวิตชีวาขึ้นมา ท้าทายและกระตุ้นสิ่งมีชีวิตผ่านการออกแบบระบบฝังตัวและกลไฟฟ้าที่แข็งแกร่ง สู้งานนะน้อง!

Feline Kinematics: คว้าความเป็นเจ้านายของระบบ HMI สำหรับสัตว์เลี้ยงผ่านการวิเคราะห์ BLE


สวัสดีน้องๆ วัยรุ่นสายช่างทุกคน! มาถึงบทความที่มันส์ๆ กันแล้ววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววววว

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

apps:
  - "1x Android Studio"
author: "toyonaga"
category: "Gadgets, Games & Toys"
components:
  - "1x Arduino Nano R3"
  - "1x Bluetooth Low Energy (BLE) Module (Generic)"
  - "1x 3D Printer (generic)"
description: "งานนี้ตึงๆ! พี่ทำเกม Whack-A-Mole ไว้ให้แมวเล่นแก้เบื่อ ใช้ Arduino ควบคุม + เชื่อมต่อแบบ BLE งานเทพๆ ทั้งโค้ดและไฟล์พิมพ์ 3D จัดเต็มไว้บน GitHub แล้ว งานง่ายแต่หล่อมาก อยากลองมั้ย?"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/b7c59c32-ca81-4af3-bc77-530cfffa5298.ino"
  - "https://projects.arduinocontent.cc/b7c59c32-ca81-4af3-bc77-530cfffa5298.ino"
encryptedPayload: "U2FsdGVkX19Urt9CnPZyGprqzdC5dfkpXU1ocm4Llj8Vcx0ErVgHoikofiEArBk5cQ3sGJtmAfcYEYYS+e3QJdT4zLVwiZyj5hXeDuu2Rg4="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/whack-a-mole-07b548_cover.jpg"
lang: "en"
likes: 1
passwordHash: "cfbb6ac720cd2a41a32aad5e1e7cf9591153f89ef5d28ed266033cc877b30ded"
price: 299
seoDescription: "Build a DIY Whack-A-Mole for cats using Arduino and BLE. Source code and 3D printing files available on GitHub."
tags:
  - "animals"
  - "toys"
  - "communication"
  - "remote control"
  - "pets"
title: "เกมตีตุ่นแมวเหมียว! (Whack-A-Mole แบบวัยรุ่นจัดไป)"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/53kR-B51iNw"
views: 6801