jueves, 3 de enero de 2013

Introducción a la Robotica Básica (III-Ultima parte)


Primero, y antes de comenzar, desear a todos los lectores un feliz año 2013, que podamos continuar compartiendo horas en el blog y seguir aumentando nuestros conocimientos como lo hemos hecho desde el inicio del blog a finales de 2012. Feliz año y mucho animo para todos.

Alimentación:

La alimentación de un robot no se suele hacer con combustibles fósiles, principalmente porque la energía que genera ese motor de combustión tiene que ser canalizada a unas baterías para poder usar esa energía mecánica, acumulada como energía eléctrica en las baterías para los motores eléctricos o incluso para el control de la neumática o hidráulica. En esta sección se hablará de los tipos de baterías que podemos usar para nuestro robot, sus ventajas e inconvenientes.

Plomo-Acido: Son las típicas baterías usadas en los automóviles. Su mayor problema son su gran tamaño ya que por su capacidad de carga y durabilidad son bastante útiles. No tienen efecto memoria* pero al descargarse pueden los electrodos pueden convertirse en sulfato de plomo y el electrolito en agua por lo que puede congelarse con facilidad al estar descargada.
Una variación de estas son baterías con electrodo de gel. La diferencia es que el electrodo está recubierto con un gel que evita que se sulfate y las celdas están selladas por lo que no tiene problemas de orientación.

Ni-Cd: Son las clásicas pilas recargables, tienen una gran durabilidad de 1000 a 1500 cargas y existen de muchos modelos. Su mayor inconveniente es que son dañinas para el medio ambiente, y pueden tener un fuerte efecto memoria*.

Ni-MH: Son iguales que las anteriores, pero en vez de usar Cd, que es raro y caro, usan Hidruro metálico que es amigable con el medio ambiente. Tienen mayor capacidad que las anteriores (Hasta un 30% más) y no sufren tanto el efecto memoria. Se requiere cargador especifico para este tipo de batería.

Li-Ion: Tienen una mayor carga y cantidad de carga por celda, 3,6 V por celda= 3 celdas de 1,2 de Ni-Cd. No sufren de efecto memoria pero son inflamables, y su durabilidad es muy baja, de 300 a 600 veces más baja que las Ni-Cd. Pero al tener mayor capacidad y durabilidad por carga 1 carga dura más que una carga de Ni-Cd.

NI-Cd VS Ni-MH:

Las Baterías de Ni-MH tienen mayor capacidad (de un 40 a un 70% más) no contienen cadmio y el efecto memoria es mínimo.

Las baterías de Ni-MH tienen una resistencia interna superior que limita su uso en aplicaciones de alta potencia, pero la industria ha ido solucionando este problema durante los últimos años.

Las baterías de Ni-MH no se pueden cargar tan rápido como clas Ni-Cd con riesgo a deteriorarlas. Además las baterías de Ni-Mh son sensibles al calor como las Ni-Cd y un sobrecalentamiento podría producir gases y altas presiones internas que pueden conllevar a escapes que pueden reducir la vida útil de la batería.

Se recomienda usar cargadores específicos para las baterías de Ni-MH.

La cantidad de ciclos de carga de las baterías de Ni-Cd es de 1000 a 1500 ciclos siendo las de Ni-Mh alrededor de 500 veces menor que las Ni-Cd.


*Efecto Memoria: El efecto memoria se da principalmente en baterías de Ni-Cd y Ni-MH. Esto efecto se debe a una mala carga y descarga de la batería. Se produce cuando estando la batería sin terminar de descargar se carga la batería hasta el 100%, la cual recuerda el último punto donde empezó a ser cargada debido a que se produce en la parte que no se ha descargado unos cristales que reducen la capacidad máxima. También se debe por un largo tiempo sin uso de las mismas, pero el principio es el mismo.

Esquema efecto memoria


 Para solucionar este problema, o más bien evitarlo, se recomienda que cada cierto tiempo se realice una descarga completa de la batería y una carga lenta o carga completa de la misma.


¿Qué tipo de batería o alimentación es la idónea?

La batería o Alimentación que usaremos dependerá de los elementos que tenga nuestro robot. Sobre todo habrá que fijarse en los motores ya que serán los elementos que mayor energía necesitarán. Tenemos distintos tipos de baterías tanto en el número de amperios hora como de los voltios que proporciona al igual que hay distintos elementos que consumen distintas cantidades. Por ello, es conveniente usar una batería que al menos proporcione la mínima cantidad que requiere el motor para su funcionamiento. Por ejemplo:

Un motor a 1000mAh y 4 Voltios al colocarle una batería de 750 mAh y 6 Voltios, sí dispone de la tensión que requiere, pero el flujo es decir, la corriente por hora de la que requiere el dispositivo, en este caso el robot  es inferior la que proporciona la batería que la requiere el motor por lo que podemos tener varios casos, que no se mueva, que se mueva muy lentamente, o que se mueva pero que en pocos minutos nos quedemos sin batería. Si le proporcionamos el suficiente flujo de energía (mAh) no tendremos problema en el funcionamiento del motor o motores.

Sensorización de un robot:


La sensorización de un robot dependerá de qué queremos hacer con el mismo, en qué tipo de espacio nos vamos a mover, que capacidad tiene mi placa, la utilidad de los sensores en distintos medios o situaciones, etc.

Los sensores simulan los sentidos de un ser humano, desde la visión, la presión, el oido, el olfato hasta el equilibrio. Solo hay que exceptuar el gusto, que aunque se investiga en ese campo, aún no está muy desarrollado pero en los próximos años veremos avances muy interesantes.

Separamos los sensores en:

Vista:
  • Cámara.
  • Infrarrojo.
  • Sonar.
  • Sensor de color.

 Oído: Micrófono.

Olfato: Detectores de humo y de componentes químicos específicos.
Presión: Sensores de presión capaces de detectar variaciones en la presión del sensor gracias a diferencias de potencial.

Equilibrio y orientación:    
  • Tilt.
  • Acelerómetro de 2 ejes/3 ejes.
  • Brújulas.
  • Giroscopio.

 Habla: Altavoz.

Cámara: La cámara sirve principalmente para el control del robot desde un puesto remoto o para saber que está viendo el mismo robot, sin necesidad de estar en la misma zona que el robot. Estas cámaras también pueden usarse para la detección de ciertos objetos o colores, siendo ya la capacidad del programador la principal para gestionar este sensor. La cámara suele ser el “sensor” más complejo de programar.

Infrarrojo: Se recomienda utilizar en espacios cerrados y con luz tenue o artificial ya que necesita el sensor recibir la onda del infrarrojo que puede ser disipada en cierta medida por la luz natural, por eso en medio muy brillantes el infrarrojo no es un buen aliado. Se usa para detectar objeto a corta distancia. La mayor limitación que tienen es la distancia de uso, no superior normalmente a 1’20 m-1’50m. Sin embargo la mayoría de infrarrojos alrededor de unos 5 centímetros ya detectan el objeto.

Sonar: Este sensor se utiliza también para detectar objetos como si fuera un murciélago, utiliza el sonido para crear una imagen  mental del entorno. La ventaja de estos sensores es que pueden usarse tanto en el exterior como en el interior y tienen un gran alcance, los de robotica pueden llegar a más de 10 metros. El inconveniente es que en muchos casos, la distancia mínima que necesitan para detectar un objeto es de 40 o 50 centimetros por lo que se hay una zona que es prácticamente ciego.

Sensor de color: Estos sensores detectan la longitud de onda que emite el objeto detectado, por lo que si el programador programa el sensor para detectar la longitud de onda del color rojo, (620-750 nm) el sensor detectará todos los objetos con dicha longitud de onda.

Micrófono: El micrófono recibe una onda de sonido haciendo vibrar un material ya sea un diafragma, un piezoeléctrico, etc. y generando una diferencia de potencial. Esa diferencia de potencial será distinta para cada instrucción que mandemos por el micrófono, por lo que el robot podrá detectar esas diferencias de potencial y asociarlas a distintos parámetros.

Tilt: El Tilt, es un sensor capaz de detectar la posición de un objeto en un eje, ya sea el x o el y. Funciona con un condensador variable, dependiendo de la tensión que envie el Tilt estará indicando que el objeto se desplaza hacia delante, hacia atrás, o si está colocado en el eje y hacia alguno de sus lados.

Acelerómetro de 2 ejes: Funciona a través de sensores de temperatura, 4 exactamente que varían por el calentamiento o enfriamiento de un capsula en su interior. Cuando los 4 sensores tienen los mismos valores de temperatura el sensor está nivelado, en cuanto los sensores varían, quiere decir que ha variado la posición y mandan una señal en forma de tensión a la placa principal, indicando ese valor de variación.

Brújulas: Son brújulas electrónicas que detectan el campo magnético terrestre y transforman esa detección del campo en una magnitud eléctrica que interpreta el robot. Se usan como bien se sabe para saber en qué posición con respecto al norte magnético estamos.

Giroscópios: Sirven para compensar movimientos bruscos realizados por un robot, helicóptero o avión radiocontrol. En el caso de los robots, la salida en lugar de conectarse a un servo, se conecta a un microcontrolador que puede leer la anchura del pulso del giróscopo y así saber cuando se produce un giro. Los giróscopos son esenciales en los robots de tipo balancín y el los sistemas de guiado de precisión en el que hay que medir y compensar el momento de giro.

Programación:


Para el control de un robot se necesita la programación del sistema hardware del robot. El sistema hardware se comprende por la placa y el microcontrolador o PIC que se utilice. Dicho PIC se programará con el programa que lleve consigo el PIC, posiblemente oficial y capado u otro que sea de sistema libre y sin limitaciones en la propia programación. Indicar que cuando hablamos de programación, no estamos hablando de comunicación. Tema que se tratará en el apartado siguiente.

Los programas para programar un PIC utilizan normalmente C++ como lenguaje de programación, rara vez se utiliza otro lenguaje como Basic o Ensamblador, ya que Basic es un lenguaje de más bajo nivel que C++ y Ensamblador es directamente el paso intermedio entre el lenguaje de alto nivel y el lenguaje maquina, por lo que la programación se hace muy tediosa y compleja, además de que requiere un tiempo de progamación muy largo.

Por lo que normalmente se utilizará un sistema basado en C++, por su comodidad y rapidez en realizar los programas.

Dentro de la programación normal de un robot en C++ existen dos maneras distintas de programar un robot.

1.       Programar los movimientos escribiendo directamente en el programa, la posición de servos, sensorización, etc.
2.       Aprendizaje por Kinestesia, basado en un aprendizaje por repetición. Este sistema se utiliza de forma que el robot aprende de lo enseñado por el programador a base de ensayo y error, como por ejemplo, una persona aprende a montar en bicicleta.

Comunicaciones:


A la hora de comunicarnos con un robot, lo podemos hacer de distintas maneras.

1.       USB
2.       RS232
3.       TCP/IP
4.       BLUETOOTH
5.       RADIO
6.       ETC

Utilizaremos la que más nos convenga en nuestro caso. Pero hay que diferenciar dos cosas, el concepto de comunicación a la hora de programar y comunicación cuando mi robot está ya programado. En el primer caso, normalmente realizaremos una comunicación por cable, ya sea USB o por RS232, ya que llega a ser más cómoda y solo la utilizamos para enviar la información o el archivo creado para el uso de nuestro robot. Sin embargo cuando queremos utilizar una comunicación inalámbrica esta va preprogramada, es decir, que se ha establecido que la comunicación desde el puesto del programador al robot se realizará sin cables. Está comunicación desde el robot al puesto del programador se realiza para controlar ciertos parámetros del robot o para darle ciertas instrucciones concretas.


No hay comentarios:

Publicar un comentario