CELE, POJĘCIA, MATERIAŁY ▼
Cele zajęć
Cele ogólne:
• Wyrabianie umiejętności rozumienia, analizowania i rozwiązywania problemów na bazie logicznego i abstrakcyjnego myślenia.
• Doskonalenie myślenia algorytmicznego.
• Programowanie i rozwiązywanie problemów z wykorzystaniem komputera oraz
innych urządzeń cyfrowych, poprzez układanie i programowanie algorytmów.
• Zgłębianie znajomość zasad działania urządzeń cyfrowych oraz wykonywania programów.
• Rozwijanie kompetencji społecznych, takich jak: komunikacja i współpraca w grupie, udział w projektach zespołowych oraz organizacja i zarządzanie projektami.
Cele szczegółowe
Uczeń potrafi:
• Analizować szkice.
• Dokonywać poprawek, zapisywać, weryfikować i wgrywać na płytkę.
• Deklarować zmienną liczbową i przypisać jej wartość początkową.
• Modyfikować istniejące szkice zmieniając wartości liczbowe na zmienne.
• Posługiwać się funkcją write() i read().
• Przypisać wartość z funkcji read(); zmiennej i wykorzystać ją jako wartość funkcji write, np. sterować jasnością diody za pomocą potencjometru.
Treści programowe (związek z podstawą programową)
Podstawa programowa z informatyki – szkoła podstawowa:
Etap II – klasy IV – VIII, w tym klasy VII – VIII: I.1.b, I.2.a, I.2.b, I.2.c, I.3, II.1.b, II.3, III.3, IV.1, IV.2, IV.3, IV.4,
Etap II – klasy VII-VIII: I.1, I.2.a, I.4, II.1, II.2, II.5, III.3, IV.1.
Pojęcia kluczowe
• Arduino IDE
• szkic / program.
• otwórz, zapisz, zweryfikuj, wgraj.
• funkcje (setup, loop, write, delay, read)
• zmienna
• sterownik Arduino
• adapter LOFI Brain
• dioda
• potencjometr
Metody pracy
• Wykład problemowy,
• Dyskusja dydaktyczna związana z wykładem,
• Pokaz,
• Ćwiczenia laboratoryjne.
Materiały pomocnicze
• Zestaw LOFI Robot CODEBOX,
• Komputery stacjonarne lub przenośne z zainstalowanym Arduino IDE,
• Komputer nauczyciela z zainstalowanym Arduino IDE, projektor, tablica projekcyjna.
ZWIŃ ▲
Czas na realizację zajęć:
1 godzina lekcyjna (45 minut)
Przebieg zajęć
1. Wprowadzenie w tematykę i integracja grupy:
Czas na realizację tej części: ok 5 minut.
Pytamy uczniów co robiliśmy podczas ostatniej lekcji?
• umiemy uruchomić Arduino IDE,
• znamy składnię kodu w środowisku Arduino IDE,
• wykorzystujemy funkcję write z biblioteki LOFI,
• piszemy proste programy sterujące miganiem diod,
• umiemy wgrywać je na płytkę Arduino UNO,
• podłączamy do płytki urządzenia wyjścia.
Dziś będziemy deklarować zmienne, poznamy kolejne funkcje z biblioteki LOFI oraz nauczymy się definiować własne funkcje. Będziemy pisać proste programy, wgrywać ja na płytkę Arduino i testować ich działanie, podłączając różne urządzenia wejścia i wyjścia.
2. Część zasadnicza:
Czas na realizację tej części: ok 35 minut.
Przedstawiciel każdej grupy uczniów bierze od nauczyciela przypisany danej grupie zestaw. Uczniowie siadają przy komputerach.
Prosimy uczniów aby włączyli komputery, zalogowali się i uruchomili Arduino IDE. Prosimy aby otworzyli szkic “zadanie_3” z poprzedniej lekcji, podłączyli płytkę Arduino do komputera oraz dwie diody do OUTPUT1 i OUTPUT2. Prosimy aby wgrali program na płytkę.
Zadajemy uczniom pytania problemowe:
• Co trzeba zrobić, aby zmienić prędkość migania diod?
Odp: Zmienić wartość liczbową przy poleceniach delay.
• W ilu miejscach trzeba zmienić tą wartość?
Odp: W kilku lub kilkunastu, to zależy od stopnia skomplikowania programu.
• Jak myślicie, czy jest sposób na to, aby w szybszy sposób zmieniać prędkość migania diod?
Odp: Jest.
Wyjaśniamy:
• Zamiast zmieniać wartość liczbową w kilkunastu miejscach, możemy na początku programu zdefiniować własną zmienną.
• Sami możemy wymyślić dowolną nazwę tej zmiennej.
• Zmiennej możemy przypisać dowolną wartość liczbową.
• Następnie jako parametr w poleceniu delay(TU) zamiast liczby wpisujemy nazwę naszej zmiennej.
• Dzięki temu jeżeli zechcemy zmienić prędkość migania diod, to zamiast zmieniać wartość w kilkunastu miejscach, zmieniamy ją tylko raz przy definiowaniu zmiennej.
• Poleceniem, które służy do deklarowania nowej zmiennej jest int.
• Po nim: spacja i dowolna nazwa zmiennej (bez polskich znaków).
• Tak zdefiniowanej zmiennej możemy przypisać wartość liczbową:
int szybkosc = 200;
• Następnie w treści programu wszędzie tam, gdzie była wartość np. 200, wstawiany nazwę zmiennej np. szybkosc.
Przyjrzyjmy się przykładowi z Zadania 3, do którego wprowadzono zmienną “szybkosc”:
#include <LOFI.h> LOFI robot; //definicja nowej zmiennej szybkosc i jednoczesne przypisanie jej wartości 200 int szybkosc = 200; void setup() { } void loop() { robot.write(OUTPUT1, 100); // w poleceniu delay jako parametr zamiast dotychczasowej wartości 200, // wpisujemy nazwę zmiennej - szybkosc delay(szybkosc); robot.write(OUTPUT1, 0); delay(szybkosc); //tu również zamiast wartości 200 wstawiamy nazwę szybkosc robot.write(OUTPUT2, 100); delay(szybkosc); //tu również zamiast wartości 200 wstawiamy nazwę szybkosc robot.write(OUTPUT2, 0); delay(szybkosc); //tu również zamiast wartości 200 wstawiamy nazwę szybkosc }
Zadanie 5
Zmodyfikuj plik z Zadania 3 tak jak na powyższym przykładzie, zapisz jako “zadanie_5”. Wgraj go na płytkę Arduino. Następnie spróbuj zmienić wartości deklarowanej zmiennej i sprawdź, czy rzeczywiście zmiana jednej wartość wpływa na działanie całego programu. Ćwiczenie powtórz przynajmniej 3 razy, za każdym razem wpisując inną wartość i sprawdzając działanie programu.
Zadanie 6
Zmodyfikuj plik z Zadania 4 deklarując dwie nowe zmienne. Przypisz tym zmiennym dwie różne wartości, a następnie w programie przy każdym poleceniu delay zamiast parametru liczbowego użyj odpowiednich nazw zmiennych. Zweryfikuj i wgraj program na płytkę Arduino.
Czas na wykonanie zadania: 10 minut. Jeżeli wykonasz zadanie przed czasem, spróbuj zmieniać wartości deklarowanych zmiennych i sprawdź, jak działa Twój program.
Przykładowe rozwiązanie:
#include <LOFI.h> LOFI robot; int czasswiecenia = 500; //definicja nowej zmiennej czasswiecenia i przypisanie jej wartości 500 int czasprzerwy = 200; //definicja nowej zmiennej czasprzerwy i przypisanie jej wartości 200 void setup() { } void loop() { robot.write(OUTPUT1, 100); delay(czasswiecenia); //użycie nowej zmiennej zamiast dotychczasowej wartości liczbowej robot.write(OUTPUT1, 0); delay(czasprzerwy); //użycie nowej zmiennej zamiast dotychczasowej wartości liczbowej robot.write(OUTPUT1, 100); delay(czasswiecenia); robot.write(OUTPUT1, 0); delay(czasprzerwy); robot.write(OUTPUT2, 100); delay(czasswiecenia); robot.write(OUTPUT2, 0); delay(czasprzerwy); robot.write(OUTPUT2, 100); delay(czasswiecenia); robot.write(OUTPUT2, 0); delay(czasprzerwy); }
Znamy już funkcję write(wyjście, wartość) oraz umiemy deklarować własne zmienne. Czas poznać kolejne funkcje z biblioteki LOFI.
Funkcja read(wejście); służy do odczytywania wartości z wejść. Parametrem funkcji read jest wejście, czyli informacja z którego wejścia (INPUT1, INPUT2, INPUT3 czy INPUT4) ma zostać odczytana wartość. Wartości można odczytywać z urządzeń wejścia takich jak: potencjometr, czujnik natężenia światła, czy przycisk; podłączonych do gniazd INPUT1-4.
Przykład / Ćwiczenie 7
Przepisz poniższy kod. Do wejścia INPUT1 podłącz potencjometr, a do OUTPUT1 – diodę. Zapisz plik jako “zadanie_7”, zweryfikuj program i wgraj na płytkę.
#include <LOFI.h> LOFI robot; void setup() { } void loop() { int potencjometr = robot.read(INPUT1); // definiujemy nową zmienną potencjometr, której przypisujemy wartość // z urządzenia podłączonego o INPUT1 // zamiast słowa “potencjometr” możemy użyć dowolnego innego słowa lub litery // definicja nowej zmiennej jest wewnątrz funkcji loop(), a nie na górze programu, // aby była odczytywana cały czas, a nie tylko jeden raz robot.write(OUTPUT1, potencjometr); // wykorzystujemy znaną nam funkcję write, aby zaświeciła się dioda podłączona do OUTPUT1 // z mocą taką samą, jak wartość odczytana z urządzenia połączonego do INPUT1, // zapamiętana jako zmienna “potencjometr” }
3. Podsumowanie i ewaluacja
Czas na realizację tej części: ok. 5 minut.
Prosimy aby uczniowie ostrożnie spakowali zestawy. Jeden przedstawiciel każdej grupy przynosi zestaw na wyznaczone przez nauczyciela miejsce w klasie.
Zadajemy uczniom pytanie: Czego nauczyliśmy się na dzisiejszej lekcji?
• wykorzystujemy różne funkcje z biblioteki LOFI,
• deklarujemy własne zmienne,
• piszemy proste programy i wgrywamy ja na płytkę Arduino,
• podłączamy do płytki urządzenia wejścia (potencjometr, czujnik odległości, czujnik natężenia światła) i wyjścia (diody, buzzer).
Na zakończenie opowiadamy uczniom, co będziemy robić i czego się nauczymy podczas kolejnej lekcji: będziemy w dalszym ciągu pisać proste programy sterujące pracą diod i buzzera. Nauczymy się również definiować własne funkcje.