Kazalo:

Conexión Serial Arduino in Processing (acelerómetro En Anillo): 5 korakov
Conexión Serial Arduino in Processing (acelerómetro En Anillo): 5 korakov

Video: Conexión Serial Arduino in Processing (acelerómetro En Anillo): 5 korakov

Video: Conexión Serial Arduino in Processing (acelerómetro En Anillo): 5 korakov
Video: Cómo descargar información de una API en JSON y leerla con tu Arduino 2024, Julij
Anonim
Conexión Serial Arduino in Processing (acelerómetro En Anillo)
Conexión Serial Arduino in Processing (acelerómetro En Anillo)

Muchos me preguntan de como conectar la información que viene por puerto serial de Arduino a Processing. Acá les muestro la manera en que yo lo resuelvo, no es la única, pero es bastante efectiva, ya que en Processing, la recepción de datos ocurre como un evento, lo que signific que no hay problemsmas de sincronización con Arduino. Uporabite zunanji merilnik LSM 303 za uporabo, senzor s kvalitativnim senzorjem.

Materiales

  1. Arduino UNO
  2. LSM303 Flora (kualquier)

Korak: 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

Acelerómetro LSM303 vsebuje 4 koneksije. SDA, SCL, vin, y gnd, Como se ve en la foto. Lahko prodate kabel amarillo al SDA, kabel ali SCL, vklopite 3V, ne črni pa GND.

Konektorski senzor al Arduino, ki se muestra in las fotografije. Básicamente, en la foto, el cable amarillo es SDA y se povezuje z SDA del arduino, el cable verde es SCL, y se conecta al SCL del arduino. Napajalni kabel z napetostjo 3.3 V, črni črnec z GND in el Arduino. En este ejemplo lo conecto directo a la placa de arduino, pero pueden hacerlo a través de un breadboard.

Korak: El Anillo

El Anillo
El Anillo
El Anillo
El Anillo

Para poder hacer un program 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.

Korak: El Código Arduino

El Código Arduino
El Código Arduino

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

Código en el Arduino:

#vključi

#include // libreria de Adafruit

Adafruit_LSM303 lsm; // priprava el objeto

void setup () {

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

lsm.begin ();

}

void loop () {

lsm.read (); // informacije o senzorju

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

zamuda (50);

}

4. korak: Obdelava Código En

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

Código:

// ustvaril Tomas de Camino Beck // za senzor gibanja rok

uvozna obdelava.serial.*; Serijska vrata;

float koord = nov plovec [3]; // arreglo para almacenar los datos

Niz podatkov = "0, 0, 0"; // niz que almacena del puerto serijski

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

void setup () {

velikost (600, 600);

println (Serial.list ());

port = nov zaporedni (to, "/dev/ttyACM0", 9600);

port.clear ();

port.bufferUntil ('\ n');

x = širina/2;

y = višina/2;

antX = širina/2;

antY = višina/2;

gladka (8);

}

void draw () {

strokeWeight (10);

float x = zemljevid širine (koord [0], -2000, 2000, 0, širina);

float y = zemljevid višine (koord [1], -2000, 2000, 0, višina);

if (koord [2] <0) {

ozadje (255);

x = širina/2;

y = višina/2;

antX = širina/2;

antY = višina/2;

} drugo {

izpolni (0,150);

vrstica (antX, antY, x, y);

antX = x;

antY = y;

}

}

void serialEvent (serijska vrata) {

podatki = port.readString (); // lee del puerto serijski

koord = plavajoče (razcepljeno (podatki, ',')); // separa por comas los datos y los almacena en el arreglo

}

5. korak: Poner a Dibujar

Poner in Dibujar
Poner in Dibujar

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

Priporočena: