Cara membangun pengontrol USB yang memiliki kenop, penggeser, dan sakelar


34

Bagaimana cara membangun antarmuka untuk perangkat USB yang memungkinkan interfacing pot, linear / log taper, dan sakelar sesaat / sakelar ke komputer?

Jika seseorang dapat memberi saya deskripsi tingkat tinggi, saya akan sangat menghargainya. Saya dapat membaca lembar spesifikasi, jadi memahami detail bukanlah masalah selama saya tahu di mana menemukan lembar itu.

Jawaban:


29

Saya akan menggunakan salah satu papan Teensy . Ini adalah papan mikrokontroler seperti Arduino yang memiliki dukungan USB. Berbeda dengan Arduino, mereka dapat muncul ke PC sebagai segala jenis perangkat USB. Ini berarti bahwa Anda dapat membuat keyboard USB kustom Anda sendiri, joystick, perangkat MIDI, dll dan memiliki PC menggunakan driver standar.

Teensy mendukung Arduino IDE , atau Anda dapat memprogram dalam C dan menggunakan LUFA (untuk dukungan USB) secara langsung.

Berikut ini beberapa tautan proyek untuk membantu.


10
Untuk jenis aplikasi ini saya sarankan berpura-pura menjadi HID. Driver sudah ditulis, Anda cukup meniru mouse atau perangkat serupa.
Kortuk

1
+1 untuk joystick, Anda bahkan tidak perlu membuat papan MCU, papan pulih dari joystick borken dengan sumbu analog akan bekerja dengan baik ...
peufeu

6

Saya akan menggunakan papan mikrokontroler seperti Arduino. Anda membaca ADC dan I / O digital dan mengirim karakter ASCII ke PC menggunakan koneksi UART-> USB.

Berapa banyak perangkat keras eksternal yang Anda butuhkan tergantung pada akurasi yang Anda butuhkan. Saya akan berpikir untuk sebagian besar aplikasi internal perangkat keras ke mikrokontroler akan cukup. Saya akan menghapus sakelar di perangkat keras.

Untuk antarmuka USB cukup tulis parser sederhana sehingga Anda dapat meminta bacaan. Misalnya jika PC mengirim string "A00?" UC dapat mengirim kembali bacaan di saluran analog 0. "D00?" UC dapat mengirim kembali keadaan input digital 0. Untuk mengubah output digital mungkin sesuatu seperti "D00 = 1" atau "D00 = 0". Ini adalah string pendek dengan panjang tetap. Seharusnya sangat mudah diurai.


4

Saya suka menggunakan Arduinos, mereka mudah diprogram dan Anda dapat dengan mudah mengirim data ke komputer Anda dari berbagai input melalui koneksi USB onboard. Data dapat dikirim ke lingkungan pemrograman Arduino Serial Monitor - yang berguna untuk debugging.

Saya kemudian menggunakan program seperti Pure Data (PD) atau Max MSP untuk menerima data serial. Data dapat dikirim dari program ini dalam semua jenis format yang bermanfaat. Karena cukup sederhana untuk melakukan segala jenis kurva log atau penskalaan dalam perangkat lunak - Anda tidak perlu khawatir membeli pot log yang mahal atau menggunakan yang sulit untuk menemukan nilai - cukup beli banyak pekerjaan dengan nilai yang sama dan khawatir tentang spesifik kemudian (1K atau 10K biasanya mudah didapat).

Yang ini gratis: http://puredata.info/

Yang ini dibayar untuk versi megah, tetapi memiliki demo yang bagus: http://cycling74.com/downloads/


4

Dapatkan Arduino

Dapatkan DangerShield .

Tulis kode untuk mengirim data sensor DangerShield ke PC melalui RS-232 melalui koneksi USB.

Tulis aplikasi khusus seperti VB.NET atau sesuatu untuk menerjemahkan data menjadi sesuatu yang berguna di PC, seperti pesan jendela Win32 atau sesuatu.


3

Saya akan menyarankan menggunakan PoKeys . Sangat mudah menambahkan 55 I / O digital, 7 input analog (12-bit), output PWM dan banyak lagi. Itu bahkan dapat dikombinasikan dengan sesuatu seperti ini .


2

Saya akan pergi dengan Arduino atau Sanguino seperti yang disarankan kebanyakan orang. Hanya google untuk mereka. Mereka sangat mudah digunakan dan Anda dapat menjalankan dan menjalankan dalam beberapa jam setelah Anda memiliki semua komponen yang diperlukan.


2
"Hanya google untuk mereka" tidak diterima sebagai jawaban di sekitar sini. Berikan detailnya di sini.
stevenvh



1

Alternatif yang mungkin cocok atau tidak sesuai adalah dengan membeli joystick analog / joypads analog yang tersedia secara komersial (dari $ fckall di ebay china, atau dari toko game) dan ganti komponen input analog dengan milik Anda sendiri, atau cukup lepas PCB utama dan transplantasi ke perangkat keras Anda.

Anda harus mencocokkan beberapa karakteristik kelistrikan, tetapi kerja keras dari pengkodean / USB comms dll. Dilakukan untuk Anda dan biasanya protokol comms / pemetaan input sudah dikenal.

Pengetuk Cina untuk pengontrol USB gaya PlayStation dll. Dapat diperoleh dengan harga beberapa dolar, yang jauh di bawah harga papan * Iino papan hobi * duino dll. Dan cukup murah untuk sekali pakai ketika Anda meledakkan satu atau dua yang pertama.


0

The GamepadBlock merek menggunakan sebuah ATmega32U2 bersama-sama dengan lufa untuk menerapkan kecepatan perangkat USB HID penuh untuk polling beberapa pengendali game asli. ATmega memiliki antarmuka USB perangkat keras dan memulai dengan mudah karena LUFA menyediakan beberapa proyek demo.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.