Els servomotors, o servos, són un tipus de motors que permeten controlar amb molta precisió l'angle de gir de l'eix. En aquests motors, el més important no és la velocitat de gir, si no l'angle. Son molt utilitzats en projectes makers per fer girar objectes, portes, rodes, etc...
En aquesta pàgina de Programarfacil explica el seu funcionament. I Lluís Llamas, en aquesta entrada.
Els servos que nosaltres utilitzarem tenen un angle de gir comprés entre 0º i 180º.
Utilitzen tres cables: el de tensió, el GND i el de senyal que es connecta a un pin digital.
Per programar l'angle de gir d'un servomotor amb ArduinoBlocks, utilitzem la següent instrucció, on indiquem l'angle de gir, el pin on està connectat i un petit temps de retard.
Ara sí, després d'aquestes explicacions prèvies i necessàries, anem a fer el muntatge:
Components per al muntatge:
Una Placa Controladora Arduino Uno
Servomotor
Connectors
Esquema del muntatge:
Programació del muntatge
Consola del port Sèrie
En aquesta ocasió farem servir el port sèrie per enviar quin és l'angle de gir del servomotor i al mateix temps mostrarem una línia indicant de quin és el valor enviat. Recordar que el port sèrie, es troba a l'apartat "Consola" i que per poder entrar, cal que el programa estigui pujat a la placa i que el cable USB estigui connectat.
Per tal d'enviar l'angle de gir, cal introduir el valor a la casella i pitjar "Enviar". Recorda que el servo treballa amb valors compresos entre 0 i 180, per tant, introduir altres valors pot provocar que no funcioni o no ho faci correctament.
Grava un petit vídeo d'uns 10-20 segons on mostris i expliquis la programació i es vegi el muntatge anterior en funcionament. Penja la tasca a l'apartat corresponent del Classroom.
Al nostre muntatge anterior, afegirem un potenciòmetre per tal de regular el gir del nostre servomotor.
Què és un potenciòmetre?
Un potenciòmetre és un dispositiu que permet variar la seva resistència de manera manual, entre un valor mínim Rmin, (normalment 0 Ohms) i un valor màxim Rmax. Valors de la resistència dependrà del model i del fabricant, però valors habituals per a treballar amb Arduino són 5k, 10k o 20k ohms.
Els potenciòmetres els podem trobar a casa en aparells antics per regular el volum d'un equip de música, la rodeta del microones per regular la potència, al forn per regular la temperatura, als llums que permeten regular la intensitat, etc.
El potenciòmetre es tracta d'un sensor analògic que retorna valors entre 0 i 1023. Tenen tres pins de connexió, com es pot veure a l'esquema següent, un VCC o alimentació, un Out o pin de senyal que connectarem al pin analògic de la placa d'Arduino i finalment el GND o negatiu.
A vegades, els valors que obtenim d'una lectura d'un pin, com un sensor, poden estar en una escala determinada, i els hem de convertir a un altre rang per poder-los fer servir.
Per exemple, podem tenir un muntatge on amb un potenciòmetre és l'encarregat de regular la intensitat d'un LED. Com acabem de veure, el potenciòmetre retorna valors compresos entre 0 i 1024, però el valor de la lluminositat que li podem donar al LED, està en el rang de 0 a 255. Per tant, cal transformar el valor del potenciòmetre a l'escala de valors del LED perquè funcioni correctament.
La funció "mapejar" és l'encarregada de realitzar una regla de tres, per transformar un valor de l'escala d'entrada a l'escala de sortida.
Com podem veure a la següent imatge, la funció "mapejar" disposa de 5 caselles que cal omplir. La primera és el valor d'entrada habitualment introduït amb una variable, en aquest cas la variable "Potenciometre", les dues caselles següent corresponen al valor mínim i màxim de l'escala del de "Potenciometre" i els dos últims als valors mínim i màxim de l'escala de sortida, que en aquest cas correspon a la intensitat del LED, que també és guardada a la seva variable "IntesitatLED".
Components per al muntatge:
Una Placa Controladora Arduino Uno
Un Servomotor
Un Potenciòmetre
Connectors
Esquema del muntatge:
Programació del muntatge:
Fes la programació corresponent al muntatge del Repte 10, fent servir la funció mapejar, tenint en compte les escales de treball corresponents del potenciòmetre i el servomotor. En aquesta programació no cal mantenir la comunicació pel port sèrie, per tant, si voleu la podeu eliminar!
Entrega:
Grava un petit vídeo d'uns 20 segons on mostris i expliquis la programació i es vegi el muntatge anterior en funcionament. Penja la tasca a l'apartat corresponent del Classroom.