1 sty 2018

Odbiornik IR USB by Igor Češko

Prezentowana konstrukcja to dbiornik pilota IR na USB, który oparty jest o mikrokontroler Attiny2313 pracujący w roli kontrolera V-USB. Urządzenie współpracuje z dość słynnym programem „Girder”. Samo źródło z którego skorzystałem jest dość leciwe, ale jak się też okazało zawierające dużo błędów i niedociągnięć, które na szczęście udało mi się poprawić, i poskładać w jedną działającą bezbłędnie całość. Tak czy owak brawa dla pierwotnego autora projektu, Pana Igora Češko, który wykonał kawał dobrej roboty.



Dlaczego w ogóle orzeźwiłem ten projekt ?

W latach 2000 – 20005 z powodzeniem używałem programu Girder 3.0 do zmiany kanałów TV na ekranie mojego komputera. Niestety moja karta TV nie miała w zestawie ani pilota ani też odbiornika, więc musiałem sobie radzić sam ;). Jako odbiornik IR pracował również projekt Igora Češko, tyle że w wersji na RS232, no bo kto wtedy miał USB… :D. Teraz przyszedł czas by ożywić wersję USB, i znów sterować zdalnie programem Winamp, ale już trochę bardziej po nowemu ;)


Co było źle, co zmieniłem…

W kwestii technicznej nie trzeba było dużo ingerować. Podstawowe błędy w oryginalnym projekcie odbiornika, to brak diod zenera na liniach D+, D-. Z tego też powodu tylko nieliczne komputery obsłużyłyby układ odbiornika. W większości przypadkach kończyłoby się to brakiem możliwości zidentyfikowania podłączonego urządzenia, oraz słynnym komunikatem o awarii urządzenia. Kolejny, mniej istotny błąd to pin „Reset” wiszący „w powietrzu”, który w każdej chwili mógł samoczynnie resetować uC. Problem usunąłem rezystorem 10k, który podciąga RST do plusa. Można by było jeszcze dołożyć kondensatory ceramiczne 12pF na każdej z nóg kwarcu, ale ich brak nie powoduje destabilizacji pracy układu.

Obecnie schemat wygląda tak:




W kwestii programowej:

Sterowniki autora projektu nie chciały się zainstalować ani na Windows XP, ani na 7. Każdy inny sterownik który znalazłem wypadał jeszcze gorzej. Jeden z nich wykrył podłączony odbiornik jako mysz :P – Pomógł dopiero reset PC. Jak już udało mi się przerobić oryginalny sterownik (na szczęście tylko na poziomie pliku *.Inf), tak by instalował się i działał bez problemu, pojawiły się kolejne kłopoty. Plugin Pana Igora do obsługi jego własnego odbiornika USB, nie działał z żadną wersją programu Girder. Na 100 pobranych plików o tej samej nazwie, jeden w końcu zaskoczył


Wskazówki montażowe:
 
Płytkę najlepiej jest wykonać metodą termotransferu. Lutowanie koniecznie trzeba zacząć od zworek, gdyż dwie z nich znajdują się w później niedostępnym miejscu (pod podstawką uC). Do pól lutowniczych USB, najlepiej przylutować jakiś kabelek z wtyczką (ja użyłem z demobilu). Mikroprocesor trzeba zaprogramować w programatorze z podstawką DIL, lub na płytce stykowej, za pomocą programatora USBasp. Można użyć Attiny2313, Attiny2313A, lub ciężko dostępny u nas AT90S2313. Przy ostatnim trzeba zmienić parametry w pliku „START.bat”





Programowanie mikroprocesora:

W zasadzie użyta aplikacja programująca jest dowolna. Problem polega na tym że wsad został skompilowany pod uC AT90S2313, który mimo że jest w pełni kompatybilny z Attiny2313, może powodować błędy podczas programowania. Ja użyłem aplikacji „AVRdude”, która bez problemu wrzuca wsad do mikroprocesora, a później poustawia odpowiednio wszystkie potrzebne Fusebity. Po przygotowaniu uC do programowania, i podłączeniu pod programator USBasp, wystarczy kliknąć plik „START.bat”, który znajduje się w dolferze „Firmware” – on wykona wszystko za nas.


