Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Πολύ προειδοποιώ για την επικοινωνία με τις πληροφορίες σχετικά με τη σειρά του 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 σημαία που δεν έχει πρόβλημα με τον συγχρονισμό με το Arduino. Χρησιμοποιήστε το acelerómetro LSM 303 para el ejemplo, pero puede ser con cualquier sensor.
Υλικά
- Arduino UNO
- LSM303 Flora (cualquier)
Βήμα 1: Conexiones En Arduino
El acelerómetro LSM303 tiene 4 conexiones. SDA, SCL, vin, y gnd, Como se ve en la foto. Πωλήσατε καλώδιο amarillo al SDA, un cable verde al SCL, uno rojo a 3V, y uno negro a 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. El cable rojo a 3.3V, y el negro a GND en el Arduino. Εκ των πραγμάτων, μπορείτε να απευθυνθείτε στην πλατφόρμα του arduino, αλλά μπορείτε να δοκιμάσετε το τραπέζι.
Βήμα 2: 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.
Βήμα 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; // prepara el objeto
void 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);
καθυστέρηση (50)?
}
Βήμα 4: Επεξεργασία Código
Κατά την επεξεργασία, για την εκτέλεση ενός γεγονότος για την είσοδό σας, για την είσοδό σας στην πληροφόρηση, για την επεξεργασία των μεταβλητών, για την εισαγωγή των μεταβλητών, για την εισαγωγή των βασικών παραμέτρων της επεξεργασίας.
Código:
// δημιουργήθηκε από τον Tomas de Camino Beck // για αισθητήρα κίνησης χεριών
επεξεργασία εισαγωγής.σειρά.*; Σειριακή θύρα;
float coord = new float [3]; // arreglo para almacenar los datos
Στοιχεία συμβολοσειράς = "0, 0, 0"; // string que almacena del puerto serial
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)?
}
άκυρη κλήρωση () {
strokeWeight (10);
float x = πλάτος -χάρτης (συντεταγμένος [0], -2000, 2000, 0, πλάτος);
float y = ύψος -χάρτης (συντεταγμένος [1], -2000, 2000, 0, ύψος);
αν (συντονισμός [2] <0) {
φόντο (255);
x = πλάτος/2;
y = ύψος/2;
antX = πλάτος/2;
antY = ύψος/2;
} αλλο {
γέμισμα (0, 150);
γραμμή (antX, antY, x, y);
antX = x;
antY = y;
}
}
void serialEvent (σειριακή θύρα) {
data = port.readString (); // lee del puerto serial
coord = float (split (data, ',')); // separa por comas los datos y los almacena en el arreglo
}
Βήμα 5: Poner a Dibujar
Ahora simplemente dibujar. Al dar vuelta por completeo el anillo, se borra todo lo dibujado.