Düğmeleri, sürgüleri ve anahtarları olan bir USB denetleyicisi nasıl oluşturulur?


34

Kişi, bilgisayara tencere, doğrusal / günlük sivriltme ve anlık / geçiş anahtarlamalarını birbirine bağlayan bir USB cihazı için arayüz oluşturmaya nasıl devam eder?

Biri bana üst düzey bir açıklama verebilirse çok sevinirim. Teknik bilgileri okuyabilirim, bu yüzden ayrıntıları anlamak, sayfaları nerede bulacağımı bildiğim sürece bir sorun değildir.

Yanıtlar:


29

Teensy kurullarından birini kullanırdım . Bunlar USB destekli Arduino benzeri mikrodenetleyici kartlardır. Arduino'dan farklı olarak, bir PC'ye herhangi bir USB cihazı gibi görünebilirler. Bu, kendi özel USB klavyenizi, joystick'inizi, MIDI cihazınızı vb. Oluşturabileceğiniz ve bilgisayarın standart sürücüleri kullanması anlamına gelir.

Teensy, Arduino IDE'yi destekler veya C olarak programlayabilir ve LUFA'yı (USB desteği için) doğrudan kullanabilirsiniz.

İşte size yardımcı olacak bazı proje linkleri .


10
Bu tür bir uygulama için HID gibi davranmanızı öneririm. Daha önce yazılmış sürücüler, sadece bir fareye veya benzer bir cihaza benziyorsunuz.
Kortuk

1
Joystick için +1, bir mcu kurulu bile yapmanıza gerek yok, analog eksenli bir borken joystick'ten çıkan tahta da aynı şekilde işe yarayacak ...
peufeu

6

Arduino gibi bir mikrodenetleyici kartı kullanırdım. ADC ve dijital I / O’yu okudunuz ve UART-> USB bağlantısını kullanarak ASCII karakterlerini PC’ye gönderdiniz.

İhtiyacınız olan ne kadar harici donanıma ihtiyacınız olan hassasiyete bağlıdır. Çoğu uygulama için mikrodenetleyicinin iç donanımının yeterli olacağını düşünüyorum. Anahtarları donanımdan çıkarırım.

USB arabirimi için sadece okumaları sorgulayabilmeniz için basit bir çözümleyici yazın. Örneğin PC "A00?" Dizesini gönderdiyse UC, analog kanal 0'daki okumayı geri gönderebilir. "D00?" uC dijital giriş 0 durumunu geri gönderebilir. Dijital çıkışı değiştirmek için belki "D00 = 1" veya "D00 = 0" gibi bir şey olabilir. Bunlar sabit uzunlukta kısa dizelerdir. Ayrıştırmak çok kolay olmalı.


4

Arduinos'u kullanmak hoşuma gidiyor, programlamaları basit ve yerleşik USB bağlantısı üzerinden çeşitli girişlerden bilgisayarınıza kolayca veri gönderebilirsiniz. Veriler, Arduino programlama ortamlarına, Seri Monitör - hata ayıklama için kullanışlıdır.

Daha sonra seri veriyi almak için Saf Veri (PD) veya Max MSP gibi bir program kullanıyorum. Bu programlardan her türlü faydalı formatta veri gönderilebilir. Cuz, yazılımda herhangi bir kütük eğrisi yapmak veya ölçeklendirmek için yeterince basit - pahalı kütük tencereleri satın almak veya değerleri bulmakta zorlanmak için endişelenmenize gerek yok - sadece aynı değerde bir iş yeri satın alın ve özellikleri sonra (1K veya 10K normalde elde etmek kolaydır).

Bu ücretsiz: http://puredata.info/

Bu bir havalı versiyonu için ödenen, ancak iyi bir demo var: http://cycling74.com/downloads/


4

Bir Arduino al

Bir DangerShield alın .

DangerShield sensör verilerini USB bağlantısı üzerinden RS-232 üzerinden PC'ye göndermek için kod yazın.

VB.NET gibi özel bir uygulama yazın ya da verileri Win32 pencere mesajları ya da bir şey gibi PC’de yararlı bir şeye dönüştürün.


3

PoKeys kullanmanızı öneririm . 55 dijital I / O, 7 analog giriş (12 bit), PWM çıkışı ve daha fazlasını eklemek çok kolay. Hatta böyle bir şey ile kombine edilebilir bu .


2

Çoğu insanın önerdiği gibi bir Arduino veya Sanguino ile giderdim. Sadece onlar için google. Kullanımı son derece kolaydır ve gerekli tüm bileşenlere sahip olduğunuzda birkaç saat içinde çalışmaya başlayabilirsiniz.


2
"Sadece onlar için google" buralarda bir cevap olarak kabul edilmez. Burada detayları ver.
stevenvh



1

Uygun olabilecek veya uygun olmayan bir alternatif, ticari olarak satılan analog joystickleri / joypad'leri (ebay çin'inde $ fckall'dan veya oyun mağazasından) satın almak ve analog giriş bileşenlerini kendinizle değiştirmek veya sadece ana PCB'yi çıkartıp nakletmek olabilir. Donanımınıza.

Bazı elektriksel özelliklerle eşleşmeniz gerekecek, ancak kodlama / USB iletişim işlemlerinin zor çalışması sizin için yapılır ve genellikle iletişim protokolleri / giriş eşlemesi iyi bilinir.

PlayStation tarzı USB denetleyicileri vb. Gibi Çin nakavtları, bir kaç dolara sahip olabilir; bu, hobisi * duino IO panoları vb.


0

GamepadBlock markaları ile birlikte bir ATmega32U2 kullanımı lufa birçok orijinal oyun denetleyicileri yoklamak için tam hızlı USB HID cihazı uygulamaktır. ATmega'nın bir donanım USB arayüzü var ve LUFA birkaç demo projesi sunduğu için başlamak kolaydır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.