- Wymagany sprzęt:
- Zapoznanie się z wyświetlaczami OLED:
- Schemat obwodu:
- Połączenie OLED z Raspberry Pi:
- Objaśnienie programowania:
Większość z nas byłaby zaznajomiona z wyświetlaczem LCD 16 × 2 z matrycą punktową, który jest używany w większości projektów do wyświetlania użytkownikowi niektórych informacji. Ale te wyświetlacze LCD mają wiele ograniczeń. W tym samouczku dowiemy się o wyświetlaczach OLED i jak ich używać z Raspberry Pi. Na rynku dostępnych jest wiele typów wyświetlaczy OLED i istnieje wiele sposobów ich uruchomienia. Użyliśmy już 7-pinowego OLED z Arduino.
Wymagany sprzęt:
- Moduł wyświetlacza OLED 128 × 64 (SSD1306)
- Raspberry Pi
- Płytka prototypowa
- Podłączanie przewodów
- Zasilacz
Zapoznanie się z wyświetlaczami OLED:
Termin OLED oznacza „ organiczną diodę elektroluminescencyjną” . Wykorzystuje tę samą technologię, która jest używana w większości naszych telewizorów, ale ma mniej pikseli w porównaniu z nimi. Fajnie jest mieć te fajnie wyglądające moduły wyświetlacza, które są połączone z Raspberry Pi, ponieważ dzięki temu nasze projekty będą wyglądać fajnie. Omówiliśmy tutaj cały artykuł dotyczący wyświetlaczy OLED i ich typów. Tutaj używamy monochromatycznego 4-pinowego wyświetlacza OLED SSD1306 0,96 ”. Ten wyświetlacz LCD może działać tylko w trybie I2C.
Poniżej połączenia OLED z Raspberry pi:
Pin OLED | Pin RPI |
VCC | 3,3 v |
GND | GND |
SDA | SDA (fizyczny pin 3) |
SCL | SCL (fizyczny pin 5) |
Schemat obwodu:
Połączenie OLED z Raspberry Pi:
Społeczność RPI dała nam już wiele bibliotek, które można bezpośrednio wykorzystać, aby to znacznie uprościć. Wypróbowałem kilka bibliotek i stwierdziłem, że biblioteka Adafruit_SSD1306 OLED jest bardzo łatwa w użyciu i ma kilka opcji graficznych, dlatego użyjemy tego samego w tym samouczku.
Krok 1: Włącz komunikację I2C
Przed zainstalowaniem biblioteki Adafruit SSD1306 musimy włączyć komunikację I2C w Raspberry Pi.
Aby to zrobić, wpisz w konsoli Raspberry Pi:
sudo raspi -config
A następnie pojawi się niebieski ekran. Teraz wybierz opcję interfejsu
Następnie musimy wybrać I2C
Wcześniejsze
Następnie musimy wybrać tak i nacisnąć enter, a następnie ok
Następnie musimy zrestartować Raspberry Pi wydając poniższe polecenie:
sodo reboot
Krok 2: Znajdź adres OLED I2C i zaktualizuj go
Następnie musimy znaleźć adres OLED I2C za pomocą podanego polecenia, a zobaczysz adres szesnastkowy.
sudo i2cdetect –y 1
Następnie zaktualizuj Raspberry Pi za pomocą podanego polecenia:
sudo apt-get update
Krok 3: Zainstaluj python-pip i bibliotekę GPIO
Następnie musimy zainstalować pip za pomocą podanego polecenia:
sudo apt-get install build-essential python-dev python-pip
I zainstaluj bibliotekę GPIO Raspberry Pi
sudo pip instaluje RPi.GPIO
Krok 4: Zainstaluj bibliotekę obrazów Python i bibliotekę smbus
Na koniec musimy zainstalować bibliotekę Python Imaging Library i bibliotekę smbus w Raspberry Pi za pomocą podanego polecenia:
sudo apt-get install python-imaging python-smbus
Krok 5: Zainstaluj bibliotekę Python Adafruit SSD1306
Teraz nadszedł czas, aby zainstalować kod biblioteki python Adafruit SSD1306 i przykłady za pomocą następujących poleceń:
sudo apt-get install git git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git cd Adafruit_Python_SSD1306 sudo python setup.py install
Teraz użytkownik może znaleźć kod interfejsu OLED w Raspberry Pi i możesz grać bezpośrednio lub dostosować go samodzielnie. Tutaj dostosowaliśmy przykładowy kod do demonstracji. Możesz znaleźć pełny kod Pythona na końcu artykułu.
Objaśnienie programowania:
Część programistyczna do łączenia OLED z projektem RPi jest łatwa. najpierw musimy zaimportować niezbędne biblioteki.
importuj czas importu Adafruit_GPIO.SPI jako SPI importuj Adafruit_SSD1306 z PIL importuj obraz z PIL importuj ImageDraw z PIL importuj ImageFont importuj podproces
Następnie zainicjalizuj wyświetlacz
RST = 0 disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST) disp.begin () disp.clear () disp.display () width = disp.width height = disp.height image1 = Image.new ('1', (width, height)) draw = ImageDraw.Draw (image1) draw.rectangle ((0,0, width, height), outline = 0, fill = 0) padding = -2 top = padding bottom = height-padding x = 0 font = ImageFont.load_default () Po tym możemy przesłać dane lub obraz do OLED za pomocą podanego kodu
# Napisz dwa wiersze tekstu. disp.clear () disp.display () draw.text ((x, top), "Interfejs OLED", font = font, fill = 255) draw.text ((x, top + 8), "Circuit Digest", font = font, fill = 255) draw.text ((x, top + 16), "For more Videos", font = font, fill = 255) draw.text ((x, top + 25), "Visit at", font = font, fill = 255) draw.text ((x, top + 34), "www.circuitdigest.com", font = font, fill = 255) # Wyświetl obraz. disp.image (image1) disp.display () time.sleep (2) if disp.height == 64: image = Image.open ('img1.png'). convert ('1') else: image = Image. open ('img1.png'). convert ('1') disp.image (image) disp.display () time.sleep (2) if disp.height == 64: image = Image.open ('img3.jpg'). convert ('1') else: image = Image.open ('img3.jpg'). convert ('1')
Ten OLED jest dostępny w dwóch wariantach, jeden to 128 * 32, a drugi to 128 * 64, więc użytkownik może odpowiednio wybrać dowolnego podczas inicjalizacji OLED. Tutaj napisaliśmy ten kod dla obu. Użytkownik musi zainicjować OLED tylko dla 128 * 64 pikseli, takich jak:
disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST)
Cały kod i funkcje są łatwe do zrozumienia i nie są potrzebne dalsze wyjaśnienia. Po prostu zacznij i spróbuj bawić się wysokością, szerokością i obrazami oraz wypróbuj inne funkcje, aby stworzyć fajniejsze figury geometryczne.
Pełny kod Pythona i wideo demonstracyjne są podane poniżej, a tutaj znajdziesz obrazy, których użyliśmy w tym programie.
Sprawdź także interfejs OLED z Arduino.