สารบัญ:

DIY MPU-6050 USB จอยสติ๊ก: 5 ขั้นตอน
DIY MPU-6050 USB จอยสติ๊ก: 5 ขั้นตอน

วีดีโอ: DIY MPU-6050 USB จอยสติ๊ก: 5 ขั้นตอน

วีดีโอ: DIY MPU-6050 USB จอยสติ๊ก: 5 ขั้นตอน
วีดีโอ: Servo motor control by MPU-6050 Accelerometer and Gyroscope | Using Servo Motors with Arduino 2024, พฤศจิกายน
Anonim
DIY MPU-6050 USB จอยสติ๊ก
DIY MPU-6050 USB จอยสติ๊ก

ด้วย Microsoft Flight Simulator 2020 ฉันรู้ได้อย่างรวดเร็วว่าการใช้แป้นพิมพ์เพื่อวางแผนการบินนั้นยากเพียงใด ค้นหาออนไลน์ไม่พบจอยสติ๊กราคาสมเหตุสมผลที่จะซื้อ ร้านค้าปลีกออนไลน์ส่วนใหญ่มีสินค้าหมดสต็อก ความนิยมของ MS Flight Simulator และการระบาดของ COVID 19 ได้ลบล้างสต็อกจอยสติ๊กที่มีอยู่ทั้งหมด ทางเลือกเดียวของฉันคือสร้างมันขึ้นมาเอง

จอยสติ๊กส่วนใหญ่ที่นั่นใช้โพเทนชิโอมิเตอร์ที่ฐานเพื่อกำหนดมุมของจอยสติ๊กและส่งข้อมูลแกน x และ y กลับไปที่คอมพิวเตอร์ ใช้งานได้ดีแต่ทำให้การสร้างจอยสติ๊กซับซ้อนขึ้น และเมื่อเวลาผ่านไป โพเทนชิโอมิเตอร์อาจเสื่อมสภาพ แทนที่จะใช้โพเทนชิโอมิเตอร์ ฉันตัดสินใจใช้บอร์ดเซ็นเซอร์มาตรความเร่ง/ไจโรสโคปเพื่อส่งข้อมูลไปยังคอมพิวเตอร์ที่มุมของแท่ง

ด้วยความนิยมของไมโครโปรเซสเซอร์ Arduino และเซ็นเซอร์ต่างๆ ต้นทุนในการสร้างโครงการ Arduino จึงมีราคาไม่แพงมาก แผงเซ็นเซอร์ความเร่ง/ไจโรสโคปที่ใช้กันทั่วไปคือ MPU-6050 ในแคนาดา Amazon มีค่าใช้จ่ายประมาณ $7CAN ฉันได้ของฉันจาก eBay ที่ส่งจากจีนในราคาที่ถูกกว่ามาก แต่เวลาในการจัดส่งประมาณ 3 เดือนหรือนานกว่านั้น

www.amazon.ca/Neuftech-MPU-6050-3-Gyroscop…

บอร์ด Arduino ใดๆ ก็ใช้งานได้ แต่การใช้บอร์ดที่ใช้ ATmega32u4 จะง่ายกว่ามาก เนื่องจาก ATmega32u4 รองรับ HID (Human Interface Device) แบบเนทีฟ เมื่อตั้งโปรแกรมบอร์ดแล้ว คุณสามารถใช้บอร์ดนี้กับพีซี Windows 10 เครื่องใดก็ได้ โดยไม่ต้องใช้ซอฟต์แวร์เพิ่มเติม Windows 10 จะรับรู้โดยอัตโนมัติว่าเป็นจอยสติ๊กเมื่อเสียบ USB (การใช้บอร์ด Arduino ประเภทอื่นซับซ้อนเกินไปสำหรับโครงการสร้างง่ายๆ นี้)

ฉันเลือกบอร์ด Arduino Leonardo $17CAN จากอเมซอน

www.amazon.ca/KEYESTUDIO-Leonardo-Developm…

อุปกรณ์ 2 ชิ้นนี้เป็นข้อกำหนดหลักสำหรับโครงการนี้ สิ่งของชิ้นเล็กๆ อื่นๆ เช่น สายไฟและปุ่มกดก็จำเป็นเช่นกัน ในโครงการนี้ ฉันใช้เพียง 2 ปุ่มกดเพื่อความง่าย

