Czujnik cofania

Z support
Skocz do: nawigacja, szukaj

Wyzwanie: C BEZPIECZEŃSTWO

Projekt: C02 CZUJNIK COFANIA

Przypomnij sobie[edytuj]

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

  • instrukcja warunkowa prosta,
  • instrukcje warunkowe złożone,
  • operatory logiczne,
  • operatory porównania,
  • pętle,
  • urządzenia wyjścia,
  • generowanie dźwięków.

Cel projektu[edytuj]

Zaprogramowanie czujników cofania z wykorzystaniem czujnika odległości i sygnałów dźwiękowych.

Zadanie 1[edytuj]

Podłączenie modułów[edytuj]

Czujnik odległości jest czujnikiem analogowym. Podłącz go pod specjalny pin, po lewej strony od pinów z literką A (Analog).

Opis[edytuj]

Na początku zapoznaj się z działaniem czujnika odległości. Weź klocek aby zasymulować samochód . Ustal trzy różne przypadki opisane w zadaniu i sprawdź jakie wartości zwraca czujnik. Następnie użyj wyświetlacza i wypisz odpowiedni komunikat. Pamiętaj, że dla obiektów blisko od siebie czujnik zwraca duże wartości, bliskie 800, a dla obiektów daleko - małe. W testach należy wybrać dwie wartości dla których oznaczamy, że miejsce jest wolne lub zajęte. Miejsce wolne oznacza, że czujnik odległości zwróci bardzo małą wartość. Natomiast zajęte, że wartość będzie trochę większa niż poprzednio w przypadku miejsca wolnego, bo czujnik zlokalizował jakiś obiekt. W ostatnim statusie czyli wycofywanie, wartość zwracana przez czujnik będzie większa niż przy statusie zajęte.

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

Optymalizacja:[edytuj]

Spójrz na instrukcje dotyczące wyświetlacza, które zostały wypisane powyżej. Zastanów się, która z tych instrukcji zmienia się w zależności od aktualnego położenia samochodu. Jest to tylko instrukcja wypisz-na-wyświetlaczu. Pozostałe instrukcje mogą być nad albo instrukcją warunkową. Dzięki temu cztery bloczki wykorzystujesz tylko raz.

Pseudokod[edytuj]

jeśli czujnik-odległości < 100
   wypisz-na-wyświetlaczu = „miejsce wolne”
w przeciwnym przypadku jeśli czujnik-odległości >100 i czujnik-odległości < 300
   wypisz-na-wyświetlaczu = „miejsce zajęte”
w przeciwnym przypadku 
   wypisz-na-wyświetlaczu = „pojazd wycofuje się z parkingu”

Program[edytuj]

C02z1.png

Zadanie 2[edytuj]

Podłączenie modułów[edytuj]

Dioda jest modułem cyfrowym. Podłącz ją pod pin oznaczony literką D (Digital).

Opis[edytuj]

Pierwszy przypadek to miejsce wolne, czyli czujnik odległości nie wykrywa żadnego obiektu blisko swoich „oczek”. Dopisz zapalenie zielonej diody do wcześniej napisanego warunku z użyciem czujnika odległości. Pamiętaj, że program działa cały czas w pętli. Jeżeli w instrukcjach warunkowych został użyty bloczek włączający diodę, to należy pamiętać, że w pozostałych warunkach, gdzie dioda nie ma świecić to powinna zostać wyłączona. W tym zadaniu diodę włączamy, jeżeli czujnik odległości wykaże, że miejsce jest wolne. W pozostałych przypadkach wyłącz diodę.

Pseudokod[edytuj]

jeśli czujnik-odległości < 100
   wypisz-na-wyświetlaczu = „miejsce wolne”
   dioda-led wyłącz
w przeciwnym przypadku jeśli czujnik-odległości >100 i czujnik-odległości < 300
   wypisz-na-wyświetlaczu = „miejsce zajęte”
   dioda-led włącz
w przeciwnym przypadku 
   wypisz-na-wyświetlaczu = „pojazd wycofuje się z parkingu”
   dioda-led wyłącz

Program[edytuj]

C02z2.png

Zadanie 3[edytuj]

Podłączenie modułów[edytuj]

Dioda jest modułem cyfrowym. Podłącz ją pod pin oznaczony literką D (Digital).

Opis[edytuj]

Analogicznie jak w zadaniu poprzedni dopisz bloczek do sterowania stanem włączona/wyłączona od czerwonej diody w wszystkich trzech instrukcjach warunkowych.

Zadanie 4[edytuj]

Opis[edytuj]

Dwa pierwsze warunki zostały wyposażone w zapalenie czerwonej lub zielonej diody. Teraz czas na dopisanie sterowania czerwonej diody podczas wycofywania. Tutaj dioda powinna mrugać. W tym zadaniu nie potrzeba osobnej pętli, wykorzystaj główną pętle programu. Przypomnij sobie co to znaczy, aby dioda mrugała. Wykorzystaj bloczek <DIODA LED> i <CZEKAJ>.

Pseudokod[edytuj]

w przeciwnym przypadku 
   wypisz-na-wyświetlaczu = „pojazd wycofuje się z parkingu”
   dioda-led czerowna wyłącz
   czekaj 300ms
   dioda-led czerowna włącz
   czekaj 300ms

Program[edytuj]

C02z4.png

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]

Rozbuduj warunek dotyczący wycofywania się samochodu. Dodaj krótkie sygnały dźwiękowe. Zastosuj bloczek <GENERUJ DŹWIĘK>.

Optymalizacja:[edytuj]

Dodaj instrukcje <GENERUJ DŹWIĘK> przed bloczkami <CZEKAJ> w grupie bloczków dotyczących mrugania.

Pseudokod[edytuj]

w przeciwnym przypadku 
   wypisz-na-wyświetlaczu = „pojazd wycofuje się z parkingu”
   dioda-led czerowna wyłącz
   generuj dźwięk
   czekaj 300ms
   dioda-led czerowna włącz
   generuj dźwięk
   czekaj 300ms

Program[edytuj]

C02z5.png

Zadanie 6[edytuj]

Opis[edytuj]

W zadaniu należy napisać funkcję, która zmieni wartości zwracane przez czujnik odległości na odpowiednie sygnały dźwiękowe, charakterystyczne dla odgłosu cofania. Skorzystaj z bloczka <MAPUJ [] NA ZAKRES>. Im obiekt jest bliżej czujnika odległości tym sygnał powinien być częstszy a tym samym ciągły. Drugim pomysłem jest napisanie instrukcji warunkowych, która dla każdego warunku wygeneruje inna wysokość dźwięku z głośniczka.