Fórum ElektroLab.eu

Raspberry Pi Pico – pripojenie OLED displeja a výpis textov

Raspberry Pi Pico – pripojenie OLED displeja a výpis textov
Ľuboslav Lacko Pridal  Ľuboslav Lacko
  121 zobrazení
1
 0
Arduino a príbuzné platformy

Vo väčšine IoT konštrukcií je dôležité mať možnosť zobrazovať údaje a stavové hlásenia. Preto v druhom príklade ukážeme pripojenie a softvérovú obsluhu OLED displeja. Použili sme grafický displej SSD1306 s rozlíšením 128 x 32 pixelov.

Video ukazuje pripojenie a zobrazovanie textových údajov na OLED displeji. V druhej časti videa je postup konfigurácie ak chcete na vývoj aplikácií pre Pico využiť klasické Raspberry Pi s klávesnicou, myšou a monitorom.

Na zobrazovanie textov na OLED displeji využijeme vhodnú knižnicu napríklad  https://github.com/stlehmann/micropython-ssd1306 ktorú pridáme priamo z vývojového prostredia. Keď si však pozriete zdrojové súbory knižnice, tak sa veľa naučíte o obsluhe displejov pripojených cez komunikačné rozhrania I2C a SPI a pozorní čitatelia si všimnú, že táto knižnica bola vytvorená v roku 2019, keď o doske Raspberry Pi Pico ešte nikto ani netušil. Knižnica bola vytvorená a odladená pre MicroPython na mikrokontroléri ESP 32. Nakoľko však MicroPython je interpreter, fungovanie knižníc nebude obmedzené pre konkrétny mikrokontrolér ani dosku, ale pre akúkoľvek hardvérovú platformu, ktorú je možné programovať v programovacom jazyku MicroPython a má implementované príslušné komunikačné rozhranie, v tomto prípade rozhranie I2C. V programe využívajúcim príslušnú knižnicu potom pri inicializácii priradíme piny, na ktorých sú signály tohto rozhrania. Na doske RPi Pico využijeme pin1 na ktorom je signál I2C0 SDA a pin 2 na ktorom je signál I2C0 SCL. Tieto signály prepojíme s pinmi SDA a SCL na OLED displeji. Na napájanie displeja využijeme napätie 3,3 V, ktoré je vyvedené na pine 36 a zem pripojíme na niektorý z pinov GND dosky Pico.

Aby ste mohli využívať knižnice vo svojich projektoch, musíte ich najskôr importovať do vývojového prostredia Thonny ID pomocou menu Tools – Manage Packages. V prvom príklade je kód na zobrazenie statického textu na OLED displeji:

from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
 
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=40000)
disp = SSD1306_I2C(128, 64, i2c)
 
disp.fill(0)
disp.text("NEXTECH", 0, 0)
disp.text("Technologicky", 0, 15)
disp.text("magazin", 60, 25)
disp.text("RPi Pico", 0, 40)
disp.show()
 

V nasledujúcom príklade zobrazíme aktuálnu teplotu. Využijeme senzor integrovaný na čipe. Ten technicky meria teplotu čipu, avšak pokiaľ mikrokontrolér nie je zaťažený nejakou náročnou úlohou tak sa prakticky nezohrieva s má približne teplotu okolia. Interný teplotný senzor je pripojený na analógový vstup ADC4, ktorý nie je vyvedený na konektory dosky, avšak programovo ho vieme čítať. RPi Pico má 12 bitové A/D prevodníky, čiže hodnoty napätia 0 – 3,3 V interne prevádza na interval hodnôt 0 – 4095. Interne preto, lebo MicroPython však tento rozsah prepočítava na rozsah 0 – 65 535, čiže ho de facto násobí koeficientom 16.

Ak by sa nám teplota zobrazovala ako hodnota v už spomínanom rozsahu 0 – 65 535 asi by sme z toho nadšení neboli, preto ju prepočítame na stupne Celzia. V špecifikácii čipu sa dočítame, že pre referenčnej teplote 27 stupňov je napätie na internom analógovom vstupe 0,706 V a nárast teploty o 1 stupeň spôsobí pokles napätia o 1,721 mV, čiže 0,001721 V.  Teplotu teda vypočítame podľa vzorca:

T = 27 - (ADC_napätie - 0.706)/0.001721

Kód pre meranie teploty v nekonečnej sľučke :

from machine import Pin, I2C, ADC
from ssd1306 import SSD1306_I2C
from utime import sleep
 
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=40000)
disp = SSD1306_I2C(128, 64, i2c)
t_senzor = ADC(4)
 
while 1 == 1:
   teplota = t_senzor.read_u16()
   koeficient = 3.3 / 65535
   teplota = teplota * koeficient
   celzius = 27 - (teplota - 0.706) / 0.001721
   disp.fill(0)
   disp.text("NEXTECH IoT 2021", 0, 0)
   disp.text("Teplota:", 0, 15)
   disp.text("{:3.2f}".format(celzius), 70, 15)
   disp.show()
   sleep(1)
 
 
Vo voľnom pokračovaní ukážeme ďalšie príklady využitia dosky Raspberry Pi Pico

 



Páčil sa Vám článok? Pridajte k nemu hodnotenie
 

     

Komentáre k článku

Zatiaľ nebol pridaný žiadny komentár. Pridáte prvý? Za obsah komentárov je zodpovedný užívateľ, nie prevádzkovateľ týchto stránok.
Pre komentovanie sa musíte prihlásiť.

Vyhľadajte niečo na našom blogu

Webwiki ButtonSeo servis