Visualitza el volum del so

Visualitza el volum del so

per Citilab Edutec

Boards
Plaques:

Citilab ED1

Component/s
Components:

NeoPixels Micròfon
Aquesta activitat forma part del Curs del Citilab. Fes-li una ullada!

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.

Llibreria HSV

Bloc HSV

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.

    Model HSV 1 Model HSV 2
  • 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.

HSV Exemple 1 HSV Exemple 2 HSV Exemple 3

Repte 1: troba el rang de valors per passar de vermell a verd

Challenge 1

Solució al repte 1

Solució repte 1


Verd

Solució repte 1


Groc

Solució repte 1


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.

Element 1 (R)

Element 2 (G)

Element 3 (B)

Després utilitzarem el bloc que ens permet obtenir el valor numèric d’un color fent servir els seus valors RGB.

Color del 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.

Creació de bloc, pas 1 Creació de bloc, pas 2

  • 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.

Creació de bloc, pas 3 Creació de bloc, pas 4

  • 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)

Creació de bloc, pas 5

  • 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.

Creació del bloc RGB amb to _

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.

Gradient de colors

  • 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

Challenge 2

Solució al repte 1

Solució repte 2

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

Llibreria micròfon

Connexió micrófon

Ú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.

Volum del so

Aquesta activitat forma part del Curs del Citilab. Fes-li una ullada!

⬅️ Activitat anterior Activitat següent ➡️

CC-BY-SA

© per Citilab Edutec 2019-2022.
Aquesta obra té una llicència CC-BY-SA 4.0.