
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

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

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):








Tutaj film z działania urządzenia:
Pozdrawiam i zapraszam do oceniania !
Cool? Ranking DIY