กลับไปหน้ารวมไฟล์
gyro-mouse-06044f.md

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

วิดีโอ:

มุมมองของโปรเจกต์

โปรเจกต์ Gyro-mouse นี้คือ Human Interface Device (HID) ระดับเทพ ที่ให้เราควบคุมเคอร์เซอร์เมาส์ของคอมพิวเตอร์ได้ด้วยการเอียงหรือขยับบอร์ด Arduino ไปมา โปรเจกต์นี้เหมาะมากสำหรับงานด้านการช่วยเหลือ (Accessibility), ตัวควบคุม VR หรือจะเป็นอุปกรณ์เกมสุดล้ำก็จัดไปวัยรุ่น

ฮาร์ดแวร์หลัก

  • Arduino Leonardo / Micro: บอร์ดสองตัวนี้จำเป็นมากเพราะใช้ไมโครคอนโทรลเลอร์ ATmega32U4 ที่มีระบบสื่อสาร USB ในตัว ทำให้คอมพิวเตอร์มอง Arduino เป็นเมาส์ HID มาตรฐานได้เลย
  • เซ็นเซอร์ MPU6050: อุปกรณ์ตรวจจับการเคลื่อนไหว 6 แกน ที่รวมทั้งไจโรสโคป 3 แกนและแอคเซอโรมิเตอร์ 3 แกนไว้ด้วยกัน มันตรวจจับแม้แต่การเอียงหรือหมุนที่เบามากๆ

ทฤษฎีการทำงาน

MPU6050 จะสื่อสารกับ Arduino ผ่าน โปรโตคอล I2C (ใช้พิน 2/SDA และพิน 3/SCL บน Leonardo) จากนั้น Arduino ก็จะอ่านข้อมูลดิบจากไจโร (แกน X และ Y) อย่างต่อเนื่อง

  1. การเคลื่อนไหวสู่พิกเซล: Arduino จะ "แมป" ความเร็วเชิงมุม (การหมุน) จากไจโรสโคปให้กลายเป็นพิกเซลบนหน้าจอ
  2. การทำให้ลื่น: เนื่องจากข้อมูลดิบจากไจโรอาจมีสัญญาณรบกวน โค้ดมักจะใช้ฟิลเตอร์ง่ายๆ หรือตั้งค่า Threshold เพื่อป้องกันไม่ให้เคอร์เซอร์ "ลอย" เมื่อเมาส์อยู่นิ่ง
  3. การส่งข้อมูล: โดยใช้ ไลบรารี Mouse Arduino จะส่งแพ็กเก็ตการเคลื่อนไหวไปยัง PC:
Mouse.move(x_val, y_val, 0);

การต่อสายที่ต้องรู้

  • VCC/GND: ต่อกับ 5V และ Ground
  • SCL/SDA: ต่อกับพิน SCL และ SDA ที่กำหนดไว้บน Arduino ของคุณ (I2C)
  • INT: เป็นตัวเลือก มักใช้สำหรับ Interrupt ระดับฮาร์ดแวร์เมื่อข้อมูลพร้อม

แนวทางต่อยอดในอนาคต

  • เพิ่มปุ่มกด: เอา Push Button มาต่อกับ Arduino เพื่อใช้เป็นคลิกซ้าย-ขวาของเมาส์
  • เลื่อนด้วยแกน Z: ใช้แกน Z ของไจโรมาควบคุมลูกล้อเลื่อน (Scroll Wheel)
  • ไร้สายสมบูรณ์แบบ: ใช้โมดูล Bluetooth ส่งข้อมูล HID แบบไร้สาย เพื่อประสบการณ์เมาส์ไร้สายจริงๆ

การสร้าง Gyro-mouse ของตัวเองเป็นวิธีที่เลิศมากในการเข้าใจ การสื่อสาร HID และ การผสานเซ็นเซอร์หลายแกน สู้งานนะน้อง ห้ามช็อตนะตัวนี้!

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

apps:
  - "1x Arduino IDE"
author: "shassandanish1"
category: "Sensors & Environment"
components:
  - "3x Tactile Switch, Top Actuated"
  - "15x Jumper wires (generic)"
  - "1x SparkFun Triple Axis Accelerometer and Gyro Breakout - MPU-6050"
  - "1x Arduino Micro"
description: "งานง่ายแต่หล่อ! ใช้เซนเซอร์ Gyro ตรวจจับการเอียงมือ แล้วแปลงเป็นสัญญาณเมาส์ ควบคุมหน้าจอได้แบบมืออาชีพ ไม่ต้องง้อเมาส์แผ่นอีกต่อไป วัยรุ่นสายช่างต้องลอง!"
difficulty: "Advanced"
documentationLinks: []
downloadableFiles: []
encryptedPayload: "U2FsdGVkX1880F9uaw11UkZz87tccjhxbwijOTudUPxbhswchZq00/BAuVqPJxs0uO4XFltXF77eCge1U2Nwsx1Vkpt49v5/EstMB2HAG4o="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/gyro-mouse-06044f_cover.jpg"
lang: "en"
likes: 0
passwordHash: "26a56ca8cc89eb2803e9f17912055aab0e06ec217ba7312e73d82946ca2acdcd"
price: 1120
seoDescription: "Build a Gyro-mouse using Arduino and Gyroscope. Control your cursor with motion sensing technology in this simple project."
tags:
  - "gyroscope"
  - "arduino"
  - "mouse"
title: "เมาส์เทพๆ โยกแล้วลากด้วย Gyro"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/yaS4W5yRMaw"
views: 2476