Cuprins:

Conexión Serial Arduino a Processing (acelerómetro En Anillo): 5 pași
Conexión Serial Arduino a Processing (acelerómetro En Anillo): 5 pași

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

Video: Conexión Serial Arduino a Processing (acelerómetro En Anillo): 5 pași
Video: Распаковка Arduino: комплект самобалансирующегося робота ELEGOO Tumbler 2024, Iulie
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 a Processing. Acă les muestro the way en that yo lo resuelvo, no es la única, pero es bastante efectiva, ya que en Processing, la recepția de date ocurre ca un eveniment, ceea ce înseamnă că nu există probleme de sincronizare cu Arduino. Utilizați un accelerometru LSM 303 pentru exemplu, dar poate fi cu orice senzor.

Materiale

  1. Arduino UNO
  2. LSM303 Flora (orice)

Pasul 1: Conexiuni în 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

Acelerometrul LSM303 are 4 conexiuni. SDA, SCL, vin, y gnd, Como se ve en la foto. Ai soldat un cablu amarillo al SDA, un cablu verde al SCL, unul roșu la 3V, și unul negru la GND.

Conectați senzorul la Arduino cum se afișează în fotografii. Básicamente, en la foto, el cable amarillo es SDA y se conecta al SDA del arduino, el cable verde es SCL, și se conectează la SCL del arduino. El cable rojo a 3.3V, y el negro a GND en el Arduino. În acest exemplu este conectarea directă la placa de arduino, dar pot face acest lucru printr-un breadboard.

Pasul 2: El Anillo

El Anillo
El Anillo
El Anillo
El Anillo

Pentru a putea face un program de desen în procesare, unde prin intermediul mișcării de la mana se pueda desenează. 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 account. Se poate pegar cu o pistolă de goma calientă sau de presiune.

Pasul 3: El Código Arduino

El Código Arduino
El Código Arduino

În codul de Arduino este important să se deschidă portul serial și viteza (în exemplu 9600) trebuie să fie egal în codul de procesare.

Codul în Arduino:

#include

#include // libreria de Adafruit

Adafruit_LSM303 lsm; // prepara el obiect

configurare nulă () {

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

lsm.begin ();

}

bucla nulă () {

lsm.read (); // lee informația 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);

întârziere (50);

}

Pasul 4: Procesarea codului

În procesare, strategia este scriind un eveniment pentru portul serial, de aceea cale de fiecare dată când intră în infracțiune, procesare în fondul almacenei în variabile, fără importarea vitezei cuadurilor corpului principal al codului de procesare.

Cod:

// creat de Tomas de Camino Beck // pentru senzorul de mișcare a mâinilor

procesare import.serial. *; Port serial;

float coord = new float [3]; // arreglo pentru stocarea datelor

Date șir = "0, 0, 0"; // string que almacena del puerto serial

float x, y, antX, antY; // pentru a crea el dibujo

configurare nulă () {

dimensiune (600, 600);

println (Serial.list ());

port = Serial nou (acesta, "/ dev / ttyACM0", 9600);

port.clear ();

port.bufferUntil ('\ n');

x = lățime / 2;

y = înălțime / 2;

antX = lățime / 2;

antY = înălțime / 2;

netedă (8);

}

draw nul () {

greutate accident vascular cerebral (10);

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

float y = înălțime-hartă (coord [1], -2000, 2000, 0, înălțime);

if (coord [2] <0) {

fundal (255);

x = lățime / 2;

y = înălțime / 2;

antX = lățime / 2;

antY = înălțime / 2;

} altceva {

umplere (0, 150);

linie (antX, antY, x, y);

antX = x;

antY = y;

}

}

void serialEvent (port serial) {

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

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

}

Pasul 5: Poner a Dibujar

Poner a Dibujar
Poner a Dibujar

Ahora pur și simplu desenează. Al dar vuelta por completo el anillo, se borra todo lo dibujado.

Recomandat: