top of page
Dentro de una nave espacial

“¿Qué es lo que nos hace humanos? No es algo que se pueda programar.

No se puede introducir en un chip. Es la fortaleza

del corazón humano la diferencia entre

nosotros y las máquinas.”

Sam Worthington (1976 -     )

actor australiano.

Para iniciar la sesión es muy importante recordar la secuencia de pines que controlan los motores de cada una de las llantas de nuestro robot. Apoyándote en las siguientes ilustraciones y solo utilizando el cable USB (sin conectar pilas), prueba el correcto funcionamiento de los motores, en su operación y dirección:

Llanta izquierda

Enfrente

IZQ_FRENTE.jpg

Llanta derecha

Enfrente

Llanta izquierda

Atrás

Llanta derecha

Atrás

Esta prueba es importante realizarla para ir descartando errores que puedan darse en procesos posteriores.

Considera que hasta ahora hemos trabajado solo con señales digitales y no analógicas por lo que, para variar la velocidad de los motores del robot echaremos mano de un truco para simular comportamientos analógicos con señales digitales.

Siguiendo con la prueba de motores anterior (solo conectando el cable USB) introduce espaciadamente (uno a uno y observando lo que sucede) los siguientes códigos y observa lo que sucederá con el motor de la llanta izquierda)

01.jpg

Lo que estás observando es lo siguiente: cada vez que vamos disminuyendo el valor de salida con PWM en el pin6, el motor se vuelve más lento.

​​

Ahora, te explico a detalle. Para simular un comportamiento analógico en el motor de la llanta izquierda, estamos echando mano de una etiqueta PWM, que significa Modulación por Ancho de Pulso (Power Width Modulation).

La PWM es una técnica que consiste en variar el ancho de pulsos de una señal digital, para controlar la cantidad de energía que se entrega a una carga.

En otras palabras, es como si estuviéramos encendiendo y apagando una luz muy rápidamente, pero ajustando el tiempo que permanece encendida para obtener diferentes niveles de intensidad.

Imagina un ventilador. Al variar el ancho de los pulsos que alimentan el motor, puedes controlar la velocidad a la que giran las aspas. Cuando los pulsos son más anchos, el motor recibe más energía y gira más rápido. Por el contrario, si los pulsos son más estrechos, el motor recibe menos energía y gira más lento.

 

¿Para qué se utiliza la PWM?

La PWM tiene numerosas aplicaciones en electrónica, entre las que destacan:

  • Control de motores. Se utiliza para regular la velocidad de motores DC y paso a paso.

  • Control de la luminosidad de LEDs. Permite ajustar el brillo de los LEDs de forma precisa.

  • Generación de señales analógicas. A partir de señales digitales, se pueden obtener señales analógicas con diferentes amplitudes.

En nuestro caso, el bloque PWM está conformado por:

1. El pin en el que se aplicará.

2. La potencia definida. Esta potencia solo acepta números positivos entre 0 y 255. Siendo CERO (0) el motor inmóvil y 255 la máxima velocidad.

02.jpg

Para el algoritmo que programará al robot para que siga una línea, será necesario (como lo realizamos en el simulador Open Roberta) determinar una rutina o función para que en un solo bloque se determine...

1. En qué sentido gira el motor.

2. Con que potencia girará el motor.

En Mblock estas rutinas o funciones se llaman Bloques.

 

Lo primero a realizar es crear un bloque que haga girar los motores hacia enfrente

 

Crea un nuevo bloque 

03.jpg

Hay bloques que hacen algo, bloques que hacen cálculos o bloques que tomen decisiones. El bloque que ahora vamos a crear, necesitaremos darle el parámetro de si se mueve para adelante o atrás y con que potencia.

 

Observa las opciones que tenemos al crear un bloque:

05.jpg

El bloque que crearemos, controlará los dos motores. Entonces, sigue la siguiente secuencia de pasos:

  • Nombra el bloque como Mover Motor A:

  • Añade una entrada numérica que llamaremos PotA que hará referencia a la potencia del motor A.

  • Sin cerrar el bloque, añade otra etiqueta y nómbrala como Mover Motor B:

  • Añade otra entrada numérica y nómbrala como PotB.

El bloque deberá quedar construido de la siguiente forma:

06.jpg

La dirección de los motores la determinaremos con el valor numérico de la potencia.

 

Si el número es positivo, la dirección del motor irá al frente, en caso contrario, el motor deberá mover el robot para atrás.

 

En el caso de la potencia, recordemos que esta solo puede tener valores positivos.

 

