Zedomax DIY121 - 어떻게 귀하의 "PS3의 SIXAXIS 컨트롤러의 자체 수 있도록"스타일 베이직 프로그래밍 USB 장치!
USB 장치에 대한 사용자의 설치가 용이하고 설정 (만큼 모든 것이 제대로) 작동합니다. 종종, 당신은 그냥 USB 장치의 플러그를 즉시 작동합니다. 이것은 특히 마우스와 키보드 등의 입력 장치에 대한 사실입니다.
그 장치 사양 USB 프로토콜의 상단에 레이어 : 휴먼 인터페이스 장치에 부합. 입력 가능한 거의 모든 유형을 정의합니다; 전체 "보고서는 설명"언어 입력 방법을 처리하는 컴퓨터를 얘기하는 데 사용됩니다. 이것은 매우 간단하게 구현되지 않습니다; 특정 요청의 수십 제대로 처리되어야합니다. 거기에 USB 장치에 연결해 사이의 많은 단계와 그것을 사용할 수있게되고, 이들은 모두 몇 밀리초 모든 단계에서 실패의 자리가 작동하지 않습니다 장치를 의미합니다.
만약 당신이 없었 언제 그런 걱정? 만약 당신이 좋아하는 마이크로 컨트롤러를 사용할 수 있고 "뭔가"어떻게 입력을 올바른 형식으로 컴퓨터에 나타 납니까? 당신은 복잡한 USB 코드에 대해 걱정할 필요도 없을 것이라고, HID 규격, 또는 당신이 필요하면 다른 기능을 추가를 USB 코드를 깨는. 당신은 훨씬 최적화된 코드를 작성하거나, 항상 USB 인터럽트의 방해에 대해 걱정할 필요가없습니다 것이다.
HID 포탈
그게 정확히 뭘해야할지 결정. 몇 년 전, USB 장치를 개발 및 USB HID 및 실행을지고 모든 두통을 통과했다. 이후로 난 이미 열심히 일을했다, 다른 마이크로 컨트롤러에서 데이터를받는 방법을 추가하고 사용하기로 결정 HID 코드를 입력 스트림으로 데이터입니다. 내가 Cubloc 베이직 - 내 입력 데이터 처리 및 HID Portal에 보내 프로그래머블 컨트롤러를 사용하고 싶었. 내 테스트 응용 프로그램 가속도계 기반의 HID 조이스틱 될 것이다 단순히 컴퓨터에 장치를 연결하고 작동합니다.
그것은 조이스틱이 필요하지 않으며 키보드, 마우스 또는 다른 컨트롤 HID 표준에 의해 정의된 수있습니다. 그것은 장치에 볼륨 컨트롤 버튼을 추가할 수있어 ... 아마 회로를 귀하의 컴퓨터가 음소거했을 때 전화가 울리면? 버튼에 조이스틱 축, 어떤 스위치를 켜고 어떤 전압 입력? 뭐든지 가능합니다!
업데이트 : 내가 CUBLOC CB220 위해 하드웨어를 축소하기로 결정, 그리고 비행기를 모델에 맞는 다. 모형 비행기가 우리 조이스틱 인터페이스를 테스트하는 데 사용되는 태평양 영웅 게임에서 사용할 경기에 선정되었습니다.
하드웨어 설명
HID 포탈 내의 오래된 프로젝트에 MC68HC908JB8 마이크로 컨트롤러 기반 및 어셈블리 언어 프로그래밍을 기반으로합니다. 사실 지금의 코드를 공개할 수 없어 특정 이유로,하지만 거기에 많이 들어 다른 USB 프로젝트 거기서는이 목적에 맞게 조정될 수있습니다. 저기 ATtiny 마이크로 컨트롤러에 대한 오픈 소스로 부드러운 USB 구현에있어, 예를 들어.
내 마이크로 컨트롤러를 내장하지 않습니다 가능한 I2C 또는 SPI는에, 그래서 난 내 자신의 구현이 필요했습니다. 또한 인터럽트 핀을 사용할 수 내 솔루션을 필요로 의미가 여론 조사를 기반으로해야되지 않았다. 모든 것이되었고 일을 최적화, 난 빨리 16Khz 이상의 가장자리를 감지하지 못했습니다. 이것은 약 10 시간 교대 출력 CUBLOC 컨트롤러에서 사용할 수보다 느리지만, 그래서 사용하지 못하는 경우입니다. 난 내 자신의 변화 쓰기 밖 Basic에서 일상적인 HID Portal에 데이터를 얻을했다. 이것은 가능한 I2C SPI를하거나 내장하고있다 마이크로 컨트롤러를 사용하여 이미지만 JB8 손으로 무슨 때문인데, 피할 수있습니다.
내가 CUBLOC 컨트롤러와 통신하는 3 개의 신호를 사용합니다. 첫째, CLK 신호입니다. HID 포탈 상승 에지를 감지합니다. 그 시점에서,이 값은 데이터 라인에 존재하는 읽습니다. 이것은 등록을하기 전까지 바이트 접수되었습니다로, 다음 바이트 코드로 이동 옮겨입니다. / RST 라인에 각 데이터 패킷의 동기화를 시작하는 방법의 경우, 거기에 아무 스퓨리어스 입력했다이다; 때 낮게 0 패킷 비트 인덱스를 설정합니다.
HID 포탈은 현재 3 개의 축 8 버튼 조이스틱으로 행동하도록 프로그램되어있다. 또한 키보드로 테스트했습니다. 앞으로의 개발, 난 HID 포탈 더 유연하게하고 싶습니다; 외부 컨트롤러와 장치 유형을 선택하는 방법을 각 입력에 많은하자가 필요합니다. 그것은 가장 융통성이있다면 그것을 직접보고 설명 HID 허용하지만, 더 많은 실수와 비 장치가 작동하게 될 가능성이 최대가 열립니다.
가속도계 드 ACCM3D 치수 공학에서입니다. CUBLOC 단순히 Adin 포트에 전압을 읽고 -127과 127 사이의 값으로 변환합니다.
다음 페이지에 계속

















































