jueves, 30 de agosto de 2012

Proyecto Galatea: comunicacion de datos Quadcopter a Pc y Pc a Quadcopter

Después de 2 semanas pegandome para que funcione esto, lo he conseguido.

Antes de nada es importante presentar los nuevos componentes:

- La IMU Razor 9 y el chip USB-serie:




La IMU es la que esta a la izquierda.



El echo que haya cambiado mi acelerometro y mi giroscopio por esta IMU es principalmente por 3 causas.
Primero porque cuenta con una brújula electrónica que antes o después la iba a tener que comprar para compensar el giro y que no fuera en linea recta dando vueltas.
Segundo porque unifica los 3 componentes en uno solo a través de un microcontrolador solo para realizar las ecuaciones de Gauss lo cual libera al procesador principal (Arduino) de esta carga y centrarse en el control.
Tercero , ultimamente estaba recibiendo datos raros del eje de mi acelerometro (creo que he podido cascarlo).

Es importante decir que el firmware que lleva el Razor 9 no es precisamente la bomba, asi que para hacerlas rápido actualicé a uno que hizo entre otros Jordi Muñoz, y funciona bastante mejor.

- La placa Arduino Mega:



El echo de tener que comprar un nuevo arduino es porque la comunicacion entre varios procesadores y matlab requiere varios puertos de entrada y Arduino Uno solo posee 1, por lo cual no me valía (una compra no esperada....). Pero bueno en un principio este Arduino tiene algo mas de potencia de computo y ahora me salen las entradas y salidas por las orejas.





Por ultimo comentar cual ha sido el proceso.

1) Actualizar IMU.

2) Cargar nuestro software en el Arduino SIN conectar la IMU o el compilador nos dará un error (y cuesta bastante identificar de que es).

3) Desconectamos el USB y conectamos la IMU. Importante conectar la TX de la IMU con la RX del Arduino y viceversa.

4) Abriendo la consola comprobar que estamos recibiendo datos correctos. Nota: la IMU emite a 56k, así que el Braurade desde el Arduino para recoger datos a 56k.

5) Abrimos el Matlab y cargamos nuestro código que contendrá una parte para enlazarse con el Arduino y otra parte para leer los datos emitidos desde el Arduino y otra parte que enviara los datos al Arduino.

Todos estos tutoriales de como se comunica Matlab con Arduino y Arduino con Matlab están colgados en estradas anteriores en la seccion de "Mis robots".

A continuación añado un vídeo paso a paso.



Un saludo.
Mis Robots Proyecto Galatea Tutoriales

lunes, 27 de agosto de 2012

«Miimo», el robot jardinero de Honda

«ASIMO» ha pasado por ser uno de los robots humanoides más avanzados hasta la fecha. Capaz de correr, andar, girarse, y repetir muchos movimientos humanos, fue a comienzos de siglo uno de los grandes avances presentados por HONDA.




La marca japonesa ha lanzado un nuevo miembro robótico, «Miimo», una apuesta por los autómatas modernos. Se trata de un cortacésped inteligente que ahorrará mucho tiempo y esfuerzo a aquellos que tengan su propio jardín.

El nuevo robot es capaz de cuidar el césped adaptándose a la zona y a la extensión para no dejar ninguna zona descuidada.De aspecto poco parecido al cortacésped tradicional, «Miimo» puede mantener la hierba con una longitud de entre 20 y 50 mm. dependiendo de las necesidades.

Uno de los mayores avances de este autómata es que no almacena la hierba cortada si no que la tritura y la lanza haciendo de abono natural, guardando de ese modo la buena salud de las plantas.

No le falta de nada a «Miimo» que cuenta hasta con un sistema antirrobo. Si es levantado durante el trabajo, el robot se para, comienza a sonar una alarma y no vuelve a la marcha hasta que no se ingresa un código pin.

La fecha esperada de lanzamiento es a comienzos de 2013, y se sabe que contará con dos modelos, 300 y 500, cada uno con una capacidad para cubrir más o menos superficie.

Aún queda lejos el universo imaginado por Asimov, pero sin duda el panorama de los autómatas avanza a pasos agigantados gracias a las grandes inversión en investigación y desarrollo.

Referencia: abc.es

jueves, 23 de agosto de 2012

Proyecto Galatea: Arduino -> MatLab (comunicacion quadcopter -> PC)

Bueno pues traemos buenas nuevas, por fin funciona la comunicación Arduino -> Matlab.
La pregunta que estaba haciendo mal?. siempre no saber usa Matlab....

