Sisukord:

Arduino graafilise ülemineku töötlemine: 5 sammu
Arduino graafilise ülemineku töötlemine: 5 sammu

Video: Arduino graafilise ülemineku töötlemine: 5 sammu

Video: Arduino graafilise ülemineku töötlemine: 5 sammu
Video: Monitoring the RPM of a 12Vdc Three Wire Cooler Fan with Arduino, with speed control potentiometer 2024, Juuli
Anonim
Arduino graafilise ülemineku töötlemine
Arduino graafilise ülemineku töötlemine

Tere, see projekt on mõeldud nähtava graafika tegemiseks nähtamatutest osakestest, mida andurid tajuvad. Sel juhul kasutasin valguse ja kauguse juhtimiseks ultraheli andurit ja fototakisti. Ma visualiseerin seda, muutes anduri muutujad töötlemisel muutujateks. Seejärel ühendan Arduino ja töötlemise Arduino juhtimiseks töötlemisega. Seega rakendaks töötlemise graafika Arduino anduri muutujaid.

1. samm: samm 1: osade ettevalmistamine

Samm: valmistage osad ette
Samm: valmistage osad ette

Siin on komponendid, mida vajate selle projekti tegemiseks:

- 10k OHM

- Ultraheli andur

- fototakisti

- Arduino Uno

- 7 juhtmest

Samm: ühendage kõik komponendid

Samm: ühendage kõik komponendid
Samm: ühendage kõik komponendid

Fototakisti ja ultraheliandur vajavad ruumi täpseks tuvastamiseks. Säästke ruumi ja mõelge valgustule fototakiste jaoks.

3. samm: 3. samm: kood

3. samm: kood!
3. samm: kood!

*Lisage kogu nii Arduino kui ka töötlemise jaoks.

Arduino: otsige raamatukogust "uus ping"

Töötlemine: otsige raamatukogust sõna „jada”

Arduino kood:

#kaasake

#defineeri TRIGGER_PIN 12 #defineeri ECHO_PIN 11 #defineeri MAX_DISTANCE 200

NewPingi sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int lightSensorPin = A0; int analoogVäärtus = 0;

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

void loop () {int Value1 = sonar.ping_cm (); Väärtus 1 = kaart (väärtus 1, 1, 60, 500, 24); Väärtus1 = piirata (väärtus1, 24, 500);

analogValue = analogRead (lightSensorPin); int cVal1 = kaart (analoogväärtus, 200, 600, 249, 100);

int cVal2 = kaart (analoogväärtus, 200, 600, 247, 97);

int cVal3 = kaart (analoogväärtus, 200, 600, 243, 101);

int cVal4 = kaart (analoogväärtus, 200, 600, 243, 150);

viivitus (50);

Serial.print (väärtus1); Serial.print (",");

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

Serial.println (); }

Töötlemise kood:

// klass: (põhiline)

impordi töötlemine.seriaalne.*;

int lõpp = 10; String seeria; Jadaport;

int pcount = 350; Osake p = uus Osake [pcount]; int diagonaal; int e = 100;

void setup () {port = new Serial (this, "/dev/cu.usbmodem141101"); port.clear (); jada = port.readStringUntil (lõpp); seeria = null; jaoks (int i = 0; i

ujuki pöörlemine = 0;

void draw () {while (port.available ()> 0) {serial = port.readStringUntil (lõpp); viivitus (10); } if (jada! = null) {String a = jagatud (seeria, ','); println (a [0]); println (a [1]); println (a [2]); println (a [3]); println (a [4]); int tulemus1 = Integer.parseInt (a [0]); System.out.println (tulemus1); frameRate (tulemus1); int tulemus2 = Integer.parseInt (a [1]); System.out.println (tulemus2); int tulemus3 = Integer.parseInt (a [2]); System.out.println (tulemus3); int tulemus4 = Integer.parseInt (a [3]); System.out.println (tulemus4); int tulemus5 = Integer.parseInt (a [4]); System.out.println (tulemus5); taust (tulemus2, tulemus3, tulemus4); tõlkima (laius/2, kõrgus); pöörlemine- = 0,0005; pöörlema (pöörlema); jaoks (int i = 0; i diagonaal) {p = uus osake (); }}}}

klass: osakesed

klass Osake {ujuk n; ujuk r; ujuk o; ujuk c; ujuk d; int l; Osake () {l = 100; n = juhuslik (3, laius/2); r = juhuslik (0,10, TWO_PI); o = juhuslik (1, juhuslik (1, laius/n)); c = juhuslik (180, 228); d = juhuslik (160, 208); } tühine viik () {l ++; pushMatrix (); pöörlema (r); tõlkima (drawDist (), 1); ellips (10, 10, laius/o/4, laius/o/4); popMatrix (); o- = 0,06; } float drawDist () {return atan (n/o)*width/HALF_PI; }}

4. samm: 4. samm: ühendage ja katsetage

Samm: ühendage ja katsetage
Samm: ühendage ja katsetage

5. samm: 5. samm: vaadake tulemust

Samm: vaadake tulemust!
Samm: vaadake tulemust!

Liikuva palli kiirus on kiirem, kui miski on ultrahelisensorile lähemal. Lisaks kuvatakse fototakistiga valgusjuhtimine taustpimedusena.

Soovitan: