- 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.
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.
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ą.
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.
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
- R1, R2, R3, R4, R5: 470 Ω
- R6, R7: 4,7 kΩ
- R8: 10 kΩ
- R9: 390 kΩ %
- 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
- LD1, LD2: dioda LED zielona (SMD0805)
- 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