uControl
Septiembre 09, 2010, 02:31:22 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: 1   Ir Abajo
  Imprimir  
Autor Tema: Arduino Diecimila + Acelerómetro  (Leído 2482 veces)
0 Usuarios y 1 Visitante están viendo este tema.
DaviD_H
PIC12F
**
Desconectado Desconectado

Mensajes: 101



WWW
« : Diciembre 04, 2008, 06:33:43 »

Buenas.
Tengo la arduino diecimilia con el acelerómetro siguiente:-ENLACE-.


¿Alguno ha trabajado con ella?
Quiero hacer un sistema de estabilización con ella y me gustaría ver si alguien ha obtenido algun tipo e resultado.

GRACIAS
En línea

Compartir es crecer en sabiduría
CesarS
Moderator
PIC12F
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 144



« Respuesta #1 : Diciembre 05, 2008, 01:28:36 »

Hola DAVID_H, yo tengo para el ADXL330, pero no he podido comprar todavia.  Angry la compra en grupo esta parada.

Código:
Acelerometro con Arduino (ADXL330)

#define xPin 5
#define yPin 4
#define zPin 3
int x = 0;
int y = 0;
int z  = 0;
int delta = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  delta = x + y + z;
  x = analogRead(xPin);
  y = analogRead(yPin);
  z = analogRead(zPin);
  delta -= x + y + z;
  Serial.print(x);
  Serial.print(", ");
  Serial.print(y);
  Serial.print(", ");
  Serial.print(z);
  Serial.print(", ");
  Serial.println(abs(delta));
  delay(500);
}

Esto se puede ver en terminal del IDE o con el serial-proxy  en un programa hecho en Processing.

Saludos
« Última modificación: Diciembre 05, 2008, 01:32:59 por CesarS » En línea
CesarS
Moderator
PIC12F
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 144



« Respuesta #2 : Diciembre 05, 2008, 05:42:07 »

David_H, te dejo otro link para que puedas probar esos juguetitos  ::) ::) ::)
bajate el archivo ap_ReadAccelerometer.pde
y el pa_Accelerometer.zip

link Acelerometro con Arduino y Processing

Saludos
En línea
DaviD_H
PIC12F
**
Desconectado Desconectado

Mensajes: 101



WWW
« Respuesta #3 : Diciembre 15, 2008, 09:33:57 »

Buenas,

no caía en que el acelerometro que uso da salidas analógicas,
por lo que necesito un código que las lea. POr lo que uso este:

Código:
int xPin = 0;       // select the analog input pin for the X - movement of the Accelerometer-sensor
int yPin = 1;       // select the analog input pin for the Y - movement of the Accelerometer-sensor
int zPin = 2;       // select the analog input pin for the Z - movement of the Accelerometer-sensor
int valx = 0;       // variable to store the X-value coming from the sensor
int valy = 0;       // variable to store the Y-value coming from the sensor
int valz = 0;       // variable to store the Z-value coming from the sensor


void setup() {
  Serial.begin(9600);           // set up Serial library at 115200 bps
  Serial.println("Accelerometer 7260Q test!");
}


void loop() {
  valx = analogRead(xPin);    // read the X-value from the sensor
  Serial.print("x:  ");
  Serial.println(valx, DEC);
  valy = analogRead(yPin);    // read the Y-value from the sensor
  Serial.print("y:  ");
  Serial.println(valy, DEC);
  valz = analogRead(zPin);    // read the Z-value from the sensor
  Serial.print("z:  ");
  Serial.println(valz, DEC);
  delay(30);                  // stop the program for some time
}

Bien,

¿como hago ahora para mostrar esos valores en un LCD de 20x2 con 4bits?
¿como modificar el codigo demo del proccessing para ver como se mueve el cuadro azul del ajemplo que me mencionabas?

GRACIAS
« Última modificación: Diciembre 15, 2008, 09:36:52 por DaviD_H » En línea

Compartir es crecer en sabiduría
CesarS
Moderator
PIC12F
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 144



« Respuesta #4 : Diciembre 15, 2008, 02:23:45 »

Hola DaviD_H, en ambos casos solo puedo darte una guía de como seguir
ya que también estoy comenzando con esto.



Para el LCD fijate que en Ardino IDE > Sketch > Import Library > LCD4bit o liquidCrystal
con eso se carga en la linea de programa.

#include <LCD4Bit.h> // librería
LCD4Bit lcd = LCD4Bit(1);  // número de lineas 1

Libreria LCD4bit.h
Código:
#ifndef LCD4Bit_h
#define LCD4Bit_h

#include <inttypes.h>

class LCD4Bit {
public:
  LCD4Bit(int num_lines);
  void commandWrite(int value);
  void init();
  void print(int value);
  void printIn(char value[]);
  void clear();
  //non-core---------------
  void cursorTo(int line_num, int x);
  void leftScroll(int chars, int delay_time);
  //end of non-core--------

  //4bit only, therefore ideally private but may be needed by user
  void commandWriteNibble(int nibble);
private:
  void pulseEnablePin();
  void pushNibble(int nibble);
  void pushByte(int value);
};

#endif

En el Setup

Código:
void setup() {

  lcd.init();
}

en Loop  usa 

Código:

LCD.print()
........
LCD.printIn()
........
cursorTo(int line_num, int x) // segun corresponda


En Processing no entendí si te funciono y quieres cambiar algo o si no funcionó para nada.

Si usas arduino 0011 puedes usar los ejemplos de acá

Si usas el 0012, hay un cambio en una librería, entonces hay que reemplazar la librería ó cambiar el código, de lo contrario tendras un error en " printInteger(accel); "

También necesitas Serial Proxy.
Se utiliza para hacer de interface entre las placas Arduino y Flash u otros programas. Redirecciona datos de un puerto serie a un puerto TCP y viceversa.

El programa "ap_ReadAccelerometer.pde" esta hecho para dos ejes pero lo puedes modificar facilmente para 3.

En Processing tienes 2, "DisplayItems.pde" y "pa_Accelerometer.pde",
hay otros archivos "Monaco-14.vlw" y no debes cambiarlos ni sacar las carpetas,
sin estos no funciona.

Con esto tendria que funcionar, primero cargas "ap_ReadAccelerometer.pde" en Arduino ya estaria funcionando el acererometro.

con lo siguiente cambias el cuadro en  "pa_Accelerometer.pde"

Código:
    //draw the square
   rect(coordinateX, coordinateY, 15, 15);

con lo siguiente cambias la cuadricula en"DisplayItems.pde"

Código:
DisplayItems(){
  font = loadFont(fontname);
  gridsize = (width/2)/25+(height/2)/25;

configuración del puerto
Código:
String portname = "/dev/cu.usbserial-3B1";  // la dirección tiene que ser la que usa en tu sistema

Fijate que hay varios ejemplos en Processing que puedes usar parte de código
para tener otros resultados, muchos usan el mouse ....cambialo por el acelerometro  Grin

Saludos

PD: el programa realizado en Processing puede ser exportado a Windows, Linux y Mac OS  con sus respectivas librerias y código fuente.

« Última modificación: Diciembre 15, 2008, 03:18:43 por CesarS » En línea
DaviD_H
PIC12F
**
Desconectado Desconectado

Mensajes: 101



WWW
« Respuesta #5 : Diciembre 16, 2008, 11:14:36 »

ok lo miro.

en processing no conseguía que me moviera la pieza azul.
En línea

Compartir es crecer en sabiduría
Páginas: 1   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.9 | SMF © 2006-2009, Simple Machines LLC XHTML 1.0 válido! CSS válido!

Página creada en 0.329 segundos con 23 consultas. (Pretty URLs adds 0.014s, 2q)