[PROJEKT] Czujnik wykrywania gestów PAJ7620U2 i Arduino

Dołączenie do projektu wyświetlacza OLED

W tym momencie zmodyfikujemy projekt w taki sposób, aby wykrycie gestu zostało zasygnalizowane na wyświetlaczu OLED. Użyjemy w tym celu wyświetlacza modOLED130_I2C BLUE o rozdzielczości 1,3”. Jest to wyświetlacz monochromatyczny i wyświetla tekst lub grafikę w kolorze niebieskim. Sterownik układu to SH1106. Komunikacja z hostem przebiega za pośrednictwem interfejsu I2C. Rozdzielczość wyświetlacza wynosi 128×64 pikseli. Dzięki technologii OLED wyświetlacz oferuje niski pobór mocy na poziomie zaledwie 0,08 W.

Moduł wyświetlacza, podobnie jak czujnik gestów, komunikuje się za pomocą interfejsu I2C. Nic nie stoi jednak na przeszkodzie, aby oba moduły równocześnie komunikowały się przez jedną magistralę. W związku z tym podłączenie wyświetlacza do systemu jest identyczne jak dla czujnika gestów PAJ7620U2.

Tabela 2. Połączenie wyświetlacza modOLED130_I2C BLUE z płytką Maker Uno

Pin modOLED130_I2C BLUE Pin Maker UNO
VCC 5V
GND GND
SDA SDA
SCL SCL
Pełen układ zaprezentowano na poniższym zdjęciu.

Rys. 6. Maker Uno połączony z czujnikiem gestów PAJ7620U2 oraz wyświetlaczem modOLED130_I2C BLUE

Do obsługi wyświetlacza OLED wykorzystam bibliotekę Adafruit SH1106 oraz bibliotekę Adafruit GFX. Dodawanie bibliotek do środowiska odbywa się w standardowy sposób: Szkic > Dołącz bibliotekę > Dodaj bibliotekę .ZIP.

Aby kod wyświetlał na ekranie OLED wykryte gesty, należy w odpowiedni sposób zmodyfikować kod. Najpierw należy dodać biblioteki i zainicjalizować obsługę wyświetlacza. Konstruktor wymaga podania wyprowadzenia resetu, ale moduł wyświetlacza nie ma go. W związku z tym podano pin 0, co nie przeszkadza jednak w pracy układu.

W funkcji setup dopisano kod odpowiedzialny za uruchomienie, a także usunięcie danych z wyświetlacza.

Z kolei pętlę główną uzupełniono tak, że opisy gestów zamiast na port szeregowy trafiają na ekran wyświetlacza. Oprócz tego definiowany jest także rozmiar tekstu oraz początkowa pozycja kursora. Czyszczony jest także wyświetlacz, natomiast ostatnia linijka display.display(); wywołuje procedurę odświeżenia ekranu, co pozwala wyświetlić uprzednio wpisane do pamięci dane.

Całą funkcję loop zaprezentowano poniżej:

Pełen kod projektu

Natomiast pełny kod wygląda dokładnie jak na listingu poniżej. Kod dostępny jest także w sekcji „do pobrania”.

Działanie projektu zaprezentowano na materiale wideo:

Do pobrania

O autorze