En esta clase podrás:
Conocer y manejar instrucciones para el control de servos de posición.
Conocer y manejar instrucciones para el control de servos de rotación.
Los servos (de posición) son motores de corriente contínua con una electrónica incorporada en el propio encapsulado del servo que os permitirán mover elementos del robot DYOR como las pinzas, los brazos, las piernas o la cola (según el tipo de robot que tengáis o estéis pensando en fabricar). La ventaja de un servo, frente a un motor de corriente contínua, es que el primer está controlado en posición, lo que hace realmente sencillo el posicionamiento a determinado ángulo de un eje. Además, el control de los servos es realmente sencillo, a través de una única señal PPM y que Arduino es capaz de generar de forma sencilla.
De forma similar, los servos de rotación contínua, os permitirán controlar la velocidad de giro de un eje. La principal diferencia, por tanto, con respecto a los servos de posición es que pueden girar 360º, siendo idóneos para su uso en las ruedas del robot.
En la última actualización de Facilino, algunas de las instrucciones fueron modificadas ligeramente con respecto a lo que se muestra en el vídeo, pero veréis que es muy sencillo adaptar el contenido del vídeo a la nueva versión, ya que en esencia es lo mismo.
De hecho, una de las funcionalidades que la nueva versión de Facilino incorpora es la posibilidad de desconectar el motor una vez realizado el movimiento. Esto os ahorrará batería, evitará también que el servo esté trabajando en parado y gestionará mejor la energía requerida al Powerbank. No obstante, debéis de conocer a priori el tiempo que queréis aplicar el movimiento, ya que de lo contrario se quedará a mitad de camino, así que os animamos a que experimentéis con esta nueva funcionalidad.
Aquí disponéis de algunos de los ejemplos de Facilino que trabajaremos en los próximos vídeos. Los ejemplos han sido revisados y actualizados a la última versión disponible de Facilino a fecha de comienzo del curso.
Habria que bajarlo y linkarlo
Hola, soy Leopoldo Armesto y en este vídeo vamos a enseñaros
el uso de instrucciones para lo que sería el control de servos
en Facilino. Mirar, concretamente vamos a hacerlo
para lo que sería el control de servos de posición, los servos
estándar y los servos de rotación continua, los servos de
360º, que se controlan en velocidad, vale.
Este tipo de servos son muy habituales en muchos de los
proyectos de arduino y, bueno, pues los vamos a poder encontrar,
las instrucciones para poder controlarlas, los vamos a encontrar
aquí dentro la categoría movimientos, en motores, vale, concretamente
tenemos esta instrucción de aquí que sería para lo que sería
el control de servos de rotación continuas que, bueno, pues
está asociado a una rueda en este caso, vale, porque típicamente
son utilizados por los robots, o los siervos de
posición en este caso en los que, bueno, pues vamos a poder
controlar el ángulo de una manilla y que, bueno, también aparece
en otro tipo de robots, muchas otras aplicaciones, vale. Entonces
estos dos servos son realmente, conceptualmente muy similares,
vale, la diferencia principal es que este se mueve en
velocidad, este se mueve en posición, ambos se controlan exactamente
por un solo pin, que es una señal ppm que podemos especificar
aquí y, en este caso, podemos especificar la velocidad o
el porcentaje velocidad que queremos controlarlo, de cero a
cien por cien, o el ángulo que sería en este caso de cero a ciento
ochenta, vale, porque estos servos, noventa quiere decir posición
al medio, cero posición mínima y ciento ochenta
posición máxima. En este servo de aquí podemos además controlar
no sólo la velocidad sino también lógicamente el sentido
de giro de forma que, bueno, si desplegamos el menú aquí nos
aparecerá que el sentido horario o antihorario
o sencillamente queremos parar el servo. Vale, bueno, pues mirar
vamos a ver un par de ejemplos que he preparado aquí
para vosotros en los que vamos a ver cómo utilizar
estos servos, vale; mirar el ejemplo consiste en que vamos
a, primero, bueno, esperar a que pulsemos un botón
que tenemos conectado la salida digital 2 y, bueno, luego
lo que hacemos es entramos en un bucle en el que, bueno pues,
vamos a hacer una iteración entre cero y dieciocho de
forma que lo vamos a multiplicar este valor, lo vamos a multiplicar
después en realidad por diez, con lo que va a ir de cero a
ciento ochenta y este va a ser el ángulo que vamos a especificar
para el servo, vale. Entre instrucción e instrucción del servo,
es importante que metáis al menos un retardo mínimo
de unos veinte milisegundos que es el periodo que necesita
esta señal ppm para ser controlada, vale, aquí tenemos quinientos
milisegundos para que le dé tiempo al servo a posicionarse
en los diferentes ángulos que le vamos especificando. Después
lo que hace es lo mandamos a noventa grados, que es otra vez
la posición de medio, esperamos un pequeño tiempo y lo que vamos
a hacer después es, en la parte del bucle lo que vamos a hacer
es generar un movimiento senoidal, vale, esto es, por ejemplo,
es muy útil cuando, por ejemplo, queremos mover un brazo robot
o la cola de un robot y queremos hacerlo con un movimiento,
por ejemplo, tipo senoidal, de forma que lo que estamos haciendo
en realidad es generar una senoide de amplitud cuarenta y
cinco grados, es decir, que tiene más, menos cuarenta y cinco
grados, a una frecuencia de 0,2 hercios para que vaya
una cierta velocidad para que lo haga pues cada
cinco segundos, la senoidal completa, la fase de la
señal en principio es cero y lo vamos a poner un desplazamiento,
un ofset de noventa grados, quiere decir que el centro de la senoide
está en noventa, vale, para que vaya desde noventa hasta
más menos cuarenta y cinco, vale. Entonces esto lo va a ir haciendo
conforme va pasando el tiempo del programa de arduino que lo
tenemos aquí almacenada la variable de tiempo, vale. Esta variable
de tiempo lo que hemos hecho es simplemente al inicio o el fin,
o mejor dicho, al final del setup lo que hacemos es que
medimos el tiempo del reloj de Arduino, nos lo guardamos
y lo que vamos haciendo es que guardamos en una
variable tiempo, el tiempo actual, menos el tiempo de inicio
para que nos dé siempre un tiempo relativo, vale, y lo que hacemos
es esperar veinte milisegundos entre instrucción e instrucción
del comando de servo. Bien, vamos a ejecutar este
programa para que veáis cómo funciona.
Un segundo, que acabe de cargar el programa, bien pasamos a cámara
cenital y os muestro lo que tenemos. Mirar, tenemos el botón
conectado al pin 2, en realidad tenemos el servo que lo tenemos
aquí que lo tenemos conectado al pin 4 y luego para un
siguiente ejemplo tenemos un servo de rotación continua que
lo tenemos conectado al pin 5, vale, entonces nada, pues este
ejemplo está esperando a que apretemos el botón para que, primero
recordar que lo que va a hacer es mover o hacer el barrido
de ángulos desde cero hasta ciento ochenta,
luego se va a posicionar en noventa grados, que es aproximadamente
medio, y luego va a hacer la senoide, y va a estar haciendo ese movimiento
senoidal, vale, de forma repetitiva con un periodo de pues
de una frecuencia 0,2 segundos, vale. Bien,
esto sería en este primer ejemplo, vamos a volver de nuevo
a la pantalla de Facilino, de forma que, bueno, vamos a ver
ahora un segundo ejemplo, también relativamente sencillo en
el que vamos a ver el uso del servo de rotación continua.
Mirar, en este ejemplo, de nuevo, lo que vamos a hacer es aquí
simplemente esperar a apretar el botón, vale, para poder
generar el movimiento y aquí lo que estamos haciendo es que,
bueno, hemos declarado una variable velocidad que va a ir desde
uno hasta cinco y lo que hacemos en realidad es que luego lo
multiplicamos por diez, vale, para que vaya desde diez hasta
cincuenta, que es el porcentaje de velocidad que queremos controlar
este siervo de aquí. Vale, lo estamos haciendo para
que gire en una de las direcciones, tenemos conectado el pin,
recordar que he comentado que lo tenemos conectado al pin 5 el servo,
vale, y esto lo hacer, repito, para durante cinco iteraciones
vale, va a estar modificando la velocidad y vamos a ver cómo progresivamente
va cambiando la velocidad del servo, vale, para el final acabar parando
la velocidad del servo y volvemos a empezar,
vale. Bueno, pues vamos a programar este ejemplo,
vale, y ahora mientras se acaba del programa vamos a pasar
a cámara cenital para poder ver cómo funciona.
Bien, un segundo que acabe de programarse, bien, hacemos el
reset y esperamos, tenemos que recordar que tenemos
que apretar el botón para qué funcione, entonces vamos a observar
cómo empieza a una velocidad lenta y poco a poco va aumentando
la velocidad.
Vale, espero que se puede apreciar que la velocidad de giro
ha sido progresiva, vale, y ahora a repetir otra vez el programa.
Muy bien, pues nada, simplemente, a modo de resumen en este vídeo
os está viendo lo que sería el manejo de instrucciones básicas
para lo que sería el servo de posición y servo de rotación
continua en Facilino. Muchas gracias y nos vemos en el siguiente vídeo.
1.0/1.0 punto (no calificado)
¿Qué tipo de pin espera que especifiquemos la instrucción del servo en Facilino?
Digital
Analógica
Un pin configurado en modo 'alta impedancia'
x PWM
Respuesta
Correcto
Enviar Ha realizado 1 de 1 intentos
1/1 punto (no calificado)
¿Para qué sirve esta instrucción?
Para abrir las pinzas del robot
x Para cerrar una de las pinzas del robot
Para mover la base del robot
Ninguna de las anteriores
Respuesta
Correcto
Mostrar respuesta
Enviar Ha realizado 1 de 2 intentos
Correcto (1/1 punto)
Revisión
1.0/1.0 punto (no calificado)
¿Podemos escoger el sentido de giro en la instrucción del motor de rotación continua en Facilino?
x Si
No
Respuesta
Correcto
Enviar Ha realizado 1 de 1 intento
1/1 punto (no calificado)
¿Puede el robot DYOR girar sobre sí mismo con alguna de las instrucciones de movimiento de la base de Facilino?
x Sí
Facilíno sí lo permite, pero el robot DYOR no puede girar sobre sí mismo
Facilino no lo permite, aunque el robot DYOR sí que puede girar sobre sí mismo (es una limitación
software intencionada para que no se enreden los cables)
Facilino no lo permite, además el robot DYOR tampoco puede girar sobre sí mismo, con lo que esta
opción carece de sentido
Respuesta
Correcto
Enviar Ha realizado 1 de 1 intentos
Correcto (1/1 punto)