INHOUDSOPGAWE:

Arduino verwerking grafiese oorgang: 5 stappe
Arduino verwerking grafiese oorgang: 5 stappe

Video: Arduino verwerking grafiese oorgang: 5 stappe

Video: Arduino verwerking grafiese oorgang: 5 stappe
Video: ARDUINO servo 2024, Julie
Anonim
Arduino verwerk grafiese oorgang
Arduino verwerk grafiese oorgang

Hallo, hierdie projek is om sigbare grafika te maak van onsigbare deeltjies wat deur sensors waargeneem kan word. In hierdie geval het ek die ultrasoniese sensor en fotoresistor gebruik om lig en afstand te beheer. Ek visualiseer dit deur die veranderlikes van die sensor te maak as veranderlikes in die verwerking. Dan koppel ek Arduino en Processing om Arduino met Processing te beheer. Die grafika in Processing sal dus veranderlikes van die Arduino -sensor toepas.

Stap 1: Stap 1: Berei dele voor

Stap 1: Berei dele voor
Stap 1: Berei dele voor

Hier is die komponente wat u nodig het om hierdie projek te maak:

- 10k OHM

- Ultrasoniese sensor

- Fotoresistor

- Arduino Uno

- 7 drade

Stap 2: Stap 2: Koppel alle komponente

Stap 2: Koppel alle komponente
Stap 2: Koppel alle komponente

Die fotoresistor en ultrasoniese sensor benodig ruimte vir akkurate opsporing. Bespaar ruimte en dink aan lig vir fotoresistor.

Stap 3: Stap 3: Kode

Stap 3: Kodeer!
Stap 3: Kodeer!

*Voeg biblioteek by in beide Arduino en verwerking.

Arduino: soek 'nuwe ping' in die biblioteek

Verwerking: soek "reeks" in die biblioteek

Kode vir Arduino:

#insluit

#definieer TRIGGER_PIN 12 #definieer ECHO_PIN 11 #definieer MAX_DISTANCE 200

NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int lightSensorPin = A0; int analogValue = 0;

ongeldige opstelling () {Serial.begin (9600); }

leemte -lus () {int Waarde1 = sonar.ping_cm (); Waarde1 = kaart (Waarde1, 1, 60, 500, 24); Waarde1 = beperking (Waarde1, 24, 500);

analogValue = analogRead (lightSensorPin); int cVal1 = kaart (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);

vertraging (50);

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

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

Serial.println (); }

Kode vir verwerking:

// klas: (basies) //

invoerverwerking.reeks.*;

int einde = 10; Snaarreeks; Seriële hawe;

int pcount = 350; Particle p = new Particle [pcount]; int diagonaal; int e = 100;

ongeldige opstelling () {poort = nuwe reeks (hierdie, "/dev/cu.usbmodem141101"); port.clear (); serial = port.readStringUntil (einde); reeks = nul; vir (int i = 0; i

vlot rotasie = 0;

void draw () {while (port.available ()> 0) {serial = port.readStringUntil (end); vertraging (10); } if (reeks! = nul) {String a = split (reeks, ','); println (a [0]); println (a [1]); println (a [2]); println (a [3]); println (a [4]); int result1 = Integer.parseInt (a [0]); System.out.println (resultaat1); frameRate (resultaat1); 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 (resultaat5); agtergrond (resultaat2, resultaat3, resultaat4); vertaal (breedte/2, hoogte); rotasie- = 0,0005; draai (draai); vir (int i = 0; i diagonaal) {p = nuwe Particle (); }}}}

// klas: Deeltjie //

klas Deeltjie {float n; dryf r; dryf o; dryf c; dryf d; int l; Deeltjie () {l = 100; n = ewekansig (3, breedte/2); r = ewekansig (0.10, TWO_PI); o = ewekansig (1, ewekansig (1, breedte/n)); c = ewekansig (180, 228); d = ewekansig (160, 208); } ongeldig trek () {l ++; pushMatrix (); draai (r); translate (drawDist (), 1); ellips (10, 10, breedte/o/4, breedte/o/4); popMatrix (); o- = 0,06; } float drawDist () {return atan (n/o)*width/HALF_PI; }}

Stap 4: Stap 4: Koppel en toets

Stap 4: Koppel en toets
Stap 4: Koppel en toets

Stap 5: Stap 5: Sien die resultaat

Stap 5: Sien die resultaat!
Stap 5: Sien die resultaat!

Die snelheid van die bewegende bal sal vinniger wees as iets nader aan die ultrasoniese sensor is. Boonop verskyn die ligbeheer met fotoresistor in die verwerking as agtergronddonker.

Aanbeveel: