Spisu treści:

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

Wideo: Conexión Serial Arduino a Processing (acelerómetro En Anillo): 5 kroków

Wideo: Conexión Serial Arduino a Processing (acelerómetro En Anillo): 5 kroków
Wideo: Amazing arduino project 2024, Listopad
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 que viene por port szeregowy 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 datas ocurre como un evento, lo que significa que no hay problemas de sincronización con Arduino. Utilizo un acelerómetro LSM 303 para el ejemplo, pero puede ser con cualquier sensor.

Materiały

  1. Arduino UNO
  2. LSM303 Flora (cualquier)

Krok 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. Podłączony kabel amarillo al SDA, kabel verde al SCL, uno rojo a 3V, y uno czarny a GND.

Połącz czujnik al Arduino como se muestra i zdjęcia. 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 kabel 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 breadboard.

Krok 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 unillo impreso en impresora 3D.

El modelo sencillo del anillo está acá. Pueden modificarlo allí mismo pl tinkercad si hacen una cuenta. Se puede pegar con una pistola de goma caliente o a presión.

Krok 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.

Kodigo i Arduino:

#włączać

#include //libreria de Adafruit

Adafruit_LSM303 lsm; //przygotuj el objeto

pusta konfiguracja () {

Serial.początek(9600); //inicjalizacja el acelerometro

lsm.początek();

}

pusta pętla () {

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

opóźnienie(50);

}

Krok 4: Przetwarzanie Código

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 variable, sin importar la velocidad de los cuadros del cuerpo principal del código de processing.

Kodygo:

// stworzony przez Tomasa de Camino Beck//dla czujnika ruchu ręki

importowanie przetwarzania.serial.*; Port szeregowy;

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

Ciąg danych = "0, 0, 0"; //string que almacena del puerto serial

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

pusta konfiguracja () {

rozmiar (600, 600);

println(Serial.list());

port = nowy Serial(to, "/dev/ttyACM0", 9600);

port.wyczyść();

port.bufferUntil('\n');

x = szerokość/2;

y=wysokość/2;

antX=szerokość/2;

antY=wysokość/2;

gładki(8);

}

nieważne rysowanie () {

obrys Waga(10);

float x = szerokość-mapa(coord[0], -2000, 2000, 0, szerokość);

float y = mapa-wysokości(coord[1], -2000, 2000, 0, wysokość);

jeśli (współrzędna [2]<0) {

tło (255);

x = szerokość/2;

y=wysokość/2;

antX=szerokość/2;

antY=wysokość/2;

} w przeciwnym razie {

wypełnienie (0, 150);

linia(antX, antY, x, y);

mrówkaX= x;

antY= y;

}

}

void serialEvent (port szeregowy) {

dane = port.odczytajString(); //lee del porto serial

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

}

Krok 5: Poner a Dibujar

Poner a Dibujar
Poner a Dibujar

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

Zalecana: