Aquesta activitat forma part del Curs del Citilab. Fes-li una ullada!
Nivell de bombolla
Plaques: Citilab ED1, micro:bit, micro:STEAMakers, M5Stack-Core i d'altres amb acceleròmetre i pantalla matriu de leds.
Acceleròmetre
- Un altre sensor que disposa la placa és l’acceleròmetre. Amb aquest sensor podem conèixer la inclinació que té la placa en qualsevol dels tres eixos (X,Y i Z).
- El rang de valors en aquests és de -100 a 100, donant 0 en els eixos X i Y si la placa està totalment plana respecte a terra.
X | Y |
---|---|
![]() |
![]() |
Repte 1: prova de fer el mateix però amb l’eix Y, és a dir, dibuixant un punt cap al costat on estigui inclinada la placa
Solució al repte 1
Mapeig de valors
- Si ara volguéssim fer que s’encengués qualsevol punt de la pantalla depenent de la inclinació X i Y, necessitaríem 25 blocs semblants als que acabem de fer!
- Podem pensar una solució més eficient mirant de mapejar (convertir des d’un rang a un altre) el valor de la inclinació en X i Y amb el número de fila i columna del LED a encendre.
X | Y |
---|---|
-100 | 1 |
0 | 3 |
100 | 5 |
D’aquesta manera només ens caldrien els blocs encén x _ y _
i apaga x _ y _
per controlar els LEDs.
Repte 2: troba la fórmula per transformar el valor d’inclinació X o Y (-100 a 100) a un valor de fila o columna de la pantalla (1 a 5)
Solució al repte 2
Encendre i apagar LEDs
- Ara que ja tenim la fórmula, podem fer-la servir per encendre un LED i també apagar-lo immediatament (ja que si no es quedarien tots encesos!).
- Si ho provem, veurem que de totes maneres tenim aquest problema, ja que és possible que no s’encengui i s’apagui el mateix LED (el valor d’inclinació entre un bloc i l’altre pot variar!).
- Per aquesta raó haurien de guardar en algun lloc el valor resultant de la fórmula, i per això estan les variables.
Variables
Serveixen per guardar temporalment un valor durant l’execució d’un programa.
Primer crearem una variable per guardar el valor x, tot anant a la categoria Variables i prement el botó Crea una variable. Repetirem el mateix procés per crear la variable per guardar la y.
- Finalment, només caldrà fer servir el bloc
assigna _ a _
per guardar les fórmules corresponents a les variables.
Llibreria TFT
Plaques: Citilab ED1, M5Stack-Core i d'altres amb acceleròmetre i pantalla TFT
- Podem anar més enllà millorant la visualització de la bombolla, fent servir la llibreria TFT disponible a la carpeta Gràfics i pantalles.
- Aquesta llibreria ofereix diferents blocs per representar formes geomètriques, a més de text.
- En el nostre cas podem fer servir el rectangle o el cercle per representar la bombolla, amb els que podem configurar la seva mida i color.
Mapeig de valors (II)
- Ara ja no ens serveix la fórmula que hem fet servir abans, ja que ara podem fer servir qualsevol píxel de la pantalla.
- Per la Citilab ED1 els valors de la X i la Y van de 0 a 127.
Repte 3: troba la fórmula per transformar el valor d’inclinació X o Y (-100 a 100) a un valor de fila o columna de la pantalla (1 a 5)
Solució al repte 3
Dibuixar la bombolla
- Com en el cas anterior, haurem de guardar cada fórmula a la variable corresponent.
- Si fem servir el bloc de cercle, només cal especificar-li el radi i el color. Una vegada dibuixat, podem “esborrar-lo” dibuixant-lo de nou però de color negre.
- És recomanable netejar la pantalla abans de tot, ja que així ens assegurem que no hi haurà res que s’hagi pogut dibuixar abans.
Reescalar
- L'operació de reescalar és habitual quan es vol passar d’un rang de valors a un altre. Per això MicroBlocks inclou un bloc que la fa automàticament. És necessari activar el mode avançat al menú de configuració
.
Aquesta activitat forma part del Curs del Citilab. Fes-li una ullada!
⬅️ Activitat anterior | Activitat següent ➡️ |
---|
© por Citilab Edutec 2019-2022.
Este trabajo tiene una licencia CC-BY-SA 4.0.