25 Raspberry Pi Sense HAT

Sissejuhatus

Rasbperry Pi Sense HAT on laienduplaat Raspberry Pi-le, mille abil on võimalik mõõta temperatuuri, niiskust, õhurõhku ja seadme enda asendit. Lisakas sellele on Sense HAT-i peal mitmevärvilised LED tuled, mille abil on võimalik mõõdetud informatsiooni kuvada.

Tänases tunnis katsetame Sense HAT-i erinevaid võimalusi

  1. LED tulede põlema panemine
  2. Programm, mis küsib nime ja kuvad selle led tulede peal
  3. Mõõdame temperatuuri
  4. Loome termomeetri, mis vahetab värvi vastavalt temperatuurile

Esmalt tuleb aga SenseHAT Raspberry Pi-ga ühendada. See on üpris lihtne, sest SenseHAT on loodud nii, et ta kataks ära kõik Raspberry Pi peal olevad nõelad. Enne kui hakkad midagi tegema siis lülita Raspberry Pi välja. Seejärel on meil vaja kasutada nõeltele ehk pin-idele pikendust, mis peaks mahtuma täpselt Raspberry Pi peale. Jääb üle välja vaadata, et SenseHAT jääks õiget pidi Raspberry Pi peale ning SenseHAT Pi peale kinnitada. Kui SenseHAT on kinnitatud tuleb Raspberry Pi sisse lülitada. Sense HAT-i peal peaksid süttima kõik tuled ning seejärel peaksid kõik tuled välja lülituma.

LED tulede põlema panemine

SenseHAT-i peal on 8×8 ruudustik mitmevärvilisi LED tulesid. Neid tulesid on loomulikult võimalik sisse ja välja lülitada aga lisaks sellele on võimalik ka nende värvi muuta. Esmalt proovime ära aga kõige lihtsama, milleks on teksti kirjutamine sellele väiksele nö. ekraanile.

Selle jaoks tuleb meil avada Thonny IDE, mille leiad Programmeerimine -> Thonny Python IDE alt. Esmalt tuleb meil paigaldada SenseHAT-i teek, mida saame teha koodireaga from sense_hat import SenseHat

Järgnelvalt peame defineerima SenseHAT-i objekti, millele saame hiljem käske jagada. Selle jaoks kasutame koodirida, kus anname esmalt SenseHAT-ile nime, näiteks nii: senseHAT = SenseHat(). Oma SenseHAT-ile võid anda endale meeldiva nime.

Viimaseks samuks teksti kirjutamisel jääb anda käsk, et SenseHAT teksti kuvaks. Selle jaoks on olemas käsk senseHAT.show_message("Tere maailm!"), kus senseHAT tähistab sinu SenseHAT-i nime ja “Tere maailm!” on tekst, mida soovime ekraanile kuvada. Paneme nüüd koodi tööle. Kas SenseHAT-ile ilmus tekst?

Kui soovid ekraanil ilmuva teksti kiirust muutuma siis on vaja lisaks tekstile täpsustada teise sisendina ka teksti liikumise kiirus scroll_speed kaudu. Näiteks nii: senseHAT.show_message(“Tere maailm!”, scroll_speed=0.2). Vaikimisi on teksti liikumise kiirus 1.

