Sunteți pe pagina 1din 5

Afișează o imagine

Poți afișa imagini pe matricea LED a Astro Pi. Poate că salutul tău pentru astronauți ar putea
include o imagine sau un model, împreună cu mesajul sau în locul mesajului scris?

În partea de jos a programului tău, creează câteva variabile de culoare pentru a defini culorile cu
care dorești să desenezi imaginea. Poți folosi cât de multe culori dorești, dar în acest exemplu
vom folosi doar câteva culori - roșu (r), alb (w), negru (b), și două nuanțe de gri (g și s). Nu uita
că aceste nuanțe se obțin prin reducerea cantității de lumină în toate cele trei canale, menținând
în același timp proporțiile.
w = (255, 255, 255)
b = (0, 0, 0)
g = (50,50,50)
s = (200,255,200)
r = (255,0,0)
Notă: De această dată, este o idee bună să dai variabilelor de culoare câte un nume de o singură
literă, deoarece acest lucru va economisi timp la pasul următor, unde le vei tasta de mai multe
ori. Mai mult, folosirea literelor unice va face mai ușoară vederea imaginii pe care o vei desena.

Sub noile tale variabile, creează o listă cu 64 de elemente. Fiecare element reprezintă un pixel pe
matricea LED și corespunde uneia dintre variabilele de culoare pe care le-ai definit. Desenează
imaginea ta introducând o variabilă în locul în care dorești să apară culoarea atribuită. Am
desenat un Astro Pi folosind pixeli negri (b) ca fundal și albi (g) pentru a-i desena părțile din
metal a carcasei:

picture = [
g, b, b, b, b, b, b, g,
b, g, g, g, g, g, g, b,
b, g, b, b, g, w, g, g,
b, g, b, b, g, g, g, g,
b, g, g, g, s, s, g, g,

1
b, g, r, g, g, g, g, g,
b, g, g, g, g, g, g, b,
g, b, b, b, b, b, b, g
]

Adaugă o linie de cod pentru a afișa imaginea ta pe afișajul cu LED-uri.

sense.set_pixels(picture)

Apasă Run pentru a vedea afișată imaginea ta.

S-ar putea să dorești să adaugi cod pentru a include o așteptare scurtă (sau sleep) după afișarea
imaginii. Acest lucru va acorda astronauților timp pentru a vedea imaginea înainte ca următoarea
parte a mesajului să apară. În partea de sus a programului, adaugă:
from time import sleep
Apoi, pe linia după cea care afișează imaginea, adaugă acest cod pentru a aștepta două secunde:

sleep(2)

Pentru a afișa umiditatea curentă ca mesaj derulant pe afișaj, adaugă această


linie de cod:
sense.show_message(str(humid))
Partea str() convertește umiditatea dintr-un caracter numeric în caracter text
astfel încât Astro Pi să o poată afișa.

De asemenea, poți afișa umiditatea ca parte a unui alt mesaj prin îmbinarea
părților mesajului tau împreună cu un +.
sense.show_message( "It is " + str(humid) + " %" )

Un Astro Pi real va măsura umiditatea din jurul său, dar poți muta glisorul de
umiditate de pe emulatorul Sense HAT pentru a simula schimbări de umiditate
și pentru a testa codul tău.

2
Notă: S-ar putea să te întrebi de ce sliderul de umiditate afișează umiditatea
ca număr întreg, dar citirea pe care o primești este un număr cu zecimale.
Emulatorul simulează ușoara inexactitate a senzorului real, astfel încât
umiditatea măsurată pe care o vezi poate fi puțin mai mică sau mai mare
decât valoarea pe care ai setat-o cu ajutorul glisorului.

Reacționează la umiditate
Poți combina citirea umidității cu o imagine pentru a indica umiditatea într-un
mod grafic. De exemplu, ai putea afișa un ocean pentru o umiditate mare și
un deșert pentru umiditate scăzută:

3
În partea de jos a programului tău, creează mai multe variabile pentru orice
culori pe care vrei sa le folosești în imaginile tale. Este posibil să fi definit deja
unele dintre ele într-un pas anterior.
o=(255,130,0)
b=(0,0,255)
c=(0,150,255)
e=(80,80,80)
g=(0,255,0)
y=(255,255,0)

La fel ca mai devreme, desenează imaginile tale, creând mai întâi o listă
pentru fiecare dintre ele, apoi setând elementele listei la culorile pe care
dorești să le aibă pixelii.
wet = [
b, b, b, b, b, b, b, b,
b, b, b, b, b, b, b, b,
b, o, b, o, o, o, b, b,
b, o, o, o, o, e, o, b,
b, o, o, o, o, o, o, b,
b, o, b, o, o, o, b, b,
b, b, b, b, b, b, b, b,
b, b, b, b, b, b, b, b
]

dry = [
c, c, g, g, c, c, c, c,
c, c, g, g, c, g, c, c,
g, c, g, g, c, g, c, c,
g, c, g, g, c, g, c, c,
g, g, g, g, g, g, c, c,
c, c, g, g, c, c, c, c,
y, y, y, y, y, y, y, y,
y, y, y, y, y, y, y, y
]

Adaugă cod pentru a obține umiditatea:


humid = sense.get_humidity()

Acum decide ce imagine vrei să se afișeze. Pentru acest exemplu, vom afișa
imaginea wet (ud) dacă valoarea citită a umidității este de 40% sau mai mare
și imaginea dry (uscat) dacă umiditatea este sub 40%.
humid = sense.get_humidity()
if humid >= 40:
sense.set_pixels(wet)

4
else:
sense.set_pixels(dry)

Utilizează slider-ul pentru umiditate pentru a seta o umiditate pe emulator.


Rulează programul și verifică dacă imaginea pe care ai selectat-o pentru acea
umiditate este afișată corect.

Modifică codul astfel încât programul să afișeze umiditatea pentru astronauți


în modul ales de tine.

Testează-ți codul cu câteva setări diferite de umiditate (folosind slider-ul)


pentru a te asigura că rulează întotdeauna corect. Dacă ai urmat exemplul de
mai sus, este afișată o imagine atât atunci când umiditatea este setată la o
valoare mai mică de 40%, cât și atunci când este setată la peste 40%?

S-ar putea să vă placă și