Zedomax DIY121 - Jak tworzyć własne "kontroler SIXAXIS PS3 stylu BASIC-programowalne urządzenie USB!
Kliknij tutaj, aby wyświetlić w trybie pełnoekranowym
Urządzenia USB są proste w instalacji i skonfigurować (tak długo, jak wszystko działa poprawnie). Często zdarza się, wystarczy podłączyć urządzenie USB i działa natychmiast. Jest to szczególnie prawdziwe w odniesieniu do urządzeń wejściowych, takich jak myszy i klawiatury.
Urządzenia te są zgodne z opisem warstw na szczycie protokołu USB: Human Interface Device. Prawie każdy dostępny typ wejścia jest określony; cały "deskryptor raport" język jest używany, aby powiedzieć, jak komputer do przetwarzania danych wejściowych. Nie jest to bardzo proste do wdrożenia; dziesiątki konkretnych wniosków należy obchodzić się odpowiednio. Istnieje wiele kroków między podłączając urządzenie USB i możliwość wykorzystania go, te wszystkie odbywają się w kilka milisekund i niepowodzenia każdy krok oznacza, że urządzenie nie będzie działać.
Co jeśli nie musisz się martwić o jakiekolwiek z tego? Co zrobić, jeśli można użyć swojego ulubionego mikrokontrolera, to "coś", a wejście znajduje się na komputerze w odpowiednim formacie? Nie musisz się martwić o skomplikowanego kodu USB HID specyfikacji lub złamanie kodu USB podczas dodawania innych funkcji potrzebujesz. Nie musisz się martwić o wiele na temat pisania zoptymalizowany kod, lub zawsze przeszkadzać przerwań USB.
HID portalu
To jest dokładnie to, co postanowiłem zrobić. Kilka lat temu dostałem urządzenie USB i przeszedł przez wszystkie głowy uzyskania USB HID zainstalowane i uruchomione. Ponieważ miałem już ciężko wykonaną pracę, postanowiłem dodać metodę otrzymywania danych z innego mikrokontrolera oraz wykorzystanie danych strumienia wejściowego kodu HID. Chciałem użyć Cubloc BASIC-programowalny sterownik na przetwarzanie moich danych wejściowych i wysłać go do HID portalu. Moja aplikacja test będzie przyspieszeniomierza na joystick HID, wystarczy podłączyć urządzenie do komputera i będzie działać.
To nie musi być joystick, może to być klawiatura, mysz, i wielu innych kontroli określone przez normę HID. Jest to możliwe dodawanie przycisków głośności, aby urządzenie ... może ma obwód wyciszania komputera, gdy dzwoni telefon? Wyłącz wszelkie napięcia wejściowego do osi joysticka, każdy przełącznik na przycisk? Wszystko jest możliwe!
Aktualizacja: Zdecydowałem się kurczyć sprzętu CUBLOC dół CB220, i wszystko wróciło do modelu samolotu. Model ten został wybrany do meczu samolot dostępny w Heroes of the Pacific gry używamy do testowania interfejs joysticka.
Sprzęt Objaśnienie
HID portalu opiera się na stary projekt kopalni, w oparciu o mikrokontroler MC68HC908JB8 i programowanie w języku asemblera. W pewnych powodów nie mogę rzeczywiście udostępnić kod teraz, ale istnieje wiele innych projektów USB tam, które mogą być przystosowane do tego celu. Nie biblioteki pochodzą miękkie realizacji USB do mikrokontrolera ATtiny, na przykład.
Moje mikrokontroler nie posiada wbudowany I2C lub SPI, więc potrzebne do realizacji jednego z moich własnych. Ja także nie ma przerwać piny dostępne, czyli mój potrzebne rozwiązanie opiera się na wyborczych. Gdy wszystko zostało powiedziane i zrobione i zoptymalizowana, nie mogłem wykryć krawędzie szybciej niż 16kHz. To jest około dziesięć razy wolniej niż wynik zmiany dostępne od administratora CUBLOC, więc nie mogłem użyć. Skończyło się na piśmie własną shift-out rutynowe BASIC aby uzyskać dane do HID portalu. To można uniknąć za pomocą mikrokontrolera, który SPI lub I2C wybudowany w już, ale JB8 to co miałem pod ręką.
Używam trzy sygnały do komunikacji z kontrolerem CUBLOC. Po pierwsze, nie ma sygnału CLK. HID portal wykrywa krawędzi rośnie. W tym momencie, odczytuje wartości obecne w linii danych. To jest przesunięta do rejestru aż bajt został odebrany, a porusza się kod do następnego bajtu. / Pierwszy wiersz jest sposób, aby zsynchronizować początku każdego pakietu danych w przypadku nie było żadnych fałszywych naliczonego, kiedy niewielkie zestawy pakietów i indeksy nieco do zera.
HID Portal jest aktualnie zaprogramowany, aby działać jako joystick z trzema osiami i ośmiu przycisków. Ja również testowałem to jak klawiatura. W przyszłego rozwoju, chciałbym, aby HID portalu bardziej elastyczne, niech zewnętrzny kontroler wybierz typ urządzenia i jak wiele z każdego wejścia są wymagane. Byłoby to najbardziej elastyczny, jeżeli bezpośrednio akceptowane HID sprawozdanie opisowe, ale otwiera możliwość, aby więcej błędów i kończy się z braku pracy urządzenia.
Akcelerometr jest DE-ACCM3D od wymiaru Engineering. CUBLOC po prostu czyta napięcia na Adin portów i konwertuje do wartości pomiędzy -127 i 127.
Ciąg dalszy na Następna strona
















































