Isi kandungan:

Conexión Serial Arduino a Processing (acelerómetro En Anillo): 5 Langkah
Conexión Serial Arduino a Processing (acelerómetro En Anillo): 5 Langkah

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

Video: Conexión Serial Arduino a Processing (acelerómetro En Anillo): 5 Langkah
Video: Amazing arduino project 2024, November
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 bersiri de Arduino a Processing. Maklumat lanjut, tidak ada resuelvo, no es la única, pero es bastante efectiva, ya que en Processing, la recepción de datos ocurre como un evento, lo que indica que no hay problemas de sinkronización con Arduino. Utilizo un acelerómetro LSM 303 para el ejemplo, sensor ser conquququier pero puede.

Bahan

  1. Arduino UNO
  2. LSM303 Flora (cququier)

Langkah 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 koneksion. 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 kabel 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 dan el Arduino. En este ejemplo lo conecto directo a la placa de arduino, pero pueden hacerlo a través de un papan roti.

Langkah 2: El Anillo

El Anillo
El Anillo
El Anillo
El Anillo

Para poder hacer un programa de dibujo en processing, 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 a presión.

Langkah 3: El Código Arduino

El Código Arduino
El Código Arduino

En el código de Arduino es muste abrir el puerto bersiri y la velocidad (en el ejemplo 9600) debe ser sergg en el código de processing.

Código en el Arduino:

#sertakan

#masuk // libreria de Adafruit

Adafruit_LSM303 lsm; // prepara el objeto

batal persediaan () {

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

lsm.begin ();

}

gelung kosong () {

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

// manda la lectura sebuah siri

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

Cetakan bersiri (",");

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

Cetakan bersiri (",");

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

kelewatan (50);

}

Langkah 4: Pemprosesan Código En

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

Código:

// dicipta oleh Tomas de Camino Beck // untuk sensor pergerakan tangan

pemprosesan import.serial. *; Pelabuhan bersiri;

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

Data rentetan = "0, 0, 0"; // string que almacena del puerto bersiri

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

batal persediaan () {

saiz (600, 600);

println (Siri. senarai ());

port = Serial baru (ini, "/ dev / ttyACM0", 9600);

port.clear ();

port.bufferUntil ('\ n');

x = lebar / 2;

y = tinggi / 2;

antX = lebar / 2;

antY = tinggi / 2;

halus (8);

}

undian tidak sah () {

berat badan (10);

apungan x = lebar-peta (koordinat [0], -2000, 2000, 0, lebar);

apungan y = peta tinggi (koordinat [1], -2000, 2000, 0, tinggi);

jika (koordinat [2] <0) {

latar belakang (255);

x = lebar / 2;

y = tinggi / 2;

antX = lebar / 2;

antY = tinggi / 2;

} lain {

isi (0, 150);

garis (antX, antY, x, y);

antX = x;

antY = y;

}

}

batal serialEvent (Serial port) {

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

coord = float (perpecahan (data, ',')); // separa por comas los datos y los almacena en el arreglo

}

Langkah 5: Renungkan Dibujar

Renungkan Dibujar
Renungkan Dibujar

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

Disyorkan: