Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Hodně mě to zajímá z toho, co je spojeno s informacemi, které jsou součástí sériového a Arduino zpracování. Záleží na tom, jak se budete chovat, aniž byste museli únik, ale bastante efectiva, ya que en Processing, la recepción de data ocurre como un evento, lo que significant que no hay problemas de sincronización con Arduino. Využijte akcelerometru LSM 303 para el ejemplo, per puede ser con cualquier sensor.
Materiály
- Arduino UNO
- LSM303 Flora (cualquier)
Krok 1: Conexiones En Arduino
El acelerómetro LSM303 tiene 4 conexiones. SDA, SCL, vin, y gnd, Como se ve en la foto. Prodáváte kabel s amarillo SDA, bez kabelu s SCL, bez napětí 3V, bez černého GND.
Snímač Conectar El a další Arduino obsahuje více fotografií. 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. Kabel je připojen na 3,3 V, má černý GND a Arduino. Můžete si vybrat mezi přímými a placenými arduino hrami, nebo bez nich.
Krok 2: El Anillo
Para poder hacer un programa de dibujo en processing, donde a través del movimiento de la mano se pueda dibujar. Největší rychlost 3D zobrazení.
El modelo sencillo del anillo está acá. Naše modifikace se mohou lišit od ostatních výrobců. Podívejte se na jednu z nejdůležitějších a nejzásadnějších podmínek.
Krok 3: El Código Arduino
Důležité pro všechny důležité sériové a velocidní (9600) sériové číselné zpracování.
Código en el Arduino:
#zahrnout
#include // libreria de Adafruit
Adafruit_LSM303 lsm; // příprava el objeto
neplatné nastavení () {
Serial.begin (9600); // inicializace el acelerometro
lsm.begin ();
}
prázdná smyčka () {
lsm.read (); // informace o senzoru
// manda la lectura a seriál
Serial.print ((int) lsm.accelData.x);
Serial.print (",");
Serial.print ((int) lsm.accelData.y);
Serial.print (",");
Serial.println ((int) lsm.accelData.z);
zpoždění (50);
}
Krok 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 en variables, sin importar la velocidad de los cuadros del cuerpo principal del código de processing.
Código:
// vytvořil Tomas de Camino Beck // pro snímač pohybu ruky
zpracování importu.sériové.*; Sériový port;
float coord = nový float [3]; // arreglo para almacenar los datos
Řetězcová data = "0, 0, 0"; // řetězec que almacena del puerto serial
float x, y, antX, antY; // para crear el dibujo
neplatné nastavení () {
velikost (600, 600);
println (Serial.list ());
port = new Serial (this, "/dev/ttyACM0", 9600);
port.clear ();
port.bufferUntil ('\ n');
x = šířka/2;
y = výška/2;
antX = šířka/2;
antY = výška/2;
hladký (8);
}
void draw () {
strokeWeight (10);
float x = width -map (coord [0], -2000, 2000, 0, width);
float y = mapa výšky (coord [1], -2000, 2000, 0, výška);
if (coord [2] <0) {
pozadí (255);
x = šířka/2;
y = výška/2;
antX = šířka/2;
antY = výška/2;
} else {
výplň (0, 150);
řádek (antX, antY, x, y);
antX = x;
antY = y;
}
}
void serialEvent (sériový port) {
data = port.readString (); // seriál závětří del puerto
coord = float (split (data, ',')); // oddělte pora comas los datos y los almacena en el arreglo
}
Krok 5: Poner a Dibujar
Ahora simplemente dibujar. Al dar vuelta por completo el anillo, se borra todo lo dibujado.