sábado, 19 de enero de 2013

Acelerómetros

Hoy os voy a contar mis aventuras y desventuras intentando conectar un acelerómetro de tres ejes al arduino. El acelerómetro en cuestión es este.

Conectarlo al Arduino Uno, es muy sencillo. Lo que más me ha costado ha sido la soldadura de los pines, pero todo mejora con la práctica. Lo podéis ver en el siguiente esquema de Fritzing.



A continuación va el sketch que he escrito para el Arduino Uno. Como hago habitualmente, recojo los valores de la salida X,Y,Z y la envío por el puerto serie.


int pinX = A0; // a este pin analógico va conectada la patilla X
int pinY = A1; // a este pin analógico va conectada la patilla Y
int pinZ = A2; // a este pin analógico va conectada la patilla Z

int valorX = 0; // de aquí leo el valor de la patilla X
int valorY = 0; // de aquí leo el valor de la patilla Y
int valorZ = 0; // de aquí leo el valor de la patilla Z

void setup(){

// configuro las patillas como entrada
  pinMode(pinX,INPUT);
  pinMode(pinY,INPUT);
  pinMode(pinZ,INPUT);

//configuro la velocidad de escritura del puerto serie
  Serial.begin(9600);
}//setup

void loop(){
  delay(100); // pongo un pequeño retraso

// leo los valores
  valorX = analogRead( pinX );
  valorY = analogRead( pinY );
  valorZ = analogRead( pinZ );


// los escribo al puerto serie de la forma -> por ejemplo ->
// 123 123 123
  Serial.print( valorX );
  Serial.print(" ");

  Serial.print( valorY );
  Serial.print(" ");

  Serial.print( valorZ );
  Serial.print(" ");

  Serial.println();
  Serial.flush();
}//loop


La salida del puerto serie es la siguiente tras hacer algunos giros. 



Como la salida no es muy espectacular, voy a aprovechar la salida por el puerto serie para mostar unas gráficas con Matlab. La salida es la siguiente.



Cuando la gráfica está en reposo el sensor no registra aceleración. En este video de bastante mala calidad todo sea dicho, se puede ver el sensor en movimiento. Sólo me centro en el eje X



Si el "mando" queda quieto, la gráfica es una constante. Si giramos hacia un lado vemos que crece o decrece según el sentido del giro.