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

Elektryczne zasłony na Atmega8 sterowane IR

Gustin 08 Lis 2011 18:59 9653 4
  • Elektryczne zasłony na Atmega8 sterowane IR

    Witam !
    Chciałbym wszystkim przedstawić mój mały projekt sterowania zasłonami za pomocą pilota IR. Powstał celem przetarcia szlaków w sterowaniu silnikiem krokowym by w przyszłości podjąć próbę budowy amatorskiej maszyny CNC oraz dlatego, że bardzo lubię zasnąć po południu sobie a nie chce mi się wstać żeby zasłonić okno ;) Urządzenie jest w zasadzie skończone, jednak postanowiłem napisać do tego działu ponieważ jestem raczej początkujący oraz oprogramowanie urządzenia może jeszcze posiadać jakieś błędy. Używam je i testuję od około 2 miesięcy. Budowę zakończyłem w połowie września 2011. Działa całkiem nieźle, wyłapuję jeszcze jakieś pojawiające się czasami drobne błędy oprogramowania, nadaje się codziennego używania.

    Założenia projektu:
    * Sterowanie IR (pilotem Harmony ONE)
    * Możliwość przesuwania zasłon do określonej pozycji za pomocą jednego wciśnięcia klawisza pilota (bez trzymania)
    * Estetyczne ukrycie mechanizmów aby nie rzucały się w oczy
    * W miarę tania konstrukcja
    * Instalacja do istniejącego karnisza

    Założenia techniczne:
    * Wykorzystanie do napędu silnika krokowego (bez przekładni)
    * Jako sterownik - mikrokontroler AVR (atmega8)
    * Zasilanie za pomocą ATX (niskie koszty, możliwość wykorzystania tej metody później w CNC)

    Urządzenie składa się z:
    * Silnika krokowego 1,9Nm 4,5V o ośmiu wyprowadzeniach (uniwersalny) pracujący w konfiguracji bipolarnej (szeregowej). Pobór prądu w tej konfiguracji to około 1,4A (koszt silnika to około 93zł na znanym serwisie aukcyjnym)
    * Sterownika silnika krokowego opartego o parę L297/L298. Konstrukcja PCB jest własna, oparta o szereg schematów dostępnych w Internecie, szczególnie o schematy z serwisu PMinMOwiki. Dodałem własną modyfikację polegającą na wyprowadzeniu z kontrolera L297 linii HOME aby AVR mógł określać kiedy sterownik silnika jest w pozycji "zero" i dopiero wtedy wyłączać zasilacz ATX. Dodatkowo z oryginalnego schematu usunąłem regulator napięcia dający +5V dla L297 i L298, zasilam je bezpośrednio z ATX. Sterowanie silnikiem odbywa się półkrokami. (koszt to około 30-40 zł)
    * Logiki opartej o mikrokontroler AVR atmega8 z przyłączonym odbiornikiem podczerwieni TSOP1736, diodą dwukolorową (czerwoną/zieloną) oraz czujnikiem krańcowym mechanicznym (w spoczynku załączony, zwierający do masy, rozłączany "zapinką" sznurka koralikowego) (Koszt około 20 zł)
    * Zasilacza ATX DELL 160W wybranego ze względu na małe rozmiary. Logika AVR zasilana jest z linii +5VSB, sterownik L297/L289 z linii +5V a część zasilająca silnik z +12V. Zasilanie tego układu jest odcinane gdy nie jest potrzebne, wcześniej silnik ustawiany jest w pozycji ZERO kontrolera. Dodatkowo logika ma dostęp do linii PowerGood, zegar silnika krokowego włączany jest dopiero po otrzymaniu tego sygnału. (Koszt zero - dostałem od znajomego, jeśli chcieć kupić to około 40zł)




    * Dwóch rolek od mechanizmów rolet okiennych (tych prowadzących sznurek) oraz sznurka koralikowego rozciągniętego w poprzek). Sznurek jest tak ustawiony i połączony z zasłonami, że w momencie wyzwolenia czujnika krańcowego zasłony są całkowicie zamknięte. (około 30 zł)
    * Obie PCB zaprojektowałem i wykonałem samodzielnie metodą fotochemiczną (Positiv 20)

    Do kosztów trzeba chyba doliczyć jeszcze płytę główną komputera :) Ale zdaje się że już i tak miała umrzeć...

    Algorytm działania:
    * Po włączeniu zasilania urządzenie czeka na potwierdzenie "szukania zera". Następnie zamyka zasłony aż do wyzwolenia czujnika krańcowego, cofa się do wejścia czujnika w tryb spoczynku + jeszcze kilka kroków i uznaje tą pozycję za zero. Następnie przechodzi w stan oczekiwania na polecenia. W pamięci EEPROM zapisana jest pozycja maksymalna (ilość kroków) co daje możliwość ustawienia zasłon w dowolnego pozycji procentowej.
    * Jako źródło kodów IR użyłem innego pilota od starego DVD Trak. Pilot Harmony został nauczony z oryginalnego pilota Trak. Polecenia IR są wydawane po wysłaniu polecenia "włącz", po otrzymaniu tego polecenia zapala się zielona dioda i urządzenie jest gotowe na przyjmowanie innych poleceń.
    * Istnieje możliwość automatycznego ustawienia pozycji od zamknij (0%) do otwartej 100% co 10% w zależności od wybranego przycisku pilota.
    * Urządzenie posiada tryb serwisowy uruchamiany trzema różnymi kodami IR wysłanymi w odpowiedniej kolejności. Pozwala on na zaprogramowanie w EEPROMie maksymalnej pozycji otwarcia (nie większej niż zaprogramowana na stałe w kodzie absolutna pozycja maksymalna), wybór i zaprogramowanie w EEPROM jednej z pięciu prędkości poruszania, zresetowanie urządzenia, wymuszenie szukania zera.
    * Zaprogramowałem absolutną maksymalną pozycję gdyż miałem kilka ciężkich do wyśledzenia problemów - w poprzednich wersjach oprogramowania urządzenie potrafiło otwierać zasłony "w nieskończoność", ta metoda wyeliminowała ten problem. Dodatkowo jest zaprogramowane w kodzie kilka sytuacji awaryjnych celem ewentualnego debug-a. Urządzenie zgłasza błędy miganiem diody na czerwono pulsami (cztery kody od 1 do 4 pulsów). W przypadku wystąpienia takiego błędu, urządzenie można jedynie zresetować bądź wejść w tryb serwisowy.
    * Urządzenie włącza zasilacz ATX tylko gdy jest potrzebny, opóźnienie wyłączenia po zakończeniu zadania przesuwania zasłon ustawione jest na 30 sekund.
    * Oprogramowanie używa biblioteki IR pobranej z Internetu z kilkoma niewielkimi modyfikacjami poprawiającymi współpracę z Harmony. Reszta oprogramowania jest własna.
    * Po zakończeniu zmiany pozycji zasłon wysyłany jest kod "power off", działa to jak "blokada klawiatury".

    Załączam projekty PCB wykonane w programie GEDA PCB oraz wyeksportowane wersje PS + screenshoty programu oraz oczywiście kod źródłowy napisany w C (kompilator avr-gcc).

    Tutaj zdjęcia urządzenia (przepraszam za brak zdjęć pcb ale urządzenie jest zmontowane a nie robiłem dokumentacji w trakcie):

    Elektryczne zasłony na Atmega8 sterowane IR Elektryczne zasłony na Atmega8 sterowane IR Elektryczne zasłony na Atmega8 sterowane IR Elektryczne zasłony na Atmega8 sterowane IR Elektryczne zasłony na Atmega8 sterowane IR Elektryczne zasłony na Atmega8 sterowane IR Elektryczne zasłony na Atmega8 sterowane IR Elektryczne zasłony na Atmega8 sterowane IR

    Tutaj film z działania urządzenia:


    Link


    Pozdrawiam i zapraszam do oceniania !


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • Mierniki instalacji Metrel
  • #2 09 Lis 2011 00:07
    Maślakmj
    Poziom 12  

    Bardzo ciekawy projekt, jedyne co na pierwszy rzut oka to to, że można było wykonać otwory w karniszu na diodę sygnalizacyjną i odbiornik IR. No i oczywiście wmontować mikrofon i automatycznie "zamykać" zasłony na dźwięk rozpinanego stanika;)
    Pozdrawiam i gratuluje, a projekt moim zdaniem niepotrzebnie zamieszczony został w "niedokończone"

  • Mierniki instalacji Metrel
  • #3 09 Lis 2011 13:09
    Gustin
    Poziom 10  

    Dzięki za odpowiedź ! :)
    Tak masz rację z tymi otworkami w karniszu na diodę i czujnik. Taki był oryginalny plan, jednak później doszedłem do wniosku, że wstrzymam się z wierceniem otworków w widocznej części bo nie wiedziałem, czy urządzenie będzie chciało w ogóle działać na dłuższą metę i do tej pory otworki nie powstały... Być może je zrobię jeszcze bo wygląda na to, że urządzenie funkcjonuje zgodnie z założeniami.

  • #4 10 Sty 2012 11:35
    marcinwagr
    Poziom 2  

    Świetny projekt :spoko: Było by super jak byś zamieścił schemat sterownika w jakimś bardziej przyjaznym formacie bo mam zamiar też coś podobnego zbudować i przydała by się jakaś pomoc.

  • #5 18 Sty 2012 21:20
    marcinwagr
    Poziom 2  

    Przeanalizowałem ten schemacik, 74HC14 jest zbyteczny przy sterowaniu z ATMEGI