Powrót do scenariuszy
Szkoła podstawowa
Klasa: 7-8
Szkoła ponadpodstawowa
Klasa: 1-4
test
Autor:

Mateusz Chmielewski

Programowanie Photona w Pythonie #6 Smart Home

informatyka • programowanie • ekologia
Czas:
45 min.
Roboty:
x2
Akcesoria:
Accessory
Interfejsy:
Python (Photon Magic Bridge)
alt
Powrót do scenariuszy
Scenario Image

Odniesienie do podstawy programowej

Szkoła ponadpodstawowa, Informatyka II./2., I./2.
Szkoła podstawowa, Informatyka II./1, 2.

Cele zajęć

Uczeń/uczennica:
  • wie, jak dzięki technice możemy ograniczać codzienne zużycie energii
  • wykorzystuje czujnik odległości i czujnik światła robota Photon
  • stosuje pętle warunkowe w Pythonie

Metody pracy

  • dyskusja
  • ćwiczenie
  • metoda poszukująca

Formy pracy

  • grupowa

Materiały

  • komputer na grupę
  • wiadro / kartonowe pudełko na grupę

Załączniki

#4 straznik.py
Pobierz
#6 fotokomorka.py
Pobierz
#6 smarthome.py
Pobierz

Przebieg zajęć

Podczas tego warsztatu grupa zapozna się z kilkoma technicznymi rozwiązaniami, które ograniczają zużywanie energii w naszych domach. Uczniowie zaprogramują parę Photonów, aby kolejno przetestować lampkę na fotokomórkę i system inteligentnego oświetlenia. Współpracująca grupa uczniów potrzebować będzie dostępu do dwóch robotów Photon, komputera z Magic Bridge i wiadra lub pudełka, którym zakryć można robota.

1. Smart home - dyskusja

Zajęcia zaczynamy od dyskusji o ekologicznych rozwiązaniach w gospodarstwach domowych. W jaki sposób nasze domy zanieczyszczają środowisko? Czy technologia może nam pomóc zmniejszyć ten negatywny wpływ? Pytamy uczniów o to, z jakimi rozwiązaniami się spotkali do tej pory, by dom był bardziej "smart". Dzisiaj użyjemy robotów Photon, żeby przygotować dwa sposoby sterowania domowym oświetleniem.

2. Fotokomórka

