Sesión 3 - Movimiento Diferencial

Guía del Estudiante
Sesión 3 - Movimiento Diferencial
¿Qué aprenderemos en esta sesión?
Para entender como nuestro robot se va a desplazar por cualquier superficie, debemos
aprender la manera en que lo hace, por eso, en esta sesión veremos el movimiento
diferencial, realizaremos unos experimentos con el robot y además, recordaremos un
tema de gran importancia visto en el módulo de electrónica, los motores.
Recordando motores
La tarjeta Innobot tiene muchos de los componentes vistos en las sesiones de Electrónica.
Como podemos recordar, con ayuda de la electrónica podíamos variar la velocidad de un
motor, además de controlar la dirección a la que se iba a mover. Para esta última tarea,
utilizábamos un montaje llamado Puente H, ¿lo recuerdas? La tarjeta Innobot tiene
integrado varios puente H para controlar la dirección de los motores, todo esto para que
se pueda desplazar hacia donde nosotros queramos. El principio del movimiento
diferencial requiere que se pueda controlar la dirección de movimiento de más de un
motor.
Movimiento diferencial
F IG. 12.1-V EHÍCULOS CON MOVIMIENTO DIFERENCIAL . F UENTE: [4] Y [3]
Para entender cómo funciona el movimiento diferencial, realizaremos la siguiente
actividad:
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso,
distribución, comercialización y autorización a terceros. Queda prohibida la reproducción parcial o total del presente documento, por
medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico o por fotocopia. Esta edición y sus
características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos
Reservados"
Capítulo: Movimiento Diferencial
El uso del movimiento diferencial, además de encontrarlo en los robots, se puede ver
aplicado en diferentes vehículos, en donde se usan para muchas actividades.
1
Guía del Estudiante
Actividad 1
El trabajo en equipo es clave en este movimiento, ya que trabajan en conjunto dos
motores para llegar a una meta.
1. Vamos a escoger un compañero para realizar este trabajo.
2. Cada uno va a tener el rol de uno de los motores del robot, por lo tanto uno debe ser
el motor derecho y el otro el izquierdo.
3. Se debe amarrar el brazo y el pie derecho del motor izquierdo con el brazo izquierdo
del motor derecho, y no se pueden soltar.
4. Ambos deben estar alineados uno al lado del otro, y así deben permanecer toda la
actividad. Cada uno solo tiene 3 estados, caminar hacia adelante, hacia atrás o
detenerse.
5. El facilitador les dará una serie de instrucciones y deben realizarlas como si fueran
una sola persona. Ejemplo: Si el facilitador dice, parejas hacia adelante, cada
estudiante debe saber que estado debe realizar para que la pareja se mueva hacia
adelante como una sola persona.
Ahora, entendiendo lo sucedido en la actividad, será más fácil asociar el concepto de
movimiento diferencial con la experiencia. Cuando las dos partes donde están las llantas
están separadas entre sí y no tienen un eje central si no que cada una tiene un motor
independiente de otro, utilizamos esta clase de movimiento para que el vehículo que esta
sobre el par de motores pueda desplazarse.
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso,
distribución, comercialización y autorización a terceros. Queda prohibida la reproducción parcial o total del presente documento, por
medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico o por fotocopia. Esta edición y sus
características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos
Reservados"
Capítulo: Movimiento Diferencial
Al igual que en la actividad, cada motor solo tiene 3 estados, moverse hacia adelante,
moverse hacia atrás o detenerse. Cuando combinamos 2 motores, los estados son más,
ya que debemos combinar los estados de cada motor independiente. Llenemos la
siguiente tabla, con lo que cada pareja hizo para desplazarse cuando el facilitador lo
indicaba:
2
Guía del Estudiante
Motor Izquierdo
Motor Derecho
Estado
Hacia adelante
Hacia adelante
Se desplaza hacia adelante
Hacia adelante
Hacia atrás (o detenido)
Gira hacia la derecha
Hacia atrás (o detenido)
Hacia adelante
Gira hacia la izquierda
Hacia atrás
Hacia atrás
Se desplaza hacia atrás
T ABLA. 12.1- M OVIMIENTO D IFERENCIA F UENTE : P YGMALION
El movimiento diferencial es una forma de movimiento en la que se interactúa con más de
un motor, lo que hace que el vehículo que lo usa pueda realizar giros sobre su propio eje.
A diferencia del movimiento que usan los carros, para girar no necesita desplazamiento
hacia adelante, sino simplemente cambiar el estado de movimiento de sus motores.
Los motores controlarán el movimiento de nuestro robot y lo haremos por medio de la
Unidad de Control (la tarjeta Innobot) dándole las ordenes que deseemos a esta para que
nuestro robot tenga el movimiento que nosotros queramos, de modo que debemos hacer
las conexiones adecuadas para cumplir con dicho fin.
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso,
distribución, comercialización y autorización a terceros. Queda prohibida la reproducción parcial o total del presente documento, por
medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico o por fotocopia. Esta edición y sus
características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos
Reservados"
Capítulo: Movimiento Diferencial
En este ejercicio solo usaremos dos salidas para motores para establecer las conexiones,
llamadas M1 y M2, notemos que hay cuatro salidas, como la Fig. 12.2 lo ilustra, cuando
vayamos a insertar los cables debemos desatornillar con precaución para que los tornillos
no se salgan, una vez que los cables estén dentro se debe volver a atornillar, esta
práctica la debemos hacer siempre que conectemos cables en nuestra Unidad de Control.
3
Guía del Estudiante
F IG. 12.2-C ONEXIÓN DE CABLES EN LA TARJETA I NNOBOT. F UENTE : P YGMALION ®
F IG. 12.3-C ONEXIÓN DE CABLES EN LA TARJETA I NNOBOT. F UENTE : P YGMALION ®
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso,
distribución, comercialización y autorización a terceros. Queda prohibida la reproducción parcial o total del presente documento, por
medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico o por fotocopia. Esta edición y sus
características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos
Reservados"
Capítulo: Movimiento Diferencial
Las conexiones deben ser como lo muestra la Fig. 12.3 conectando los cables negativos
de los motores (cables negros) en las entradas derechas de las borneras y los cables
positivos de los motores (cables rojos) en la entrada izquierda de las borneras. M1 es el
motor derecho y M2 el motor izquierdo como las Fig. 12.3 lo ilustra.
4
Guía del Estudiante
Recordando programación
Ahora, vamos a recordar algunos conceptos aprendidos la clase pasada de programación,
para aplicarlos en el movimiento diferencial de nuestro robot. Estos conceptos, además de
ayudarnos en esta sesión, serán la base para el módulo de robótica. Recordemos el uso
de cada una de las siguientes líneas de código y asociémosla con los conceptos
aprendidos:
void setup(){
.
.
.
}
void loop(){
.
.
.
}
(3)
(4)
Recordemos que cada línea tiene un significado:
(1) En la configuración inicial o setup se realizan todas las órdenes que configuran el
robot para el funcionamiento. Estas órdenes se realizan al iniciar y solo una vez.
(2) Finalmente en las instrucciones que se repiten o el loop, se ponen las ordenes
que van a modificar constantemente mi robot hasta que se apague. Estas
instrucciones se realizan después de las del setup y se repiten infinitas veces.
Moviendo el robot
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso,
distribución, comercialización y autorización a terceros. Queda prohibida la reproducción parcial o total del presente documento, por
medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico o por fotocopia. Esta edición y sus
características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos
Reservados"
Capítulo: Movimiento Diferencial
Realizaremos nuestro primer programa con movimiento diferencial, pero antes de esto,
debemos tener claro algunas funciones de la librería Innobot que nos van a ayudar.
5
Guía del Estudiante
Encender los Motores
F IG. 12.2-M OTOR ENCENDIDO F UENTE : [1]
Ahora conoceremos la primera función para darle órdenes a los motores. Esta función lo
que hace es encender el motor hacia adelante o hacia atrás.
motorOn()
Descripción
Esta función me permite encender cualquiera de los motores conectados a la tarjeta
hacia adelante (FORWARD) o hacia atrás (REVERSE). Se debe tener en cuenta que a la
función se le debe especificar que está dirigida a una variable tipo Innobot.
Sintaxis
motorOn (Motor,DIRECCION);
Parámetro
Motor: Es el número del motor que queremos encender. Las posibilidades de este
parámetro son M1, M2, M3 o M4. Debemos de tener cuidado al conectar los motores,
saber cuál es la bornera donde la conectamos, en donde se muestra cual es motor a la
que queda asociado desde la programación.
DIRECCION: Es la dirección a la queremos que el motor especificado se mueva.
Tenemos 2 posibilidades, hacia adelante (FORWARD) o hacia atrás (REVERSE).
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso,
distribución, comercialización y autorización a terceros. Queda prohibida la reproducción parcial o total del presente documento, por
medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico o por fotocopia. Esta edición y sus
características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos
Reservados"
Capítulo: Movimiento Diferencial
Devuelve
N/A: Esta función no devuelve ningún valor.
6
Guía del Estudiante
Apagar los Motores
F IG. 12.3-M OTOR APAGADO F UENTE : [1]
Para apagar los motores y poder dejar que nuestro robot interrumpa su movimiento
utilizamos otra función:
motorOff()
Descripción
Esta función me permite apagar cualquiera de los motores conectados a la tarjeta. Se
debe tener en cuenta que a la función se le debe especificar que está dirigida a una
variable tipo Innobot.
Sintaxis
motorOn (Motor);
Parámetro
Motor: Es el número del motor que queremos apagar. Las posibilidades de este
parámetro son M1, M2, M3 o M4. Debemos de tener cuidado al conectar los motores,
saber cuál es la bornera donde lo conectamos, en donde se muestra cual es motor a la
que queda asociado desde la programación.
Devuelve
N/A: Esta función no devuelve ningún valor.
Actividad 1
1. Dentro del setup, encender el motor 1 hacia adelante y encender el motor 2 hacia
adelante.
2. Realizar un comentario en cualquier parte del programa.
3. Verificar el programa
4. Cargarlo a la tarjeta Innobot
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso,
distribución, comercialización y autorización a terceros. Queda prohibida la reproducción parcial o total del presente documento, por
medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico o por fotocopia. Esta edición y sus
características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos
Reservados"
Capítulo: Movimiento Diferencial
Vamos a abrir el Innobot IDE y a realizar las siguientes actividades:
7
Guía del Estudiante
Ahora, nuestro robot está moviéndose, pero para el próximo reto, vamos a necesitar que
el robot realice unas actividades por tiempos, para lo que necesitaremos una función más.
Esperar
F IG. 12.4. -E SPERA F UENTE : [2]
Esta función es simple en sintaxis y en uso. La función lo que hace es realizar la
instrucción inmediatamente anterior durante el tiempo que uno requiera. Luego continúa
con las instrucciones que están después, luego de haber pasado el tiempo especificado.
delay()
Descripción
Pausa el programa durante la cantidad de tiempo (en milisegundos) especificada por el
parámetro tiempo.
Sintaxis
delay (Tiempo);
Parámetro
Tiempo: Es el tiempo que requiero que se pause el programa. El tiempo está dado en
milisegundos. Recordar que 1 segundo son 1000 milisegundos.
Devuelve
N/A: Esta función no devuelve ningún valor.
Actividad 2
1. Dentro del setup, encender el motor 1 hacia adelante y encender el motor 2 hacia
adelante durante un segundo, y luego apagar los 2 motores durante un segundo.
2. Luego encender motor 1 hacia atrás y motor 2 hacia atrás durante un segundo, y
finalmente, apagar de nuevo los 2 motores.
3. Verificar el programa
4. Cargarlo a la tarjeta Innobot
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso,
distribución, comercialización y autorización a terceros. Queda prohibida la reproducción parcial o total del presente documento, por
medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico o por fotocopia. Esta edición y sus
características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos
Reservados"
Capítulo: Movimiento Diferencial
Vamos a abrir el Innobot IDE y a realizar las siguientes actividades en un nuevo archivo:
8
Guía del Estudiante
Ahora vamos a aplicar movimiento diferencial para realizar la siguiente actividad (Se
puede observar la Tabla. 12.1).
Actividad 3
Vamos a abrir el Innobot IDE y a realizar las siguientes actividades en un nuevo archivo:
1. Los puntos del 1 al 4 de las actividades anteriores, se deben realizar de forma
mecánica para los códigos que vamos a realizar de aquí en adelante. Recordarlos
para que la programación coger agilidad programando
2. Vamos a mover nuestro robot hacia adelante durante un segundo
3. Luego girar a la derecha durante medio segundo
4. Moverse de nuevo hacia adelante durante un segundo
5. Girar hacia la izquierda durante medio segundo
6. Detener el robot durante un segundo
7. Mover hacia atrás durante un segundo
8. Detener el carro
9. Esto se debe repetir infinitas veces ¿En dónde debo poner el código? ¿ en setup o el
loop?
10. Verificar el programa
11. Cargarlo a la tarjeta Innobot
Actividad 4
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso,
distribución, comercialización y autorización a terceros. Queda prohibida la reproducción parcial o total del presente documento, por
medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico o por fotocopia. Esta edición y sus
características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos
Reservados"
Capítulo: Movimiento Diferencial
En esta actividad realizaremos un experimento con los ángulos básicos: 90º, 180º, 270º y
360º. Cada robot, aunque sea similar al del compañero, tiene pequeñas características
diferentes, por lo que este reto debe realizarlo cada grupo a conciencia y con su propio
robot. La actividad consiste en descubrir cuanto delay le debemos de colocar al robot,
para que con un giro hacia la derecha, o hacia la izquierda, genere los ángulos ya
descritos. Ejemplo: Para el ángulo de 90º el delay es de 200 milisegundos, el ángulo de
180º es de 400 milisegundos, el de 270º de
9
Guía del Estudiante
Ahora, resuelve el siguiente reto:
RETO
Vamos a utilizar lo aprendido en clase: programación y movimiento diferencial. Es
importante que desde ya nos familiaricemos con dos conceptos tan importantes, ya que
las próximas sesiones hacen uso de estos todo el tiempo. Vamos a realizar con nuestro
robot algunas figuras, así que debemos ser creativos, ya que no se dan instrucciones,
ustedes deben realizar el algoritmo (la secuencia de pasos) y luego con este, escribir el
código correspondiente. Las figuras pueden ser:
Triángulo equilátero
Pentágono Rectangular
Rombo
Hexágono
Observen que en el reto anterior hicimos uso de solo 3 instrucciones:
motorOn(), motorOff() y delay().
El movimiento de un robot se puede resumir a estas 3 instrucciones, ya que en este caso
el robot no toma decisiones por sí solo, ya que se le dan unas órdenes que debe seguir,
pero es importante entender cada orden y cada instrucción vista en esta sesión.
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso,
distribución, comercialización y autorización a terceros. Queda prohibida la reproducción parcial o total del presente documento, por
medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico o por fotocopia. Esta edición y sus
características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos
Reservados"
Capítulo: Movimiento Diferencial
Cruz
10
Guía del Estudiante
Referencias
[1] «deviantart,» [En línea]. Available:
http://fc04.deviantart.net/fs70/i/2012/332/c/b/on_off_switch_by_tickey-d5mf3es.png. [Último acceso:
03 2015].
[2] «gstatic,» [En línea]. Available: https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRLF_TbMfyRU3cgCWNRXw_FgcOFEkP0dR1XOXk1wiu8ZVkU19rvQ. [Último acceso: 03 2015].
[3] «clipartlogo,» [En línea]. Available: http://es.clipartlogo.com/image/montacargas_294361.html. [Último
acceso: 03 2015].
"Esta Metodología, y todas sus guías, manuales y componentes, fue desarrollada por PYGMALION (R), quien tiene los derechos de uso,
distribución, comercialización y autorización a terceros. Queda prohibida la reproducción parcial o total del presente documento, por
medio de cualquier proceso reprográfico, sea fónico, microfilme, mimeográfico, offset, electrónico o por fotocopia. Esta edición y sus
características gráficas son propiedad de FUNDACIÓN PARQUE DEL SOFTWARE MEDELLÍN, ParqueSoft Medellín.Todos los derechos
Reservados"
Capítulo: Movimiento Diferencial
[4] «clipartlogo,» [En línea]. Available: http://images.clipartlogo.com/files/images/46/462663/tanksilhouette-clip-art_f.jpg. [Último acceso: 03 2015].
11