- Požadovaný hardware:
- Seznámení s OLED displeji:
- Kruhový diagram:
- Propojení OLED s Raspberry Pi:
- Vysvětlení programování:
Většina z nás by byla obeznámena s 16 × 2 Dot matrix LCD displejem, který se používá ve většině projektů k zobrazování některých informací uživateli. Ale tyto LCD displeje mají spoustu omezení. V tomto tutoriálu se budeme učit o OLED displeji a jak je používat s Raspberry Pi. Na trhu je k dispozici spousta typů OLED displejů a existuje mnoho způsobů, jak je uvést do provozu. U Arduina jsme již použili 7 Pin OLED.
Požadovaný hardware:
- 128 × 64 OLED zobrazovací modul (SSD1306)
- Raspberry Pi
- Nepájivá deska
- Připojení vodičů
- Zdroj napájení
Seznámení s OLED displeji:
Termín OLED znamená „ Organic Light emitting diode“ , používá stejnou technologii, která se používá ve většině našich televizorů, ale ve srovnání s nimi má méně pixelů. Je opravdu zábavné mít tyto skvěle vypadající zobrazovací moduly propojené s Raspberry Pi, protože díky nim budou naše projekty vypadat skvěle. Zde jsme se zabývali celým článkem o OLED displejích a jejich typech. Zde používáme monochromatický 4kolíkový displej SSD1306 0,96 ”OLED. Tento displej LCD může pracovat pouze v režimu I2C.
Níže jsou uvedena spojení OLED s Raspberry pi:
OLED PIN | RPI Pin |
VCC | 3,3 v |
GND | GND |
SDA | SDA (fyzický pin 3) |
SCL | SCL (fyzický pin 5) |
Kruhový diagram:
Propojení OLED s Raspberry Pi:
RPI komunita nám již poskytla mnoho knihoven, které lze přímo použít, aby to bylo mnohem jednodušší. Vyzkoušel jsem několik knihoven a zjistil jsem, že OLED knihovna Adafruit_SSD1306 se velmi snadno používá a má několik grafických možností, proto v tomto tutoriálu použijeme totéž.
Krok 1: Povolte komunikaci I2C
Před instalací knihovny Adafruit SSD1306 musíme povolit komunikaci I2C v Raspberry Pi.
Chcete-li to provést v konzole Raspberry Pi:
sudo raspi -config
A pak se objeví modrá obrazovka. Nyní vyberte možnost rozhraní
Poté musíme vybrat I2C
Zloženie: 100% bavlna.
Poté musíme vybrat ano, stisknout klávesu Enter a poté ok
Poté musíme restartovat malinovou pi vydáním následujícího příkazu:
restartování sodo
Krok 2: Najděte adresu OLED I2C a aktualizujte ji
Pak musíme pomocí daného příkazu najít adresu OLED I2C a uvidíte hexadecimální adresu.
sudo i2cdetect –y 1
Poté aktualizujte Raspberry Pi pomocí zadaného příkazu:
sudo apt-get aktualizace
Krok 3: Nainstalujte python-pip a knihovnu GPIO
Poté musíme nainstalovat pip pomocí daného příkazu:
sudo apt-get install build-essential python-dev python-pip
A nainstalujte si knihovnu GPIO Raspberry Pi
sudo pip nainstaluje RPi.GPIO
Krok 4: Nainstalujte Python Imaging Library a knihovnu smbus
Nakonec musíme nainstalovat Python Imaging Library a knihovnu smbus v Raspberry Pi pomocí daného příkazu:
sudo apt-get install python-imaging python-smbus
Krok 5: Nainstalujte knihovnu python SSD1306 Adafruit
Nyní je čas nainstalovat kód knihovny Python Adafruit SSD1306 a příklady pomocí zadaných příkazů:
sudo apt-get install git git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git cd Adafruit_Python_SSD1306 sudo python setup.py install
Nyní uživatel může najít kód rozhraní OLED v Raspberry Pi a můžete jej hrát přímo nebo si jej přizpůsobit sami. Zde jsme přizpůsobili ukázkový kód pro demonstraci. Celý kód Pythonu najdete na konci článku.
Vysvětlení programování:
Programovací část pro propojení OLED s projektem RPi je snadná. nejprve musíme importovat některé potřebné knihovny.
čas importu import Adafruit_GPIO.SPI jako SPI import Adafruit_SSD1306 z PIL import Obrázek z PIL import ImageDraw z PIL import ImageFont import podproces
Poté inicializujte displej
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', (šířka, 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 () Poté můžeme pomocí daného kódu odeslat data nebo obrázek na OLED
# Napište dva řádky textu. disp.clear () disp.display () draw.text ((x, top), "OLED Interfacing", font = font, fill = 255) draw.text ((x, top + 8), "Circuit Digest", font = font, fill = 255) draw.text ((x, horní + 16), "Pro více videí", font = font, fill = 255) draw.text ((x, horní + 25), "Navštivte na", font = font, fill = 255) draw.text ((x, top + 34), "www.circuitdigest.com", font = font, fill = 255) # Zobrazit obrázek. 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')
Tato OLED přichází ve dvou variantách, jedna je 128 * 32 a druhá 128 * 64, takže si uživatel může při inicializaci OLED odpovídajícím způsobem vybrat kohokoli. Zde jsme tento kód napsali pro oba. Uživatel potřebuje pouze inicializovat OLED pro 128 * 64 pixelů jako:
disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST)
Veškerý kód a funkce jsou snadno srozumitelné a není třeba žádné další vysvětlení. Začněte a vyzkoušejte si hraní s výškou, šířkou a obrázky a vyzkoušejte některé další funkce, které vám pomohou vytvořit více cool geometrických obrazců.
Celý kód pythonu a ukázkové video jsou uvedeny níže a zde najdete obrázky, které jsme použili v tomto programu.
Zkontrolujte také rozhraní OLED s Arduinem.