Omet navegació

MD7.4 Mission Zero. Picam codi

 

Per començar a picar codi a l'emulador Astro Pi serà fonamental conèixer la sintaxi específica de la llibreria Sense-HAT. Aquí tens l'enllaç, per si vols fer qualsevol consulta. Així i tot, en aquest apartat et mostrarem com pots fer les accions bàsiques que necessitaràs per resoldre el repte Mission Zero.

Funció sense.show_message("text_string")

Aquesta funció és l'equivalent al que has conegut com a print() a l'inici de la formació. El que aconseguirem és imprimir, en la matriu LED de la unitat Astro Pi, el missatge que escriurem dins d'aquesta funció.

Exemple 1. Prova el següent codi al teu emulador:

# Importar les llibreries

from sense_hat import SenseHat
from time import sleep

# Configurar el Sense HAT

sense = SenseHat()
sense.set_rotation(270) # Rotació a 270 graus per defecte


# Mostrar text

sense.show_message("Hello world")

⚠️Recorda que hauràs de pitjar el botó RUN de l'emulador per veure si el programa funciona o no.

Exemple 2. Igual que hem vist anteriorment, podem definir unes variables (en aquest exemple seran numèriques), i demanarem que s'imprimeixi en la matriu el resultat.

# Importar les llibreries

from sense_hat import SenseHat
from time import sleep

# Configurar el Sense HAT

sense = SenseHat()
sense.set_rotation(270) # Rotació a 270 graus per defecte

# Variables

x = 10
y = 5
resultat = x * y

# Mostrar resultat

sense.show_message(str(resultat)) # Modificam el tipus de dada de resultat STR per a que es pugui imprimir en pantalla

⚠️ ATENCIÓ! Per poder imprimir el resultat d'aquesta operació, hem necessitat modificar el tipus de dada numèrica i ara que sigui cadena de text, si no, no es podria imprimir a la matriu.

❓Però... es pot modificar el color del missatge?

Per defecte, el color del text serà blanc i el fons serà negre. Així i tot, aquests paràmetres es podran modificar afegint les següents instruccions dins la funció anterior.

sense.show_message("text_string", text_colour = [0, 0, 0])

Si afegim el paràmetre --> text_colour = [0, 0, 0]; al codi de l'exemple 1, i modificam els valors de dins dels claudàtors pels quals fan referència al color que volem emprar, una vegada executam el codi, veurem com aquest es modifica.

Exemple 1.1

# Importar les llibreries

from sense_hat import SenseHat
from time import sleep

# Configurar el Sense HAT

sense = SenseHat()
sense.set_rotation(270) # Rotació a 270 graus per defecte


# Mostrar text

sense.show_message("Hello world", text_colour = [154, 205, 50]) # Ara el text s'imprimirà en color groc verdós

Ara provarem de modificar el color del resultat de l'operació que hem projectat a l'exemple 2.

Exemple 2.1

# Importar les llibreries

from sense_hat import SenseHat
from time import sleep

# Configurar el Sense HAT

sense = SenseHat()
sense.set_rotation(270) # Rotació a 270 graus per defecte

# Variables

x = 10
y = 5
resultat = x * y

# Mostrar resultat

sense.show_message(str(resultat), text_colour = [154, 205, 50]) # Modificam el tipus de dada de resultat STR per a que es pugui imprimir en pantalla.
💡Depuram el codi

Com pots observar, l'última línia de codi s'amplia quantes més indicacions li volem donar. Tenint en compte el llibre d'estil a l'hora de picar codi, es recomana que la longitud de línia de codi no superi en cap cas els 79 caràcters. És per això que et proposam la següent solució:

Per reduir la llargada de l'última línia de codi, podem modificar el paràmetre text_colour = [0, 0, 0] per una variable amb aquest valor. Ara veuràs com quedarà el codi:

Exemple 1.2

# Importar les llibreries

from sense_hat import SenseHat
from time import sleep

# Configurar el Sense HAT

sense = SenseHat()
sense.set_rotation(270) # Rotació a 270 graus per defecte


# Variables

text = "Hello world" # Text a imprimir
n = [154, 205, 50] # Color groc verdós

# Mostrar text

sense.show_message(text, text_colour = n)

Si et fixes, hem definit dues variables: text i n. Amb la primera hem emmagatzemat el text que volem imprimir, i amb la segona el color d'aquest text.

sense.show_message("text_string", back_colour = [0, 0, 0])

Seguint el mateix patró, per modificar el color del fons emprarem el paràmetre --> back_colour = [0, 0, 0]. Com que ja sabem les normes per escriure bé el codi, et mostrarem l'exemple 1.2 amb aquest segon paràmetre també introduït mitjançant una variable.

Exemple 1.2

# Importar les llibreries

from sense_hat import SenseHat
from time import sleep

# Configurar el Sense HAT

sense = SenseHat()
sense.set_rotation(270) # Rotació a 270 graus per defecte


# Variables

text = "Hello world" # Text a imprimir
n = [154, 205, 50] # Color groc verdós que emprarem pel text
f = [25, 25, 112] # Color blau mitjanit que emprarem pel fons

# Mostrar text

sense.show_message(text, text_colour = n, back_colour = f)
🔴 Ara et toca a tu...

Prova d'escriure unes línies de codi que permetin imprimir en pantalla un text amb un color de text i de fons diferent del que ve per defecte. Recorda que serà molt més simple si defineixes els colors amb les variables corresponents.

Creado con eXeLearning (Ventana nueva)