- Būtina aparatinė įranga:
- Susipažinimas su OLED ekranais:
- Grandinės schema:
- OLED prijungimas su „Raspberry Pi“:
- Programavimo paaiškinimas:
Daugelis iš mūsų būtų susipažinę su 16 × 2 taškų matricos LCD ekranu, kuris naudojamas daugumoje projektų tam, kad vartotojui būtų rodoma tam tikra informacija. Tačiau šie LCD ekranai turi daug apribojimų. Šioje pamokoje mes sužinosime apie OLED ekraną ir kaip juos naudoti su „Raspberry Pi“. Rinkoje yra daugybė OLED ekranų tipų ir yra daugybė būdų, kaip juos veikti. Su „Arduino“ jau panaudojome 7 kontaktų OLED.
Būtina aparatinė įranga:
- 128 × 64 OLED ekrano modulis (SSD1306)
- Avietė Pi
- Bandomoji Lenta
- Laidų sujungimas
- Maitinimo šaltinis
Susipažinimas su OLED ekranais:
Terminas OLED reiškia „ organinis šviesos diodas“. Jame naudojama ta pati technologija, kuri naudojama daugumoje mūsų televizorių, tačiau turi mažiau taškų, palyginti su jais. Labai smagu, kad šie šauniai atrodantys ekranų moduliai bus susieti su „Raspberry Pi“, nes tai leis mūsų projektams atrodyti šauniai. Čia apžvelgėme visą straipsnį apie OLED ekranus ir jo tipus. Čia mes naudojame vienspalvį 4 kontaktų SSD1306 0,96 ”OLED ekraną. Šis skystųjų kristalų ekranas gali veikti tik su „I2C“ režimu.
Žemiau pateikiami OLED ryšiai su Raspberry pi:
OLED kaištis | RPI kaištis |
VCC | 3.3v |
BND | BND |
SDA | SDA (fizinis kaištis 3) |
SCL | SCL (5 fizinis kaištis) |
Grandinės schema:
OLED prijungimas su „Raspberry Pi“:
RPI bendruomenė jau suteikė mums daugybę bibliotekų, kurias galima tiesiogiai naudoti, kad tai būtų daug paprasčiau. Išbandžiau keletą bibliotekų ir sužinojau, kad „Adafruit_SSD1306 OLED“ biblioteka buvo labai paprasta naudoti ir joje yra keletas grafinių parinkčių, todėl ir šioje instrukcijoje naudosime tas pačias.
1 veiksmas: įjunkite „I2C“ ryšį
Prieš diegdami „Adafruit SSD1306“ biblioteką, turime įjungti „I2C“ ryšį „Raspberry Pi“.
Norėdami tai padaryti „Raspberry Pi“ pulte:
sudo raspi -config
Tada pasirodys mėlynas ekranas. Dabar pasirinkite sąsajos parinktį
Po to turime pasirinkti I2C
A
Po to turime pasirinkti „Taip“ ir paspausti „Enter“, tada gerai
Po to turime iš naujo paleisti aviečių pi, išleisdami žemiau esančią komandą:
sodo perkrauti
2 žingsnis: raskite OLED I2C adresą ir atnaujinkite jį
Tada turime rasti OLED I2C adresą naudodami nurodytą komandą ir pamatysite šešioliktainį adresą.
sudo i2cdetect –y 1
Tada atnaujinkite „Raspberry Pi“ naudodami nurodytą komandą:
sudo apt-get atnaujinimas
3 žingsnis: įdiekite python-pip ir GPIO biblioteką
Po to turime įdiegti pip naudodami nurodytą komandą:
sudo apt-get install build-essential python-dev python-pip
Ir įdiekite „Raspberry Pi GPIO“ biblioteką
sudo pip įdiegia RPi.GPIO
4 žingsnis: įdiekite „ Python Imaging Library“ ir „ smbus“ biblioteką
Galiausiai turime įdiegti „ Python Imaging Library“ ir „ smbus“ biblioteką „Raspberry Pi“ naudodami nurodytą komandą:
sudo apt-get install python-imaging python-smbus
5 žingsnis: įdiekite „Adafruit SSD1306 python“ biblioteką
Dabar laikas įdiegti „Adafruit SSD1306 python“ bibliotekos kodą ir pavyzdžius, naudojant nurodytas komandas:
sudo apt-get install git git klonas https://github.com/adafruit/Adafruit_Python_SSD1306.git cd Adafruit_Python_SSD1306 sudo python setup.py install
Dabar vartotojas gali rasti OLED sąsajos kodą „Raspberry Pi“ ir jūs galite tiesiogiai žaisti arba patys jį pritaikyti. Čia mes pritaikėme pavyzdinį kodą demonstravimui. Čia galite rasti visą Python kodą ties straipsnio pabaigoje.
Programavimo paaiškinimas:
Lengva programuoti OLED sąsają su RPi projektu. Pirma, turime importuoti keletą reikalingų bibliotekų.
importavimo laikas importuoti „Adafruit_GPIO.SPI“ kaip SPI importuoti „Adafruit_SSD1306“ iš PIL importuoti vaizdą iš PIL importuoti
Po to inicijuokite ekraną
RST = 0 disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST) disp.begin () disp.clear () disp.display () plotis = disp.width height = disp.height image1 = Image.new ('1', (plotis), height)) draw = ImageDraw.Draw (image1) draw.stectangle ((0,0, width, height), outline = 0, fill = 0) padding = -2 top = padding bottom = height-padding x = 0 font = ImageFont.load_default () Po to mes galime siųsti duomenis ar vaizdą į OLED naudodami nurodytą kodą
# Parašykite dvi teksto eilutes. disp.clear () disp.display () draw.text ((x, viršuje), "OLED sąsaja", font = font, fill = 255) draw.text ((x, top + 8), "Circuit Digest", font = font, fill = 255) draw.text ((x, top + 16), "Daugiau vaizdo įrašų", 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) # Rodyti vaizdą. disp.image (image1) disp.display () time.sleep (2), jei disp.height == 64: image = Image.open ('img1.png'). convert ('1') else: image = Image. atidaryti ('img1.png'). konvertuoti ('1') disp.image (image) disp.rodyti () time.sleep (2), jei disp.height == 64: image = Image.open ('img3.jpg'). convert ('1') else: image = Image.open ('img3.jpg'). convert ('1')
Šis OLED yra dviejų variantų, vienas yra 128 * 32, kitas - 128 * 64, todėl vartotojas gali atitinkamai pasirinkti bet kurį asmenį, inicijuodamas OLED. Čia mes parašėme šį kodą abiem. Vartotojui reikia inicijuoti OLED tik 128 * 64 pikseliams, pavyzdžiui:
disp = Adafruit_SSD1306.SSD1306_128_64 (pirmoji = RST)
Visą kodą ir funkcijas lengva suprasti, todėl nereikia daugiau paaiškinti. Tiesiog pradėkite ir pabandykite žaisti su aukščiu, pločiu ir vaizdais ir išbandykite kitas funkcijas, kad sukurtumėte dar keletą šaunių geometrinių figūrų.
Pilnas pitono kodas ir demonstracinis vaizdo įrašas pateikiami žemiau, čia rasite vaizdus, kuriuos naudojome šioje programoje.
Taip pat patikrinkite OLED sąsają su „Arduino“.