Cov txheej txheem:

Conexión Serial Arduino a Processing (acelerómetro En Anillo): 5 Cov Kauj Ruam
Conexión Serial Arduino a Processing (acelerómetro En Anillo): 5 Cov Kauj Ruam

Video: Conexión Serial Arduino a Processing (acelerómetro En Anillo): 5 Cov Kauj Ruam

Video: Conexión Serial Arduino a Processing (acelerómetro En Anillo): 5 Cov Kauj Ruam
Video: Распаковка Arduino: комплект самобалансирующегося робота ELEGOO Tumbler 2024, Lub Xya hli ntuj
Anonim
Conexión Serial Arduino a Processing (acelerómetro En Anillo)
Conexión Serial Arduino a Processing (acelerómetro En Anillo)

Muchos me preguntan de como conectar la información que viene por puerto serial de Arduino Kev Ua. Acá les muestro la manera en que yo lo resuelvo, tsis yog la única, pero es bastante efectiva, ya que en Processing, la recepción de datos ocurre como un evento, lo que significa que no hay problemas de sincronización con Arduino. Siv cov acelerómetro LSM 303 para el ejemplo, pero puede ser con cualquier sensor.

Cov ntaub ntawv

  1. Arduino UAS
  2. LSM303 Flora (cualquier)

Kauj Ruam 1: Conexiones En Arduino

Conexiones En Arduino
Conexiones En Arduino
Conexiones En Arduino
Conexiones En Arduino
Conexiones En Arduino
Conexiones En Arduino
Conexiones En Arduino
Conexiones En Arduino

El acelerómetro 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. Básicamente, 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.

Kauj ruam 2: El Anillo

Ntsib neeg El Anillo
Ntsib neeg El Anillo
Ntsib neeg El Anillo
Ntsib neeg El Anillo

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

El modelo sencillo del anillo está acá. Pueden modificarlo allí mismo en tinkercad si hacen una cuenta. Se puede pegar con una pistola de goma caliente o presión.

Kauj Ruam 3: El Código Arduino

El Código Arduino
El Código Arduino

En el código de Arduino yog qhov tseem ceeb abrir el puerto serial y la velocidad (en el ejemplo 9600) debe ser igual en el código de ua.

Código thiab el Arduino:

#suav nrog

#suav nrog // libreria de Adafruit

Adafruit_LSM303 lsm; // npaj ua ntej

void teeb tsa () {

Serial.begin (9600); // inicial lisa el acelerometro

lsm.begin ();

}

void voj () {

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);

ncua (50);

}

Kauj Ruam 4: Código En Processing

En processing, la estrategia es escrivir un evento para el puerto serail, de esa manera cada vez que entra infromación, ua en el fondo lo almacena en variables, sin importar la velocidad de los cuadros del cuerpo tus thawj xibfwb del código de ua.

Caj dab:

// tsim los ntawm Tomas de Camino Beck // rau tes txav lub sensor

ntshuam ua.serial.*; Serial chaw nres nkoj;

ntab coord = ntab tshiab [3]; // arreglo para almacenar los datos

Cov ntaub ntawv hlua = "0, 0, 0"; // hlua que almacena del puerto serial

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

void teeb tsa () {

loj (600, 600);

println (Serial.list ()); cov.

chaw nres nkoj = tshiab Serial (qhov no, "/dev/ttyACM0", 9600);

chaw.clear ();

port.bufferUntil ('\ n');

x = dav/2;

y = qhov siab/2;

antX = dav/2;

antY = qhov siab/2;

du (8);

}

void kos () {

Qhov hnyav (10);

ntab x = dav -daim ntawv qhia (ua haujlwm [0], -2000, 2000, 0, dav);

ntab y = qhov siab daim ntawv qhia (kev sib koom [1], -2000, 2000, 0, qhov siab);

yog (coord [2] <0) {

keeb kwm yav dhau (255);

x = dav/2;

y = qhov siab/2;

antX = dav/2;

antY = qhov siab/2;

lwm yam {

sau (0, 150);

kab (antX, antY, x, y);

antX = np.

antY = y;

}

}

void serialEvent (Chaw nres nkoj Serial) {

cov ntaub ntawv = port.readString (); // lee del puerto serial

coord = ntab (cais (cov ntaub ntawv, ',')); // separa por comas los datos y los almacena en el arreglo

}

Kauj Ruam 5: Poner a Dibujar

Poner hauv Dibujar
Poner hauv Dibujar

Ua raws li cov lus qhia yooj yim. Al dar vuelta por completo el anillo, se borra todo lo dibujado.

Pom zoo: