- Hardware richiesto:
- Conoscere i display OLED:
- Schema elettrico:
- Collegamento di OLED con Raspberry Pi:
- Spiegazione della programmazione:
La maggior parte di noi avrebbe familiarità con il display LCD a matrice di punti 16 × 2 utilizzato nella maggior parte dei progetti per visualizzare alcune informazioni all'utente. Ma questi display LCD hanno molte limitazioni. In questo tutorial, impareremo a conoscere i display OLED e come usarli con Raspberry Pi. Ci sono molti tipi di display OLED disponibili sul mercato e ci sono molti modi per farli funzionare. Abbiamo già utilizzato OLED a 7 pin con Arduino.
Hardware richiesto:
- Modulo display OLED 128 × 64 (SSD1306)
- Raspberry Pi
- Breadboard
- Collegamento dei cavi
- Alimentazione elettrica
Conoscere i display OLED:
Il termine OLED sta per " diodo organico a emissione di luce" e utilizza la stessa tecnologia che viene utilizzata nella maggior parte dei nostri televisori ma ha meno pixel rispetto ad essi. È davvero divertente avere questi moduli di visualizzazione dall'aspetto accattivante da interfacciare con il Raspberry Pi poiché renderà i nostri progetti interessanti. Abbiamo coperto un articolo completo sui display OLED e sui suoi tipi qui. Qui stiamo usando un display OLED SSD1306 da 0,96 pollici monocromatico a 4 pin. Questo LCD può funzionare solo con la modalità I2C.
Di seguito sono riportati i collegamenti di OLED con Raspberry pi:
Pin OLED | Pin RPI |
VCC | 3.3v |
GND | GND |
SDA | SDA (pin fisico 3) |
SCL | SCL (pin fisico 5) |
Schema elettrico:
Collegamento di OLED con Raspberry Pi:
La comunità RPI ci ha già fornito molte librerie che possono essere utilizzate direttamente per rendere tutto più semplice. Ho provato alcune librerie e ho scoperto che la libreria OLED Adafruit_SSD1306 era molto facile da usare e ha una manciata di opzioni grafiche, quindi useremo la stessa in questo tutorial.
Passaggio 1: abilitare la comunicazione I2C
Prima di installare la libreria Adafruit SSD1306 dobbiamo abilitare la comunicazione I2C in Raspberry Pi.
Per fare questo tipo nella console Raspberry Pi:
sudo raspi -config
E poi apparirà una schermata blu. Ora seleziona l'opzione dell'interfaccia
Dopodiché, dobbiamo selezionare I2C
Dopodiché, dobbiamo selezionare Sì e premere Invio e poi OK
Dopodiché, dobbiamo riavviare Raspberry Pi emettendo il seguente comando:
riavviare sodo
Passaggio 2: trova l'indirizzo I2C OLED e aggiornalo
Quindi dobbiamo trovare l'indirizzo I2C OLED utilizzando il comando dato e vedrai un indirizzo esadecimale.
sudo i2cdetect –y 1
Quindi aggiorna Raspberry Pi usando il comando dato:
sudo apt-get update
Passaggio 3: installa python-pip e la libreria GPIO
Dopodiché dobbiamo installare pip usando il comando dato:
sudo apt-get install build-essential python-dev python-pip
E installa la libreria GPIO di Raspberry Pi
sudo pip installa RPi.GPIO
Passaggio 4: installa la libreria di immagini Python e la libreria smbus
Infine, dobbiamo installare la libreria di immagini Python e la libreria smbus in Raspberry Pi utilizzando il comando dato:
sudo apt-get install python-imaging python-smbus
Passaggio 5: installa la libreria python Adafruit SSD1306
Ora è il momento di installare il codice della libreria python Adafruit SSD1306 e gli esempi utilizzando i comandi dati:
sudo apt-get install git git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git cd Adafruit_Python_SSD1306 sudo python setup.py install
Ora l'utente può trovare il codice dell'interfaccia OLED in Raspberry Pi e puoi giocare direttamente o personalizzarlo da solo. Qui abbiamo personalizzato un codice di esempio per la dimostrazione. Puoi trovare il codice Python completo alla fine dell'articolo.
Spiegazione della programmazione:
La parte di programmazione per interfacciare OLED con il progetto RPi è semplice. per prima cosa, dobbiamo importare alcune librerie necessarie.
import time import Adafruit_GPIO.SPI come SPI import Adafruit_SSD1306 da PIL import Immagine da PIL import ImageDraw da PIL import ImageFont import subprocess
Dopo questo inizializzare il display
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 () Dopodiché, possiamo inviare dati o immagini a OLED utilizzando il codice fornito
# Scrivi due righe di testo. 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, top + 16), "Per altri video", font = font, fill = 255) draw.text ((x, top + 25), "Visita a", font = font, fill = 255) draw.text ((x, top + 34), "www.circuitdigest.com", font = font, fill = 255) # Visualizza l'immagine. 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')
Questo OLED è disponibile in due varianti, una è 128 * 32 e l'altra è 128 * 64, quindi l'utente può selezionare chiunque di conseguenza durante l'inizializzazione di OLED. Qui abbiamo scritto questo codice per entrambi. L'utente deve inizializzare solo OLED per 128 * 64 pixel come:
disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST)
Tutto il codice e le funzioni sono di facile comprensione e non sono necessarie ulteriori spiegazioni. Inizia e prova a giocare con altezza, larghezza e immagini e prova alcune altre funzioni per creare alcune figure geometriche più interessanti.
Il codice completo di Python e il video dimostrativo sono riportati di seguito e qui trovi le immagini che abbiamo usato in questo programma.
Controlla anche l'interfaccia OLED con Arduino.