Proovime nüüd muuta ilmunud teksti värvi. SenseHAT kasutab värvidena kolmekohalisi ennikuid, mida kujutatakse Python näiteks nii: (255, 0, 255). Ennikus võivad olla väärtused 0-st 255-ni. Need kolm arvu moodustavad ühe RGB väärtuse. RGB ehk red-green-blue on värviskeem, kus värve kirjeldadakse läbi selle kui palju heledalt põlevad kas punased, rohelised või sinised väiksed valgustid. Täpsemalt saad RGB väärtustega katsetada näiteks SIIN. (https://www.rapidtables.com/web/color/RGB_Color.html)

Enne kui saame neid ennikuid kasutada siis peame need koodis esitama. Näiteks kui soovime punast värvi teksti kuvada siis peaksime looma muutuja näiteks nii: punane=(255,0,0). Hiljem saame määrata punase teksti värviks, mida kuvame, näiteks nii: senseHAT.show_message(“Tere maailm!”, text_colour=punane).

Katseta ka teiste värvidega. Katsetamisel ära kustuta punast värvi ära vaid lisa teisi juurde. Lisaks proovi kombineerida ka liikumiskiiruse muutuja scroll_speed, text_colour ja back_colour, millest viimane muudab tausta värvi.

Proovime panna põlema ka kõik tuled SenseHAT-i peal. Selle jaoks on üks käsk, milleks on .clear(punane) näiteks. Selle käsuga muutub terve ekraan punaseks. Kui soovime kõik LED tuled ära kustutada siis peame kasutama käsku .clear((0,0,0)) või clear(), mis lülitab kõik tuled välja.

Lisaks sellele on SenseHAT-il olemas ka käsud .set_pixel() ja set_pixels(), millest esimene ootab kolme muutujat, milleks on kaks täisarvulist väärtust, mis tähistavad pikslite asukohta ning kolmas on ennik, mis tähistab värvi, mida soovime sellele nö. pikslile lisada. set_pixels() ootab ainult ühte muutujat, mis on 8×8 maatriks, kus iga element on ennik, mis tähistab, mis värvi selles asukohas asuv piksel olema peab.

 

Programm, mis küsib nime ja kuvab selle SenseHAT-il

Järgmiseks ülesandeks on luua selline programm, mis küsib kasutajalt tema nime ja seejärel esitab seda SenseHAT-i peal. Selle jaoks tuletame esmalt meelde kuidas küsida kasutajalt sisendit. Selle jaoks on olemas Pythoni funktsioon input(). Tuleta meelde kuidas seda kasutada ja programmeeri SenseHAT saadud nime kuvama.

Temperatuuri mõõtmine SenseHAT-iga

SenseHAT-il on võimekus mõõta rõhku, temperatuuri ja ka seadme enda asendit ruumis. Täna vaatame, kuidas mõõte temperatuuri. Temperatuuri mõõtmiseks on olemas SenseHAT-il funktsioon .get_temperature(), mis annab SenseHAT-ile paigaldatud termomeetri anduri väärtuse, mida saab salvestada näiteks muutujana nii: temperatuur = senseHAT.get_temperature(). Proovi saadud temperatuur ekraanil väljastada. Kas märkad, et temperatuuri mõõdetakse väga mitme komakohaga? Kuna meil nii palju komakohti vaja ei ole siis saame ümardada temperatuuri ühe komakohani näiteks nii: temperatuur = round(temperatuur, 1).

Sinu ülesandeks jääb nüüd luua termomeeter, mis kuvaks kasutajale temperatuuri SenseHAT-i peal aga teeks seda erinevate värvidega, näiteks kui temperatuur jääb 0-15 kraadi vahele võiks olla termomeetri näit kuvatud siniselt, kui jääb 15-25 vahele siis kollaselt jne. Vihje: tuleta meelde lõputut tsüklik, näiteks while True lõputut tsüklik, et termomeeter kuvaks oma näitu pidevalt ning ka uuendaks seda pidevalt.

 

Lisaülesanne

Kui soovid lisaülesannet, siis proovi luua Sense HAT-iga selline valgusti, mis muudaks näiteks iga sekundi tagant kõikide LED tulede värvi või alternatiivselt muudaks näiteks iga mingi ajahetke tagant ühe LED valgusti värvi. Värvid võiks Raspberry Pi valida täiesti suvaliselt. Vihje: selles ülesandes tuleb meelde tuletada for-tsüklit, suvalise täisarvu genereerimist ning ka lõputut tsüklit, näiteks while True tsüklit.

Litsents

Icon for the Creative Commons Attribution 4.0 International License

Lisamoodulid on loodud Aveli Klaos, Siim Tanel Laisaar, Piret Luik, Tauno Palts, ja Eero Ääremaa poolt Creative Commons Attribution 4.0 International License litsentsi alusel, kui pole teisiti märgitud.

Jaga seda raamatut