Bien la prueba es simple, engancho mi acelerometro a la entrada analogica 0, y envío los datos al Matlab y que los imprima desde el Matlab.

Código Arduino:

void setup() {
  // inicializar puerto serie
  Serial.begin(9600);   
}

void loop() { 
  int acelerometroX = analogRead(A0);
   // enviar
   Serial.println(acelerometroX); 
}


Código Matlab:

delete (instrfind({'Port'},{'COM3'}));
placa = serial( 'COM3' , 'BaudRate', 9600 );
fopen( placa );


while (true)
   loQueRecibo = fscanf( placa );
   loQueRecibo
end


Cuando declarais: placa = serial( 'COM3' , 'BaudRate', 9600 ). Tened en cuenta el puerto que usáis ( COM3, sera el mismo que estéis usando en el compilador de Arduino), y el BaudRate (9600), debe coincidir con el del Arduino (Serial.begin(9600)).


Con esto tenemos la comunicacion Bi-direccional conseguida entre Arduino y MatLab.
Ahora llegara lo más divertido... en próximas entregas presentare los nuevos componente comprado para el quadcopter, que reunirá la comunicacion Arduino<->Matlab con este componente nuevo.

Un saludo.
Mis Robots Proyecto Galatea

martes, 21 de agosto de 2012

Robots cortadores de espaguetis




Chef Cui es un robot hecho para rebanar los noodles que típicamente se sirven de manera regular a los comensales asiáticos, tal vez suene muy trillado pero, en países como Japón, Corea y China los fideos son un alimento muy cotidiano y la invención de un robot como este si representa una gran ayuda en la cocina de los restaurantes.

El robot que por ahora solo se vende en China solo hace dos cosas, rebanar y vaciar los noodles sobre un tazón de agua aunque, por alguna razón, le incluyeron luces, tal vez para que se vea bonito. El costo de este ayudante de cocina es de unos USD$2,000 y la idea es que pueda remplazar a un ayudante de cocina que al año ganaría unos USD$4,700 por la misma labor.




La demanda por este robot parece ser alta ya que al momento se han vendido 3000 unidades y vienen más en camino.

Referencia: fayerwayer

lunes, 20 de agosto de 2012

Crean robots blandos que cambian de color para camuflarse

Un equipo de investigadores ha desarrollado una nueva ingeniería de robots blandos de silicona que están inspirados en las criaturas como medusas y calamares. Ahora está trabajando en dar a estos robots la habilidad de camuflarse con su entorno, según un artículo publicado en la revista «Science»




Los científicos han desarrollado un sistema que permite a estos robots camuflarse en relación a un color del ambiente o adquirir colores llamativos.

Se trata de una «coloración dinámica» que, según los expertos, tendría múltiples usos, como por ejemplo ayudar a los doctores a planificar complejas cirugías o para que actúen como marcadores visuales que ayuden a las cuadrillas de búsqueda después de un desastre.

«Comenzamos a trabajar en estos robots blandos inspirados en organismos suaves como el pulpo o el calamar. Una de las características fascinantes de estos animales es su habilidad para controlar su apariencia, y eso nos inspiró a llevar esta idea más allá y explorar la coloración dinámica», explica en la nota de prensa Stephen Morin, autor principal del artículo y doctor en Química y Biología Química.

Para este investigador la importancia de esta creación es la adaptación de un modelo de sistema natural sencillo en una idea mucho más grande.

El grupo de investigación partió de varias preguntas: «¿Cómo los animales tienen formas, colores y capacidades como estas?», se cuestionó George Whitesides, líder del equipo. «La evolución quizás los llevó a tener estas formas particulares, pero ¿por qué? Una función de nuestra trabajo en robótica es darles a personas interesadas en este tipo de preguntas un sistema para probar ideas y respuestas», señala.

Robot, paso a paso
Estos robots y sus capas de color se comienzan a desarrollar a partir de modelos creados en impresos 3D y que después se convierten en moldes. La silicona es agregada, señala la nota, en estos moldes para crear microcanales, que son coronados por otra capa de silicona.

Estos mantos pueden ser creadas como hojas separadas que se ubican encima de los robots blandos o incorporados directamente a su estructura. Una vez se tiene todo el aparataje, los investigadores pueden bombear líquidos coloreados a estos canales, causando que el robot imite los colores y patrones de su ambiente.

Al bombear líquidos fríos o calientes en los canales, los investigadores también pueden hacer que los robots se camuflen térmicamente. Otras pruebas también han intentado con líquidos fluorescentes para que brillen en la oscuridad.

El peso y la flexibilidad de las capas de color no ralentizan la locomoción del robot. En estos caso de desarticulan parches que hacen un contraste del brillo similar al del medio ambiente, pero que no afectan la forma del robot.

Pero los investigadores no quieren que estos robots se limiten al camuflaje, sino que también puedan comunicarse. Hasta ahora, Morin prevé que sus robots puedan usar un sistema de localización para relacionarse con otros robots y con el público.

Como ejemplo ha citado la posibilidad de usar máquinas blandas durante la búsqueda y rescate en desastres. En situaciones delicadas, dice, un robot que resalte en su alrededor o incluso brille en la oscuridad puede ser muy útil para liderar equipos de rescate.

Referencia: abc.es



martes, 14 de agosto de 2012

Proyecto Galatea, unión con Matlab (Comunicación Matlab -> Arduino)

Bien pues continuo haciendo experimentos para el nuevo sistema de control y parece que da sus frutos, por ahora necesito conseguir una comunicacion bidireccional entre Arduino y Matlab, para monitorizar que va pasando por "su cabeza".

Por ahora de Arduino -> Matlab, me esta dandos ligeros problemas, ya que por alguna razón solo recibo desde matlab el primer dato, aunque desde el Arduino este mandado mas.

La comunicacion Matlab -> Arduino, funciona correctamente.

Os dejo un resumen del código que se necesita:

Primero arrancamos arduino con este código ( lo que hago básicamente es cambiar la velocidad de un motor desde matlab):

int ledPin = 13;
char * val ="0";

int vel = 120;
int numero = 0;
int tipoUnidad = 0;
int motor = 11;
void setup(){
   Serial.begin(9600);
   equilibrarMotores(); 

   pinMode(ledPin, OUTPUT );
}

void loop(){
   if (Serial.available() > 0) {
     val[0] = Serial.read(); // lee el byte de entrada:     
  
       int num = atoi(val);
       switch(tipoUnidad){
          case 0:
             numero += num*100;
             tipoUnidad++;
             break;
          case 1:
             numero += num*10;  
             tipoUnidad++;      
             break;
          case 2:
             numero += num; 
             analogWrite (motor,numero);                                            
             digitalWrite(ledPin, HIGH);   // enciende el LED
             delay(20);                  // espera por un segundo
             digitalWrite(ledPin, LOW);    // apaga el LED
             delay(20);             
             numero = 0; 
             tipoUnidad=0;            
            
             break;   
           default:   
             break;     
       }   

     Serial.flush();
   } 
}


Luego arrancamos el Matlab y ponemos lo siguiente:

placa = serial( 'COM3' , 'BaudRate', 9600 );
fopen( placa );

fprintf(placa,'%s','160')

El problema de todo esto (al menos que me ha surgido a mi) es que recibimos bytes y hay que tratarlos desde Arduino, y espero que si lo que queremos es un control de vuelo, este parseo no consuma demasiado calculo en la cpu del Arduino, sino no valdrá para nada.

En el   fprintf(placa,'%s','160'), puedes enviar cadenas más largas, tipo : 160145129, pero siempre (al menos para que este codigo funcione) en grupos de 3.

Se me olvidaba , Matlab posee una libreria para Arduuino de pago, (45€ creo), pero creo que no hay necesidad de pagar.

Un saludo.
Mis Robots Proyecto Galatea

Nuevo juguete, a espensas de robotizarlo

Bien, hace tiempo conocí un robotito que se vendía en Japón. Cuando lo vi estas vacaciones en un almacén de venta de todo (en una tienda china china enorme), no me pude resistir XD.

El bicho tiene ciertas carencias y puntos fuertes.

El punto fuerte , es que posee un giroscopio que ayuda mucho al control y lo segundo que es perfecto para la fase 3 de mi proyecto Galatea (por ahora vamos por la 2), si como lo leéis, el cuadcopter quiero que acabe en algo "similar".

Otro punto fuerte es el diseño, que sin ser robusto es deformable lo que hace q los componentes no se dañen (es como si tubiera un airbag alrededor).

Puntos flacos:
- Muy poca autonomía, escasamente 3 o 4 minutos.
- Motores con muy muy poca potencia (poniendo pocas  decenas de gramos extras, no es capaz de levantar el vuelo).


Mis Robots
 

Productos y tecnologias usadas en este blog:

  • Copyright © LuneGate™ is a registered trademark.
    Designed by Templateism. Hosted on Blogger Platform.