ATNEL tech-forum
https://forum.atnel.pl/

Attiny13 jako odbiornik dowolnego pilota IR
https://forum.atnel.pl/topic23982.html
Strona 1 z 1

Autor:  SylwekK [ 19 paź 2021, o 12:54 ]
Tytuł:  Attiny13 jako odbiornik dowolnego pilota IR

Hej. Przegrzebałem internet i najmniejszy procek w jakim zrobiono odbiór i sterowanie IR to Atiny45, być może za słabo szukałem więc wybaczcie i dajcie linka, a póki co, że tak powiem rękawicę podniosłem 8-) :mrgreen:

Taka mała zajawka...


Autor:  mirekk36 [ 19 paź 2021, o 13:26 ]
Tytuł:  Re: Attiny13 jako odbiornik dowolnego pilota IR

no i TAKIE podejście to mi się podoba! Jak najwięcej wycisnąć z JAK najmniejszego ! ;) No! ale SylwekK to już znana marka - nie ma że to tamto ;)

Autor:  SylwekK [ 19 paź 2021, o 13:33 ]
Tytuł:  Re: Attiny13 jako odbiornik dowolnego pilota IR

Dzięki Mirek :) Jednak są już podobne urządzenia (jak szukałem swojego w YT to mi się też inne wyświetliły) tylko nie wiem czy działają na każdego pilota czy tylko na wybrane konkretne modele (za słaby jestem z obcych języków :) )
Kod w C zajmuje około 900B. Jeden podstawowy kanał z całą obsługą to 570B, każdy dodatkowy to jakieś 120-150B. Nie bawiłem się już optymalizację pod koniec (bezczelnie kopiowałem istotny fragment nauki kodu), bo dużo miejsca jeszcze tam było i po prostu nie opłacało się rzeźbić :)

Autor:  SylwekK [ 3 lis 2021, o 22:51 ]
Tytuł:  Re: Attiny13 (i nie tylko) jako odbiornik dowolnego pilota I

Wróciłem do tematu sterowania po paru dniach i postanowiłem troszkę algorytm czytnika pilotów IR zmodyfikować. W tiny13 program miał tylko włączać i wyłączać konkretne wyjścia przez co nawet nie starałem się robić odczytu przelotowego. Funkcja nie była też wyzwalana przerwaniem z racji, że to mały ubogi procek i jednorazowy projekt, a timer też był potrzebny do innych rzeczy w algorytmie.
Kiedy podliczyłem wszystkie poniewierające się w domu piloty to pomyślałem, że może by jednak coś w kierunku bardziej uniwersalnym pójść i wykorzystać część tego elektrozłomu w przyszłości :)
Tak oto zrobiłem dziś (na razie wersja testowa) programik, a właściwie funkcję (nawet jej w bibliotekę nie ubierałem jeszcze) z jak mi się wydaje poprawionym algorytmem odczytu większości popularnych pilotów, które udało mi się zidentyfikować między innymi NEC, X-Sat, Sony SIRC, JVC, Denon i oczywiście RC5 bez bitu toggle, które to ku mojej uciesze usunęło się przez przypadek przy tworzeniu nowego algorytmu ;) Niektóre bardziej egzotyczne piloty dają z kolei tylko jeden kod, albo wcale... Zaznaczę tu od razu, że NIE jest to dekoder tylko jak już go nazwałem wcześniej CZYTNIK pilotów podczerwieni. Wynik, który otrzymujemy jest 16-bitową liczbą nie mającą NIC wspólnego z oryginalnym kodem pilota opartą o mój algorytm napisany tak, aby były jak najmniejsze szanse powtórki. Ze względu na prostotę jego transmisji znowu pokrzywdzony jest RC5 - co udało mi się znaleźć to, np. wspólny kod dla klawiszy CH- i [kursor w dół] oraz jeszcze jakaś inna para. W każdym razie gdyby komuś na tym zależało to bibliotek do pilotów RC5 jest mnóstwo w sieci, a mnie akurat na nim najmniej zależy, bo nie posiadam (oprócz pilota uniwersalnego, który do testów wykorzystałem) żadnych urządzeń pod ten standard.
Zależało mi przede wszystkim na objętości programu i aby bez przeszkód można było wykorzystać w KAŻDYM procku. Cała funkcja odczytu zajmuje 254 bajty i wywoływana jest cyklicznie w przerwaniach (na Atmega32 16Mhz zabiera w porywach 1-3us czasu). Ten sposób pracy ma swoje wady, ale też i zalety - z Attiny13 można cuda robić ;-)
Dziś chciałbym wam dać do testowania programik i prosić o opinie jak wam się takie rozwiązanie podoba i czy algorytm daje radę. Może trzeba go będzie jeszcze zmodyfikować nieco.
Do uruchomienia potrzebna Atmega32 z kwarcem 16MHz. Na PB0 wpinamy się z czujnikiem IR, PB1 wyjście na LED kontrolny (względem masy). Wyświetlacz pod portem C. Dane z nagłówka LCD poniżej:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Obrazek

Autor:  skandal_obyczajowy [ 18 mar 2023, o 21:30 ]
Tytuł:  Re: Attiny13 jako odbiornik dowolnego pilota IR

Cześć. Jestem na początku drogi w sensie odczytu danych przesłanych przez IR. Póki co pracuję nad odczytem kodu manchester, a konkretnie RC5 i RC5 extended. Jeszcze nie pobierałem Twojego softu, ale zainteresował mnie fakt, że podpinasz odbiornik pod pin taktujący timer. Bardzo fajny pomysł, postaram się ten temat przepracować u siebie w warsztacie. Pozdrawiam

Autor:  SylwekK [ 19 mar 2023, o 07:56 ]
Tytuł:  Re: Attiny13 jako odbiornik dowolnego pilota IR

To podpięcie pod timer to pewnie przez przypadek wyszło :) Program obsługuje dowolny pin uC. Algorytm działa nieco inaczej niż typowa analiza czasu przychodzących impulsów od konkretnego modelu pilota. Oczywiście porównuje je, ale z przechwyconym wcześniej wzorcem.

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/