Visualitza el volum del so
Gradient de colors
En aquesta unitat farem una barra de colors, per representar el volum del so. La tira de Neopíxels s'anirà il·luminant del verd al vermell, tot passant pel groc.
Una manera de fer això seria comprovar el número de LED i assignar-li un color específic, però és un mètode poc eficient i gens escalable.
És possible obtenir un color (o més aviat, els valors RGB d’aquest) a partir d’un sol valor fent servir un bloc disponible a la llibreria Graphics > HSV Colors.
HSV a RGB
Aquest bloc ens permet obtenir un color especificant el matís o to (hue), saturació (saturation) i brillantor o valor (value).
Si fixem els valors de saturació i brillantor al màxim (100) només cal que variem el matís (H) de 0 a 360 per obtenir qualsevol color.
El resultat que obtenim és una llista amb els valors RGB del color. Els valors de saturació i brillantor definiran respectivament el valor mínim i màxim que poden obtenir aquests.
Repte 1: troba el rang de valors per passar de vermell a verd
Solució al repte 1
Verd
Groc
Vermell
Obtenir color desde valors RGB
Una vegada tenim la llista de valors RGB d’un color haurem d’extreure’ls un a un fent servir el bloc element _ de _ que tenim a Dades.
Després utilitzarem el bloc que ens permet obtenir el valor numèric d’un color fent servir els seus valors RGB.
Creació de blocs
Tot i que el bloc que hem format abans es pot col·locar a dins del que encèn el NeoPíxel, visualment és una mica aparatós.
Per a sol·lucionar això podem mirar de crear un bloc on aquest procés d’obtenció del color quedi amagat anant a Els meus blocs i fent clic a Crea un bloc reportador.
- Després de posar-li nom (per exemple “color amb matís _”) veurem que apareix el bloc sota el botó anterior a més de la definició d’aquest. El guió baix es a servir per indicar que cal un paràmetre.
- Clicarem al nom de la variable args per canviar-li el nom i a la fletxa del costat per configurar el tipus de dada que rebrà (nombre/text, booleà o color)
Ara ficarem a sota de la definició el bloc que hem format abans per obtenir el color. Necessitarem el bloc retorna _ que tenim a la categoria Control.
Després arrossegarem la variable a la primera ranura dels blocs RGB amb to _ per passar-li el valor que introduïrem.
Aplicació del bloc nou
Només queda fer servir aquest bloc en el programa de la unitat anterior, per tal d’obtenir el gradient de colors.
Com que rang que volem és des de 0 fins a 120 i tenim 10 LEDs, haurem de fer servir un factor de 12.
- Però, l’ordre dels colors és el correcte?
Repte 2: inverteix l’ordre del gradient per a que comenci en verd i acabi en vermell
Solució al repte 1
Micròfon
Ara canviarem el potenciòmetre per un micròfon, de manera que el volum del so que rebrà el veurem reflectit en el número de NeoPíxels il·luminats.
Per fer servir el micròfon haurem d’obrir la llibreria Sensing > Microphone.ubl
Últims passos
Finalment, només cal fer servir el bloc volum per captar el nivell del so que rep el micròfon.
Podem “controlar” el nivell de sensibilitat d’aquest reduïnt el factor de divisió de 1023 a un valor més petit, per exemple a la meitat.
⬅️ Activitat anterior | Activitat següent ➡️ |
---|
© von Citilab Edutec 2019-2022.
This work is licensed under a CC-BY-SA 4.0 license.