
Witam,
Chciałbym przedstawić dzisiaj wprawdzie prosty ale ciekawy projekt, jest to jeden z pierwszych "klocków" pewnego większego projektu, który za jakiś czas jeszcze - mam nadzieję także tu zaprezentować.
Poniższy pilot oparty jest na procesorku ATtiny2313 jak widać na fotkach. Obsługuje on w tej obudowie maksymalnie do 5 klawiszy, jednak można bardzo łatwo korzystając ze schematu i niedużej przeróbki oprogramowania przystosować go do własnych potrzeb i obsługi znacznie większej ilości klawiszy. Jest to mój pierwszy pilot wykonany tak od początku do końca i spełniający moje wymagania odnośnie małego poboru prądu podczas gdy nie pracuje - bo w trybie PowerDown pobiera tylko 6uA

przy zachowaniu z kolei odpowiednio wysokiego prądu do sterowania diody IR podczas nadawania tak aby uzyskać jak największy możliwy zasięg a na dodatek tak aby mógł bardzo długo pracować bez konieczności wymiany baterii. Jak widać zastosowałem wprawdzie mało typową baterię - jednak spokojnie można ją dostać (kupiłem gdzieś w necie) - ma sporą pojemność więc przy tej konstrukcji zapewne długo posłuży.

jak widać użyłem standardowej obudowy, którą też łatwo kupić gdziekolwiek w necie. W trakcie pracy pilota - ładnie "mruga" sobie niebieska dioda LED SMD

Jak widać powyżej na schemacie (prostym zresztą jak budowa cepa) zastosowałem metodę takiej obsługi klawiszy, że po wciśnięciu dowolnego podowuje on przerwanie do procka, które powoduje wybudzenie go ze stanu śpiączki klinicznej





Tytuł tematu brzmi - Uniwersalny "inaczej" ponieważ nie zrobiłem tak do końca może uniwersalnego pilota, który emituje kody w różnych standardach naraz - bo by kociokwik powstał ale ....
.... ale jak widać na ostatnim zdjęciu powyżej - ładnie przygotowane jest złącze ISP do szybkiego, prostego i łatwego przeprogramowywania pilota - innymi słowy mówiąc szybko można wrzucić nowy wsad dzięki któremu pilocik może nadawać w dowolnym standardzie i to kody klawiszy jakich sobie życzymy. (wystarczy przytknąć 6cio pinowe złącze szpilkowe - bez żadnego lutowania)
Całe oprogramowanie napisałem w nowym jak dla mnie języku C - dopiero się go uczę i poznaję a przy okazji korzystam z zawzięciem z jego dobrodziejstw. Pozwaliło mi to na napisanie na tyle uniwersalnie mojego programu do procka tak aby za pomocą jednego "przełącznika" programowego" przekompilować kod dla obsługi różnych pilotów. Na chwilę obecną mam dokładnie rozpracowane i działające sterowanie w standardach:
RC5 (oczywiście to podstawa - włącznie ze ślicznie działającym bitem Toggle) , SONY (Sirc) , Samsung , teraz kończę JVC i RC6

ale także to co było dla mnie najważniejsze - możliwość sterowania pilotem mojego ukochanego aparaciku OLYMPUS ..... działa prześlicznie

dzięki takiej konstrukcji już bez problemu mogę zaimplementować dzięki stronce www.lirc.org prawie dowolny standard - szybko łatwo i przyjemnie. Pracuję jeszcze nad możliwością większego sparametryzowania najważniejszych rzeczy tak aby można było:
1. zmieścić w pilocie kodowanie w różnych standardach i przełączać je klawiszem
2. zaoszczędzić miejsca na te różne kodowania
3. docelowo tak - aby móc wpisać tylko sobie proste podstawowe dane z lirc.org jak, typ kodowania Biphase, space, pulse, długość header'a, ilości przesyłanych bitów itp i dzięki temu w przysłowiowe 5 sekund można będzie zrobić sobie dowolnego pilocika - do swojego urządzenia, aparatu fotograficznego itp itp
koszty całości to płyteczka, procesor plus kilka elementów jak rezystory, kondesatory czy tranzystor - wszystko w SMD plus oczywiście kilka microswitchy. Do tego obudowa no i bateria.
Od razu uprzedzę komentarze, że nie jest to może konstrukcja tańsza niż te które można uzyskać np na allegro - są tam przecież uniwersalne piloty do sterowania różnymi aparatami fotograficznymi za cenę od 20-40zł) - tu jednak - tak myślę przewagą jest to dla elektronika, że mogę sobie w dowolnej chwili zmienić parametry, zastosować do czegoś innego i mam wszystko pod kontrolą.
Na pewno nieocenioną rzeczą przy budowie czegoś takiego jest możliwość nauczenia się wielu rzeczy nie tylko w osbłudze mikrokontrolerów ale i pisania oprogramowania wraz jego optymalizacją. Wprawdzie program zmieściłby mi się prawie w procesorku mniejszym jak ATtiny13 - bo zajmuje ok 1KB ale już wybrałem ten bo ma więcej wejść i łatwo mi go przystosowywać do tworzenia teraz już w dużej liczbie mnogiej pilotów do moich przeróżnych urządzeń.
Programu nie będę publikował, pokażę tylko poniżej jak wygląda sposób przełączania kompilacji dla danego standardu - zaznaczone na żółto - poprostu zmienna IR_MODE = (zdefiniowana stała, która odpowiada za kompilację warunkową dla różnych wersji kodowania)
poza nią - możemy jak widać dowolnie zdefiniować adres i komendę(klawisze) o ile są one rozróżnione w standardzie. Dzięki temu można sobie zrobić pilocika np RC5 generującego jakiś adres inny niż TV, VCR itp tak aby sterował jakieś nasze domowe urządzenie ale jednocześnie nie przełączał przypadkowo naszego telewizora który stoi obok a przypadkowo jest firmy Philips


Cool? Ranking DIY