Instalacja sterowników:
Sterowniki przetestowałem na systemach Windows XP oraz Windows 7 – obydwa 32bit. Nie wiem jak się to ma do systemów 64 bitowych. Na dole artykułu znajduje się link do dyskusji na ten temat.
Sama instalacja moich sterowników jest dziecinnie prosta. Wygląda tak jak w przypadku każdych innych, z wyjątkiem komunikatu o braku podpisu cyfrowego. Należy go zignorować, zaakceptować i poczekać aż sterowniki się zainstalują ;)
Kolejną czynnością którą warto zrobić, jest sprawdzenie czy nasze urządzenie działa. W folderze „IgorUSB Remote\Driver\WinXP_7_32bit\” znajduje się aplikacja „Test Hardware.exe”. Należy ją uruchomić, i poklikać na dowolnym pilocie skierowanym w odbiornik. Jak stany się zmieniają, oznacza to że najgorsze masz już za sobą! :D


Instalacja oprogramowania:
Zacznij od instalacji programu „Girder 3.0” służącego do obsługi pilotów, najlepiej w preferowanej ścieżce docelowej (program files). Aplikacja znajduje się w folderze „Software”. Po zakończeniu instalacji, czas na wypakowanie wtyczki do obsługi odbiornika. W tym celu należy z tego samego folderu uruchomić samo rozpakowujący się plik „IgorPlug.exe”, który wypakuję wtyczkę do folderu „Plugins/Hardware/ w aplikacji „Girder”.


Uruchomienie aplikacji „Girder”

 Tuż po uruchomieniu należy przejść w zakładkę File -> Settings -> Hardware Plugins. Zaznacz ptaszkiem „Igor SFH-56 Device”, następnie klikając „Settings”. Z listy wybierz „USB”, a następnie przycisk „OK”.
Kolejny etap to już tylko zaprogramowanie dowolnego pilota, by dowolnym przyciskiem wykonywał różne funkcje, takie jak naciśnięcie klawisza klawiatury, ruszanie myszką, sterowanie aplikacjami takimi jak Winamp itp.




Problem z uruchamianiem odbiornika po starcie systemu (Autostart)

Może zdarzyć się że system po uruchomieniu się, od razu załącza program Girder, a sterowniki USB odbiornika jeszcze nie są całkowicie zainicjowane. Wiadomo że wtedy odbiornik nie zadziała, i trzeba restartować plugin. Z problemem można poradzić sobie w bardzo prosty sposób.
Wystarczy opóźnić załączanie Girdera o kilka sekund.
Jak to zrobić ?

Utwórz w Notatniku plik z rozszerzeniem *.js o treści:
(np. Opóźniacz.js)


oShell = WScript.CreateObject( "WScript.Shell" );
WScript.Sleep( 10000 );
oShell.Run( '"C:\Program Files\\Girder3\\Girder.exe"' );

Zapisany pliczek przenieś do autostartu, a w Girderze wyłącz autouruchamianie.
Dzięki temu prostemu skryptowi, uruchamianie Girdera opóźnia się o 10s, co w zupełności wystarcza by sterowniki zdążyły się poprawnie załadować, i zainicjować odbiornik.




Wysychające już źródło, którym się posłużyłem:
https://web.archive.org/web/20120321172140/http://www.cesko.host.sk:80/IgorPlugUSB/IgorPlug-USB%20(AVR)_eng.htm

Dyskusje na temat sterowników:
https://www.elektroda.pl/rtvforum/viewtopic.php?t=1506070
https://www.elektroda.pl/rtvforum/viewtopic.php?p=9689641#9689641


W załączniku wszystkie niezbędne materiały do wykonania odbiornika, oraz gotowe oprogramowanie wraz ze sterownikami działającymi pod Windows XP oraz 7 32bit (innych nie testowałem).


>> Download <<