Disco

Z support
Skocz do: nawigacja, szukaj

Wyzwanie: J GORĄCZKA SOBOTNIEJ NOCY

Projekt: J01 DISCO

Przypomnij sobie[edytuj]

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

  • funkcje,
  • generowanie dźwięków,
  • instrukcja warunkowa złożone,
  • operatory logiczne,
  • operatory porównania,
  • urządzenia wejścia,
  • PWM,
  • wyświetlacz.

Cel projektu[edytuj]

W projekcie możesz stać się DJ. Wykorzystaj diody, wyświetlacz i głośnik aby podbić serca swoich fanów.

Zadanie 1[edytuj]

Podłączenie modułów[edytuj]

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

Opis[edytuj]

Dyskoteka bez kolorowych świateł – czy takie coś istnieje. Spraw aby świeciły i mrugały. Wykorzystaj bloczek <DIODA LED> do sterowania stanem diody (włącz/wyłącz).

Wykorzystaj dodatkowo pętle i bloczek <CZEKAJ> aby światła mrugały.

Zadanie 2[edytuj]

Podłączenie modułów[edytuj]

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

Opis[edytuj]

Wykorzystaj czujnik światła do sterowania diodami. Gdy jest ciemno niech wszystkie zaczną mrugać a gdy jasno świeci tylko żółta. A może jakiś inny wzorzec?

Na początku sprawdź jakie wartości zwraca czujnik światła jeśli wykryje jasność lub ciemność (zakryj go ręką). Wartości wypisz na monitorze portu szeregowego. Powstały program zapisz w postaci funkcji.

Zadanie 3[edytuj]

Podłączenie modułów[edytuj]

Czujnik odległości jest modułem analogowym. Podłącz go pod specjalny pin z nazwą „distance”, który znajduje się na lewo od pinów oznaczonych literką A (Analog). Natomiast 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]

Im obiekt bliżej tym dźwięk jest głośniejszy? A może odwrotnie. Wykorzystaj wiedzę z kursu „PWM” i pobaw się sterowaniem natężenia dźwięku. Wykorzystaj bloczek <MODULUJ PWM>.

Na początku sprawdź jakie wartości zwraca czujnik odległości gdy obiekt jest blisko i daleko od jego „oczek”. Wartości wypisz na monitorze portu szeregowego. Powstały program zapisz w postaci funkcji.

Zadanie 4[edytuj]

Podłączenie modułów[edytuj]

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

Opis[edytuj]

Podobnie jak w poprzednim zadaniu wykorzystaj bloczek <MODULUJ PWM>. Jednakże tym razem użyj czujnika obrotu. Powstały program zapisz w postaci funkcji.

Zadanie 5[edytuj]

Opis[edytuj]

Wyświetlacz? Tak! Wykorzystaj możliwość rysowania linii, koła, kwadratu.

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

Zadanie 6[edytuj]

Opis[edytuj]

Dodaj dynamikę do narysowanych figur. Steruj ich wielkością za pomocą wartości zwracanych przez czujnik światła. Użyj jego wartości jako jeden z parametrów w figurze.

Pamiętaj, że czujnik światła zwraca wartości 0-1023 a obszar do rysowania na wyświetlaczu to 128x64. Wykorzystaj bloczek <MAPUJ>. Spróbuj wykorzystać także pętle. Powstały program zapisz w postaci funkcji.

Zadanie 7[edytuj]

Podłączenie modułów[edytuj]

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

Opis[edytuj]

Za pomocą joysticka wylosuj jedną z napisanych wcześniej funkcji i wywołaj ją. Jednakże aby to zrobić stwórz kombinację kilku funkcji, które wywołane razem stworzą ciekawy zestaw. Każdemu zestawowi przypisz inną liczbę. Następnie napisz funkcję, która wylosuje jeden z numerów i zapisze go w zmiennej. Wykorzystaj bloczek <WYLOSUJ LICZBĘ CAŁKOWITĄ>.

Pamiętaj, aby druga liczba z podanego zakresu była o 1 większa niż maksymalna liczba jaka ma zostać wylosowana. W ostatnim kroku wykorzystaj instrukcje warunkowe i dla każdej liczby zapisz osobny warunek. W ciele warunku wywołaj określone dla niego funkcje.

Pseudokod[edytuj]

Jeśli joystick > 700 //naciśnięcie w dół
   wylosowana-liczba = wylosuj liczbę całkowita(1-5)
   jeśli wylosowana-liczba = 1
      uruchom-diody()
      steruj-dzwiekiem-z-czujnika-obrotu()
   w przeciwnym razie jeśli wylosowana-liczba = 2
      uruchom-dynamike-figur()
      steruj-dzwiekiem-z-czujnika-odleglosci()
   …	

Zadanie 8[edytuj]

Opis[edytuj]

Tym razem wykorzystaj cztery stany joysticka (prawo, lewo, góra, dół). Dla każdego z stanów przypisz określony zestaw funkcji. Następnie utwórz instrukcje warunkowe dla każdego z nich. Po uruchomieniu programu wywołaj te funkcje, które zostały przypisane do aktualnego wychylenia joysticka.

Pseudokod[edytuj]

jeśli joystick > 300
   wlacz-diode-czerwona()
w przeciwnym razie jeśli joystick > 500
   generuj-dźwięk-z-czujnika-obrotu()