Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Odbiornik pilota IR na USB (Igor)

goreckidiy 31 Gru 2017 06:59 5178 21
  • Odbiornik pilota IR na USB (Igor)

    Witam,

    Dziś chciałbym wam przedstawić Odbiornik pilota IR do PC 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

    To tyle z dawnych czasów, ale na co mi to teraz ?

    Mam w sypialni telewizor, od którego też nieco się uzależniłem, i nie wyobrażam sobie iść spać bez obejrzenia jakiegoś filmu. Niestety czeka mnie teraz dość poważny remont tejże sypialni i przez pewien czas będę musiał się obejść bez TV(!!!!!). W pokoju zastępczym, którym będę spał, mam jednak komputer, a na nim pakiet „PolsatGO” :D ale przecież nie będę wstawał z łóżka, by zmienić kanał… Dlatego właśnie postanowiłem nieco odświeżyć projekt – z lenistwa. ;P


    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:

    Odbiornik pilota IR na USB (Igor)






    W kwestii programowej - masakra!!!

    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, 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ł - stary projekt. Strona znajduje się w niezależnym archiwum (link na końcu artykułu). Być może nie jest to już darmowy, otwarty projekt.

    Reasumując, trochę mnie ten szybki projekcik na jedno popołudnie zaskoczył i zabrał mi całą sobotę, ale za to jest, i mogę zaczynać remont! :D


    Przystępujemy do montażu! Odtąd jest istotne i ważne :D


    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ępnego u nas AT90S2313. Przy ostatnim trzeba zmienić parametry w pliku "START.bat"

    Odbiornik pilota IR na USB (Igor)


    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 folderze "Firmware" - on wykona wszystko za nas.


    Instalacja sterowników:

    Ze sterownikami była prawdziwa masakra i 80% soboty spędziłem na poszukiwaniach właściwych, które i tak trzeba było modyfikować – na szczęście na poziomie pliku *.inf ;) Sterowniki przetestowałem na systemach Windows XP oraz Windows 7 – obydwa 32bit. Nie wiem, jak się to ma do systemów 64-bitowych, ale gdyby zamieszczone sterowniki nie działały, można skorzystać z linku do innej dyskusji zamieszczonego na końcu artykułu.
    Sama instalacja sterowników z załącznika 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:
    (Kolega z innego portalu polecił mi aplikacje "EventGhost". Podobno również współpracuje z odbiornikiem Igor.)

    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ć samorozpakowują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”.

    Odbiornik pilota IR na USB (Igor)


    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.



    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.



    Linki:

    Strona Pana Igora (archiwum)

    Dyskusja na temat sterowników (w tym x64)

    Prawidłowy plik inf, którym się posłużyłem



    Zachęcam do realizacji projektu - jest naprawdę bardzo prosty i składa się tylko z kilku elementów.

    Pozdrawiam!


    Fajne!
  • #3 31 Gru 2017 19:47
    goreckidiy
    Poziom 9  

    Nie ma ich w ogóle, i wbrew opinii publicznej nie są one konieczne do poprawnej pracy ;)
    Nie było ich też przy autorskim projekcie Pana Igora.
    Można sobie dolutować w wersji SMD, bo się zmieszczą, ale nie ma potrzeby.

  • #4 31 Gru 2017 22:25
    MarekS6
    Poziom 14  

    Ostatnim czasem szukałem programu Girder w jakiejś nowszej wersji niż ta którą używałem 10lat temu i miałem problem ze znalezieniem czegokolwiek. Doszedłem do wniosku, że girder po prostu tak jak Winamp przepadł z czasem. Znalazłem za to program EventGhost który bardzo dobrze współpracuje z pilotem radiowym firmy logitech.

    Nie jestem pewien, czy ten moduł będzie współpracował z tym programem, ale skoro autorowi ktoś podpowiedział, że będzie działać to pewnie tak jest. Co do programu - już na pierwszy rzut oka widać, że ten program jest "nowszy" niż girder jaki jeszcze można znaleźć w internecie i ma więcej możliwości.

  • #5 01 Sty 2018 12:40
    goreckidiy
    Poziom 9  

    Faktycznie nie wyskakuje od razu po wpisaniu w Google. Projekt jest bardzo stary, i chyba staje się zapomniany i wypierany przez nowsze rozwiązania.
    Sprawdziłem EventGhost i faktycznie posiada plugin Igor USB. Ikonka sygnalizująca odbiór IR mryga przy naciśnięciu pilota więc mogę potwierdzić że układ współpracuje z tym programem.
    Ja jednak zostaję przy starym dobrym Girder do którego mam sentyment ;)

  • #6 03 Sty 2018 22:14
    perfi
    Poziom 13  

    Fajny projekt.
    Masz może jakiś pomysł jak można sprawdzić na jakiej częstotliwości pracuje pilot do TV?

  • #8 04 Sty 2018 16:21
    koczis_ws
    Poziom 23  

    Kiedyś, dawno dawno temu bawiłem się z Girderem i odbiornikiem Igora. Był on przystosowany do portu szeregowego COM. W środku poza odbiornikiem IR , takim od telewizora np. , wtyczki DB9 i połączeniami nic nie było. Śmigało to to jak talala dopóki nie pojawił się Windows XP i zniknął port COM w nowszych komputerach.
    Próbowałem to uruchomić przez konwerter na USB to skończyło się na Blue screenie :(

  • #10 05 Sty 2018 17:18
    keseszel
    Poziom 26  

    Oryginalne stery do Gridera - ile zajmowały miejsca? Ile zajmują miejsca stery, które Ty przerobiłeś? W czym przerabiałeś stery? Czy możesz wrzucić oryginalne i przerobione?
    Skąd pomysł o przeróbce oryginalnego schematu urządzenia? Na jakiej podstawie doszedłeś do wniosku jakie elementy należy dołożyć/ująć? Analiza podobnych urządzeń, aplikacji, manuali? Ile czasu zajęła Ci przeróbka oryginalnego schematu i sterowników?

  • #11 06 Sty 2018 08:42
    goreckidiy
    Poziom 9  

    Sterowniki zmieniłem na podstawie Link
    Ile ważyły wcześniej, a ile teraz nie wiem, ale wiem że oryginalne się nie instalowały.
    Porównaj pliki inf i będziesz wszystko wiedział ;)

    Jeśli chodzi o schemat wiele można wywnioskować z samego artykułu, który napisałem, ale postaram się opisać to nieco jaśniej:

    Generalnie przyjęła się zasada, że nie zostawia się "wiszących" w powietrzu wejść, a tym bardziej resetu, bo może dojść do samoczynnego wzbudzenia, przez dotknięcie, fale radiowe, impuls elektromagnetyczny, czy wilgoć. Problem został rozwiązany rezystorem 10k, który podciąga to wejście do plusa zasilania.

    Dołożyłem też diody zenera, ponieważ niektóre kontrolery USB (większość) pracuje w standardzie 3,3V. Przy napięciu 5V, jakie jest bez diod, urządzenie mogło by nie zostać wykryte. Zamiast diod, można też zasilić uC z 3,3V, lub wstawić dwie diody 1N4148 w szereg na zasilaniu by uzyskać potrzebne napięcie, ale wtedy problem mógł by się pojawić z odbiornikiem IR.

    Czym podpieram tą teorię ?

    Wszystkie projekty stworzone na podstawie bibliotek V-USB, LibUsb, są właśnie tak wykonane (nawet popularny USBasp).

    Ile czasu ? ;)
    Nie wiem, nie mierzyłem :)
    Zmieniałem schemat w Paint, więc czas zależny jest od umiejętności, i twórczości - Ja nigdy nie byłem w tym dobry :D
    W kwestii sterowników, musiałem sprawdzić wszystkie jakie znalazłem, aż w końcu udało mi się znaleźć rozwiązanie na forum (wyżej link), i zastosowałem mało czasochłonną metodę ctrl+C -> ctrl+V :D

  • #12 13 Sty 2018 22:15
    11111olo
    Poziom 43  

    Dawno temu też się tym interesowałem ale denerwowało mnie kilka rzeczy:
    -instalowanie sterowników
    -instalowanie dodatkowego oprogramowania
    -konfigurowanie wszystkich funkcji
    Trzeba to było robić po każdej instalacji systemu.

    Parę lat temu zaradziłem sobie tak że skonstruowałem MULTIMEDIA REMOTE.
    Po tak długim czasie stwierdzam że urządzenie jest niemal idealne. Zdarza się co kilka miesięcy że potrafi się "zamulić" i trzeba wyjąć wtyczkę USB ale to mi nie przeszkadza.

    Zaleta jest taka że nic nie trzeba instalować ani konfigurować, działa pod każdym systemem Windows od wersji 98, Linuxem czy Mac.

  • #13 14 Sty 2018 07:30
    goreckidiy
    Poziom 9  

    Świetne! Rozwiązanie tylko dla multimediów czyli trochę inaczej niż Igor ale tak jak mówisz święty spokój. Fajnie by było przepisać pogram na attiny i przeportować tak by działało z płytką Igora. Każdy mógł by sobie wybrać co chce mieć na jednym hardware :) Ogólnie świetny projekt. Gratuluję!

  • #15 14 Sty 2018 12:42
    goreckidiy
    Poziom 9  

    Zgadza się, tylko tak jak mówię, są to dwie różne rzeczy ;)
    Twój projekt jest HID, i może sterować tylko mediami, a projekt Igora jest bardziej uniwersalny, choć wymaga instalacji sterowników, i konfigurowania.
    Można ustawić sobie dowolne przyciski na pilocie, i nie ma problemu z obsługą RC6 czy NEC.
    Wszystko zależne od potrzeb. Co kto woli... ;)

  • #16 15 Sty 2018 12:42
    simw
    Poziom 15  

    Popieram wnioski Kolegi 11111olo. Oparcie takiego projektu na HID to lepsza alternatywa. Wszystkie przeciw dla odbiornika Igora zostały powiedziane i w obecnych czasach, przynajmniej wg mnie, taki odbiornik to już anachronizm.

    "projekt Igora jest bardziej uniwersalny, choć wymaga instalacji sterowników, i konfigurowania."
    Dlatego właśnie nie jest bardziej uniwersalny, raczej bardziej kłopotliwy :)

    Do tego dochodzą kłopoty z uruchomieniem:
    "Ze sterownikami była prawdziwa masakra i 80% soboty spędziłem na poszukiwaniach właściwych".

    Ostatecznie używasz odbiornika, jak napisałeś, "do przełączania kanałów", czyli jak najbardziej zastosowanie multimedialne.

    Po co się tak męczyć... Pora porzucić przyzwyczajenia :)

    Jak pisałem, projekt Igora to anachronizm, i trochę się przekomarzam, bo sam jestem wyznawcą idei HID, a każdy "masochista" będzie używał swojego rozwiązania :)

    Przez wiele lat jedynym dla mnie rozwiązaniem był lirc, szczególnie, że był od początku pisany pod linuksa (był też port winlirc, na windows, ale chyba umarł... ), potem wspierany przez Openelec i XBMC (Kodi), a ostatecznie porzuciłem go, bo każda instalacja linuksa czy Openelec kończyła się konfiguracją lirca, tu nie działały niektóre klawisze, tu coś się nie uruchamiało, aż nastała dla era HID.
    Na tej idei oparłem projekt odbiornika HID, przeznaczonego głównie do Kodi, choć i do przeglądarkowego youtuba go używam:
    http://zealota74.blogspot.com/2017/10/uniwersalny-odbiornik-podczerwieni-do.html

    Polecam takie rozwiązanie, ktoś o zacięciu programistycznym mógłby jeszcze taki projekt rozwinąć, choćby przez dodanie dodatkowych deskryptorów i stworzenie urządzenia combo. A może jeszcze żyroskop...

  • #18 15 Sty 2018 13:38
    Freddy
    Poziom 43  
  • #19 15 Sty 2018 13:58
    simw
    Poziom 15  

    11111olo napisał:
    @simw
    Nie wiem czy da się coś więcej wycisnąć z HID poza udawaniem klawiatury i myszki.

    Można jeszcze przesyłać dane, ale to tylko USB 1.1, więc szału nie ma. HID na AVR to dopiero początek.
    Cała zabawa zaczyna się na STM32.
    Jeszcze łatwiej zrobić klawiaturę i myszkę, nie mówiąc o wirtualnym porcie COM czy karcie dźwiękowej. Takie rzeczy dostaje się z inwentarzem.
    Obsługa sprzętowa USB i jeszcze mnóstwo mocy obliczeniowej do wykorzystania.
    Sam dopiero w "to wchodzę", ale myślę, że potencjał jest ogromny...

    FREDDY napisał:

    Jest też fajna stronka LIRC

    Biblia dla użytkowników lirc, must have...

  • #20 15 Sty 2018 14:11
    Freddy
    Poziom 43  

    simw napisał:
    Biblia dla użytkowników lirc, must have...
    ??
    Nie rozumiem Cię o co chodzi :)

  • #21 15 Sty 2018 14:15
    simw
    Poziom 15  

    Freddy napisał:
    simw napisał:
    Biblia dla użytkowników lirc, must have...
    ??
    Nie rozumiem Cię o co chodzi :)

    A teraz to ja Cię nie rozumiem :)

    Ja miałem na myśli, że ta stronka to kompendium wiedzy dla użytkowników lirca i nie tylko, bo zasób wiedzy tam zgromadzonej to pewnie nie jednego uniwersalnego, komercyjnego pilota napędza...

  • #22 15 Sty 2018 14:19
    Freddy
    Poziom 43  

    Zgadza się i to nie tylko software, ale i różne hardware.