25 de febr. 2015

Leds tricolor



Els leds tricolor o leds RGB són una agrupació de tres leds en una sola peça. Porten un led vermell, un de verd i un de blau de manera que podem aconseguir diversitat de colors amb un únic led.


Podem trobar leds tricolor a qualsevol botiga d'electrònica. La configuració més freqüent és amb càtode (negatiu) comú, de manera que tenim una pota per a cada un dels tres colors i una per al negatiu. També existeixen amb l’ànode (positiu) comú. Cal consultar el catàleg per saber quina pota és cada una. Els connectarem amb el càtode a GND i la pota corresponent a cada color amb la seva resistència a una de les sortides del microcontrolador. En alguns models les característiques dels tres colors són iguals però en molts casos cada color té unes característiques diferents que poden fer que les tres resistències necessàries no siguin del mateix valor.


Els leds tricolor no només ens permeten obtenir els tres colors que incorporen (vermell, blau i verd) sinó alguns colors més. En teoria, combinant aquests tres colors (amb diferents intensitats) podem obtenir quasi infinits colors. Si els connectem a una sortida binària només podem tenir els colors activats o desactivats (sense variar-ne la intensitat) i, per tant, el nombre de possibles colors és reduït. En principi, disposem dels de la taula següent en la que un 1 indica que la sortida està activada i un 0 que està desactivada.


Vermell (R) Verd (G) Blau (B) Color
1 0 0 Vermell
0 1 0 Verd
0 0 1 Blau
1 1 0 Groc
1 0 1 Magenta
0 1 1 Cian
1 1 1 Blanc

Alternant de forma ràpida dues o més combinacions podem fer alguns colors intermedis; per exemple:

Vermell (R) Verd (G) Blau (B) Color
1 0 1 Morat
0 0 1


Si connectem el led tricolor a tres sortides analògiques (PWM) podem fer qualsevol color a base de posar els codis RGB a les tres sortides corresponents. Si volem filar una mica prim amb els colors, és convenient triar leds que tinguin les mateixes característiques per als tres colors i es puguin posar tres resistències iguals. Si no és així, es fa difícil aconseguir que els tres colors facin la mateixa llum i s'acaba notant.

18 de febr. 2015

Definició de valors constants



Quan fem programes sovint hem de posar valors que es mantindran constants durant tot el programa. A vegades aquests valors es repeteixen en diversos punts del programa i si després canviem d’idea pot ser complicat canviar-lo a tots els punts. Fixem-nos en el següent programa que és una variant de l’exemple del polsador.

Programa

Hem indicat que el polsador està connectat a la pota 6 i el led a la pota 7 però fent servir metodologies diferents. Per al led hem fet servir una variable que ocuparà un espai a la memòria del microcontrolador. En canvi, per al polsador hem fet una definició de valor constant (instrucció #define). Quan enviem el programa la paraula pols serà substituïda pel valor 6 a tots els llocs on surti i, per tant, no hi haurà cap variable pols ni s’ocuparà memòria.

En el programa de la melodia vam escriure les freqüències de les diferents notes. Però si la melodia fos una mica llarga hauríem d’anar-les escrivint a totes les instruccions. En canvi, podem fer unes definicions de constants per no haver-les d’estar cercant. En el programa següent s’han definit totes les octaves que podem fer sonar.

Programa

Atesa la llargada del bloc de definicions, no el veiem tot sencer a la imatge. En aquest fitxer de text hi ha tota la definició completa que podem copiar i enganxar al nostre programa.

11 de febr. 2015

Posem una melodia


No és gens difícil (encara que pot ser entretingut de programar) posar una melodia als nostres projectes de tecnologia vestible. Ens caldrà un element nou anomenat brunzidor piezoelèctric.

Els brunzidors piezoelèctrics són com petits altaveus que si s’alimenten amb un senyal elèctric d’una determinada freqüència produeixen un so d’aquela freqüència. Els brunzidors no són altaveus, per tant no espereu un so d’alta qualitat. A més, només podem enviar-los una freqüència concreta, per tant no espereu melodies polifòniques com les que permeten els telèfons mòbils actuals.

Hi ha diversos models al mercat de brunzidors piezoelèctrics. Alguns tenen polaritat (una pota és el positiu i l’altra el negatiu) i altres no en tenen. Nosaltres hem triat aquest perquè és molt pla i, per tant, senzill d’integrar en plecs o vores dels teixits.

Brunzidor



El control dels brunzidors es fa des d'una sortida digital del microcontrolador posant-li una resistència de 100 ohm (100 Ω) com a la figura.
Connexió del brunzidor


Per fer sonar una nota fem servir la instrucció tone en la que indiquem la pota on està connectat el brunzidor,  la freqüència (en hertz) que volem fer sonar i la durada de la nota en mil·lisegons. Atès que la freqüència que posem a la funció tone ha de ser un nombre enter, no podrem entrar els valors exactes i haurem de posar l’enter més proper. En el següent programa fem sonar primer un La durant mig segon i després un Do durant un altre mig segon i després aturem el so durant dos segons. Després es tornarà a repetir. El brunzidor està connectat a D12.

Programa

La taula següent mostra les freqüències que corresponen a l’octava d’ús més habitual. Els noms de les notes es mostren en les dues notacions:

Nota Freqüència teòrica (Hz) Valor recomanat (Hz)
do3 C4 261,626 262
do#3 re b3 C#4 Db4 277,183 277
re3 D4 293,665 294
re#3 mi b3 D#4 Eb4 311,127 311
mi3 E4 329,628 330
fa3 F4 349,228 349
fa#3 sol b3 F#4 Gb4 369,994 370
sol3 G4 391,995 392
sol#3 la b3 G#4 Ab4 415,305 415
la3 A4 440,000 440
la#3 si b3 A#4 Bb4 466,164 466
si3 B4 493,883 494
do4 C5 523,251 523


4 de febr. 2015

Lluminositat aleatòria



En molts projectes ens pot interessar que determinades coses succeeixin de forma aleatòria. En aquest exemple farem que la lluminositat d’un led prengui valors aleatoris. Per obtenir un valor aleatori cal emprar a la funció random. Si ho proveu, veureu que a primer cop d’ull teniu uns valors aleatoris però que si ho repetiu diverses vegades veureu patrons de repetició. Normalment els generadors de nombres aleatoris no són del tot aleatoris i, per tant, donen lloc a uns patrons repetitius. En llenguatge matemàtic se’ls anomenen nombres pseudoaleatoris.

Els generadors de nombres pseudoaleatoris solen admetre la possibilitat de donar una llavor a partir de la qual es generen els nombres. Si la llavor és diferent podem obtenir patrons diferents. Combinant una llavor diferent amb un generador de nombres pseudoaleatoris arribem a obtenir uns valors que poden considerar-se aleatoris. Per tenir una llavor que variï és molt habitual fer servir una entrada analògica que no tingui res connectat. La llavor es defineix amb la funció randomSeed. Les entrades analògiques les comentarem més endavant. Ara només ens cal agafar una entrada analògica que no fem servir. En l’exemple següent hem agafat l’entrada A7 que correspon a la pota D6; per tant a aquesta pota no hi hem de connectar res.
 
Programa

En la placa Flora l’entrada A7 correspon a la pota D6, la A9 a la D9, la A10 a la D10 i la A11 a la D12.