lunes, 21 de marzo de 2016

TRIAC - Robot móvil controlado por inercial del smartphone

El equipo TRIAC (Tierra RIo Aire Control) está formado por alumnos de electrónica del IES Politécnico de Cartagena.




El objetivo de este equipo ha sido participar en un concurso organizado por la Universidad. Resumiendo las bases del concurso, se trata de que un pequeño robot móvil sea controlado por el acelerómetro de un smartphone o tablet, y realice un recorrido con distintas pruebas. Entre otras, hay que cruzar una zona con tierra, otra con gravilla y otra con agua.

Se ha desarrollado la aplicación para Android, y se ha compartido de forma pública en el Play Store.

Play Store

Esta aplicación activa el Bluetooth, y envía la trama siguiente:

i, accx, accy, accz, pot, f

siendo:
  • i: inicio de trama,
  • accx: acelerómetro en el eje X,
  • accy: acelerómetro en el eje Y,
  • accz: acelerómetro en el eje Z,
  • pot: valor del potenciómetro,
  • f: fin de trama


El receptor es un microcontrolador que se comunica mediante la UART en niveles TTL con un módulo bluetooth HC-05. En este caso, es obligado el uso de un Arduino.

Lo primero que tendrá que hacer la aplicación del arduino es decodificar la trama, para separar cada uno de los campos, y pasarlo de caracteres ASCII a números flotantes.

void loop() // run over and over
{
  
  if (mySerial.available() > 0){
  
    int data = mySerial.read();
    char cData = (char) data;
    Serial.write((char)data);
    
    if(cData == 'i'){
      
     index = 0;  // reset index 
    }else if(cData == 'f'){
      
      Serial.println("");
      
      str[index++] = '\0';  // fin de cadena
      char *acc = strtok(str, ",");
      int i = 0;
      
      while(acc != NULL){
        
        accf[i++] = atof(acc);       
        //Serial.println(acc); 
        Serial.println(accf[i-1]);
        acc = strtok(NULL, ",");
      }
  
    }else{
       str[index++] = cData; 
    }
      
  }
  
}


Una vez obtenido los datos enviados desde el smartphone, hay que aplicarle la matriz de movimiento, que para este caso se trata de un robot diferencial con 2 ruedas.

En el siguiente video se muestra la presentación del proyecto:








No hay comentarios:

Publicar un comentario