Interfejs użytkownika z wyświetlaczem OLED dla Pi Pico

Interfejs użytkownika z wyświetlaczem OLED dla Pi Pico

Zaprezentowany moduł dla Pi Pico rozbudowuje jego funkcjonalność o prosty interfejs użytkownika. Moduł można łatwo dołączyć do płytki bazowej, a dodatkowe złącza ułatwiają podłączenie Pi Pico do układów zewnętrznych.

Podstawowe parametry:
  • graficzny wyświetlacz OLED 128×32,
  • dodatkowe trzy przyciski i dwie diody LED,
  • wyprowadzone interfejsy UART oraz I2C,
  • wyprowadzone dwa wejścia przetwornika ADC i wyprowadzenia IO,
  • zastosowano miniaturowe złącza JST.

Budowa i działanie

Schemat ideowy układu został pokazany na rysunku 1. Zastosowano typowy wyświetlacz OLED o przekątnej 0,91 cala i rozdzielczości 128×32, ze sterownikiem SSD1306 i połączeniem w postaci taśmy FPC z 14 wyprowadzeniami. W zależności od preferencji kolorystycznych, może być zastosowany wyświetlacz REX012832 FYPP3 N0 w kolorze żółtym, REX012832 FSPP3 N0 w kolorze niebieskim lub REX012832 FWPP3 N0 białym. Modele te mają wiele tanich odpowiedników dostępnych na aukcjach internetowych.

Rysunek 1. Schemat ideowy układu

Wyświetlacz połączony jest z procesorem za pomocą interfejsu I2C na wyprowadzeniach 20 i 21 płytki Pi Pico. Aplikacja wyświetlacza jest prosta, napięcie do zasilania matrycy OLED wytwarzane jest przez przetwornicę wbudowaną w kontroler SSD1306, C1 i C2 są elementami pompy ładunkowej, kondensatory C3, C4, C5 odsprzęgają poszczególne napięcia zasilania wyświetlacza. Za globalne ustawienie jasności świecenia odpowiada wartość rezystora R9. Jego wartość należy skorygować zgodnie z notą aplikacyjną samego wyświetlacza, pamiętając, że jasność świecenia ma wpływ na trwałość matrycy OLED. Rezystor R8 i kondensator C9 zapewniają poprawny restart wyświetlacza po włączeniu zasilania.

Trzy przyciski użytkownika SW1...SW3 są podłączone do wyprowadzeń 18, 19, 22 poprzez szeregowe rezystory zabezpieczające R1...R3. Układ uzupełniają diody świecące LD1, LD2 podłączone do wyprowadzeń 16, 17. Dla ułatwienia zastosowania modułu w prostych aplikacjach na złącza JST (1,00 mm) zgodne z QWIIC wyprowadzono magistralę I2C, port szeregowy UART (IO 0 i 1), dwa wejścia przetwornika AD AIN (A0-26, A1-27) oraz dwa wyprowadzenie cyfrowe DIN (14 i 15). Układ zasilany jest napięciem 3,3 V z Pi Pico.

Montaż i uruchomienie

Schemat dwustronnej płytki drukowanej został pokazany na rysunku 2. Montaż przebiega standardowo i nie wymaga dokładnego opisu.

Rysunek 2. Schemat płytki drukowanej

Zmontowany moduł, został pokazany od strony złącz na fotografii 1. Wyświetlacz, po przylutowaniu taśmy FPC, mocowany jest do płytki grubą dwustronną taśmą samoprzylepną.

Fotografia 1. Zmontowany moduł widziany od strony złącz

Po zmontowaniu można rozpocząć tworzenie aplikacji sterującej, np. za pomocą IDE Thonny, instalując na Pi Pico Micropythona dostępnego do pobrania ze strony: https://bit.ly/361iawY.

Po pobraniu najnowszego pliku (w chwili pisania artykułu był to: rp2-pico-20210618-v1.16.uf2) odłączamy płytkę Pico od USB, przyciskamy BOOT i podłączamy ponownie kabel USB. Po instalacji sterowników Pico będzie widoczne jako dysk, na który wgrywamy plik z interpreterem. Po restarcie i uruchomieniu środowiska wgrywany plik testowy hmi.py (listing 1). Efekt działania skryptu został pokazany na fotografii tytułowej.

Listing 1. Skrypt testowy hmi.py

from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
import framebuf

WIDTH = 128
HEIGHT = 32

i2c = I2C(0, scl=Pin(21), sda=Pin(20), freq=100000)
oled = SSD1306_I2C(WIDTH, HEIGHT, i2c)

oled.text("EP OLED Test",0,0)
oled.text("RaspbPi_Pico_HMI",0,10)
oled.text("01234567890ABCDEF",0,20)

oled.show()

Pozostałe peryferia można sprawdzić modyfikując przykłady dołączone do Micropythona, które można znaleźć w materiałach dodatkowych do artykułu. W przypadku sprawdzania interfejsu UART poprzez przejściówki USB/UART, możemy napotkać na trudności z prawidłowym rozpoznawaniem płytki Pi Pico przez IDE. Doraźnym rozwiązaniem jest uruchomienie Thonny w pierwszej kolejności, a później programu terminala szeregowego, choć nie zawsze skutkuje to oczekiwanymi rezultatami. Niestety oprogramowanie jest jeszcze mocno niedopracowane i nie można wybrać portu na którym domyślnie odbywa się komunikacja z Pi Pico, a konwerter UART wykrywany jako urządzenie ESP Micropython device skutecznie blokuje możliwość uruchamiania aplikacji... nie pozostaje wtedy nic innego jak odłączenie konwertera i restart IDE.

Adam Tatuś, EP

Wykaz elementów:
Rezystory: (SMD0603)
  • R1, R2, R3, R4, R5: 470 Ω
  • R6, R7: 4,7 kΩ
  • R8: 10 kΩ
  • R9: 390 kΩ %
Kondensatory: (SMD0603)
  • C1: 1 μF/25 V
  • C2: 2,2 μF/25 V
  • C3, C4, C5: 10 μF/16 V
  • C6, C7, C8: 0,1 μF
  • C9: 10 nF
Półprzewodniki:
  • LD1, LD2:  dioda LED zielona (SMD0805)
Pozostałe:
  • AIN, DIN, I2C, UART: złącza SM04B 
  • DISP: wyświetlacz OLED 128×32, 0,91", I2C, REX012832FYPP3N
  • IO1, IO2:  złącze żeńskie SIP20 (2,54 mm)
  • SW1, SW2, SW3: mikroswitch 6×3 mm
Artykuł ukazał się w
Elektronika Praktyczna
marzec 2022
DO POBRANIA
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje kwiecień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów