Sterowanie ekranem – wyświetlanie liczb

W czasie tej lekcji nauczymy się implementować działanie wyświetlacza LED 8×8 pikseli RGB. Poznamy zasadę sterowania i nauczymy się wyświetlać liczby.

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:
• Podłączyć wyświetlacz RGB 8×8 do adaptera LOFI Brain.
• Wyjaśnić zasadę pisania szkiców służących do wyświetlania grafiki na wyświetlaczu RGB 8×8.
• Zaimplementować działanie wyświetlacza przy użyciu funkcji display.begin() w pętli setup ().
• Napisać program wyświetlający na wyświetlaczu dowolny numer z zakresu od 0 do 99 za pomocą funkcji displayNumber(int NUMER), display.show() i displayClear()
• Napisać program, który będzie wyświetlał liczby “z 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

• dioda RGB
• wyświetlacz RGB 8×8
• funkcje (setup, loop, write, delay, read, buzzer, distance,servo, display.begin, display.show, displayClear, displayNumber)

Metody pracy

• Wykład problemowy,
• Pogadanka,
• Dyskusja dydaktyczna związana z wykładem,
• Pokaz,
• Ćwiczenia laboratoryjne.

Materiały pomocnicze

• Zestaw LOFI Robot CODEBOX Starter z rozszerzeniem CODEBOX Tv,
• 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 o czym rozmawialiśmy podczas ostatniej lekcji?
• o serwomotorach,
• nauczyliśmy się sterować serwomotorem.

Dziś pierwsza lekcja z wyświetlaczem LED 8×8 pikseli RGB. Nauczymy się implementować jego działanie Poznamy zasadę sterowania i nauczymy się wyświetlać liczby.

2. Część zasadnicza:

Czas na realizację tej części: ok 35 minut.

Mówimy uczniom, że do sterowania wyświetlaczem będziemy wykorzystywać kilka gotowych funkcji z biblioteki LOFI:

• funkcja odpowiedzialna za uruchomienie wyświetlacza – rozpoczyna nadawanie sygnału cyfrowego sterującego wyświetlaczem, musi znajdować się zawsze wewnątrz głównej funkcji setup()

display.begin()

• funkcja odpowiedzialna za wyświetlanie danych na wyświetlaczu – powoduje odświeżenie wyświetlacza i wyświetlenie wszystkich danych zdefiniowanych wcześniej przez funkcje rysujące (o których za chwilę), powinna być użyta tylko raz wewnątrz pętli loop(), wówczas wyświetlanie obrazu jest najpłynniejsze:

display.show()

• Warto zwrócić uwagę, że funkcja ta będzie włączała konkretne diody i podobnie jak funkcja write(OUTPUT1, 100) włączająca diodę, potrzebujemy kolejnej funkcji, która wyłączy wcześniej wyświetlany efekt, zanim zechcemy wyświetlić nowy. W przypadku diody, po poleceniu delay(czas) używaliśmy ponownie funkcji write(OUTPUT1, 0). W przypadku wyświetlacza potrzebujemy do tego nowej funkcji.

• funkcja odpowiedzialna za wyczyszczenie wyświetlacza – powoduje ustawienie wszystkich pixeli wyświetlacza na wartość zero (czyli jako wyłączenie), powinna być użyta tylko raz jako pierwsza funkcja wewnątrz pętli loop(), aby niżej zamieszczona funkcja display.show(); włączyła odpowiednie diody:

displayClear()

• pomiędzy displayClear(), a display.show() będziemy zamieszczać funkcje rysujące.

Zasada działania wyświetlacza jest następująca:

Krok 1 – wyłączamy wszystkie diody – displayClear()
Krok 2 – używamy funkcji rysującej
Krok 3 – używając funkcji wyświetlającej włączamy świecenie konkretnych diod – display.show()

Rozdajemy zestawy LOFI Robot CODEBOX. Uczniowie siadają przy komputerach. Prosimy aby włączyli komputery, uruchomili Arduino IDE oraz wyjęli z zestawów płytkę Arduino, wyświetlacz i potencjometr:

• podłączamy wyświetlacz LED do OUTPUT3

UWAGA – wyświetlacz zawsze musi być podłączony OUTPUT3

• podłączamy potencjometr do INPUT2.

Prezentujemy uczniom podstawowy szkielet szkicu. Prosimy aby przepisali go w Arduino IDE:

#include <LOFI.h>
LOFI robot;

void setup() {
robot.displayBegin();
robot.displayShow();
}

void loop() {
robot.displayClear(); //funkcja wyłączająca poprzedni efekt graficzny
// tutaj będziemy wpisywać instrukcje do rysowania
robot.displayShow(); // funkcja wywołująca pokazanie danych na wyświetlaczu
}

Pierwszą funkcją do rysowania, którą poznamy jest funkcja wyświetlającą liczby. displayNumber(int NUMER);. Funkcja ta wyświetla liczby od od 0 do 99.

Przykład / Ćwiczenie 1

W powyższym szkicu zadeklaruj nową zmienną liczba, przypisz jej wartość 55 oraz dodając funkcję wyświetlającą liczby displayNumber(liczba) wyświetl tą wartość na wyświetlaczu Szkic zapisz jako “lofi_wyswietlacz_1”, zweryfikuj i wgraj na płytkę.

codebox tv wyświetlanie liczb

Przykładowe rozwiązanie:

#include <LOFI.h>
LOFI robot;
int liczba = 55;

void setup() {
robot.displayBegin();
}

void loop() {
robot.displayClear();
robot.displayNumber(liczba);
robot.displayShow();
}

Ćwiczenie 2

Zmodyfikuj szkic tak, aby na wyświetlaczu została wyświetlona inna liczba. Ćwiczenie powtórz dla 2-3 różnych liczb.

Przykład / Ćwiczenie 3

Napisz program który będzie wyświetlał liczby “z potencjometru” podłączonego do wejścia INPUT2. Szkic zapisz jako “lofi_wyswietlacz_2”, zweryfikuj i wgraj na płytkę.

Przykładowe rozwiązanie:

#include <LOFI.h>
LOFI robot;

void setup() {
robot.displayBegin();
}

void loop() {
robot.displayClear();
robot.displayNumber(robot.read(INPUT2));
robot.displayShow();
}

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?
• poznaliśmy funkcję display.begin() inicjującą działanie wyświetlacza,
• omówiliśmy zasadę działania wyświetlacza – wiemy do czego służą funkcje display.show() oraz displayClear()
• znamy funkcję rysującą displayNumber(liczba) odpowiedzialną za wyświetlanie liczb od 0 do 99,

Na zakończenie mówimy uczniom, że na kolejnej lekcji nadal będziemy uczyć się korzystać z wyświetlacza. Poznamy m.in. nową funkcję rectangle odpowiedzialną za rysowanie prostokąta. Sporo czasu poświęcimy również omówienie systemu RGB, o którym zapewne słyszeliście już nie raz.

O autorze scenariusza:

Grzegorz Zawistowski

Grzegorz Zawistowski

Nauczyciel informatyki w szkole podstawowej. Miłośnik komputerów, nowinek technicznych i robotyki. Szkoleniowiec i trener m.in, w #Superkoderach i Mistrzach Kodowania.