PROGRAMACIÓN DE ROBOTS LEGO MINDSTORMS

Pablo Iván Romero De La Rosa
Leodegario G. Aguilera Hernández
Orlando Meza Zaleta

¡MANTENGASE EN MOVIMIENTO!


En esta unidad se estudiará la forma de hacer que un programa se repita, pero sobre todo, cómo conseguir que un robot se mueva hacia adelante durante un largo periodo de tiempo, frente a tan sólo un segundo o dos. También se analizará cómo utilizar un ordenador para controlar el robot.
Es importante tener en cuenta que el código en el ejemplo de la lección anterior se ejecuta sólo una vez. Envió comandos al motor para viajar a una velocidad determinada. Tan pronto como los comandos fueron enviados a los motores, el programa se llevó a cabo. Sin embargo, cuando se está programando, encontrará que hay muchos procesos que tienen que ser ejecutados varias veces. La forma en que puede lograr esto es utilizar una estructura de código de LabVIEW ™ llamada ciclo While. Un ciclo While permite que el código dentro de él se ejecute hasta que cierta condición se cumple.
Un ciclo While tiene dos terminales. La de la izquierda se llama  terminal de iteración. Se trata de la caja azul con la "i" en el mismo. La segunda es la llamada caja verde de la terminal condicional. Se cablea  un valor booleano en la terminal condicional para saber cuándo el programa debe salir. Un valor booleano es un valor verdadero o falso, y dependiendo de la configuración del ciclo While, o bien continuará el ciclo cuando es verdadera, o detendrá el bucle cuando el valor es falso.

Para crear el ciclo While,  haga clic derecho en el diagrama de bloques, se posiciona sobre el icono de Estructuras y haga clic en el ciclo While.
Se dará cuenta de que el cursor ha cambiado. Una vez que haga clic, podrá empezar a dibujar la forma del ciclo While.

Si pulsa una vez más, verá que se ha creado la estructura del ciclo While, como se mostró anteriormente en la Figura 46.
Podrá modificar el tamaño del ciclo While colocando el cursor sobre el borde de él, esperando a que las asas  aparezcan, a continuación, hacer clic y arrastrarlo de la forma deseada. También puede dibujar el ciclo, alrededor del código ya existente, o podrá colocar el código dentro del ciclo While.

Verá lo que la ayuda de contexto tiene que decir sobre el ciclo While. Puede abrir la ayuda contextual pulsando Ctrl + H, y luego se posiciona sobre el ciclo para obtener una descripción.
Como se ha dicho antes, la terminal de iteración es la caja azul con la "i" en el ciclo While. La terminal de iteración muestra el número de veces que el ciclo ha acabado, pero tiene un comportamiento inusual, ya que la primera vez que se ejecuta, el resultado es cero. La primera vez que pasa a través del ciclo, el valor de "i" es 0. La segunda vez, el valor es 1, y así sucesivamente.
El terminal condicional en la parte inferior derecha del ciclo While, se indica como una señal de alto, es un valor lógico. Aquí es donde pone un valor verdadero o un valor falso para continuar o bien ejecutar el ciclo o para detenerlo. Si se posiciona sobre el centro de la terminal, se dará cuenta de que el cursor cambia al cursor de dedo. Si pulsa una vez, el icono dentro de la caja verde cambia. Si pulsa de nuevo, va a cambiar de nuevo a la señal de Stop. Esto cambia el valor lógico a detener el ciclo. Una buena manera de recordar es que la señal de alto significa una parada, por lo que un valor verdadero a una señal de alto significa que se detendrá. Debe tener cuidado ya que dependiendo del modelo elegido para la terminal de condición del ciclo, pone el valor booleano para decidir si desea continuar o detener el ciclo.
Si quiere crear un ciclo que se ejecuta siempre, y está en el modo de señal de alto, deberá introducir un valor falso en el terminal de forma constante. Para crear el ciclo que se ejecutará siempre, debe tener siempre un falso en la terminal de Stop. Para ello, puede crear una constante. Ahora tiene que crear una constante booleana.
Para crear una constante booleana,  puede hacer clic en el terminal condicional y haga clic en Crear constante o haga clic derecho en el diagrama de bloques para que aparezca la paleta de funciones, vaya a la sub-paleta booleana y seleccione la constante apropiada. Esto se muestra en la Figura 50.
Quiere que este ciclo se ejecute siempre, así que va a seleccionar la constante falsa y cableará a la terminal de señal de Stop. Esto se muestra en la Figura 51.
La alternativa a esto sería tener una constante verdadera con el icono de siga de la terminal condicional.
En la unidad anterior, ha programado el robot para que se mueva hacia adelante, utilizando el botón Ejecutar o en el botón Implementar. Compilado el código en el ordenador, y luego enviado al controlador NXT. Sin embargo, se desconecta el controlador NXT del ordenador inmediatamente después de eso. En esta lección, investigará cómo mantener el enlace entre el ordenador y el controlador NXT de forma constante. Para ello, utilizará el botón de Depuración, que es el tercer icono en la barra de herramientas, en el diagrama de bloques o del panel frontal.


