Բովանդակություն:

Conexión Serial Arduino a Processing (acelerómetro En Anillo) ՝ 5 քայլ
Conexión Serial Arduino a Processing (acelerómetro En Anillo) ՝ 5 քայլ

Video: Conexión Serial Arduino a Processing (acelerómetro En Anillo) ՝ 5 քայլ

Video: Conexión Serial Arduino a Processing (acelerómetro En Anillo) ՝ 5 քայլ
Video: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, Նոյեմբեր
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 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 indica que no hay problemas de sincronización con Arduino. Utilizo un acelerómetro LSM 303 para el ejemplo, pero puede ser con cualquier sensor.

Նյութեր

  1. Arduino UNO
  2. LSM303 Flora (cualquier)

Քայլ 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. Դուք վաճառել եք մալուխի 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, perueden hacerlo a través de un un breadboard.

Քայլ 2: Էլ Անիլո

Էլ Անիլո
Էլ Անիլո
Էլ Անիլո
Էլ Անիլո

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.

Քայլ 3. 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:

#ներառում

#ներառել // libreria de Adafruit

Adafruit_LSM303 լմ; // prepara el objeto

void setup () {

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

lsm.begin ();

}

դատարկ շրջան () {

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

ուշացում (50);

}

Քայլ 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, 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:

// ստեղծեց Tomas de Camino Beck // ձեռքի շարժման տվիչի համար

ներմուծման մշակում. սերիա:*; Սերիական նավահանգիստ;

բոց coord = նոր բոց [3]; // arreglo para almacenar los datos

Լարային տվյալներ = "0, 0, 0"; // string que almacena del puerto սերիալ

բոց x, y, antX, antY; // para crear el dibujo

void setup () {

չափը (600, 600);

println (Serial.list ());

նավահանգիստ = նոր Սերիա (սա, "/dev/ttyACM0", 9600);

port.clear ();

port.bufferUntil ('\ n');

x = լայնություն/2;

y = բարձրություն/2;

antX = լայնություն/2;

antY = բարձրություն/2;

հարթ (8);

}

դատարկ վիճակահանություն () {

կաթված Քաշ (10);

float x = width -map (կոորդին [0], -2000, 2000, 0, լայնություն);

float y = բարձրություն -քարտեզ (կոորդին [1], -2000, 2000, 0, բարձրություն);

եթե (կոորդին [2] <0) {

ֆոն (255);

x = լայնություն/2;

y = բարձրություն/2;

antX = լայնություն/2;

antY = բարձրություն/2;

} ուրիշ {

լրացնել (0, 150);

տող (antX, antY, x, y);

antX = x;

antY = y;

}

}

void serialEvent (Սերիական նավահանգիստ) {

տվյալներ = port.readString (); // lee del puerto սերիալ

coord = float (պառակտում (տվյալներ, ',')); // separa por comas los datos y los almacena en el arreglo

}

Քայլ 5. Պոներ և Դիբուջար

Poner a Dibujar
Poner a Dibujar

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

Խորհուրդ ենք տալիս: