System alarmowy

Z support
Skocz do: nawigacja, szukaj

Wyzwanie: D BANK

Projekt: D02 SYSTEM ALARMOWY

Przypomnij sobie[edytuj]

Przed rozpoczęciem tego projektu warto wrócić do lekcji:

  • funkcje,
  • generowanie dźwięków,
  • instrukcja warunkowa prosta,
  • instrukcja warunkowa złożona,
  • operatory logiczne,
  • operatory porównania,
  • PWM,
  • wyświetlacz.

Cel projektu[edytuj]

Bank przechowuje w swoich sejfach bardzo dużą gotówkę. Aby pieniądze były bezpieczne dyrektor banku postanowił zainwestować w system alarmowy.

Zadanie 1[edytuj]

Podłączenie modułów[edytuj]

Głośniczek i przycisk są modułami cyfrowymi. Podłącz je pod piny oznaczone literką D (Digital).

Pamiętaj aby głośniczek podłączyć pod pin z znaczkiem ~ aby była możliwość sterowania jego parametrami np. jego wysokością.

Opis[edytuj]

Aby odtworzyć dźwięk z głośniczka wykorzystaj jeden z bloczków <GENERUJ DŹWIĘK>. Aby sterować przyciskiem wykorzystaj instrukcje warunkowe.

Pseudokod[edytuj]

Jeśli naciśnięto przycisk
   wygeneruj dźwięk

Zadanie 2[edytuj]

Opis[edytuj]

Przypomnij sobie jakie bloczki są potrzebne do prawidłowej pracy z wyświetlaczem:[edytuj]

  • włącz wyświetlacz (domyślnie wyświetlacz jest wyłączony, ta instrukcja powinna być użyta tylko raz),
  • wyczyść wyświetlacz (instrukcja wyczyści poprzednie zapiski na wyświetlaczu, np. logo producenta),
  • ustaw kursor (pozwala na wypisanie tekstu zawsze w tym samym miejscu),
  • wypisz na wyświetlaczu (wypisanie tekstu dołączonego z prawej strony bloczka),
  • wyświetl na wyświetlaczu (wyświetlenie powyżej zdefiniowanych tekstów i figur).

Rozszerz instrukcje skojarzone z naciśnięciem przycisku o wypisanie informacji na wyświetlaczu.

Pseudokod[edytuj]

Jeśli naciśnięto przycisk
   wygeneruj dźwięk
   włącz wyświetlacz 
   wyczyść wyświetlacz 	
   ustaw kursor
   wypisz na wyświetlaczu = „Napad na bank”
   wyświetl na wyświetlaczu

Zadanie pomiędzy 2 a 3[edytuj]

Opis[edytuj]

Napisane wcześniej instrukcje dodaj do nowostworzonej funkcji alarm dzień.

Pseudokod[edytuj]

Funkcja uruchom-alarm-dzien()
   Jeśli naciśnięto przycisk
      wygeneruj dźwięk
      włącz wyświetlacz 
      wyczyść wyświetlacz 	
      ustaw kursor
      wypisz na wyświetlaczu = „Napad na bank”
      wyświetl na wyświetlaczu

Zadanie 3[edytuj]

Podłączenie modułów[edytuj]

Czujnik odległości jest czujnikiem analogowym. Podłącz go pod specjalny pin umieszczony na lewo od pinów z literką A (Analog).

Opis[edytuj]

Na początku przetestuj czujnik odległości poprzez sprawdzenie jakie wartości zwraca jeśli jakiś obiekt pojawi się blisko lub daleko od jego oczek. Jako obiekt wykorzystaj własną rękę lub klocek. Do wypisania i odczytania zwracanych wartości wykorzystaj monitor portu szeregowego.

Następnie napisz funkcję, która po wykryciu ruchu wypisze informacje na monitorze portu szeregowego, że został wykryty ruch. W funkcji wykorzystaj instrukcje warunkowe.

Pseudokod[edytuj]

Funkcja uruchom-alarm-noc ()
   jeśli czujnik-odległości > 600
      wypisz-na-porcie-szeregowym = „wykryto ruch”

Zadanie 4[edytuj]

Opis[edytuj]

Napisz dwie funkcje. W pierwszej po wykryciu ruchu wygeneruj ciche dźwięki. Natomiast w drugiej głośne. Dodaj także informacje na wyświetlaczu, że alarm został uruchomiony.

Pseudokod[edytuj]

Funkcja uruchom-alarm-cichy ()
   jeśli czujnik-odległości > 600
      wygeneruj-dźwięk
      wypisz-na-porcie-szeregowym = „alarm cichy - wykryto ruch”

Zadanie 5[edytuj]

Podłączenie modułów[edytuj]

Czujnik obrotu jest modułem analogowym. Podłącz go pod pin oznaczony literką A (Analog).

Opis[edytuj]

Wykorzystaj monitor portu szeregowego aby zapoznać się jakie wartości zwraca czujnik obrotu po wskazaniu każdego z trybów. Następnie na tej podstawie napisz odpowiednie instrukcje warunkowe, które uruchomią napisane wcześniej funkcje.

Pseudokod[edytuj]

jeśli czujnik-obrotu < 200
   uruchom-alarm-noc-czy ()
w przeciwnym razie jeśli czujnik-obrotu > 200 i czujnik-obrotu < 400
   uruchom-alarm-dzien()
…
	

Zadanie 6[edytuj]

Podłączenie modułów[edytuj]

Diody to moduły cyfrowe. Podłącz je pod piny oznaczone literką D (Digital).

Opis[edytuj]

Sprawdź jaki zakres wartości zwraca czujnik obrotu po wskazaniu na obszar „OFF”. Następnie wykorzystaj diody. W trybie „OFF” włącz czerwoną diodę, natomiast w pozostałych zieloną. Pamiętaj aby nie tylko włączyć potrzebną diodę, ale także wyłączyć niepotrzebne.

Optymalizacja:[edytuj]

Dobrym pomysłem jest aby sterować diodami tylko w dwóch miejscach – w trybie off i w pozostałych przypadkach. Opakuj aktualny program w dużą instrukcję sprawdzającą czy czujnik obrotu wskazuje pole z napisem „OFF”. Jeśli tak, to włącz czerwoną diodę. W przeciwnym wypadku włącz zieloną. Dzięki takiemu zabiegowi nie będzie potrzeby, aby powtarzać włączenie zielonej diody w każdym innym trybie niż „OFF”.

Pseudokod[edytuj]

Jeśli czujnik obrotu > 600 i czujnik obrotu < 750 //alarm wyłączony
   dioda-led włącz czerwoną 
   dioda-led wyłącz zieloną 
w przeciwnym razie
   dioda-led wyłącz czerwoną 
   dioda-led włącz zieloną
   jeśli czujnik-obrotu < 200
      uruchom-alarm-noc-czy ()
   w przeciwnym razie jeśli czujnik-obrotu > 200 i czujnik-obrotu < 400
      uruchom-alarm-dzien()
	…

Zadanie 7[edytuj]

Opis[edytuj]

Sprawdź jak działa bloczek <MODULUJ PWM>. Na podstawie testów wybierz takie dwie wartości natężenia dźwięku jakie będą pasować do trybu alarmu dzień i noc.