Ara sí, començarem amb la resolució del repte Mission Zero, on el codi ha de ser capaç de reproduir una imatge personalitzada (o una combinació d'imatges) a la matriu Sense-HAT i que els astronautes puguin gaudir d'aquests missatges.
Per començar aquest apartat amb l'alumnat et recomanam que creis i imprimeixis una matriu 8x8 i tinguis a mà la paleta de colors que us hem facilitat al punt MD6.3 Començam amb el repte. També pots fer servir aquest recurs que trobaràs a la pàgina oficial del repte, i que tens aquí enllaçat:
Recorda que pots emprar la paleta de colors que es mostra a la plantilla anterior, per fomentar la compartició de dissenys i codi, però també pots editar-los segons les teves necessitats. Això sí, no modifiquis els noms de les variables dels colors, ara sabràs per què.
Fixa't en la imatge anterior. Com veus, el dibuix (que sembla un dinosaure) a més de tenir les quadrícules pintades també té escrites unes lletres, que fan referència al codi de variables definit a la missió Astro Pi. És necessari que tu segueixes també aquest sistema de disseny i codificació. Aquí tens un altre exemple de disseny (recorda que en tens altres al web del desafiament):
Per poder imprimir aquest disseny a la matriu LED del mòdul Sense-HAT de la unitat Astro Pi, el primer que hauràs de fer és definir, en el teu codi de programa, les variables dels colors (a, c, n, q, t), i establir la variable que representarà la matriu. Com veus al següent exemple, la variable de la imatge (la matriu) s'ha de definir afegint tota la seqüència de colors segons la seva posició en la matriu. Si el nom de les variables és massa llarg, ens serà més complicat escriure el codi i tardarem més.
# Importar les llibreries
from sense_hat import SenseHat
from time import sleep
# Configurar el Sense HAT
sense = SenseHat()
sense.set_rotation(270)
# Afegir variables de color
a = [255, 255, 255] # Blanc
c = [0, 0, 0] # Negre
n = [154, 205, 50] # Groc verdós
q = [255, 255, 0] # Groc
t = [255, 140, 0] # Taronja
# Afegir variable imatge (matriu)
cactus = [
q, q, c, n, c, c, a, c,
q, c, c, n, c, a, a, a,
c, n, c, n, c, c, c, c,
c, n, n, n, c, n, c, c,
c, a, n, n, n, n, c, c,
a, a, a, n, c, a, a, a,
c, c, c, n, a, a, a, c,
t, t, t, t, t, t, t, t]
sense.set_pixels(imatge)
Com hem vist anteriorment, és fonamental conèixer la sintaxi específica de la llibreria Sense-HAT per poder imprimir correctament a la matriu LED de la unitat Astro Pi. Ja coneixem la funció sense.show_message() per imprimir text a la matriu, ara, és l'hora d'aprendre la funció sense.set_pixels().
L'objectiu d'aquesta funció és el mateix, imprimir en pantalla el que s'ha emmagatzemat en la variable imatge. Per emprar-la no té cap misteri, afegirem la funció en finalitzar el codi, fixa't en l'exemple anterior:
# Importar les llibreries
from sense_hat import SenseHat
from time import sleep
# Configurar el Sense HAT
sense = SenseHat()
sense.set_rotation(270)
# Afegir variables de color
a = [255, 255, 255] # Blanc
c = [0, 0, 0] # Negre
n = [154, 205, 50] # Groc verdós
q = [255, 255, 0] # Groc
t = [255, 140, 0] # Taronja
# Afegir variable imatge (matriu)
cactus = [
q, q, c, n, c, c, a, c,
q, c, c, n, c, a, a, a,
c, n, c, n, c, c, c, c,
c, n, n, n, c, n, c, c,
c, a, n, n, n, n, c, c,
a, a, a, n, c, a, a, a,
c, c, c, n, a, a, a, c,
t, t, t, t, t, t, t, t]
# Mostrar la imatge a la matriu LED
sense.set_pixels(cactus)
🔴 Ara et toca a tu...
Prova d'escriure unes línies de codi que permetin imprimir en pantalla una imatge. Si no tens idea per on començar, prova de fer una recerca en xarxa, i a veure què aconsegueixes!