Lampka nocna sterowana pilotem

Z Wiki Mistrzowie Kodowania
Skocz do: nawigacji, wyszukiwania


Założenia projektu:

Celem zajęć jest stworzenie lampki która będzie sterowana pilotem na podczerwień (ewentualnie komputerem – w przypadku braku zestawu IR). Kształcimy naukę logicznego myślenia, uczymy barw kolorów,

Opis projektu:

Zajęcia z wykorzystaniem systemu Makeblock. Uczniowie zbudują, korzystając z elementów konstrukcyjnych Makeblock, klocków lego lub innych przedmiotów lampkę nocną (wygląd lampki pozostawmy kreatywności uczniów)

Potrzebny sprzęt:

  • Klocki, kubek papierpwy/plastikowy (na klosz) i inne elementy potrzebne do zbudowania lampy
  • Komputer z zainstalowanym programem mBlock
  • Płytka główna makeblock orion + zasilanie
  • Odbiornik podczerwieni z pilotem

Lampa1.jpg

  • Moduł LED RGB

Lampa2.jpg

  • 2 kable 6P6C RJ25 – do przyłączenia modułów
  • Wyświetlacz 7-segmentowy – opcjonalnie

Lampa3.jpg


Budujemy:

Zajęcia rozpoczynamy od omówienia wyglądu typowych lap nocnych, ich elementów oraz zasady działania. Zaczynamy od budowy podstawy do której przymocowany będzie Makeblock Orion z zasilaniem. Nie zapomnijcie o wybraniu odpowiedniego miejsca i zamocowaniu odbiornika podczerwieni, tak aby był doskonale widoczny z kliku metrów (pozwoli nam to sterować lampą z większej odległości). Następnie powinniśmy wykonać ramię z mocowaniem dla modułu RGB, warto rozważyć stworzenie klosza z kubka. Odbiornik podczerwieni łączymy z płytą główną podpinając go pod port 4, moduł RGB podpinamy pod port 6.

Kodujemy:

Czas zaprogramować zbudowana lampkę. Na początek nasza lampka będzie miała tylko 2 funkcje, włączania ( białe światło) i wyłączania. Ponieważ chcemy aby lampka była sterowana pilotem, nie będzie potrzebować komputera do obsługi. Dlatego tez pisanie naszego kodu tym razem nie zaczniemy od bloczku kiedy kliknięto zieloną flagę. Czy macie zatem jakieś inne propozycje na rozpoczęcie naszego kodu?


Warto pamiętać:

Gdy chcemy aby nasze urządzenie/robot było niezależne od komputera np. sterowane pilotem lub aby mogło automatycznie wykonywać powierzone mu zadanie, musimy wgrać mu napisany kod do jego pamięci. Aby wgrany kod zadziałał musi zaczynać się od bloczku Orion Program.

Ponieważ lampką sterować będzie płyta Orion, nasz kod musi zaczynać się od bloczku Orion Program. Znajdziemy go w zakładce Roboty. Teraz musimy się zastanowić jak napisać kod, aby umożliwił nam włączenie lampki poprzez naciśnięcie przycisku A, a wyłączenie jej przyciskiem B. Najprościej by było gdybyśmy zastosowali następujący warunek: Jeżeli naciśnięty przycisk A to ustaw Led(wszystkie) (port 6) na Red 255 Green 255 Blue 255

Red, green, blue czyli RGB – to barwy zapisane w formie szesnastkowej (heksadecymalnej; ang. hexadecimal) RGB jest jednym z modeli przestrzeni barw, opisywanej współrzędnymi RGB. Jego nazwa powstała ze złożenia pierwszych liter angielskich nazw barw: R – red (czerwonej), G – green (zielonej) i B – blue (niebieskiej), z których model ten się składa. Jest to model wynikający z właściwości odbiorczych ludzkiego oka, w którym wrażenie widzenia dowolnej barwy można wywołać przez zmieszanie w ustalonych proporcjach trzech wiązek światła o barwie czerwonej, zielonej i niebieskiej np. z połączenia barwy zielonej i czerwonej powstaje barwa żółta.

