Qué es un programa
Es una secuencia de “órdenes” que debemos organizar lógicamente para que cumplan determinado propósito. En nuestro caso, para que el Robot cumpla con la función que queremos.
A continuación te vamos a explicar cómo se agrupan estas órdenes (en nuestro caso gráficas) para que el robot se mueva y reaccione al ambiente de acuerdo a los enunciados dados.
Ejemplos de programas en el MINDSTORMS NXT
Que el robot:
1) Se mueva hacia delante durante 2 segundos y luego se detenga.
Debemos hacer mover los motores conectados en los puertos A y B y pasados los dos segundos hacer que se detengan.
A continuación te vamos a explicar cómo se agrupan estas órdenes (en nuestro caso gráficas) para que el robot se mueva y reaccione al ambiente de acuerdo a los enunciados dados.
Ejemplos de programas en el MINDSTORMS NXT
Que el robot:
1) Se mueva hacia delante durante 2 segundos y luego se detenga.
Debemos hacer mover los motores conectados en los puertos A y B y pasados los dos segundos hacer que se detengan.
La dirección, los puertos y el tiempo se indican en el panel de abajo
Debemos tildar los puertos en los que están los dos motores, indicar la dirección y el tiempo
2) Se mueva hacia delante durante 2 segundos y luego de marcha atrás durante 4 segundos y se detenga.
1) Se mueva hacia delante durante 4 segundos, de media vuelta y avance otros 6 segundos y se detenga. (Atención: para hacer dar media vuelta al robot, debes hacer girar a un solo motor en dirección contraria y estimar cuanto tardaría en completar el medio giro. La otra forma de dar medio giro es hacer girar los dos motores en sentido contrario durante un tiempo determinado)
EJERCICIOS DE PROGRAMACIÓN DE ROBOTS CON SENSORES para reaccionar al ambiente
4) Semueva hacia delante a velocidad media y cuándo el sensor de contacto sea presionado, retroceda un segundo y luego de media vuelta
Como último paso se mueve el motor “A” hacia atrás durante 1 segundo para dar medio giro.
Uso de la herramienta LOOP y SWITCH
La herramienta Switch se utiliza para tomar decisiones en base a los resultados de los sensores que pusimos. Si por ejemplo utilizamos el sensor de luz para saber si es de dia o de noche, debemos ubicar qué órdenes queremos que se cumplan cuando es de día y qué órdenes queremos que el robot cumpla cuando es de noche. De esta forma estaremos tomando una decision cuando se sensa oscuridad y otra decision cuando se sensa luz. De la misma manera estaremos tomando siempre diferentes decisiones para los demas sensores (sonidos, ultrasonido y contacto)
La herramienta LOOP la utilizaremos siempre que necesitemos repetir muchas veces o indefinidamente órdenes. Si por ejemplo, nuestro robot debiera evitar caer al vacio arriba de una mesa, debemos repetir indefinidamente la rutina en la que el sensor de luz sense el piso para no caernos (el piso siempre da un reflejo de luz superior al vacio), y sólo se podría mover cuando encuentre determinado reflejo en el piso.
Ejemplo de la herramienta LOOP y SWITCH
En el ejercicio siguiente el robot debe responder al sensor de sonido. Si el sensor de sonido sensa algun ruido este debe retroceder con 1/4 de giro con el motor C. Si no sensa ningun ruido debe seguir avanzando con los motores A y C.
La primer herramienta que envuelve a todo el programa es la herramienta LOOP. En este caso este programa se repetirá indefinidamente (como lo indica el símbolo infinito)
Luego se utiliza la herramienta SWITCH con el sensor de sonido, el cual toma dos caminos diferentes de acuerdo al sonido que sensa del ambiente. El camino de arriba es el que se toma si sensa ruido (un grito o aplauso) , haciendo girar hacia atras un cuarto de giro al motor C.
El camino hacia abajo es el que se toma cuando el sensor de sonido no sensa ningun ruido ambiente; haciendo que en este caso el robot avance hacia adelante con los motores A y C.
En definitiva este ROBOT hace lo siguiente: si sensa ruido retrocede desviándose un poco y si no sensa ruido, avanza.
En el ejercicio siguiente debemos hacer que el robot no caiga de la mesa utilizando en sensor de luz, y hacer cerrar las pinzas para agarrar objetos cuando el sensor de sonido sensa ruido.
Primero sensamos el rebote de luz que produce la lámpara del sensor para saber si estamos saliendo de la mesa.
Si sensa oscuridad (el sensor está fuera de la mesa y no recibe rebote de luz) seguimos los pasos de abajo: retrocedemos con los dos motores y hacemos un giro con un solo motor para desviarnos.
Si sensa luz (estamos dentro de la mesa ya que hay rebote de luz) seguimos los pasos de arriba: avanzamos y si sensa ruido detenemos los motores A y C , luego cierra la pinza con el motor B para agarrar el objeto, da un cuarto de giro con el motor A y abre las pinzas para soltar el objeto. Si no sensa ruido continua el camino.
Como todo está envuelto en un LOOP infinito, al terminar cualquiera de los dos caminos el programa vuelve a empezar.