Zaczynamy od zakodowania lampki na fotokomórkę. To rozwiązanie często stosowane w oświetleniu na zewnątrz domu, albo pomieszczeniach, do których rzadko się wchodzi. Kiedy czujnik wykryje ruch, robot na pewien czas zapali swoje światła i zgaśnie. Na początku dajemy grupie moment, aby uczniowie sami pomyśleli nad rozwiązaniem problemu.

  • Przygotowywany kod będzie podobny do projektu "strażnik" z scenariusza #4. Możemy go otworzyć i wykorzystać jako bazę do dalszych zmian. W scenariuszu #4 dokładnie opisaliśmy już:
    • nadanie nazw robotom, aby program rozpoznawał, który jest który.
    • zdefiniowanie zmiennej "dystans"
  • Do projektu musimy zaimportować nową bibliotekę - time, dzięki której Python będzie mógł operować na jednostkach czasu. import time
    • Sens importowania bibliotek z rozszerzeniami wyjaśniliśmy w scenariuszu #1. Biblioteki można importować na kilka sposobów:
      • from nazwa biblioteki import * (gwiazdka oznacza wszystko) 
      • import nazwa biblioteki
    • Oba rozwiązania importują wszystkie metody z danej biblioteki. W pierwszym wariancie możemy je stosować w formacie tresc_metody, w drugim musimy użyć formatu nazwabiblioteki.tresc_metody. Wynikałoby z tego, że pierwszy wariant jest lepszy, bo pozwala skracać kod. Czasem jednak, przy dużych projektach informatycznych jest tak, że korzystamy na raz z nawet z kilkudziesięciu bibliotek. Format, w którym oznaczamy z jakiej biblioteki pochodzi metoda, jest bardziej czytelny dla osoby, która po nas czyta kod. Są też przypadki, że w dwóch różnych rozszerzeniach może istnieć metoda o jednakowej nazwie, a o nieco różnym działaniu.
  • Definiujemy zmienną dystans, która jest równa odległości odczytywanej przez czujnik robota1.
    dystans = robot1.get_distance_from_obstacle()
  • Używamy pętli warunkowej if  - warunkiem będzie w tej sytuacji dystans < 50
  • To, co ma się zadziać, to zapalenie się na pewien czas świateł robota2, który staje się naszą lampką. Warto zwrócić uwagę, że światła robotów palą się domyślnie. Jeśli przejrzymy dokumentację Photona, z pewnością zauważymy, że nie ma metody dotyczącej gaszenia i zapalania świateł. Mamy metodę change_color (), która zmienia kolor światła. Korzystamy z tego, że czułka robota gasną, kiedy kolor ustawimy na czarny. W nawiasie podajemy numery zdefiniowanych barw, które możemy przejrzeć w dokumentacji metody -> akcje
    • gdy zostanie spełniony warunek, wykonana ma zostać metoda robot2.change_color(11), aby po jakimś czasie światła zgasły w kolejnym wierszu (nadal jako zawartość pętli, czyli od wcięcia) używamy metody time.sleep (4), gdzie liczba w nawiasie, to liczba sekund. To znany nam ze Scratcha bloczek "czekaj". W kolejnym wierszu ustawiamy kolor na czarny.
    • W pętli możemy użyć także metody print('zapalone') oraz print (zgaszone'), żeby program na bieżąco informował nas o stanie oświetlenia.
  • Po zaprogramowaniu fotokomórki testujemy ją.

3. Czujnik światła

Drugi projekt, któremu możemy poświęcić chwilę to inteligentne oświetlenie. Nasza lampa-Photon będzie świeciła zawsze wtedy, kiedy się ściemni. Robot Photon posiada czujnik światła, który rozpoznaje, czy dookoła jest jasno, czy ciemno. Niestety czujnik interpretuje światło zerojedynkowo i nie niuansuje zmian w natężeniu światła. Zdarza się, że generowane przez własne czułki światło odbiera jako 'jest jasno'. Prócz tego w pomieszczeniu przyciemnionym, ale nie pozbawionym zupełnie światła, także uznaje, że jest jasno. Dlatego na potrzeby tworzenia kodu i testowania rozwiązania będziemy generować wieczór przykrywając go wiadrem, albo pudełkiem ;-)

  • w dokumentacji metody ->sensory znajdziemy metodę get_light (True/False)
  • light = robot1.get_light ()
  • W pętli if naszym warunkiem będzie ciemność, czyli light == False
  • Tym razem światło nie ma się zapalać po jakimś czasie, tylko kiedy ponownie zrobi się jasno. Dlatego do jeżeli, dodajemy "w przeciwnym razie" czyli else. Jeżeli światło będzie wykrywane (light==True) robot lampka zgaśnie.
  • Po zaprogramowaniu inteligentnego oświetlenia testujemy je.

4. Podsumowanie

Przypominamy sobie wspólnie nowe elementy poznane podczas zajęć. Zastanawiamy się, jakie jeszcze zmiany w naszych domach możemy wprowadzić dzięki technologii, by być bardziej eko.

 

Współautorem scenariusza jest Michał Nowak.

Ciekawostki/Pytania otwierające

  • W jaki sposób technika pozwala nam uczynić nasz dom bardziej przyjaznym środowisku?
  • Jakie czynności, albo funkcje, w naszym domu zużywają najwięcej energii?

Dyskusja (brak komentarzy)

Zaloguj się, aby rozpocząć dyskusję