Sterowanie bramą garażową
Wyzwanie: E INTELIGENTNY DOM
Projekt: E03 STEROWANIE BRAMĄ GARAŻOWĄ
Spis treści
Przypomnij sobie[edytuj]
Przed rozpoczęciem tego projektu warto wrócić do lekcji:
- generowanie dźwięków,
- instrukcja warunkowa prosta,
- operatory logiczne,
- operatory porównania,
- pętla,
- serwomechanizmy,
- urządzenia wejścia,
- urządzenia wyjścia,
- zmienne.
Cel projektu[edytuj]
Inteligentna brama garażowa, którą możesz otworzyć na przycisk lub czujnik zbliżającego się pojazdu to marzenie nie jednego z nas. Czy nie łatwiej zimą otworzyć bramę automatycznie niż wychodzić w mróz aby otworzyć ją ręcznie. Napisz taki system.
Zadanie 1[edytuj]
Podłączenie modułów[edytuj]
Serwo jest modułem cyfrowym. Podłącz go pod specjalny pin pod pinami oznaczonymi literką D (Digital).
Opis[edytuj]
Po przejrzeniu kursu „serwomechanizmy” możesz dowiedzieć się, że bloczek <SERWO…PRZESUŃ> przesuwa ramię serwa o kąt jaki zostanie podany w parametrze wspomnianego bloczka. Pomyśl, jeśli chcesz podnieść bramę to kąt ramienia musi być ustawiony na 0 stopni, natomiast jeśli chcesz opuścić to 90 stopni.
Zadanie 2[edytuj]
Podłączenie modułów[edytuj]
Przycisk jest modułem cyfrowym. Podłącz go pod pin oznaczony literką D (Digital).
Opis[edytuj]
Aby operować przyciskiem należy użyć instrukcji warunkowych z warunkiem „jeśli naciśnięto przycisk to zrób akcję”. Dodatkowo należy pamiętać aby nie zepsuć bramy poprzez zamknięcie zamkniętej wcześniej bramy. Czyli gdy serwo jest aktualnie w pozycji 90 stopni to nie możemy po naciśnięciu przycisku wydać instrukcji aby przesunąć je o kolejne 90 stopni. Aby zabezpieczyć taką sytuację użyj zmiennej do zapisania aktualnego stanu bramy garażowej – otwarta/zamknięta. Na początku w bloczku <INICJUJ> ustaw początkową wartość serwa na 90 stopni czyli zamknięta brama i ustaw taki stan bramy w zmiennej.
Pamiętaj aby zmieniać status bramy po każdym naciśnięciu przycisku, aby w zmiennej znajdowała się zawsze aktualna wartość.
Pseudokod[edytuj]
Inicjuj serwo-przesuń 90 status-bramy = „zamknieta” Jeśli naciśnięto przycisk jeśli status-bramy == „zamknieta” serwo-przesuń 0 status-bramy = „otwarta” w przeciwnym razie serwo-przesuń 90 status-bramy = „zamknieta”
Zadanie 3[edytuj]
Podłączenie modułów[edytuj]
Czujnik odległości jest modułem analogowym. Podłącz go pod specjalny pin umieszczony na lewo od pinów analogowych oznaczonych literką A (Analog).
Opis[edytuj]
Zamień przycisk na czujnik odległości. W pierwszej kolejności przetestuj jak działa czujnik odległości wypisując wartości jakie zwraca przy obiekcie blisko i daleko od jego „oczek”. Wartości wypisz na monitorze portu szeregowego.
Napisz instrukcję warunkową jeśli samochód pojawi się blisko zamkniętej bramy to serwo ja otworzy. Po otwarciu zamknij bramę po 5 sekundach. Pamiętaj aby domyślnie brama cały czas była zamknięta.
Aby brama wolno się otwierała wykorzystaj pętle.
Pseudokod[edytuj]
Jeśli czujnik-odległości < 300 For i=90;i>=0;i-=10 serwo… przesuń i czekaj 1s status-bramy =”otwarta” czekaj 5s Serwo…przesuń 90 status-bramy =”zamknieta”
Zadanie 4[edytuj]
Podłączenie modułów[edytuj]
Diody to moduły cyfrowe. Podłącz je pod piny oznaczone literką D (Digital).
Opis[edytuj]
Aby dioda mrugała należy w pętli na przemian włączać ją i wyłączać co np. 0,5 sekundy. W napisanym programie jest już pętla więc wystarczy go wzbogacić o instrukcje skojarzone z mruganiem diody. Po otwarciu daj sygnał kierowcy, że można wjechać poprzez zapalenie zielonej diody. Natomiast gdy brama jest zamknięta włącz tylko czerwoną diodę.
Pseudokod[edytuj]
jeśli czujnik-odległości < 300 For i=90;i>=0;i-=10 serwo…przesuń i dioda led czerwona włącz czekaj 0,5s dioda led czerwona wyłącz czekaj 0,5s dioda led zielona włącz status-bramy =”otwarta” czekaj 5s Serwo…ustaw-na 90 dioda led zielona wyłącz dioda led czerwona włącz status-bramy =”zamknieta”
Zadanie 5[edytuj]
Podłączenie modułów[edytuj]
Głośniczek jest modułem cyfrowym. Podłącz go do pinu oznaczonego literką D (Digital) i znaczkiem ~. Znaczek ~ pozwala na większe możliwości sterowania np. częstotliwością lub wysokością dźwięku.
Opis[edytuj]
Dodanie dźwięku z głośniczka to jedna instrukcja/bloczek <GENERUJ DŹWIĘK>, który najlepiej jest umieścić przed jednym z bloczków „czekaj” w pętli for.
Zadanie 6[edytuj]
Podłączenie modułów[edytuj]
Czujnik światła jest modułem analogowym. Podłącz go pod pin oznaczony literką A (Analog). Natomiast dioda jest modułem cyfrowym. Podłącz ją pod pin oznaczony literką D (Digital).
Opis[edytuj]
Na początku należy sprawdzić jakie wartości przyjmuje czujnik światła gdy jest ciemno, a jakie gdy jest jasno. W tym celu najlepiej skorzystać z monitora portu szeregowego. Następnie po ustaleniu wartości jaka zwraca czujnik światła gdy jest ciemno możemy napisać odpowiedni warunek po przyjeździe właściciela do domu – zapal światło (diodę) albo zgaś.
Pseudokod[edytuj]
Jeśli czujnik-swiatla > 200 dioda led żółta włącz w przeciwnym razie dioda led żółta wyłącz