Ustawienie trzech barw na wartość 255 da nam barwę białą. Wibierająć 'wszystkie' ustawiamy ten sam kolor dla czterech diod znajdujących się na module. Przy zabawie z ustawianiem kolorów świecenia naszej lampki, można użyć dostępnych na Internecie konwerterów kolorów, które pomogą ustalić jakie wartości musimy wpisać aby otrzymać pożądany kolor (np.. http://lekka.cba.pl/sc_ap/converter_rgb_hex_color.htm) Wiemy zatem jak określać kolor świecenia lampki, ale jak sprawić aby ten kolor wywołać, czyli nasza lampkę zapalić?

Przypominam nasz warunek:

Jeżeli 'naciśnięty przycisk A' to

Lampa4.jpg

No ale skąd weźmiemy bloczek odpowiedzialny za naciśnięcie przycisku na naszym pilocie?

Lampa5.jpg

Czy taki kod będzie prawidłowy?

Lampa6.jpg

Niestety nie.

Jeżeli nasza lampka była by sterowana za pomocą bluetooth z poziomu komputera, a kod zaczynał by się od kiedy zielona flaga kliknięta, podobny kod mógłby zadziałać. Jednak w przypadku sterowania naszym pilotem, tak nie będzie. Jak sprawdzić "co widzi" nasza lampka po skierowaniu pilota w stronę czujnika oraz naciśnięciu przycisku A? Jeżeli mamy wyświetlacz 7-segmentowy, możemy to sprawdzić sami. Nie macie wyświetlacza, przewińcie niżej, aby sprawdzić tabelę wartości przycisków pilota IR. Podpinamy wyświetlacz do naszej lampki i za poniższego pomocą kodu, sprawdzamy jaką wartość przyjmuje klawisz.

Lampa7.jpg

Wartości przycisków na pilocie IR to:

Lampa8.jpg

Z poniższej tabelki dowiadujemy się, że przyciskowi A przyjmuje wartość 69. Jak zatem zastosować tą wiedzę w praktyce, aby włączyć światło w naszej lampce? Czy będzie nam potrzebne jeszcze coś? Oczywiście, będziemy jeszcze potrzebowali zmiennej aby móc przechować w niej wartość przesłaną po naciśnięciu przycisku na pilocie. Nazwijmy ja zatem pilot. Przypomnienie: Zmienne znajdują się w zakładce 'Dane i Bloczki'. Wybieramy 'utwórz zmienną' (w tym przypadku nie ma znaczenia czy dla jednego duszka czy wielu).

Lampa9.jpg

Dane z pilota przechowamy w zmiennej, ustawiając ją na odbiornik IR. Dzięki temu po naciśnięciu przycisku A na pilocie, sygnał poczerwieni powędruje do odbiornika przekazując mu wartość: 69, następnie wartość ta zostanie pobrana z odbiornika podczerwieni i zapisana w zmiennej. Teraz potrzebujemy zaprogramować procedurę, która ustawi diody led na kolor biały. Warunkiem wykonania procedury, będzie warunek zmiennej równej 69. Jeżeli więc zmienna pilot jest równa 69 to diody led zaświecą na biało. Warto pamiętać o pętli zawsze, która potrzebna jest do ciągłego sprawdzania czy dany warunek (naciśnięcie przycisku) został wykonany.

Lampka świeci i co dalej?

Umiemy już włączyć naszą lampkę, ale jak ją wyłączyć? Zasada tworzenia kodu będzie podobna do tego co stworzyliśmy wcześniej. Wystarczy zmienić wartość 69 aby odpowiadała wartości przycisku B, czyli 70 oraz ustawić RGB na 0,0,0 co spowoduje wyłączenie wszystkich diod.

Lampa10.jpg

Mając opanowane powyższe skrypty możemy pozwolić uczniom na zaprogramowanie pozostałych przycisków, przypisując do nich inne kolory. Otrzymamy w ten sposób odpowiednik popularnych żarówek zmieniających barwę.

Pomysły na dalszą rozbudowę:

Pomyślcie nad alternatywnymi sposobami włączania lampki. Jeżeli posiadacie wykorzystajcie do jej uruchamiania czujnik ruchu, światła czy dźwięku itp. Pamiętajcie, moduł RGB składa się z 4 diod, każda z nich może przyjmować inny kolor, a kolory mogą się zmieniać, spróbujcie stworzyć np. Efekt tęczy.