Siempre que se corre el código en modo de depuración, y tiene un control en el panel frontal, como un botón, puede ajustar el valor de ese control y observar el cambio en el robot. Del mismo modo, si tiene un indicador en el panel frontal, puede ver la actualización del indicador en la pantalla de la computadora, a pesar de que el código se está ejecutando en el controlador.
Se recomienda que utilice el modo de Depuración cuando se conecta vía USB, ya que permite la capacidad de respuesta óptima. A pesar de que funciona si se conecta de forma inalámbrica a través de Bluetooth, se encontrará con que a veces, no es tan sensible.
Hay una alternativa al uso del modo de Depuración, que consiste en ejecutar el programa en la instancia principal de la aplicación. Para pasar a la instancia principal de la aplicación de la instancia de selección del NXT, hacer clic derecho en el rectángulo naranja, que se encuentra en la parte inferior izquierda del panel frontal y diagrama de bloques.
Cuando se selecciona la instancia de aplicación principal,  se dará cuenta de que otro panel frontal y diagrama de bloques aparecerá. Esta es ahora la instancia de la aplicación principal. Si hay algún código que ha creado, mientras estaba en la instancia del controlador NXT, automáticamente aparece  aquí en la instancia de la aplicación principal. Si ejecuta el programa aquí en la instancia de la aplicación principal, se dará cuenta de que actúa igual que el modo de Depuración. Mantiene un vínculo entre el ordenador y el controlador, y que son capaces de controlar el robot en tiempo real.
Mediante la instancia de la aplicación principal creará programas para los robots pero no se implementa el programa en el controlador NXT. Anteriormente, cuando ha creado programas dirigidos a la instancia el NXT y cuando hace clic en el botón Ejecutar, se compiló, descargó y ejecutó el programa en el NXT. Esto significa que el programa se guarda en el NXT, y utilizó el poder de procesamiento del controlador NXT para ejecutar el programa. Sin embargo, cuando ejecute el programa en la instancia principal de la aplicación, no es la implementación y la descarga del programa al NXT. Se trata simplemente de utilizar el NXT para controlar los motores y sensores. El programa está utilizando el poder de procesamiento del PC, que es mucho mayor que la potencia de procesamiento de un controlador NXT. Este enfoque puede ser utilizado para ejecutar programas muy grandes y complejos con el NXT.
Debe recordar que siempre hay que escribir el código en la instancia dirigida al controlador  NXT, porque esa instancia sólo da acceso a funciones con las que el NXT es compatible. Algunas de las funciones que están disponibles en la instancia de la aplicación principal no pueden trabajar con el NXT cuando se ejecute el programa desde la instancia de NXT. Todas las funciones disponibles en la instancia NXT trabajarán en la instancia de las aplicaciones principales. Para permitir la flexibilidad de usar un programa, tanto en la instancia NXT y la instancia de aplicación principal, no hay que utilizar todas las funciones exclusivas de la instancia de la aplicación principal.
Creará un programa que utiliza el modo de Depuración, y que puede cambiar la velocidad de los motores mientras se está ejecutando. Comenzará por la colocación de dos controles de motor en el diagrama de bloques.

Si quiere introducir la velocidad a la que quiere que los motores giren, coloque un indicador, que tendrá que ir al panel frontal. Hacer clic derecho en el panel frontal y seleccione Control Numérico.

Este control numérico nos permite introducir un número o incrementar / decrementar en saltos de  1. Esto se puede hacer haciendo clic en los botones arriba o abajo situados a la izquierda del campo de número.

Como quiere que el programa actualice la velocidad de los motores, ya que se cambia desde el control numérico, tiene que poner este código en un ciclo de tiempo, por lo que continuamente se puede actualizar el valor del control. Va a colocar este código dentro de un ciclo While y luego conectar el indicador numérico a los terminales de alimentación de las funciones motoras.

 

La última cosa que necesita hacer es que el ciclo While sea infinito. Para ello, es necesario conectar una constante falsa a la terminal condicional, como ha aprendido en páginas anteriores. Después de lo que se hace, el código debe ser similar a la Figura 61 y estará listo para ejecutar su programa.

 

Ejecutará este programa en modo de Depuración para que haya un vínculo constante entre el ordenador y el NXT. Esto le permitirá cambiar la velocidad del motor a diferentes valores a medida que el programa se está ejecutando.
Conectará el controlador NXT y haga clic en el icono de la barra de herramientas de Depuración. El programa se iniciará, pero los motores no girarán porque el control tiene en la salida un valor de 0. Si escribe un número, como 25 y presiona Enter, se dará cuenta de que la velocidad cambia de inmediato a 25. También puede hacer clic en las flechas arriba y abajo para aumentar o disminuir la velocidad.
Para finalizar el programa, debe hacer clic en el botón Cancelar  ejecución.
Va a cambiarse a la instancia de la aplicación principal y ejecutar el programa desde allí. Haga clic derecho en el rectángulo naranja en la parte inferior izquierda de la pantalla y seleccione la instancia de aplicación principal. Si hace clic en el botón Ejecutar, se dará cuenta de que cambiará en el modo de ejecución.
Taller: Utilice una perilla para controlar la velocidad del robot en tiempo real.

Volver al índice

Enciclopedia Virtual
Tienda
Libros Recomendados


1647 - Investigaciones socioambientales, educativas y humanísticas para el medio rural
Por: Miguel Ángel Sámano Rentería y Ramón Rivera Espinosa. (Coordinadores)

Este libro es producto del trabajo desarrollado por un grupo interdisciplinario de investigadores integrantes del Instituto de Investigaciones Socioambientales, Educativas y Humanísticas para el Medio Rural (IISEHMER).
Libro gratis
Congresos

4 al 15 de diciembre
V Congreso Virtual Internacional sobre

Transformación e innovación en las organizaciones

11 al 22 de diciembre
I Congreso Virtual Internacional sobre

Economía Social y Desarrollo Local Sostenible

Enlaces Rápidos

Fundación Inca Garcilaso
Enciclopedia y Biblioteca virtual sobre economía
Universidad de Málaga