Pedały - część pierwsza

2006-10-26, hack



Miałem napisać coś o konflikcie darwinizm vs kreacjonizm, ale opisze swój kolejny projekt :-)

Jakiś czas temu zapragnąłem zaprząc nogi do komunikacji z komputerem. Czyli poprostu zrobić/kupić pedały. W zamyśle mają służyć do przełączania między pulpitami. W moim przypadku odpowiada to przełączaniu między aplikacjami, gdyż praktycznie wszystkie okna mam cały zmaksymalizowane. W sumie mam 4-7 otwartych aplikacji: terminal, eclipse, emacs, firefox, thunderbird. Każdemu pulpitowi przyporządkował bym jeden pedał.

Myśląc o takim sprzęcie rozważałem użycie następujących wejść:

  • równoległe - proste w oprogramowaniu i realizacji sprzętowej, ale niestety coraz mniej popularne i mało odporne na awarię (zwarcie), kabel byłby “gruby”
  • szeregowe (RS232), proste w oprogramowaniu, realizacja sprzętowa wymagała by jakiegoś programowalnego kontrolera, odporne na eksperymenty
  • USB, nie wiadomo jak to oprogramować, realizacja sprzętowa nieznana, za to odporne, kabel cienki, daje linię zasilającą i jest nowoczesny

Zdecydowałem się na USB, ponieważ postanowiłem użyć kupić taniego pada, rozebrać go i podłączyć przyciski do pedałów. Pada nabyłem za 20PLN z przesyłka od handlarza na allegro. Kupiłem w ciemno, nie wiedząc jaki jest status wsparcia tego typu urządzeń w Linuxie. Ku mojemu zadowoleniu, urządzenie zostało automagicznie wykryte. Pojawił się reprezentujący je plik /dev/input/js0. Po uruchomieniu programu jstest stwierdziłem, że wszystko jest OK. Pad ma 8 przycisków, 2 joysticki analogowe i jeden joystick cyfrowy. Zatem w sumie można sterować 4 liniami analowymi i 12 liniami cyfowymi.

W projekcie zamierzam wykorzystać tylko przyciski. Potencjometry może w przyszłości do czegoś innego, jakaś czujka obecności przed komputerem, albo pokrętkło do głośności.

Pozostał mi do rozwiązania problem w jaki sposób transformować zdarzenia generowane przy pomocy pada na naciśniecie klawiszy. Jest na to kilka metod:

  • dedykowany sterownik w jądrze (hack value!)
  • skonfigurowanie joysticka jako urządzenia wejściowego dla serwera X , i definicji klawiatury XKB (hack value!)
  • program czytający z urządzenia /dev/input/js0 i generujący zdarzenie serwera X

Pogooglałem troche i nie znalazłem tego czego chciałem. Znalazłem 2 projekty które w części realizowały zamierzony cel: joy2key i xkeymouse. Postmodernistyczną metodą wycinania i lepienia uzyskałem nową wartość. Program który realizował to czego chcę. Czyta zdarzenia z pada i generuje zdarzenia Xowe. Oto on joybuttons2xkb.c oraz skrypt go uruchamiający pedual.sh. Po uruchomieniu sktyptu przyciski pada generują zdarzenie odpowiadające klawiszom F13-F20 klawiatury.

Kolejny odcinek będzie bardziej medialny, będą zdjecia z dekompozycji pada. Szur, brzdęk, trzask. Ale najpierw muszę wyzdrowieć by móc pojechać do jakiegoś supermarketu technicznego.

Komentarze: 6

  1. Widzę że przechodzi waść do realizacji pomysłów :) A gdzie linki do plików?

    Comment od 40i4 — 2006-10-27 @ 8:49
  2. Już są. Dzięki.

    Comment od nabla — 2006-10-27 @ 9:33
  3. “pedała” to chyba na prowincji sie mówi

    Comment od nabla — 2006-10-30 @ 22:19
  4. A skąd się wziął /dev/input/js0?

    Comment od 40i4 — 2006-10-31 @ 9:03
  5. Pojawił się, jak włożyłem wtyczkę pada do gniazda USB. udevd to załatwia

    Comment od nabla — 2006-10-31 @ 18:58

Kanał RSS dla tego wpisu.

Niestety, skomentowanie tego wpisu jest niemożliwe.

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2009 nablaone.net | powered by WordPress with Barecity