วิธีสร้างคอนโทรลเลอร์ USB ที่มีปุ่มกดตัวเลื่อนและสวิตช์


34

เราจะสร้างอินเทอร์เฟซสำหรับอุปกรณ์ USB ที่อนุญาตให้มีการเชื่อมต่อกับหม้อ, แท่งข้อมูลเชิงเส้น / บันทึกและสวิตช์ชั่วขณะ / สลับไปยังคอมพิวเตอร์ได้อย่างไร

หากมีคนให้คำอธิบายระดับสูงแก่ฉันฉันจะขอบคุณมัน ฉันสามารถอ่านแผ่นข้อมูลจำเพาะได้ดังนั้นการทำความเข้าใจรายละเอียดไม่ใช่ปัญหาตราบใดที่ฉันรู้ว่าจะหาแผ่นงานได้ที่ไหน

คำตอบ:


29

ฉันจะใช้หนึ่งในกระดานTeensy เหล่านี้เป็นบอร์ดไมโครคอนโทรลเลอร์ที่คล้ายกับ Arduino ซึ่งมี USB รองรับ แตกต่างจาก Arduino พวกเขาสามารถปรากฏกับพีซีเป็นอุปกรณ์ USB ประเภทใดก็ได้ ซึ่งหมายความว่าคุณสามารถสร้างแป้นพิมพ์ USB ของคุณเอง, จอยสติ๊ก, อุปกรณ์ MIDI ฯลฯ และให้พีซีใช้ไดรเวอร์มาตรฐาน

Teensy รองรับArduino IDEหรือคุณสามารถตั้งโปรแกรมใน C และใช้LUFA (สำหรับการรองรับ USB) โดยตรง

นี่คือลิงค์โครงการที่จะช่วย


10
สำหรับแอพพลิเคชั่นประเภทนี้ฉันขอแนะนำให้แกล้งทำเป็น HID ไดรเวอร์ที่เขียนไปแล้วคุณเพียงแค่เลียนแบบเมาส์หรืออุปกรณ์ที่คล้ายกัน
Kortuk

1
+1 สำหรับจอยสติ๊กคุณไม่จำเป็นต้องสร้าง mcu board บอร์ดกู้คืนจากจอยสติ๊ก borken ที่มีแกนอะนาล็อกจะทำงานได้เช่นกัน ...
peufeu

6

ฉันจะใช้ไมโครคอนโทรลเลอร์บอร์ดเหมือน Arduino คุณอ่าน ADC และ I / O ดิจิตอลและส่งอักขระ ASCII ไปยังพีซีโดยใช้การเชื่อมต่อ UART-> USB

จำนวนฮาร์ดแวร์ภายนอกที่คุณต้องการขึ้นอยู่กับความถูกต้องที่คุณต้องการ ฉันคิดว่าสำหรับแอพพลิเคชั่นส่วนใหญ่ฮาร์ดแวร์ภายในไมโครคอนโทรลเลอร์จะเพียงพอ ฉันจะ debounce สวิตช์ในฮาร์ดแวร์

สำหรับอินเทอร์เฟซ USB เพียงเขียน parser เพียงเพื่อให้คุณสามารถสอบถามการอ่าน ตัวอย่างเช่นถ้าพีซีส่งสตริง "A00?" uC สามารถส่งการอ่านกลับไปที่ช่องสัญญาณแอนะล็อก 0 "D00?" uC สามารถส่งสถานะการป้อนกลับแบบดิจิตอลกลับเป็น 0 หากต้องการเปลี่ยนเอาต์พุตดิจิตอลอาจมีลักษณะเช่น "D00 = 1" หรือ "D00 = 0" เหล่านี้เป็นสตริงสั้น ๆ ในความยาวคงที่ ควรจะง่ายในการแยกวิเคราะห์


4

ฉันชอบใช้ Arduinos พวกเขาเขียนโปรแกรมได้ง่ายและคุณสามารถส่งข้อมูลไปยังคอมพิวเตอร์ของคุณได้อย่างง่ายดายจากอินพุตต่างๆผ่านการเชื่อมต่อ USB ออนบอร์ด ข้อมูลสามารถส่งไปยังสภาพแวดล้อมการเขียนโปรแกรม Arduino Monitor แบบอนุกรม - ซึ่งมีประโยชน์สำหรับการดีบัก

