Lampka sterowana czujnikiem światła

Skonstruujmy interaktywną lampkę, która będzie zapalać się sama kiedy jest ciemno

Czas trwania – 45min
Poziom trudności – PROSTY

Wstęp

W tym projekcie zbudujemy prosty układ pozwalający zapalać lampki przy pomocy czujnika światła! Twój robot żądny jest eksploracji przestrzeni pod szafką albo łóżkiem? Teraz możesz mu ułatwić obserwację! Czujnik światła pozwoli Ci zapalić lampki, gdy poziom oświetlenia spadnie poniżej zadanej przez Ciebie wartości. Zastanów się teraz, jak może wyglądać program naszego robota… a jeżeli nic nie przychodzi Ci do głowy, to po tej lekcji wszystko stanie się JASNE!

Przygotowanie

Przed przystąpieniem do programowania zmontuj konstrukcję lampek. Możesz użyć naszej instrukcji, albo wymyśl coś samodzielnie!

Moduły:

  • LOFI Brain
  • Czujnik światła
  • Dioda LED x2
  • Kabel USB

Co wcześniej trzeba przygotować:

Przeglądarkę Google Chrome z rozszerzeniem LOFI Robot ScratchX
(https://www.lofirobot.com/edubox/konfiguracja/)

Konstrukcja robota (opcjonalnie)

Podłączenie:

  • Czujnik światła → INPUT3
  • Dioda → OUTPUT3
  • Dioda → OUTPUT4
  • Zasilanie robota → kabel USB → wyjście USB w komputerze

Przebieg

Sterowanie diodami przy pomocy bloku “Ustaw wyjście”

Na początku przećwiczymy sterowanie diodą. W LOFI Blocks przechodzimy do zakładki ROBOT, z której wybieramy dwukrotnie blok “Ustaw wyjście”. Zmieniamy jego parametry na OUTPUT3 i OUTPUT4. Jeżeli poprawnie połączyłeś się z robotem i wszystkie moduły podłączyłeś dobrze, to po uruchomieniu programu nasze diody powinny się zaświecić.

Pobaw się teraz zmianą jasności świecenia, poprzez zmianę wartości bloku liczbowego (tam gdzie obecnie masz wartość 100).

Jak odczytać dane z czujnika? Powitajmy FOTOREZYSTOR

Ręczne sterowanie diodami jest fajne, ale warto byłoby rozbudować nasz program o nową funkcjonalność. Co powiesz na sterowanie jasnością diod przy pomocy czujnika światła zwanego również fotorezystorem? Do dzieła! Sprawdźmy, czy nasz fotorezystor działa. Po prawej stronie mamy menu podręczne. Naciśnij drugą ikonę od góry:

czyli MONITOR CZUJNIKÓW i zobacz jak zmieniają się odczyty z różnych wejść naszego robota. Fotorezystor podłączony jest do wejścia INPUT3.

Spróbuj poświecić np. latarką na moduł fotorezystora. Jeżeli wartości na suwaku INPUT3 się nie zmieniają, sprawdź czy dobrze go podłączyłeś (blaszkami w stronę białej wypustki), albo spróbuj wyłączyć i włączyć robota (nie zapomnij o ponownym podłączeniu go z aplikacją LOFI Blocks).

Zauważ, że pomimo braku jakichkolwiek modułów podłączonych do wejść INPUT1, INPUT2 i INPUT4 monitor czujników widzi tam wartości podobne do tej odczytywanej z czujnika światła (INPUT3). Nie martw się, Twój LOFI Robot działa całkowicie normalnie. Takie zjawisko nazywane jest “pływaniem” (z angielskiego “floating input/output”). Wejście, do którego nie jest nic podłączone i tak odczytuje jakąś wartość, najczęściej są to zakłócenia, które przejmuje z sąsiednich wejść.

Skoro nasz robot współgra z czujnikiem światła to warto wykorzystać to w naszym programie. Z zakładki ROBOT wybierz blok Odczyt i przeciągnij go na miejsce bloku liczbowego. Twój program powinien wyglądać teraz tak jak na poniższym obrazku.

Przetestuj, jak zmienia się jasność diod, gdy zasłonisz fotorezystor, a następnie przystaw go do źródła światła. W końcu Twój robot działa jak prawdziwy robot!

Hola, hola! Przecież chcieliśmy by nasz robot włączał diody, gdy będzie odpowiednio ciemno. Zastanówmy się… jak to zrobić? Pomocny może być blok warunkowy Jeżeli… w przeciwnym razie…. Znajdziesz go w zakładce KONTROLA.

Jak działają warunki?

Zastanówmy się, jak wykorzystać wcześniej wspomniany blok warunkowy. Nasz czujnik światła przekazuje do LOFI Brain wartość natężenia światła w postaci liczb od 0 do 100. Jeżeli jest całkowicie ciemno, to robot dostaje informację W pobliżu czujnika poziom oświetlenia jest bliski 0, podobnie sprawy się mają, gdy czujnik zostanie bardzo mocno oświetlony – informacja do mózgu robota może brzmieć tak: Oślepiono mnie! Poziom oświetlenia jest bliski 100!. My jednak chcemy, by diody zaświeciły się, gdy poziom światła będzie niższy niż określona przez nas wartość. Gdyby robot rozumiał język polski, to powiedzielibyśmy do niego
Jeżeli wartość z czujnika światła będzie niższa niż 20, to zaświeć diody. W przeciwnym razie wyłącz diody.”

Włączyć i wyłączyć diody potrafimy, odczytać wartość z czujnika również – brzmi jak bułka z masłem, ale… musimy sprawdzić czy poziom światła jest niższy niż 20, czy może jeszcze nie. Jakieś pomysły?

W celu takiego sprawdzenia wykorzystamy blok porównawczy.

Wykorzystanie bloku porównawczego

Blok porównawczy znajdziesz w zakładce LICZBY. Pomimo swojej strasznej nazwy wygląda całkiem niegroźnie.

Przy jego pomocy możemy porównać ze sobą dwie wartości. Dodatkowe możliwości pojawiają się po rozwinięciu menu znajdującego się w środkowej części bloku.

Pierwszą opcją jest znak równania. Sprawdzamy, czy pierwsza wartość jest równa drugiej. Drugi jest znak nierówności – pozwala sprawdzić, czy dwie wartości są różne.

Dwie ostatnie możliwości to znak “większy niż” i “mniejszy niż”. Sprawdzimy dzięki nim, czy pierwsza wartość jest większa od drugiej, albo czy jest mniejsza.

W naszym programie chcieliśmy sprawdzić, czy poziom światła jest mniejszy niż 20. Nic prostszego!

Jak dobrze pamiętasz nasz, czujnik jest podłączony do wejścia INPUT3. Dzięki blokowi porównawczemu sprawdzamy, czy wartość odczytana z czujnika jest mniejsza niż 20. Blok liczbowy znajdziesz również w zakładce LICZBY.

Umieśćmy nasze porównanie w bloku warunkowym.

Działający program – GRATULACJE

Pamiętasz zdanie, które chcieliśmy powiedzieć robotowi, gdyby znał język polski?

Jeżeli wartość z czujnika światła będzie niższa niż 20, to zaświeć diody. W przeciwnym razie wyłącz diody”.

Zdanie w języku robotów wygląda bardzo podobnie. Jeżeli zostanie spełniony pewien warunek, robot wykona podane polecenia. Jeżeli warunek nie został spełniony – wykonane zostaną inne polecenia. JASNE JAK SŁO… DIODA!

LINK DO GOTOWEGO PROGRAMU

O autorze scenariusza:

LOFI Robot

Ten artykuł napisały dla Ciebie roboty znad morza. Najprawdopodobniej miały na imię Maciek i Tomek.