- Vaadittu laitteisto:
- OLED-näytöihin tutustuminen:
- Piirikaavio:
- OLED: n yhdistäminen Vadelma Pi:
- Ohjelmoinnin selitys:
Suurimmalle osalle meistä olisi tuttu 16 × 2-pisteinen matriisi-LCD-näyttö, jota käytetään useimmissa projekteissa jonkin verran tietojen näyttämiseksi käyttäjälle. Mutta näillä LCD-näytöillä on paljon rajoituksia. Tässä opetusohjelmassa aiomme oppia OLED-näytöstä ja siitä, miten niitä käytetään Raspberry Pi: n kanssa. Markkinoilla on paljon erilaisia OLED-näyttöjä, ja on monia tapoja saada ne toimimaan. Olemme jo käyttäneet 7-nastaista OLED-laitetta Arduinon kanssa.
Vaadittu laitteisto:
- 128 × 64 OLED-näyttömoduuli (SSD1306)
- Vadelma Pi
- Leipälauta
- Johtojen liittäminen
- Virtalähde
OLED-näytöihin tutustuminen:
Termi OLED tarkoittaa ” orgaanista valoa emittoivaa diodia”. Se käyttää samaa tekniikkaa, jota käytetään useimmissa televisioissamme, mutta siinä on vähemmän pikseleitä. On todella hauskaa saada nämä viileän näköiset näyttömoduulit liitettäviksi Raspberry Pi: n kanssa, koska se saa projektimme näyttämään siistiltä. Olemme käsittäneet koko artikkelin OLED-näytöistä ja sen tyypeistä täällä. Tässä käytämme yksiväristä 4-nastaista SSD1306 0,96 tuuman OLED-näyttöä. Tämä LCD-näyttö toimii vain I2C-tilassa.
Alla on OLED: n ja Raspberry pi: n yhteydet:
OLED-tappi | RPI-tappi |
VCC | 3.3v |
GND | GND |
SDA | SDA (fyysinen tappi 3) |
SCL | SCL (fyysinen tappi 5) |
Piirikaavio:
OLED: n yhdistäminen Vadelma Pi:
RPI-yhteisö on jo antanut meille paljon kirjastoja, joita voidaan käyttää suoraan tekemään tästä paljon yksinkertaisempaa. Kokeilin muutamia kirjastoja ja huomasin, että Adafruit_SSD1306 OLED -kirjasto oli erittäin helppo käyttää ja sillä on kourallinen graafisia vaihtoehtoja, joten käytämme samaa tässä opetusohjelmassa.
Vaihe 1: Ota I2C-yhteys käyttöön
Ennen kuin asennamme Adafruit SSD1306 -kirjaston, meidän on sallittava I2C-tiedonsiirto Raspberry Pi: ssä.
Voit tehdä tämän tyypin Raspberry Pi -konsolissa:
sudo Raspi -config
Ja sitten sininen näyttö tulee näkyviin. Valitse nyt käyttöliittymävaihtoehto
Tämän jälkeen meidän on valittava I2C
A
Tämän jälkeen meidän on valittava kyllä ja painettava Enter ja sitten ok
Tämän jälkeen meidän on käynnistettävä vadelma pi uudelleen käynnistämällä alla oleva komento:
sodo uudelleenkäynnistetään
Vaihe 2: Etsi OLED I2C -osoite ja päivitä se
Sitten meidän on löydettävä OLED I2C-osoite käyttämällä annettua komentoa ja näet hex-osoitteen.
sudo i2cdetect –y 1
Päivitä sitten Raspberry Pi annetulla komennolla:
sudo apt-get -päivitys
Vaihe 3: Asenna python-pip ja GPIO-kirjasto
Tämän jälkeen meidän on asennettava pip käyttämällä annettua komentoa:
sudo apt-get install build-essential python-dev python-pip
Ja asenna Raspberry Pi GPIO -kirjasto
sudo pip asentaa RPi.GPIO
Vaihe 4: Asenna Python Imaging Library ja smbus- kirjasto
Lopuksi meidän on asennettava Python Imaging Library ja smbus- kirjasto Raspberry Pi -palveluun käyttämällä annettua komentoa:
sudo apt-get install python-imaging python-smbus
Vaihe 5: Asenna Adafruit SSD1306 python-kirjasto
Nyt on aika asentaa Adafruit SSD1306 python-kirjastokoodi ja esimerkkejä annettujen komentojen avulla:
sudo apt-get install git git klooni https://github.com/adafruit/Adafruit_Python_SSD1306.git cd Adafruit_Python_SSD1306 sudo python setup.py install
Nyt käyttäjä voi löytää OLED-rajapinnan koodin Raspberry Pi: stä ja voit pelata suoraan tai muokata sitä itse. Tässä olemme räätälöineet esimerkkikoodin esittelyä varten. Löydät koko Python-koodin artikkelin lopusta.
Ohjelmoinnin selitys:
Ohjelmointiosa OLED: n ja RPi-projektin liittämiseksi on helppoa. Ensinnäkin meidän on tuotava joitain tarvittavia kirjastoja.
tuonnin tuonti Adafruit_GPIO.SPI SPI: nä tuonti Adafruit_SSD1306 PIL: stä tuonti Kuva PIL: stä tuonti ImageDraw PIL: n tuonnista ImageFont tuonnin aliprosessi
Alusta tämän jälkeen näyttö
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', (leveys), korkeus)) piirtää = ImageDraw.Draw (kuva1) piirtää suorakulmio ((0,0, leveys, korkeus), ääriviiva = 0, täytä = 0) täyte = -2 yläosa = täyte pohja = korkeus täyte x = 0 fontti = ImageFont.load_default () Tämän jälkeen voimme lähettää tietoja tai kuvia OLED: ään käyttämällä annettuja koodeja
# Kirjoita kaksi riviä tekstiä. disp.clear () disp.display () piirrä.teksti ((x, ylhäältä), "OLED-rajapinta", font = fontti, täytä = 255) piirt.teksti ((x, ylhäältä + 8), "Piirin yhteenveto", font = font, fill = 255) draw.text ((x, top + 16), "Lisää videoita", 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) # Näytä kuva. disp.image (image1) disp.display () time.sleep (2) jos disp.height == 64: image = Image.open ('img1.png'). muuntaa ('1') else: image = Image. open ('img1.png'). muuntaa ('1' ) disp. kuva (kuva) disp.display () time.sleep (2) jos disp.height == 64: image = Image.open ('img3.jpg'). muuntaa ('1') else: image = Image.open ('img3.jpg'). muuntaa ('1')
Tätä OLED: ää on saatavana kahtena muunnelmana, joista yksi on 128 * 32 ja toinen on 128 * 64, joten käyttäjä voi valita kenen tahansa vastaavasti samalla, kun OLEDia alustetaan. Tässä olemme kirjoittaneet tämän koodin molemmille. Käyttäjän on vain alustettava OLED 128 * 64 pikselille, kuten:
disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST)
Kaikki koodit ja toiminnot ovat helposti ymmärrettäviä, eikä lisäselvityksiä tarvita. Aloita vain ja yritä leikkiä korkeuden, leveyden ja kuvien kanssa ja kokeile muita toimintoja luodaksesi hienoja geometrisia kuvioita.
Täysi python-koodi ja esittelyvideo on annettu alla, ja täältä löydät kuvat, joita olemme käyttäneet tässä ohjelmassa.
Tarkista myös OLED Interfacing with Arduino.