Indholdsfortegnelse:

Arduino Processing Graphic Transition: 5 trin
Arduino Processing Graphic Transition: 5 trin

Video: Arduino Processing Graphic Transition: 5 trin

Video: Arduino Processing Graphic Transition: 5 trin
Video: Arduino Workshop - Chapter 5 - Interrupts 2024, November
Anonim
Arduino Processing Graphic Transition
Arduino Processing Graphic Transition

Hej, dette projekt er til at gøre synlig grafik fra usynlige partikler, som kunne føles af sensorer. I dette tilfælde brugte jeg ultralydssensoren og fotoresistoren til at styre lys og afstand. Jeg visualiserer det ved at lave variablerne fra sensoren som variabler i behandlingen. Derefter forbinder jeg Arduino og Processing for at styre Arduino med Processing. Således ville grafikken i Processing anvende variabler fra Arduino -sensoren.

Trin 1: Trin 1: Forbered dele

Trin 1: Forbered dele
Trin 1: Forbered dele

Her er de komponenter, du skal bruge til at lave dette projekt:

- 10k OHM

- Ultralydssensor

- Fotoresistor

- Arduino Uno

- 7 ledninger

Trin 2: Trin 2: Tilslut alle komponenter

Trin 2: Tilslut alle komponenter
Trin 2: Tilslut alle komponenter

Fotoresistoren og ultralydssensoren har brug for plads til nøjagtig detektion. Spar lidt plads og tænk på lys til fotoresistor.

Trin 3: Trin 3: Kode

Trin 3: Kode!
Trin 3: Kode!

*Tilføj bibliotek i både Arduino og Processing.

Arduino: søg "nyt ping" i biblioteket

Behandler: søg "seriel" i biblioteket

Kode til Arduino:

#omfatte

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

NewPing -ekkolod (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int lightSensorPin = A0; int analogValue = 0;

ugyldig opsætning () {Serial.begin (9600); }

void loop () {int Value1 = sonar.ping_cm (); Værdi1 = kort (Værdi1, 1, 60, 500, 24); Værdi1 = begrænsning (værdi1, 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 (værdi1); 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 til behandling:

// klasse: (grundlæggende) //

import behandling. serie.*;

int ende = 10; String serie; Serie Port;

int pcount = 350; Partikel p = ny Partikel [pcount]; int diagonal; int e = 100;

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

float rotation = 0;

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

// klasse: Partikel //

klasse Partikel {float n; flyde r; flyde o; flyde c; flyde d; int l; Partikel () {l = 100; n = tilfældig (3, bredde/2); r = tilfældig (0,10, TWO_PI); o = tilfældig (1, tilfældig (1, bredde/n)); c = tilfældig (180, 228); d = tilfældig (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)*bredde/HALF_PI; }}

Trin 4: Trin 4: Tilslut og test

Trin 4: Tilslut og test
Trin 4: Tilslut og test

Trin 5: Trin 5: Se resultatet

Trin 5: Se resultatet!
Trin 5: Se resultatet!

Hastigheden på den bevægelige kugle vil være hurtigere, når noget er tættere på ultralydssensoren. Plus, lysstyringen med fotoresistor vil fremstå under behandling som baggrundsmørke.

Anbefalede: