viernes, 2 de diciembre de 2011

Primer tropiezo


Las primeras pruebas de movimiento autónomo topan con el primer problema serio: cuando el robot detecta un obstáculo, se detiene y da marcha atrás pero desde ese momento se queda sin potencia. El efecto es como si perdiera toda la energía. De hecho la batería se queda como inútil y sólo funciona con la corriente suministrada por el portátil a través del USB.

En el video se observa cómo el robot arranca a velocidad normal pero, tras detectar el obstáculo, intenta ir marcha atrás y se pierde toda la potencia.

Después de muchas pruebas parece ser que es un comportamiento anómalo del Arduino Motor Shield de DFRobot que sólo ocurre cuando se conmuta la marcha atrás a plena potencia.
Consigo solucionarlo acelerando poco a poco, es decir, llegando a la velocidad máxima de forma progresiva. El efecto es inapreciable pero al menos consigo esquivar el problema.  
/* 
  Intrucciones de retroceso del robot
 (acelera por partes para evitar bloqueo imprevisto del MotorShield) 
*/
void retrocede() {
  Serial.print("Retrocede...");
  analogWrite(Izquierdo, 0); // Paro de los motores
  analogWrite(Derecho, 0); 
  digitalWrite(M1, LOW); // Orden de marcha atrás
  digitalWrite(M2, LOW); 
  analogWrite(Izquierdo, 90); // Velocidad baja
  analogWrite(Derecho, 90);        
  delay(100); // Espera una decima de segundo
  analogWrite(Izquierdo, 175); // Velocidad media
  analogWrite(Derecho, 175);        
  delay(100); // Espera una decima de segundo
  analogWrite(Izquierdo, 255); // Velocidad máxima
  analogWrite(Derecho, 255); 
  Serial.println("OK");
}

jueves, 1 de diciembre de 2011

Montando el puzzle

Después de probar los componentes de forma individual y juguetear con Arduino en la protoboard, para las pruebas del montaje diseño el siguiente circuito:

  El circuito incorpora 3 pulsadores para interactuar con el robot y dos pares de leds, rojos y verdes, para que el robot nos pueda indicar lo que vaya detectando con sus dos sensores de ultrsonidos.


  El dibujo lo he realizado con Fritzing (herramienta de diseño de código abierto)





El ensamblado de los componentes queda del siguiente modo:

jueves, 24 de noviembre de 2011

Un VISOR como el de Geordi Laforge

Al igual que el VISOR (Visual Instrument and Sensory Organ Replacement) de Geordi Laforge en Star Trek TNG, mi robot necesitará una batería de sensores para percibir el entorno y recorrer el área de césped.


El de Laforge tenía un semicírculo de sensores que recogían información de un amplio espectro de señales de su entorno y los transmitían a su cerebro mediante unos implantes.


El mío tendrá que ser más humilde. Empezaré por un par de sensores de proximidad para que el robot pueda 'ver' a qué distancia se encuentra de los obstáculos que se pueda encontrar.
De los distintos tipos que existen elijo los de ultrasonidos ya que tienen un rango de alcance mayor y permiten detectar cualquier objeto independientemente de su forma, color o material.

Y de entre ellos me quedo con el SRF08 de Devantech que tiene un alcance máximo de unos 6 metros lo que me permitiría, teóricamente, 'ver' los límites del área a recorrer situado desde el centro.
Además, este modelo utiliza el bus I2C para conectarse a Arduino por lo que podré conectar todos los sensores que necesite a los mismos pines, es decir, no me quedaré sin conexiones aunque necesite más 'ojos'.

Me pido 2 para poder 'mirar' simultáneamente al frente y hacia un lado ( pensando en hacer que el robot gire siempre hacia el mismo lado )

martes, 22 de noviembre de 2011

¡ Más potencia, Scotty !

Los motores necesitan disponer de potencia propia al margen de la alimentación de Arduino.
Para controlarlos me agencio un "shield" para Arduino de DFRobot que permite proporcionar hasta 2 amperios a los motores DC.

Un "shield" es una pequeña placa que se coloca sobre la Arduino y amplía sus capacidades dejando acceso a todos los conectores.
De esta forma se pueden apilar varios "shields" para ir añadiendo funcionalidades nuevas al montaje.

Hay infinidad de ellos y multitud de empresas que los fabrican y distribuyen ( http://shieldlist.org )



Para alimentar de forma autónoma al robot necesitaré una batería con suficiente autonomía para mover al robot pero con un tamaño y peso moderados. Vamos, que no puedo cargarlo con una batería de coche.

Después de bucear por la web viendo las soluciones típicas me encuentro con unas baterías recargables de ión litio muy chulas que se usan en montajes para cámaras de seguridad.  Tienen un tamaño muy ajustadito y encima pueden proporcionar 5 y 12 voltios con una carga de 9000 y 4500 mAh ( miliamperios hora )
Viene con su cargador, su interruptor y sus conectores jack incorporados.
¡ Yo creo que puede valer !

viernes, 18 de noviembre de 2011

Primeras decisiones

Manos a la obra. ¿Qué ruedas le ponemos?

La mayoría de plataformas y ruedas comerciales están pensadas para pequeños robots que se desplazarán por superfícies lisas. Lamentablemente mi robot deberá cargar con la cortadora de mano y desplazarse por un terreno irregular y resbaladizo.

Después de evaluar las distintas posibilidades decido comprar el kit Tri-Track de Lynxmotion que tiene tracción por cadenas con dos motores incorporados, plataforma de altura suficiente para no atascarse en la hierba y soporta un peso considerable (más de 2 kilos)

¡ Musquis, mola !  Es un poco caro pero parece robusto y suficientemente 'abierto' como para adaptarlo a cualquier idea o necesidad que vaya surgiendo posteriormente. ¡ Al saco !


Y el cerebro que le voy a poner lo tengo claro. En mi web de referencia tecnológica he leído varias noticias relacionadas con la plataforma de hardware libre Arduino. ¡ Me pido un 'Starter Kit' !

miércoles, 16 de noviembre de 2011

La idea

Estaba claro que tenía que darle una utilidad al nuevo hobby.

Como no se me ocurría ninguna utilidad para un brazo robótico me puse a pensar cómo podría automatizar alguna de las tareas domésticas repetitivas.
¡Claro! Algo así como un robot aspirador tipo Roomba... ¡¡¡ pero que me corte la hierba !!!

Me puse manos a la obra y empecé a buscar por Internet...y ¡cómo no! la idea ya tiene una industria emergiendo poco a poco... la de los robots cortacésped... ¡y los precios ya están bajando! 
Uno de los modelos que más me llamó la atención se llama Ambrogio  (aquí os lo presento)  ------------->

Pero todos los modelos están diseñados para unos jardines enormes comparados con mi trocito de hierba (de apenas unos 8 x 8 metros)





Los problemas a resolver en mi caso son los mismos que los modelos comerciales pero a una escala diez veces menor...así que pensé que podría enfocarlo 'robotizando' una cortadora manual como la Isio de Bosch.

Así que, finalmente, la idea es ponerle ruedas a la Isio ...bueno, y también un par de ojos y un cerebro, claro.

miércoles, 9 de noviembre de 2011

Los orígenes

Todo empezó con un regalo de cumpleaños...de mi 45º cumpleaños. Un buen amigo me regaló el brazo robótico Cebek C-9895.



  Llevo casi 20 años trabajando como ingeniero de software y ya echaba de menos interactuar con el mundo real. 
  Soy teleco, me especialicé en electrónica y la cosa laboral me llevó al software ( mi CV )...pero este regalo me recordó lo que me motivaba en mi juventud.






Lo monté y unos días después estuvimos manejándolo con la familia y los amigos...pero lo más que hicimos con él fue reírnos y recordar los capítulos de The Big Bang Theory :