ด้ามจอยสติ๊กทำจากเศษท่อน้ำพีวีซี สามารถใช้แทนท่อแข็งแบบสั้นได้อย่างง่ายดาย

ฐานของจอยสติ๊กคือตัวหยุดประตูแบบสปริงจับจ้องอยู่ที่ชิ้นไม้

ตัวหยุดประตูสปริงสามารถหาซื้อได้จาก Home Depot ในราคา $2.83CAN

www.homedepot.ca/product/everbilt-spring-d…

ขั้นตอนที่ 1: เชื่อมต่อ MPU6050 และปุ่มกดกับ Arduino Leonardo Board

การเชื่อมต่อ MPU6050 และปุ่มกดกับ Arduino Leonardo Board
การเชื่อมต่อ MPU6050 และปุ่มกดกับ Arduino Leonardo Board
การเชื่อมต่อ MPU6050 และปุ่มกดกับ Arduino Leonardo Board
การเชื่อมต่อ MPU6050 และปุ่มกดกับ Arduino Leonardo Board
การเชื่อมต่อ MPU6050 และปุ่มกดกับ Arduino Leonardo Board
การเชื่อมต่อ MPU6050 และปุ่มกดกับ Arduino Leonardo Board

MPU 6050 ใช้การเชื่อมต่อเพียง 4 รายการเท่านั้น โดยมีป้ายกำกับว่า VCC, GND, SCL และ SDA

เชื่อมต่อ VCC กับ 5v หรือ 3.3v บน Arduino Leonardo (MPU 6050 จะใช้ 5v หรือ 3.3v ก็ได้ ไม่เป็นไร)

เชื่อมต่อ GND กับ GND ใด ๆ บน Arduino Leonardo

เชื่อมต่อ SCL กับ SCL บน Arduino Leonardo

เชื่อมต่อ SDA กับ SDA บน Arduino Leonardo

ฉันใช้ปุ่มกดเพียง 2 ปุ่มเพื่อการสาธิตนี้

ปุ่มกดแรกใช้เพื่อรีเซ็ตศูนย์จอยสติ๊ก ในตัวอย่างนี้ ปลายด้านหนึ่งของปุ่มกดเชื่อมต่อกับ GND และปลายด้านหนึ่งเป็น PIN 13

ปุ่มกดที่สองใช้เป็นปุ่มจอยสติ๊ก ในตัวอย่างนี้ เชื่อมต่อกับ PIN 9 และ GND

คุณสามารถเพิ่มปุ่มเพิ่มเติมได้ตามต้องการในโครงการของคุณ

ขั้นตอนที่ 2: สร้างฐานจอยสติ๊ก

การสร้างฐานจอยสติ๊ก
การสร้างฐานจอยสติ๊ก
การสร้างฐานจอยสติ๊ก
การสร้างฐานจอยสติ๊ก
การสร้างฐานจอยสติ๊ก
การสร้างฐานจอยสติ๊ก

หาบล็อกไม้สักชิ้น ยิ่งหนักยิ่งดี มันจะทำให้ฐานจอยสติ๊กมีเสถียรภาพมากขึ้น

ขันสกรูตัวกั้นประตูสปริงตรงกลางบล็อกไม้ตามที่แสดงในภาพ

ใช้ท่อสั้นเป็นที่จับจอยสติ๊ก ฉันใช้ท่อพีวีซีขูด เหยียบสายไฟโดยให้เซ็นเซอร์มาตรความเร่ง/ไจโรสโคปนั่งอยู่ที่ด้านบนของท่อ

จากนั้นวางท่อไว้เหนือตัวกั้นประตูสปริง ฉันใช้เทปพันสายไฟติดเซ็นเซอร์ไว้ด้านบน

ขั้นตอนที่ 3: ตั้งค่า Arduino IDE

ดาวน์โหลดและติดตั้ง Arduino IDEhttps://www.arduino.cc/en/Main/Software

ฉันใช้ Arduino 1.8.13 สำหรับโครงการนี้ Arduino Web Editor สามารถใช้สำหรับโครงการนี้ได้เช่นกัน

ใช้ห้องสมุด 2 แห่ง

