Us podeu fer una idea del que podem fer amb la llibreria de pins si consulteu la referència:
https://makecode.microbit.org/reference/pins
Hem vist que podem simular els programes, que els podem descarregar a la micro:bit i provar-los.
Micro:bit no sempre vol treballar en soledat. Vol interactuar amb sensors, i això ho farà amb la llibreria pins. És així com micro:bit pot reconèixer i processar dades del món que ens envolta.
Per a treballar aquesta unitat convé tenir a mà un esquema dels pins de la targeta. També hem de recordar que si volem utilitzar la matriu de leds, no podem fer servir els pins 3, 4, 6, 7, 9,i 10. Hi ha una funció de la llibreria led que permet desactivar els leds del display: activar leds falso.
Els valors que llegim estan compresos entre 0 i 1023, i els pins que podem utilitzar són els que ens permet seleccionar makecode(fixeu-vos que al costat del nom del pin, a la imatge de sota, hi ha un triangle blanc).
Us poso la imatge corresponent a l'esquema de muntatge, fet amb el Fritzing.
Som-hi!!!
https://www.inventable.eu/paginas/ResCalculatorSp/ResCalculatorSp.html
Variant el valor de la resistència d'un potenciòmetre, connectant al comú el pin 0, podem variar així el valor de l'entrada analògica, en quest cas del pin 0.
Recordeu que els pins analògics són: 0, 1, 2, 3, 4, 10.
Els valors llegits estan inclosos dins l'interval [0,1023].
Definim la variable analogica i la mostrem per la matriu leds cada segon.
Proveu amb un potenciòmetre de de 10K o de 100K
També podeu, per a fer la pràctica, connectar directament el potenciòmetre a la shell amb un cable femella-femella. Si ho feu amb la placa protoboard i no us funciona o l'interval és més baix, vol dir que la connectivitat de la placa no és gaire bona.
En aquest cas deixem les pauses d'un segon. Els temps els regulem per programa.
Noteu la diferència entre un senyal analògic del potenciòmetre de la pràctica anterior, (considerem tots els valors del senyal) i un senyal digital (0 o 1), o hi ha tensió al pin o no n'hi ha.
En aquesta pràctica veiem que si el pin 0 està a nivell alt (1), incrementem la variable comptador. La idea és comptar els polsos i mostrar el seu valor a la matriu de leds. Si no volem aturar el compteig, només cal que mantinguem el polsador polsat (a un 1 lògic).
Si les connexions de la placa protoboard són correctes, hem de poder regular de 0 a 100. si poseu 1023 enlloc de 100, seria equivalent a no fer el mapejat. Descarregueu el programa a la micro:bit amb els dos valors.
En un principi, no li veureu utilitat a aquesta funció. En canvi, és molt habitual el seu ús. El zero correspon als 0V, i el 1023 als 3V, que és el voltatge màxim de sortida de micro:bit.
Quan fem el mapejat, fem una altra proporcionalitat (o una altra regla de tres simple).
En pricipi, un potenciòmetre de qualsevol valor òhmic ens permet tenir 1023 nivells diferents. Si volem un rang de 0 a 100, o de 0 a 10, ho fem amb el mapejat. Amb un pote de 10 KOhm podem fer la majoria de les aplicacions.
Només us voldria posar un exemple on s'aplica el mapejat. Es tracta d'una resistència LDR (Light Dependent Resistor). Segons la LDR, qual li arriba poca llum, la resistència pot arribar a superar els 50 KOhms. En canvi, amb molta llum, no té gaire més de 50 Ohms (1000 vegades menys). Si volem regular això en una escala de 0 a 100, o de 0 a 2000, ens cal el mapejat. Ho podríem aplicar per a fer instruments de mesura, en aquest cas un luxòmetre. Tot seguit en veiem un exemple.
Un cop ja tenim la llum, mesurem-la. Ho fem amb una LDR i amb un divisor de tensió. El voltatge de P2 a massa dependrà del voltatge de la LDR, i aquest dependrà de la llum que li arriba.
Podem veure que la sensibilitat del muntatge és prou bona, tapant la llum que incideix a la LDR amb la mà i després amb roba, per exemple.
Pel que fa al programa, veieu que el servo anirà cap a l'angle que li marquem.
El servo que farem servir és un SM-2309S. Si poseu al cercador de google:
Data sheet SM-2309S, trobareu aquest full de característiques tècniques, on us diu quin parell té a 4,8V i a 6V, i quin és l'interval de rotació, etc. Però la micro:bit dóna 3V, cosa que vol dir que, si fem funcionar el servo amb càrrega, la farem patir si la volem engegar a sense alimentació externa de 5V. Podeu provar de posar-hi una pila de petaca (4,5V), per exemple. Data sheet vol dir fitcha tècnica.
Anem a veure ara les connexions del servo. El servo té tres cables:
1 - GND (s'indica al plàstic del connector)
2 - Senyal (el servo rep les instruccions si les connectem al pin 0 (P0) de la micro:bit, tal com veiem en el programa
3 - 5V VCC (el data shield ens diu que també el podem connectar a 6V)
Si el servo té un cable negre i un de vermell, són el +Vcc i el GND. L'altre és el senyal.
Munteu el circuit a la protoboard.
Una marca que és cosa fina pel que fa a la regulació de gir és Futaba. Escriviu al google Data Sheet Futaba S3003. És un bon servo i té una bona relació qualitat preu. Si no voleu sorpreses, si se us fa malbé un servo del kit, aposteu per marques de més qualitat. Us estalviareu molts mals de cap. Cerqueu per internet i trieu.
Un altre que usem en kits micro:bit és el SM-S2309-S. Cerqueu-ne el data sheet. Ho haureu de fer sovint això. Concretament aquest servo ja porta un esquema enganxat al mateix servo; però si es perd, doncs data sheet.
"Al truku dal Mandruku"
Quan jo estudiava, hace mucho tiempo ha, fèiem servir aquesta expressió quan la cosa tenia truc. El Mandruku, que encara és viu i aneu a saber si etern, encara és un mag d'alt nivell. Is magic!!!
Doncs bé, aquests muntatges amb els servos tenen varis trucs. En aquest cas, tant aquesta pràctica com al següent en tenen varis:
I una altra cosa...
Aquest programa ens mostra un moviment del servo en forma seqüencial ininterrompudament.
Al igual que en el muntatge anterior, podeu simular aquest muntatge.
Si proveu això amb un servo del tipus microservo 9g, de KeyStudio, i baixeu la tensió a 2,4 V veureu un gir continu. Si pugeu la tensió a 4 V o més (si teniu alimentació externa, arribeu fins als 6 V) , veureu com el servo actuarà de 0 a 180º, i funcionarà com en el simulador. Polsa reset per reiniciar la seqüència.
Fixeu-vos amb el bucle While (mentres). Mentre és cert, ejecutem. Si enlloc del programa no canviem el verdadero per un falso, el programa entrarà en un bucle infinit.
És una manera de regular l'amplada d'un senyal. Això vol dir que l'energia que rebrà la càrrega (consum) la podem regular. Per tant, si hi connectem un led o un motor a la càrrega, podrem regular la lluminositat (regulador de llum) o la velocitat (regulador de velocitat). A internet podeu trobar esquemes de com fer-lo usant electrònica (amb el mític 555 i un MOSFET com a base, per exemple). Però amb la micro:bit (i també amb Arduino) tenim pins que tenen aquesta particularitat.
L'objectiu és regular una sortida analògica.
Suposem una ona quadrada periòdica, Suposem que talt=tbaix (el temps a nivell alt és el mateix que el temps a nivell baix). Si el temps a nivell alt augmenta i no varia el període (el fixarem per programa), el temps a nivell baix disminueix. Si la càrrega és un led, farà més llum. I a la inversa.
Pel tal de regular l'encesa i l'apagada, pots jugar amb els paràmetres. Per exemple, substitueix la pausa del bucle For per 10 ms.
El bucle vermell ens indica, com es pot intuir llegint, que quan polsem el pin P0 ha de fer el que hi ha a dins del bucle.
Creem una variable ton que ens mostrarà, en segons, el temps que el polsador es manté polsat.
Si al bucle, enlloc de alta posem baja, la pantalla ens mostrarà el temps que el polsador NO està polsat.
És millor que trunquem el resultat, ja que si no ho fem ens poden sortir per pantalla una tirallonga de decimals.
AVÍS PER A NAVEGANTS: NO es poden simular, a dia d'avui, els blocs de la llibreria pins. CAL MONTAR-LOS.
Si mirem el programa, P0 és una entada digital. Les instruccions del bloc s'executaran si es detecta un flanc.
En el programa, alta vol dir que el que les instruccions interiors s'executaran quan P0 estigui en estat alt. Es poden utilitzar tots els pins, del P0 fins el P20, excepte el 17 i el 18.
La durada del pols (en us) és de l'últim pols. Ens serà de molta utilitat saber quant de temps un/a receptor/càrrega ha estat connectat/desconnectat.
Aquest programa utilitza la llibreria de so. Ens permet reproduir un determinat to i durant un cert temps. Ho hem fet amb un brunzidor però també es poden fer servir els auriculars, connectant-los entre P0 i massa amb pinces cocodril.
Els tons els reproduïm per P0, pin on hi connectem un altaveu. Us recomano que utilitzeu sempre aquest pin. El podeu canviar i funciona, però a la vegada que sona l'altaveu s'il·luminen tres leds de la matriu. P0 és el pin per defecte per a treure so.
Fixeu-vos en la pausa d'un segon. Necessària per escoltar el so a l'altaveu.
El silencio(ms) és el temps destinat per tal que no surti cap so pel pin. Si voleu podeu provar 1/16, que és el temps més baix.
Proveu les instruccions de la llibreria, prèvia lectura de la referència que ofereix micro:bit. És interessant la instrucció melodia.
P15_Biestable
P16_Sistema combinacional
Dissenyeu un sistema d'obertura d'una porta de manera que:
P17_Nivell de llum
P18_Lectura/escriptura de dades