노브, 슬라이더 및 스위치가있는 USB 컨트롤러를 구축하는 방법


34

인터페이스 포트, 선형 / 로그 테이퍼 및 순간 / 토글 스위치를 컴퓨터에 연결할 수있는 USB 장치 용 인터페이스를 구축하는 방법은 무엇입니까?

누군가 나에게 높은 수준의 설명을 줄 수 있다면 감사하겠습니다. 사양 시트를 읽을 수 있으므로 시트를 찾을 위치를 알고 있다면 세부 사항을 이해하는 데 문제가 없습니다.

답변:


29

Teensy 보드 중 하나를 사용하겠습니다 . 이들은 USB를 지원하는 Arduino와 같은 마이크로 컨트롤러 보드입니다. Arduino와 달리 PC에는 모든 종류의 USB 장치로 나타날 수 있습니다. 즉, 사용자 정의 USB 키보드, 조이스틱, MIDI 장치 등을 만들고 PC에서 표준 드라이버를 사용할 수 있습니다.

Teensy는 Arduino IDE를 지원 하거나 C로 프로그래밍하고 LUFA (USB 지원용)를 직접 사용할 수 있습니다.

다음은 도움 이되는 몇 가지 프로젝트 링크 입니다.


10
이 유형의 응용 프로그램에서는 HID 인척을 제안합니다. 이미 작성된 드라이버는 마우스 나 유사한 장치를 에뮬레이션하기 만하면됩니다.
Kortuk

1
조이스틱 +1, 당신은 심지어 MCU 보드를 만들 필요가 없습니다, 아날로그 축을 가진 borken 조이스틱에서 복구 된 보드도 잘 작동합니다 ...
peufeu

6

Arduino와 같은 마이크로 컨트롤러 보드를 사용합니다. ADC와 디지털 I / O를 읽고 UART-> USB 연결을 사용하여 ASCII 문자를 PC로 보냅니다.

필요한 외부 하드웨어의 양은 필요한 정확도에 따라 다릅니다. 대부분의 애플리케이션에서 마이크로 컨트롤러 내부의 하드웨어이면 충분할 것이라고 생각합니다. 하드웨어의 스위치를 디 바운스합니다.

USB 인터페이스의 경우 단순히 파서를 작성하여 판독 값을 쿼리 할 수 ​​있습니다. 예를 들어 PC가 "A00?"문자열을 보낸 경우 uC는 아날로그 채널 0에서 판독 값을 다시 보낼 수 있습니다. "D00?" uC는 디지털 입력 0의 상태를 되돌릴 수 있습니다. 디지털 출력을 변경하려면 "D00 = 1"또는 "D00 = 0"과 같은 것일 수 있습니다. 고정 된 길이의 짧은 줄입니다. 파싱하기가 매우 쉬워야합니다.


4

Arduinos를 사용하는 것이 좋으며 프로그래밍이 간단하며 온보드 USB 연결을 통해 다양한 입력에서 컴퓨터로 데이터를 쉽게 보낼 수 있습니다. 데이터는 Arduino 프로그래밍 환경 인 Serial Monitor로 전송 될 수 있습니다. 이는 디버깅에 유용합니다.

그런 다음 Pure Data (PD) 또는 Max MSP와 같은 프로그램을 사용하여 직렬 데이터를받습니다. 이러한 프로그램에서 모든 종류의 유용한 형식으로 데이터를 보낼 수 있습니다. Cuz 소프트웨어에서 모든 종류의 로그 커브 또는 스케일링을 수행하는 것이 간단합니다. 값 비싼 로그 포트를 구입하거나 값을 찾기가 어려울 필요가 없습니다. 동일한 값의 작업 슬롯을 구입하고 나중에 세부 사항 (1K 또는 10K는 일반적으로 쉽게 얻을 수 있음).

이것은 무료입니다 : http://puredata.info/

이 버전은 굉장한 버전에 대한 비용이지만, 좋은 데모를 가지고 있습니다 : http://cycling74.com/downloads/


4

받기 아두 이노를

DangerShield를 받으십시오 .

USB 연결을 통해 RS-232를 통해 DangerShield 센서 데이터를 PC로 전송하는 코드를 작성하십시오.

VB.NET과 같은 사용자 지정 앱을 작성하거나 Win32 윈도우 메시지 또는 기타와 같이 PC에서 유용한 것으로 변환하는 데이터를 작성하십시오.


3

PoKeys 사용을 제안 합니다. 55 개의 디지털 I / O, 7 개의 아날로그 입력 (12 비트), PWM 출력 등을 쉽게 추가 할 수 있습니다. 그것도 같은과 결합 될 수있다 .


2

나는 대부분의 사람들이 제안한 것처럼 Arduino 또는 Sanguino와 함께 갈 것입니다. 그냥 구글을 위해. 그것들은 사용하기가 매우 쉽고 필요한 구성 요소가 모두 있으면 몇 시간 안에 설치 및 실행할 수 있습니다.


2
"그들만을위한 Google"은 여기에 대한 답변으로 받아 들여지지 않습니다. 여기에 세부 사항을 제공하십시오.
stevenvh



1

적합하지 않을 수도있는 대안은 시중에서 구입할 수있는 아날로그 조이스틱 / 조이패드 (이베이 차이나의 $ fckall 또는 게임 판매점에서 구매)를 구입하고 아날로그 입력 구성 요소를 자신의 것으로 교체하거나 주 PCB를 꺼내어 이식하는 것입니다. 하드웨어에.

전기적 특성 중 일부를 일치시켜야하지만 코딩 / USB 통신 등의 노력이 필요하며 일반적으로 통신 프로토콜 / 입력 매핑이 잘 알려져 있습니다.

PlayStation 스타일의 USB 컨트롤러 등의 중국식 노크는 몇 달러 만들 수 있습니다. 이는 취미 * duino IO 보드 등의 가격보다 훨씬 낮으며 첫 번째 또는 두 번째를 날릴 때 일회용으로 사용할 수 있습니다.


0

GamepadBlock의 차종이와 함께 ATmega32U2의 사용 LUFA 여러 원래 게임 컨트롤러를 폴링하는 최고 속도의 USB HID 장치를 구현하기 위해. ATmega는 하드웨어 USB 인터페이스를 가지고 있으며 LUFA가 여러 데모 프로젝트를 제공하기 때문에 시작하기가 쉽습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.