- Potrebna strojna oprema:
- Spoznavanje zaslonov OLED:
- Shema vezja:
- Povezava OLED z Raspberry Pi:
- Pojasnilo programiranja:
Večina od nas bi poznala matrični LCD zaslon 16 × 2 Dot, ki se v večini projektov uporablja za prikaz nekaterih informacij uporabniku. Toda ti LCD zasloni imajo veliko omejitev. V tej vadnici bomo spoznali OLED zaslon in kako jih uporabljati z Raspberry Pi. Na trgu je na voljo veliko vrst OLED zaslonov in obstaja veliko načinov za njihovo delovanje. 7-pin OLED smo že uporabili z Arduino.
Potrebna strojna oprema:
- 128 × 64 OLED modul zaslona (SSD1306)
- Raspberry Pi
- Breadboard
- Povezovanje žic
- Napajanje
Spoznavanje zaslonov OLED:
Izraz OLED pomeni " organska dioda, ki oddaja svetlobo" . Uporablja isto tehnologijo, kot jo uporablja večina naših televizorjev, vendar ima manj slikovnih pik v primerjavi z njimi. Zelo zabavno je, da se ti modro prikazani moduli povežejo z Raspberry Pi, saj bodo naši projekti videti kul. Tukaj smo zajeli celoten članek o OLED zaslonih in njihovih vrstah. Tu uporabljamo enobarvni 4-pinski SSD1306 0,96-palčni OLED zaslon. Ta LCD lahko deluje samo v načinu I2C.
Spodaj so povezave OLED-a z Raspberry pi:
OLED Pin | RPI Pin |
VCC | 3.3v |
GND | GND |
SDA | SDA (fizični zatič 3) |
SCL | SCL (fizični zatič 5) |
Shema vezja:
Povezava OLED z Raspberry Pi:
Skupnost RPI nam je že dala veliko knjižnic, s katerimi lahko to poenostavimo. Preizkusil sem nekaj knjižnic in ugotovil, da je bila knjižnica Adafruit_SSD1306 OLED zelo enostavna za uporabo in ima nekaj grafičnih možnosti, zato bomo v tej vadnici uporabili enako.
1. korak: Omogočite komunikacijo I2C
Pred namestitvijo knjižnice Adafruit SSD1306 moramo v Raspberry Pi omogočiti komunikacijo I2C.
To naredite v konzoli Raspberry Pi:
sudo raspi -config
Nato se prikaže modri zaslon. Zdaj izberite možnost vmesnika
Po tem moramo izbrati I2C
U
Po tem moramo izbrati da in pritisniti enter in nato v redu
Po tem moramo znova zagnati malino pi z izdajo spodnjega ukaza:
sodo ponovni zagon
2. korak: Poiščite naslov OLED I2C in ga posodobite
Nato moramo z danim ukazom najti naslov OLED I2C in videli boste šestnajstiški naslov.
sudo i2cdetect –y 1
Nato z danim ukazom posodobite Raspberry Pi:
posodobitev sudo apt-get
3. korak: Namestite python-pip in knjižnico GPIO
Po tem moramo namestiti pip z uporabo danega ukaza:
sudo apt-get namestite bistveno gradnjo python-dev python-pip
In namestite knjižnico Raspberry Pi GPIO
sudo pip namesti RPi.GPIO
4. korak: Namestite Python Imaging Library in smbus knjižnico
Na koncu moramo v Raspberry Pi namestiti Python Imaging Library in smbus knjižnico z uporabo danega ukaza:
sudo apt-get namestite python-imaging python-smbus
5. korak: namestite knjižnico python Adafruit SSD1306
Zdaj je čas, da z uporabo ukazov namestite kodo in primere knjižnice python Adafruit SSD1306:
sudo apt-get install git git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git cd Adafruit_Python_SSD1306 sudo python setup.py install
Zdaj lahko uporabnik najde kodo vmesnika OLED v Raspberry Pi, lahko pa jo predvajate neposredno ali jo prilagodite sami. Tu smo prilagodili primer kode za predstavitev. Celotno kodo Pythona najdete na koncu članka.
Pojasnilo programiranja:
Programski del za povezovanje OLED s projektom RPi je enostaven. najprej moramo uvoziti nekaj potrebnih knjižnic.
uvoz čas uvoz Adafruit_GPIO.SPI kot SPI uvoz Adafruit_SSD1306 iz PIL uvoz Slika iz PIL uvoz ImageDraw iz PIL uvoz ImageFont uvoz podproces
Po tem inicializirajte zaslon
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, višina)) draw = ImageDraw.Draw (image1) draw.rectangle ((0,0, širina, višina), oris = 0, fill = 0) padding = -2 top = padding bottom = height-padding x = 0 font = ImageFont.load_default () Po tem lahko podatke ali sliko pošljemo na OLED z uporabo dane kode
# Napišite dve vrstici besedila. 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), "Za več videoposnetkov", 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) # Prikaži sliko. disp.image (image1) disp.display () time.sleep (2), če je 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), če je disp.height == 64: image = Image.open ('img3.jpg'). convert ('1') else: image = Image.open ('img3.jpg'). convert ('1')
Ta OLED je na voljo v dveh različicah, ena je 128 * 32, druga pa 128 * 64, tako da lahko uporabnik med inicializacijo OLED izbere vsakogar. Tu smo napisali to kodo za oba. Uporabnik mora OLED inicializirati samo za 128 * 64 slikovnih pik, kot so:
disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST)
Vse kode in funkcije je enostavno razumeti in nadaljnja razlaga ni potrebna. Preprosto začnite in se poskusite igrati z višino, širino in slikami in poskusite z drugimi funkcijami, da ustvarite še bolj kul geometrijske figure.
Celotna koda pythona in demonstracijski video je podan spodaj in tukaj najdete slike, ki smo jih uporabili v tem programu.
Preverite tudi povezavo OLED z Arduino.