Talaan ng mga Nilalaman:

Conexión Serial Arduino isang Pagproseso (acelerómetro En Anillo): 5 Mga Hakbang
Conexión Serial Arduino isang Pagproseso (acelerómetro En Anillo): 5 Mga Hakbang

Video: Conexión Serial Arduino isang Pagproseso (acelerómetro En Anillo): 5 Mga Hakbang

Video: Conexión Serial Arduino isang Pagproseso (acelerómetro En Anillo): 5 Mga Hakbang
Video: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, Hulyo
Anonim
Conexión Serial Arduino isang Pagproseso (acelerómetro En Anillo)
Conexión Serial Arduino isang Pagproseso (acelerómetro En Anillo)

Karamihan sa akin ay nagtapos ng como conectar la información que viene por puerto serial de Arduino a Processing. Narito ang lahat ng mga tao para sa iyong resuelvo, no es la única, pero es bastante efectiva, ya que en Processing, la recepción de datos ocurre como un evento, lo que significancea que no hay problemas de sincronización con Arduino. Paggamit ng acelerómetro LSM 303 para sa bawat taon, ngunit maaari mong gamitin ang sensor ng cualquier.

Mga Materyales

  1. Arduino UNO
  2. LSM303 Flora (cualquier)

Hakbang 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. Nabili mo ang isang cable amarillo al SDA, un cable verde al SCL, uno rojo isang 3V, at hindi mo tinanggap ang isang GND.

Makipag-ugnay sa sensor sa 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. Ito ay ang iyong koneksyon directo a la placa de arduino, pero pueden hacerlo a través de un breadboard.

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

Hakbang 3: El Código Arduino

El Código Arduino
El Código Arduino

En el código de Arduino es important 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:

# isama

#include // libreria de Adafruit

Adafruit_LSM303 lsm; // prepara el objeto

walang bisa ang pag-setup () {

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

lsm.begin ();

}

void loop () {

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

antala (50);

}

Hakbang 4: Pagproseso ng Código En

En processing, la estrategia es escrivir un evento para sa 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.

Código:

// nilikha ni Tomas de Camino Beck // para sa sensor ng kilusan ng kamay

pagproseso ng pag-import.serial. *; Serial port;

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

String data = "0, 0, 0"; // string que almacena del puerto serial

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

walang bisa ang pag-setup () {

laki (600, 600);

println (Serial.list ());

port = bagong Serial (ito, "/ dev / ttyACM0", 9600);

port.clear ();

port.bufferUntil ('\ n');

x = lapad / 2;

y = taas / 2;

antX = lapad / 2;

antY = taas / 2;

makinis (8);

}

walang bisa draw () {

strokeWeight (10);

float x = lapad-mapa (coord [0], -2000, 2000, 0, lapad);

float y = taas-mapa (coord [1], -2000, 2000, 0, taas);

kung (coord [2] <0) {

background (255);

x = lapad / 2;

y = taas / 2;

antX = lapad / 2;

antY = taas / 2;

} iba pa {

punan (0, 150);

linya (antX, antY, x, y);

antX = x;

antY = y;

}

}

void serialEvent (Serial port) {

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

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

}

Hakbang 5: Pag-isipan ang isang Dibujar

Poner a Dibujar
Poner a Dibujar

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

Inirerekumendang: