Conexin Serial Arduino a Processing (acelermetro en anillo)

Conexin Serial Arduino a Processing (acelermetro en anillo)

Muchos me preguntan de como conectar la informaci que viene por puerto serial de Arduino a Processing. Acles muestro la manera en que yo lo resuelvo, no es la nica, pero es bastante efectiva, ya que en Processing, la recepci de datos ocurre como un evento, lo que significa que no hay problemas de sincronizaci con Arduino. Utilizo un aceleretro LSM 303 para el ejemplo, pero puede ser con cualquier sensor.

Materiales

  • Arduino UNO
  • LSM303 Flora (cualquier)

Task 1: Conexiones en Arduino

Conexin Serial Arduino a Processing (acelermetro en anillo)
Conexin Serial Arduino a Processing (acelermetro en anillo)
Conexin Serial Arduino a Processing (acelermetro en anillo)
Conexin Serial Arduino a Processing (acelermetro en anillo)

El aceleretro LSM303 tiene 4 conexiones. SDA, SCL, vin, y gnd, Como se ve en la foto. Yo sold un cable amarillo al SDA, un cable verde al SCL, uno rojo a 3V, y uno negro a GND.

Conectar el sensor al Arduino como se muestra en las fotos. Bicamente, en la foto, el cable amarillo es SDA y se conecta al SDA del arduino, el cable verde es SCL, y se conecta al SCL del arduino. El cable rojo a 3.3V, y el negro a GND en el Arduino. En este ejemplo lo conecto directo a la placa de arduino, pero pueden hacerlo a trav s de un breadboard.

Task 2: El anillo

Conexin Serial Arduino a Processing (acelermetro en anillo)
Conexin Serial Arduino a Processing (acelermetro en anillo)

Para poder hacer un programa de dibujo en processing, donde a trav s del movimiento de la mano se pueda dibujar. Metemos el aceleretro dentro de un anillo impreso en impresora 3D.

El modelo sencillo del anillo estac Pueden modificarlo allmismo en tinkercad si hacen una cuenta. Se puede pegar con una pistola de goma caliente o a presi.

Task 3: El cdigo Arduino

Conexin Serial Arduino a Processing (acelermetro en anillo)

En el cigo de Arduino es importante abrir el puerto serial y la velocidad (en el ejemplo 9600) debe ser igual en el cigo de processing.

Cigo en el Arduino:

#include

#include //libreria de Adafruit

Adafruit_LSM303 lsm; //prepara el objeto

void setup() {

Serial.begin(9600); //inicializa el acelerometro

lsm.begin();

}

void loop() {

lsm.read();//lee la informacion del sensor

//manda la lectura a serial

Serial.print((int)lsm.accelData.x);

Serial.print(“,”);

Serial.print((int)lsm.accelData.y);

Serial.print(“,”);

Serial.println((int)lsm.accelData.z);

delay(50);

}

Task 4: Cdigo en Processing

En processing, la estrategia es escrivir un evento para el puerto serail, de esa manera cada vez que entra infromaci, processing en el fondo lo almacena en variables, sin importar la velocidad de los cuadros del cuerpo principal del cigo de processing.

Cigo:

// created by Tomas de Camino Beck
//for hand movement sensor

import processing.serial.*; Serial port;

float[] coord = new float[3]; //arreglo para almacenar los datos

String data=”0,0,0″; //string que almacena del puerto serial

float x, y, antX, antY; //para crear el dibujo

void setup() {

size(600, 600);

println(Serial.list());

port = new Serial(this, “/dev/ttyACM0”, 9600);

port.clear();

port.bufferUntil(‘\n’);

x = width/2;

y=height/2;

antX=width/2;

antY=height/2;

smooth(8);

}

void draw() {

strokeWeight(10);

float x = width-map(coord[0], -2000, 2000, 0, width);

float y = height-map(coord[1], -2000, 2000, 0, height);

if (coord[2]

background(255);

x = width/2;

y=height/2;

antX=width/2;

antY=height/2;

} else {

fill(0, 150);

line(antX, antY, x, y);

antX= x;

antY= y;

}

}

void serialEvent(Serial port) {

data = port.readString(); //lee del puerto serial

coord = float(split(data, ‘,’)); //separa por comas los datos y los almacena en el arreglo

}

Task 5: Poner a dibujar

Conexin Serial Arduino a Processing (acelermetro en anillo)

Ahora simplemente dibujar. Al dar vuelta por completo el anillo, se borra todo lo dibujado.

arduino – Conexin Serial Arduino a Processing (acelermetro en anillo), in category: technology

Written by admin