ROBÓTICA Y PROGRAMACIÓN
En este tema veremos:
CONTROL Y ROBÓTICA
Introducción: procesos tecnológicos
Sistemas de control
¿Qué es un robot?
La placa controladora
Sensores
Actuadores
PROGRAMACIÓN
¿Qué es un algoritmo?
Estructuras básicas de programación y otros comandos.
Diseño, programación y simulación de circuitos
El ser humano siempre ha estado buscando “ingenios” que le ahorren tiempo y esfuerzo, sobre todo en labores duras, repetitiva y/o peligrosas.
El proceso por el que se ha pasado hasta llegar a los robots de nuestros días podría simplificarse en tres fases:
a) MECANIZACIÓN: La máquina realiza un trabajo dirigido por el usuario. Ejemplo: Una plataforma elevadora o una grúa.
b) AUTOMATIZACIÓN: El automatismo es capaz de iniciar y finalizar un trabajo sin la supervisión de un usuario. Este trabajo suele ser sencillo y repetitivo, es decir, siempre va a hacer los mismo. Ejemplo: una escalera mecánica o un microondas.
c) ROBOTIZACIÓN: Al automatismo se le dota de un ordenador o controlador que hace que pueda tomar decisiones propias de cómo actuar en función de ciertos parámetros del entorno. Ejemplo: un sistema de iluminación de un espacio que solo encienda la luz cuando pase alguien por delante.
La diferencia entre un autómata y un robot está en el sistema de control que tiene cada uno.
Un sistema de control es el conjunto de dispositivos (eléctricos, electrónicos, mecánicos, hidráulicos…) cuya función es la de gestionar o regular, por sí mismo, la forma en que se comporta otro sistema para que funcione adecuadamente. Existen dos sistemas de control:
Pongamos un ejemplo, un sistema de riego programado para que riegue todos los días a las siete de la tarde:
Como se puede observar en el dibujo, el sistema regará independientemente de que esa tarde llueva y no haga falta más agua, ocasionando un derroche de agua y un posible exceso de la misma en nuestro cultivo.
Este sistema de control es el adecuado para, por ejemplo:
Sistema de calefacción con periodos de conexión/desconexión
Una lavadora o una tostadora, etc.
En este caso estamos hablando del sistema de control propio de los automatismos.
Para solucionar el problema anterior se debe diseñar un sistema cuyo funcionamiento dependa de la salida en cada momento, es decir, un sistema que mida continuamente el grado de humedad de la planta y ponga en marcha el riego solo cuando sea necesario. En estos casos, se dice que existe una realimentación de la salida a la entrada:
Estaríamos hablando del sistema de control que define a un robot
La palabra robot proviene del checo: robota, que significa trabajo duro o forzado. Se usó por primera vez durante la obra de teatro Rossum Universal Robots de Karel Čapek y su uso se extendió gracias a las obras de ciencia ficción creadas por el escritor Isaac Asimov.
A menudo nos imaginamos a un robot como una máquina con forma humana que camina, habla, gesticula… pero en realidad es algo mucho más sencillo:
“Un robot es una máquina automática programable que es capaz de interpretar información del medio físico para modificar su conducta. Tiene la capacidad de interactuar con el entorno y, en función de ello, realizar unas funciones u otras.”
Todo robot tiene tres tipos de componentes:
Controlador: puede ser un ordenador o una placa controladoras.
Sensores: son capaces de interpretar información del entorno o del propio robot
Actuadores: producen un efecto sobre el entorno o sobre el propio robot.
Si comparamos un robot con una persona, los sensores serían sus sentidos. Éstos transmiten información a su sistema de control o cerebro, modificando su comportamiento e influyendo sobre el mundo mediante sus actuadores. Además, un robot necesitará una fuente de energía para funcionar y una estructura física para sostener los elementos que lo componen.
Microprocesador: es el microchip que realiza todas las operaciones necesarias para que tu placa ejecute tu programa. Se trata del verdadero cerebro de nuestra placa controladora. Está conectado al resto de los componentes de la placa para recoger los datos de los sensores, procesarlos y enviar una orden a los actuadores.
Pines digitales: solo pueden tener dos valores: 1 o 0, todo o nada, encendido o apagado.
Pines analógicos: pueden tener múltiples valores: 0, 1, 34, 255, etc.
Entrada micro-USB: a través de esta entrada la placa se comunica con el ordenador.
Entrada de baterías: la placa recibe energía de las baterías o la fuente de alimentación para poder funcionar.
Bluetooth: permite a la placa comunicarse sin cables con un ordenador, smartphone u otros.
Botón ON/OFF: quita la energía a los pines de tu placa de forma que puedas programar sin que el robot esté continuamente moviéndose.
Reguladores de tensión: adaptan la tensión de alimentación al voltaje en que trabaja la placa: 5V.
Se trata de elementos que conectamos en las entradas del microcontrolador y que envían a este información sobre magnitudes físicas que miden o detectan (luz, sonido, distancia…).
Los sensores pueden ser:
Digitales: Sólo pueden tomar dos valores, que se corresponden con el 1 y 0 del código binario, es decir, encendido o apagado. Ejemplo: Un interruptor.
Analógicos: Pueden tomar múltiples valores. Por ejemplo, un sensor de temperatura podrá tomar diferentes valores en función de la hora del día.
En la actualidad la cantidad de sensores disponibles es tan extensa como las variables que queramos medir, desde sensores de temperatura, humedad, luminosidad…, hasta acelerómetros, giroscopios, GPS, detectores de gases o de pulsos cardiacos, etc.
Veamos algunos ejemplos
Una fotorresistencia o LDR (light dependent resistor) es un componente electrónico cuya resistencia disminuye con el aumento de la intensidad de la luz que recibe. Una aplicación, a modo de ejemplo, de este componente sería que detecte cuando se hace de noche para que se enciendan las luces de las farolas de una calle.
Son sensores capaces de detectar objetos, mediante ultrasonidos, y calcular la distancia a la que se encuentra en un rango de 2 a 350 cm. Ejemplo de aplicación: que cuando un coche esté a una distancia determinada de una pared intentando aparcar, envíe una señal para que suene un pitido.
Modelo HC-SR04
Los sensores infrarrojos pasivos (PIR) son dispositivos basados en la medición de la radiación infrarroja (todos los cuerpos emiten una cierta cantidad de energía infrarroja en forma de calor). Los más frecuentes son sensores de movimiento. Son los típicos sensores que sirven para detectar una presencia humana y mandar una señal para que se enciendan las luces.
Modelo HC-SR501
El modelo de la foto, el FC-28, es un sensor que mide la humedad del suelo por la variación de su conductividad eléctrica (recordad que el agua tiene mayor conductividad que el aire). Nos permitiría, por ejemplo, detectar que el sustrato de una planta esté quedándose sin agua para mandar una señal al sistema de riego.
Se trata elementos electrónicos que conectamos en las salidas del microcontrolador y que obedecen las órdenes del mismo. Los más usuales son: motores, leds, dispositivos de sonido (zumbadores), relés, servos…
Veamos algunos ejemplos.
Un LED es un diodo semiconductor que emite luz. Se usan como indicadores en muchos dispositivos, y cada vez con mucha más frecuencia en iluminación. Estos componentes presentan muchas ventajas sobre las fuentes de luz incandescente como un consumo de energía mucho menor, mayor tiempo de vida, menor tamaño, gran durabilidad y fiabilidad.
El LED tiene una polaridad, un orden de conexión, y al conectarlo al revés se puede quemar.
Los motorreductores de CC son unos de los típicos actuadores presentes en nuestros robots móviles. Algunas de las características más que debemos tener en cuenta son: el voltaje de funcionamiento, las rpm de salida o el consumo de corriente.
Un servomotor, o servo, es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición. Existen servomotores de rotación continua y servomotores que su movimiento oscila entre los 0º y 180º. Pueden ser controlados tanto en velocidad como en posición.
Los buzzer o zumbadores son dispositivos que generan un sonido de una frecuencia determinada y fija cuando son conectados a tensión
Los microprocesadores, da igual que sean los de un ordenador o los de una placa controladora de un robot, son capaces de ejecutar procesos a una velocidad increíble, sin embargo, debemos ser muy claros y ordenados a la hora de “explicarle” que es lo que queremos que haga, es decir, a la hora de programarlo. Los procesadores sólo entienden las instrucciones se las damos de una forma secuenciada y en su propio “idioma”, el código máquina. Este código está formado por ceros y unos (código binario) y, aunque sea posible, a las personas no nos resulta sencillo escribir instrucciones en forma de secuencias de 0 y 1.
Para evitar este engorro existen programas especializados, denominados entornos de programación, que nos permiten escribir programas en un código específico muy parecido al lenguaje humano llamado lenguaje de programación (Visual Basic, C++, Java, Cobol…).
Antes de comenzar a escribir código para realizar un programa, hay que escribir las instrucciones del mismo en un orden lógico para que el programa funciones correctamente.
Un algoritmo es un conjunto de instrucciones muy concretas y ordenadas que hay que seguir para realizar una tarea. Un ejemplo podría ser seguir una receta de cocina.
Los diagramas de flujo son una forma sencilla para representar de forma gráfica un proceso, como el de un algoritmo. Los elementos básicos que podemos encontrar en ellos son los representados en la figura.
Veamos algunos ejemplos:
Ejemplo 1:
En un concurso de televisión necesitan crear un pulsador para cada concursante. De este modo, una vez que el presentador hace una pregunta, los concursantes que sepan la respuesta deberán presionar el pulsador y una luz nos ayudará a identificar quién fue más rápido. Una vez soltado el pulsador, la luz deberá apagarse.
Primero, deberemos pensar en nuestro algoritmo, para posteriormente crear nuestro diagrama de flujo:
Comenzar el concurso.
Comprobar el estado del pulsador.
Si está pulsado, encender LED.
Si no está pulsado, apagar LED.
Volver a comprobar el estado del pulsador
El “Pin 6” representa al pulsador.
El “Pin 7” representa al Led
Ejemplo 2:
Vamos a realizar el algoritmo y el diagrama de flujo de un programa que nos calcule el perímetro de un triángulo equilátero.
Se marca el inicio del programa
Se pide al usuario el dato del lado del triángulo
El programa lee el dato del lado
Realiza el cálculo y lo almacena como “P”
Muestra en pantalla el resultado de “P”
Finaliza el programa
Ejemplo 3:
Veamos cómo sería el diagrama de flujo para un programa que en el que queremos que:
a) Una luz se encienda y apague en intervalos de 1 segundo de forma continua.
b) Repita la misma secuencia anterior pero sólo 10 veces.