Taula de continguts:

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

Vídeo: Conexión Serial Arduino a Processing (acelerómetro En Anillo): 5 passos

Vídeo: Conexión Serial Arduino a Processing (acelerómetro En Anillo): 5 passos
Vídeo: Amazing arduino project 2024, Desembre
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 mestre la manera en què el teu resuelvo, no és l'única, però és bastant efectiva, ja que en Processing, la recepció de dades ocorre com un esdeveniment, el que significa que no hi ha problemes de sincronització amb Arduino. Utilitzeu un accelerador LSM 303 per exemple, però pot ser amb qualsevol sensor.

Materials

  1. Arduino UNO
  2. LSM303 Flora (qualsevol)

Pas 1: Connexions en Arduino

Connexions En Arduino
Connexions En Arduino
Connexions En Arduino
Connexions En Arduino
Connexions En Arduino
Connexions En Arduino
Connexions En Arduino
Connexions En Arduino

L'acceleròmetre LSM303 té 4 connexions. SDA, SCL, vin, y gnd, Como se ve en la foto. He soldat un cable groc a SDA, un cable verd a SCL, un vermell a 3V, i un negre a GND.

Conectar el sensor al Arduino com es mostra en les fotos. Bàsicament, a la foto, el cable groc és SDA i es connecta a SDA del arduino, el cable verd és SCL, i es connecta al SCL del arduino. El cable vermell a 3.3V, i el negre a GND en el Arduino. En aquest exemple el contacte directe a la placa d’arduino, però poden fer-ho a través d’un breadboard.

Pas 2: El Anillo

El Anillo
El Anillo
El Anillo
El Anillo

Per poder fer un programa de dibuix en processament, on a través del moviment de la mà es pugui dibuixar. Metem l'acceleròmetre dins d'un anell impreso en impressora 3D.

El model senzill de l’anell està acà. Pueden modificarlo allí mateix en tinkercad si hacen una cuenta. Es pot pegar amb una pistola de goma calent o a pressió.

Pas 3: El Codi Arduino

El Código Arduino
El Código Arduino

En el codi d'Arduino és important obrir el port serial i la velocitat (en l'exemple 9600) ha de ser igual en el codi de processament.

Codi a l'Arduino:

#incloure

#include // libreria d'Adafruit

Adafruit_LSM303 lsm; // prepara l’objecte

configuració nul·la () {

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

lsm.begin ();

}

bucle buit () {

lsm.read (); // llegir la informació 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);

retard (50);

}

Pas 4: Processament del codi en

En processament, l’estratègia s’escrivirà un esdeveniment per al port serail, d’aquesta manera cada vegada que entra infromació, processament en el fons l’almacena en variables, sense importar la velocitat dels quadres del cos principal del codi de processament.

Codi:

// creat per Tomas de Camino Beck // per al sensor de moviment de les mans

processament de la importació. sèrie. *; Port sèrie;

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

Dades de cadena = "0, 0, 0"; // string que almacena del puerto serial

flotar x, y, antX, antY; // per crear el dibuix

configuració nul·la () {

mida (600, 600);

println (Serial.list ());

port = new Serial (this, "/ dev / ttyACM0", 9600);

port.clear ();

port.bufferUntil ('\ n');

x = amplada / 2;

y = alçada / 2;

antX = ample / 2;

antY = altura / 2;

llis (8);

}

sorteig buit () {

pes de cop (10);

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

flotador y = alt-mapa (coord [1], -2000, 2000, 0, alçada);

if (coord [2] <0) {

fons (255);

x = amplada / 2;

y = alçada / 2;

antX = ample / 2;

antY = altura / 2;

} més {

farcit (0, 150);

línia (antX, antY, x, y);

antX = x;

antY = y;

}

}

void serialEvent (port sèrie) {

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

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

}

Pas 5: Poner a Dibujar

Poner a Dibujar
Poner a Dibujar

Ahora simplement dibuixa. Al dar vuelta por completo el anillo, se borra todo lo dibujado.

Recomanat: