Páginas

miércoles, 25 de febrero de 2015

150225 - Eran los cables... también la programación!

Seguí los pasos de conexión tal como indica esta página:

Y, siguiendo los consejos de Martín Matus, fui probando los diferentes códigos de ejemplo que vienen con la librería AcceleroMMA7361 para arduino, haciendo pequeñas modificaciones y luego, cuando todo comenzó a funcionar agregué los renglones de código faltantes para que encendiera las tres luces.

Aquí va entonces el video de muestra:

Conecté el acelerómetro con cables comprados macho-hembra de 20cm, empalmándolos de a 2, para tener una mayor extención respecto del resto del circuito en arduino y poder manipular con más comodidad el sensor; que, para quien esté buscando hacer algo similar, parece que es mejor el que es giroscopio y acelerómetro 2 en 1, cuesta un poco más pero mide los ángulos en que se produce el movimiento y no sólo el shock de movimiento o aceleración del mismo.

Código que va:

#include <AcceleroMMA7361.h>

AcceleroMMA7361 accelero;
int x;
int y;
int z;

//asignacion de pines pwm para los Leds:
int rojo = 3;
int verde = 5;
int azul = 6;

void setup(){
  //adjudica el modo de los pines LED
  pinMode(rojo, OUTPUT);
  pinMode(verde, OUTPUT);
  pinMode(azul, OUTPUT);
  //establece la velocidad del puerto serial
  Serial.begin(9600);
  //declara los pines del acelerometro
  accelero.begin(13, 12, 11, 10, A0, A1, A2);
  //establece el voltaje AREF en 3.3V
  accelero.setARefVoltage(3.3);    
  //establece la sensibilidad en +/-1.5G          
  accelero.setSensitivity(HIGH);   
  //calibra el acelerometro            
  accelero.calibrate();
}

void loop(){
  //Inicializa el acelerómetro:
  x = accelero.getXAccel();
  y = accelero.getYAccel();
  z = accelero.getZAccel();

 //escribe los valores de x, y, z pero mapeados para los leds
 Serial.print("\nx: ");
  x = map(x, 0, 511, 0, 255);
  Serial.print(x);
  analogWrite(rojo, x);
  Serial.print(" \ty: ");
  y = map(y, 0, 511, 0, 255);
  analogWrite(verde, y);
  Serial.print(y);
  Serial.print(" \tz: ");
  z = map(z, 0, 511, 0, 255);
  analogWrite(azul, z);
  Serial.print(z);
  Serial.print("\tG*10^-2");
  //retardo de lectura para leer los valores de monitor y mejorar la respuesta
  lumínica 
  delay(150);       
}

Ahora viene la parte interesante!!!
Comenzaré a montar los leds en el prototipo: PELOTEDRA!


Fotógrafa: Eugenia Romero

No hay comentarios:

Publicar un comentario