Por lo tanto, utilizaremos el siguiente código para determinar la potencia del motor A:

07.jpg

Duplica este código y cambia lo necesario para tener en un solo bloque el control de la potencia de los dos motores:

01m.jpg

Con los siguientes códigos (solo conectando el cable USB), prueba el correcto funcionamiento del robot:

04m.jpg
02m.jpg

Observa que, además de ya poder controlar la velocidad,  el código ya se reduce de sobremanera. Además de ser más entendible.

Para no manejar rangos difíciles de recordar, utilizaremos una función (que se encuentra en la sección DATOS y que se llama MAPEAR. Esta función permitirá transformar el rango de potencia de 0 a 255 a un rango más manejable de 1 a 100.

Inserta esta función en las secciones correspondientes:

05m.jpg

Realizados los cambios, podremos hacer las mismas pruebas anteriores, pero con un código más entendible.

06m.jpg

Ahora trabajaremos con el sensor de luz. Sí no lo has hecho, termina el ensamble.

Observa que los sensores deben conectarse en los pines analógico A0 y A1.

Es importante aclarar que este sensor trabaja en dos modos: ANALÓGICO y DIGITAL. Si el interruptor se encuentra arriba los sensores trabajarán en modo digital y si se encuentra hacia abajo, en modo analógico.

Nosotros lo trabajaremos todo el tiempo en modo ANALÓGICO (interruptor abajo)

12.jpg

Calibrar sensores

Debido a que los sensores permitirán realizar el seguimiento de la línea, el primer paso es calibrarlos. Esta calibración puede realizarse manual o automáticamente. Para los fines de este curso lo realizaremos de forma automática, es decir, a través de un programa.

 

Inicia el procedimiento creando dos variables que hagan referencia a los sensores. Los nombraremos S1 y S2.

12b.jpg

Para la calibración, será necesaria contar con la pista o una muestra de la pista (o línea) que habrá de seguir el robot. El siguelínea funciona perfectamente marcando la línea con una cinta plástica aislante sobre una  superficie blanca (que puede ser una hoja o un cartón):

12c.jpg

Ahora crea 4 variables más que determinarán el mínimo y máximo de cada sensor. Las nombraremos S1Min, S1Max, S2Min y S2Max.

12m.jpg

Antes de iniciar el proceso que sigue la línea será necesario calibrar automáticamente los sensores. La calibración es un proceso mecánico que comprende los pasos:

1. Colocamos los sensores del robot sobre el color blanco.

2. Al ordenarlo, los sensores detectan el color blanco.

3. Esperamos un segundo para que la lectura sea precisa.

4. La información se guarda. 

5. Colocamos los sensores del robot sobre el color negro.

6. Al ordenarlo, los sensores detectan el color negro.

7. Esperamos un segundo para que la lectura sea precisa. 

8. La información se guarda.

9. Al ordenarlo, se termina la rutina.

Cada vez que deseamos ordenar una instrucción daremos clic en el PULSADOR que se encuentra en el puerto digital número 12 (D12):

12d.jpg

Siguiendo los pasos anteriores, crea la rutina calibración:

13m.jpg

IMPORTANTE: Observa que en esta rutina agregué la instrucción del pulsador para que de inicio el seguimiento de la línea. Esto da mayor control al programa.

Ahora, crea la rutina sensores:

14m.jpg

Como en el simulador, crea la rutina onoff para un solo sensor. Observa que en esta rutina introducimos una nueva variable llamada umbral:

10m.jpg

Crea el código principal y prueba en la pista que tú realizaste con cinta de aislar:

11m.jpg

Según lo que observes, aquí ya tendrás que realizar las modificaciones del umbral y la potencia de los motores.

Según lo que creaste en Open Roberta, crea la rutina OnOff para 2 sensores:

15m.jpg

Según lo que creaste en Open Roberta: 

  • la rutina lógica

  • la solución salir 

16m.jpg

Prueba en tu pista estas soluciones y prepara la presentación de tu proyecto con el profesor en la pista de la lona.

17m.jpg
QR.jpg

Producto de la sesión:

Presentación final del proyecto de robot diferencial.

Guía de observación (15%)

Producto final:

Plan de clase que desarrolle la progresión 4 de Cultura Digital para la impartición de la UAC de Cultura digital III.

Lista de cotejo 06 (25%)

HRASSO.jpg

ACTIVIDADES SESIÓN 5

1) Programación física del robot diferencial sigue líneas para que siga

    una pista determinada y libre un obstáculo.

 

2) Cierre de la sesión, producto final.

MENTIMETER.jpg
03m.jpg
bottom of page