ฉันใช้โปรแกรมเช่น Pure Data (PD) หรือ Max MSP เพื่อรับข้อมูลอนุกรม ข้อมูลสามารถส่งออกจากโปรแกรมเหล่านี้ในทุกรูปแบบที่มีประโยชน์ เพราะว่ามันง่ายพอที่จะทำ log curves หรือสเกลใด ๆ ในซอฟต์แวร์ - คุณไม่ต้องกังวลกับการซื้อ log pot ที่มีราคาแพงหรือใช้หาค่ายาก - เพียงแค่ซื้องานที่มีมูลค่าเท่ากันและกังวลเกี่ยวกับ เฉพาะในภายหลัง (ปกติ 1K หรือ 10K นั้นง่ายต่อการรับ)

ฟรีตัวนี้: http://puredata.info/

อันนี้เป็นรุ่นที่จ่ายสำหรับ swanky แต่มีการสาธิตที่ดี: http://cycling74.com/downloads/


4

รับArduino

ได้รับDangerShield

เขียนรหัสเพื่อส่งข้อมูลเซ็นเซอร์ DangerShield ไปยังพีซีผ่าน RS-232 ผ่านการเชื่อมต่อ USB

เขียนแอปที่กำหนดเองเช่น VB.NET หรือบางสิ่งเพื่อแปลข้อมูลเป็นสิ่งที่มีประโยชน์บนพีซีเช่นข้อความจากหน้าต่าง Win32 หรือบางอย่าง


3

ผมขอแนะนำให้ใช้PoKeys การเพิ่ม I / O ดิจิตอล 55 รายการอินพุตแบบอะนาล็อก 7 บิต (12 บิต) เอาต์พุต PWM และอีกมากมาย มันยังสามารถรวมกับบางสิ่งบางอย่างเช่นนี้


2

ฉันจะไปกับ Arduino หรือ Sanguino ตามที่คนส่วนใหญ่แนะนำ เพียง google สำหรับพวกเขา มันใช้งานง่ายมากและคุณสามารถใช้งานได้ในเวลาไม่กี่ชั่วโมงเมื่อคุณมีส่วนประกอบที่จำเป็นทั้งหมด


2
"แค่ google สำหรับพวกเขา" ไม่ได้รับการยอมรับว่าเป็นคำตอบแถวนี้ ให้รายละเอียดที่นี่
stevenvh

1

ลองดูที่ ObDev โครงการตาม V-USB AVR A: http://www.obdev.at/products/vusb/prjhid.html ผมคิดว่าคนนี้อาจจะเป็นเพียงแค่สิ่งที่คุณกำลังมองหา: http://www.fredrikolofsson.com/pages/hardware.html


Fredrik Olofsson มีบางสิ่งที่น่าสนใจจริงๆ
Robert Harvey


1

อีกทางเลือกหนึ่งที่อาจจะใช่หรือไม่ใช่ก็ได้คือการซื้อจอยสติ๊กอนาล็อก / joypads ที่มีจำหน่ายทั่วไป (จาก $ fckall บน eBay ebay หรือจากร้านเกม) และแทนที่ส่วนประกอบอินพุตแบบอะนาล็อกด้วยตัวคุณเองหรือแค่ถอด PCB หลักออก เป็นฮาร์ดแวร์ของคุณ

คุณจะต้องตรงกับลักษณะทางไฟฟ้าบางอย่าง แต่การทำงานอย่างหนักของการเข้ารหัส / USB comms ฯลฯ จะทำเพื่อคุณ

การเคาะแบบจีนของคอนโทรลเลอร์ USB สไตล์เพลย์สเตชันเป็นต้นสามารถทำได้ในราคาไม่กี่เหรียญซึ่งต่ำกว่าราคาของบอร์ดอดิเรก * duino IO ฯลฯ และราคาถูกพอที่จะทิ้งเมื่อคุณระเบิดครั้งแรกหรือสองครั้ง


0

GamepadBlockทำให้การใช้งานของ ATmega32U2 ร่วมกับLufaจะใช้ความเร็วอุปกรณ์ USB HID เต็มรูปแบบเพื่อสำรวจหลายตัวควบคุมเกมเดิม ATmega มีอินเตอร์เฟส USB ของฮาร์ดแวร์และการเริ่มต้นใช้งานเป็นเรื่องง่ายเนื่องจาก LUFA มีโครงการสาธิตหลายโครงการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.