1. MPU6050_tockn โดย tockn

github.com/Tockn/MPU6050_tockn

หรือคุณสามารถค้นหาได้ในเมนู "จัดการห้องสมุด"

2. ห้องสมุดจอยสติ๊ก โดย Matthew Heironimus

github.com/MHeironimus/ArduinoJoystickLibr…

ปัจจุบันนี้ใช้ได้เฉพาะจากเว็บไซต์ GitHub

คลิกที่ดาวน์โหลดรหัสและดาวน์โหลดรหัสไปรษณีย์ แตกไฟล์ ZIP ไปยังไดเร็กทอรีไลบรารี Arduino ของคุณ

ในกรณีของฉัน มันคือ E:\PinChung\Documents\Arduino\libraries

ขั้นตอนที่ 4: โปรแกรม Arduino

โหลด Pin_Joystick.ino ลงใน Arduino IDE แล้วคอมไพล์และอัปโหลดไปยังบอร์ด Leonardo

ตรวจสอบให้แน่ใจว่าได้เลือกบอร์ด Arduino Leonardo และเลือกหมายเลขพอร์ตไว้ที่ COM ที่ถูกต้อง: ภายใต้เมนูเครื่องมือ

ฉันสังเกตเห็นว่าบางครั้งไม่สามารถอัปโหลดโปรแกรมได้โดยมีรหัสข้อผิดพลาดของพอร์ต COM ไม่พร้อมใช้งาน การกดปุ่มรีเซ็ตบนกระดาน Leonardo สองสามครั้งขณะรวบรวมอาจช่วยได้ การรีสตาร์ท Windows 10 อาจช่วยทำให้พอร์ต COM ว่างขึ้นได้

เมื่ออัปโหลดโปรแกรมไปยังบอร์ด Leonardo แล้ว Windows 10 ควรตรวจพบ Leonardo Joystick โดยอัตโนมัติ ในแถบค้นหาของ Windows 10 ให้พิมพ์ Game Controllers เรียกใช้ Set up USB Game Controllers

เลือก Leonardo Joystick แล้วคลิก Properties Windows 10 ควรเลือกการเคลื่อนไหวของจอยสติ๊กและปุ่มจอยสติ๊ก #1

หากจอยสติ๊กไม่อยู่ตรงกลาง เมื่อคุณปล่อยจอยสติ๊ก ให้คลิกที่ปุ่มรีเซ็ตจอยสติ๊กตรงกลางที่เราเพิ่งสร้างขึ้น ตัวควบคุมเกม USB ควรแสดงจุดจอยสติ๊กตรงกลาง ไม่จำเป็นต้องปรับเทียบจอยสติ๊กในโปรแกรม USB Game Controller..

หมายเหตุด้านข้าง: สำหรับผู้ที่ไม่คุ้นเคยกับ Arduino Leonardo เมื่อกำหนดค่าอุปกรณ์เป็นจอยสติ๊ก เมาส์ หรือคีย์บอร์ด พอร์ตอนุกรมจะไม่ทำงาน ดังนั้น "Serial.print()" จะไม่ทำงาน นอกจากนี้ MPU6050 ยังใช้ไลบรารีสาย i2c และใช้หมุด SDA และ SLC สำหรับ Leonardo SDA และ SCL ใช้ทั้ง PIN 2 และ PIN 3 ดังนั้นอย่าใช้ 2 พินนี้เพื่อสิ่งอื่น

ขั้นตอนที่ 5: ทดสอบจอยสติ๊ก

ฉันทดสอบบน Microsoft Flight Simulator 2020 และใช้งานได้ดีมาก ฉันต้องกดปุ่มกลางบางครั้งเพื่อให้จอยสติ๊กเป็นศูนย์ ค่าเซ็นเซอร์ MPU6050 อาจคลาดเคลื่อนเล็กน้อยเมื่อเวลาผ่านไป

มีโอกาสมากมายที่จะใช้จ่ายในโครงการ เช่น การเพิ่มปุ่มและการเพิ่มการควบคุมคันเร่ง หวังว่านี่จะเป็นแรงบันดาลใจให้คนจรจัดคนอื่นๆ ค้นพบวิธีการใหม่ๆ ในการทำสิ่งต่างๆ

แนะนำ: