Innholdsfortegnelse:

Arduino Processing Graphic Transition: 5 trinn
Arduino Processing Graphic Transition: 5 trinn

Video: Arduino Processing Graphic Transition: 5 trinn

Video: Arduino Processing Graphic Transition: 5 trinn
Video: ESP8266 Wireless Nextion HMI || Outseal Arduino PLC || FLProg 2024, November
Anonim
Arduino Processing Graphic Transition
Arduino Processing Graphic Transition

Hei, dette prosjektet er for å lage synlig grafikk fra usynlige partikler som kan føles av sensorer. I dette tilfellet brukte jeg ultralydsensoren og fotoresistoren for å kontrollere lys og avstand. Jeg visualiserer det ved å lage variablene fra sensoren som variabler i behandlingen. Deretter kobler jeg Arduino og prosessering til å kontrollere Arduino med prosessering. Dermed vil grafikken i Processing anvende variabler fra Arduino -sensoren.

Trinn 1: Trinn 1: Forbered deler

Trinn 1: Klargjør deler
Trinn 1: Klargjør deler

Her er komponentene du trenger for å lage dette prosjektet:

- 10k OHM

- Ultralydsensor

- Fotoresistor

- Arduino Uno

- 7 ledninger

Trinn 2: Trinn 2: Koble til alle komponenter

Trinn 2: Koble til alle komponenter
Trinn 2: Koble til alle komponenter

Fotoresistoren og ultralydsensoren trenger plass for nøyaktig deteksjon. Spar litt plass og tenk på lys for fotoresistor.

Trinn 3: Trinn 3: Kode

Trinn 3: Kode!
Trinn 3: Kode!

*Legg til bibliotek i både Arduino og prosessering.

Arduino: søk etter "ny ping" i biblioteket

Behandler: søk etter "serie" i biblioteket

Kode for Arduino:

#inkludere

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

NewPing -ekkolodd (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int lightSensorPin = A0; int analogValue = 0;

ugyldig oppsett () {Serial.begin (9600); }

void loop () {int Value1 = sonar.ping_cm (); Verdi1 = kart (Verdi1, 1, 60, 500, 24); Verdi1 = begrensning (verdi1, 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);

forsinkelse (50);

Serial.print (verdi1); 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 for behandling:

// klasse: (grunnleggende) //

import behandling. serie.*;

int ende = 10; Streng serie; Seriell port;

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

void setup () {port = new Serial (this, "/dev/cu.usbmodem141101"); port.clear (); serial = port.readStringUntil (slutten); serie = null; for (int i = 0; i

flyterotasjon = 0;

void draw () {while (port.available ()> 0) {serial = port.readStringUntil (end); forsinkelse (10); } hvis (serie! = null) {String a = delt (serie, ','); println (a [0]); println (a [1]); println (a [2]); println (a [3]); println (a [4]); int result1 = Heltall.parseInt (a [0]); System.out.println (resultat1); frameRate (resultat1); int result2 = Heltall.parseInt (a [1]); System.out.println (resultat2); int result3 = Heltall.parseInt (a [2]); System.out.println (result3); int result4 = Integer.parseInt (a [3]); System.out.println (resultat4); int result5 = Heltall.parseInt (a [4]); System.out.println (resultat5); bakgrunn (resultat2, resultat3, resultat4); translate (bredde/2, høyde); rotasjon- = 0,0005; rotere (rotasjon); for (int i = 0; i diagonal) {p = ny Particle (); }}}}

// klasse: Partikkel //

klasse Partikkel {float n; flyte r; flyte o; flyte c; flyte d; int l; Partikkel () {l = 100; n = tilfeldig (3, bredde/2); r = tilfeldig (0,10, TWO_PI); o = tilfeldig (1, tilfeldig (1, bredde/n)); c = tilfeldig (180, 228); d = tilfeldig (160, 208); } void draw () {l ++; pushMatrix (); rotere (r); translate (drawDist (), 1); ellipse (10, 10, bredde/o/4, bredde/o/4); popMatrix (); o- = 0,06; } float drawDist () {return atan (n/o)*width/HALF_PI; }}

Trinn 4: Trinn 4: Koble til og test

Trinn 4: Koble til og test
Trinn 4: Koble til og test

Trinn 5: Trinn 5: Se resultatet

Trinn 5: Se resultatet!
Trinn 5: Se resultatet!

Hastigheten på den bevegelige ballen vil være raskere når noe er nærmere ultralydssensoren. I tillegg vil lysstyringen med fotoresistor fremstå under behandling som bakgrunnsmørke.

Anbefalt: