Съдържание:

Conexión Serial Arduino и обработка (acelerómetro En Anillo): 5 стъпки
Conexión Serial Arduino и обработка (acelerómetro En Anillo): 5 стъпки

Видео: Conexión Serial Arduino и обработка (acelerómetro En Anillo): 5 стъпки

Видео: Conexión Serial Arduino и обработка (acelerómetro En Anillo): 5 стъпки
Видео: Гироскоп-Акселерометр MPU-6050. Первое знакомство 2024, Ноември
Anonim
Conexión Serial Arduino и обработка (acelerómetro En Anillo)
Conexión Serial Arduino и обработка (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 значна que no hay problemas de sincronización con Arduino. Използвайте ацелерометър LSM 303, за да го използвате, сензор за обслужване на потребителя.

Материали

  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

Ацелерометър LSM303, свързан с 4 съчетания. SDA, SCL, vin, y gnd, Como se ve en la foto. Вие продавате кабелен амарило от SDA, кабелен кабел от SCL, въведете 3V, и негърски 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. Електрически кабел 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 blackboard.

Стъпка 2: 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.

Стъпка 3: 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:

#включва

#include // libreria de Adafruit

Adafruit_LSM303 lsm; // подготвям ел обето

void setup () {

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

lsm.begin ();

}

void loop () {

lsm.read (); // информация за сензора

// manda la lectura a сериал

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

En обработка, la estrategia es escrivir un evento para el puerto serail, de esa manera cada vez que entra infromación, обработка en el fondo lo almacena и променливи, sin importar la velocidad de los cuadros del cuerpo principal del código de processing.

Кодиго:

// създадено от Tomas de Camino Beck // за сензор за движение на ръцете

обработка на внос.serial.*; Сериен порт;

float координат = нов поплавък [3]; // arreglo para almacenar los datos

Низови данни = "0, 0, 0"; // низ que almacena del puerto сериал

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

}

void draw () {

strokeWeight (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;

} else {

попълнете (0, 150);

ред (antX, antY, x, y);

antX = x;

antY = y;

}

}

void serialEvent (сериен порт) {

данни = port.readString (); // lee del puerto сериал

koord = float (разделяне (данни, ',')); // separa por comas los datos y los almacena en el arreglo

}

Стъпка 5: Понер и Dibujar

Понер и Дибуджар
Понер и Дибуджар

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

Препоръчано: