Inhaltsverzeichnis:

Arduino-Grafikübergang verarbeiten - Gunook
Arduino-Grafikübergang verarbeiten - Gunook

Video: Arduino-Grafikübergang verarbeiten - Gunook

Video: Arduino-Grafikübergang verarbeiten - Gunook
Video: Как спрятать данные в ячейках Excel? 2024, Juli
Anonim
Arduino-Verarbeitung des Grafikübergangs
Arduino-Verarbeitung des Grafikübergangs

Hallo, dieses Projekt dient dazu, sichtbare Grafiken aus unsichtbaren Partikeln zu erstellen, die von Sensoren erfasst werden könnten. In diesem Fall habe ich den Ultraschallsensor und den Fotowiderstand verwendet, um Licht und Abstand zu steuern. Ich visualisiere es, indem ich die Variablen des Sensors als Variablen in der Verarbeitung mache. Dann verbinde ich Arduino und Processing, um Arduino mit Processing zu steuern. Somit würde die Grafik in Processing Variablen vom Arduino-Sensor anwenden.

Schritt 1: Schritt 1: Teile vorbereiten

Schritt 1: Teile vorbereiten
Schritt 1: Teile vorbereiten

Hier sind die Komponenten, die Sie für dieses Projekt benötigen:

- 10k OHM

- Ultraschallsensor

- Fotowiderstand

- Arduino Uno

- 7 Drähte

Schritt 2: Schritt 2: Alle Komponenten verbinden

Schritt 2: Verbinden Sie alle Komponenten
Schritt 2: Verbinden Sie alle Komponenten

Der Fotowiderstand und der Ultraschallsensor benötigen Platz für eine genaue Detektion. Sparen Sie etwas Platz und denken Sie an Licht für den Fotowiderstand.

Schritt 3: Schritt 3: Code

Schritt 3: Code!
Schritt 3: Code!

* Bibliothek sowohl in Arduino als auch in Processing hinzufügen.

Arduino: Suche nach "neuer Ping" in der Bibliothek

Verarbeitung: in der Bibliothek nach "seriell" suchen

Code für Arduino:

#enthalten

#define TRIGGER_PIN 12 #define ECHO_PIN 11 #define MAX_DISTANCE 200

NewPing Sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int lightSensorPin = A0; int analogValue = 0;

Void setup () { Serial.begin (9600); }

Void Schleife () { int Wert1 = sonar.ping_cm (); Wert1 = map(Wert1, 1, 60, 500, 24); Wert1 = einschränken(Wert1, 24, 500);

analogValue = analogRead (lightSensorPin); int cVal1 = map (analogValue, 200, 600, 249, 100);

int cVal2 = map (analogValue, 200, 600, 247, 97);

int cVal3 = map (analogValue, 200, 600, 243, 101);

int cVal4 = map (analogValue, 200, 600, 243, 150);

Verzögerung (50);

Serial.print (Wert1); Serial.print (", ");

Serial.print (cVal1); Serial.print (", "); Serial.print (cVal2); Serial.print (", "); Serial.print (cVal3); Serial.print (", "); Serial.print (cVal4); Serial.print (", ");

Serial.println(); }

Code für die Verarbeitung:

//Klasse: (Grundkenntnisse)//

Importabwicklung.seriell.*;

int end = 10; Zeichenfolge seriell; Serielle Schnittstelle;

int pcount = 350; Partikel p = neues Partikel[pcount]; int-Diagonale; int e = 100;

Void setup () { port = new Serial (dies, "/dev/cu.usbmodem141101"); port.clear(); seriell = port.readStringUntil(Ende); seriell= null; für (int i = 0; i

Schwimmerdrehung = 0;

Void draw () { während (port.available ()> 0) { seriell = port.readStringUntil (Ende); Verzögerung(10); } if (seriell != null) { String a = split(seriell, ', '); println(a[0]); println(a[1]); println(a[2]); println(a[3]); println(a[4]); int result1 = Integer.parseInt(a[0]); System.out.println(result1); Bildrate (Ergebnis1); int result2 = Integer.parseInt(a[1]); System.out.println(result2); int result3 = Integer.parseInt(a[2]); System.out.println(result3); int result4 = Integer.parseInt(a[3]); System.out.println(result4); int result5 = Integer.parseInt(a[4]); System.out.println(result5); Hintergrund (Ergebnis2, Ergebnis3, Ergebnis4); übersetzen (Breite/2, Höhe); Drehung = 0,0005; drehen (Drehung); for (int i = 0; i diagonal) { p = new Particle(); } } } }

//Klasse: Partikel//

Klasse Partikel { float n; Schwimmer r; schweben o; Schwimmer c; Schwimmer d; int l; Partikel () {l = 100; n = zufällig (3, Breite/2); r = zufällig (0,10, ZWEI_PI); o = zufällig (1, zufällig (1, Breite/n)); c = zufällig (180, 228); d = zufällig (160, 208); aufrechtzuerhalten. Void draw() {l++; pushMatrix(); drehen (r); translate(drawDist(), 1); Ellipse (10, 10, Breite/0/4, Breite/0/4); popMatrix(); o = 0,06; } float drawDist() { return atan(n/o)*width/HALF_PI; } }

Schritt 4: Schritt 4: Verbinden und testen

Schritt 4: Verbinden und testen
Schritt 4: Verbinden und testen

Schritt 5: Schritt 5: Sehen Sie sich das Ergebnis an

Schritt 5: Sehen Sie sich das Ergebnis an!
Schritt 5: Sehen Sie sich das Ergebnis an!

Die Geschwindigkeit des sich bewegenden Balls ist höher, wenn sich etwas näher am Ultraschallsensor befindet. Außerdem erscheint die Lichtsteuerung mit Fotowiderstand bei der Verarbeitung als Hintergrunddunkelheit.

Empfohlen: