Innehållsförteckning:

Arduino Processing Graphic Transition: 5 steg
Arduino Processing Graphic Transition: 5 steg

Video: Arduino Processing Graphic Transition: 5 steg

Video: Arduino Processing Graphic Transition: 5 steg
Video: Arduino Tutorial 06: Processing 2024, November
Anonim
Arduino Processing Graphic Transition
Arduino Processing Graphic Transition

Hej, det här projektet är för att göra synlig grafik från osynliga partiklar som kan avkännas av sensorer. I det här fallet använde jag ultraljudssensorn och fotoresistorn för att styra ljus och avstånd. Jag visualiserar det genom att göra variablerna från sensorn som variabler i bearbetningen. Sedan ansluter jag Arduino och Processing för att styra Arduino med Processing. Således skulle grafiken i Processing tillämpa variabler från Arduino -sensorn.

Steg 1: Steg 1: Förbered delar

Steg 1: Förbered delar
Steg 1: Förbered delar

Här är de komponenter som du behöver för att göra detta projekt:

- 10k OHM

- Ultraljudssensor

- Fotoresistor

- Arduino Uno

- 7 ledningar

Steg 2: Steg 2: Anslut alla komponenter

Steg 2: Anslut alla komponenter
Steg 2: Anslut alla komponenter

Fotoresistorn och ultraljudssensorn behöver ett utrymme för exakt detektion. Spara lite utrymme och tänk på ljus för fotoresistor.

Steg 3: Steg 3: Kod

Steg 3: Kod!
Steg 3: Kod!

*Lägg till bibliotek i både Arduino och Processing.

Arduino: sök "ny ping" i biblioteket

Bearbetar: sök "seriell" i biblioteket

Kod för Arduino:

#omfatta

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

NewPing -ekolod (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int lightSensorPin = A0; int analogValue = 0;

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

void loop () {int Value1 = sonar.ping_cm (); Värde1 = karta (Värde1, 1, 60, 500, 24); Värde1 = begränsning (värde 1, 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);

fördröjning (50);

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

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

Serial.println (); }

Kod för bearbetning:

// klass: (grundläggande) //

import bearbetning. serie.*;

int slut = 10; Strängserie; Serieport;

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 (slutet); serie = null; för (int i = 0; i

flottörrotation = 0;

void draw () {while (port.available ()> 0) {serial = port.readStringUntil (end); fördröjning (10); } if (serie! = null) {String a = split (serie, ','); 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); bakgrund (resultat2, resultat3, resultat4); translate (bredd/2, höjd); rotation- = 0,0005; rotera (rotation); för (int i = 0; i diagonal) {p = ny Particle (); }}}}

// klass: Partikel //

klass Partikel {float n; flyta r; flyta o; flyta c; flyta d; int l; Partikel () {l = 100; n = slumpmässig (3, bredd/2); r = slumpmässig (0,10, TWO_PI); o = slumpmässig (1, slumpmässig (1, bredd/n)); c = slumpmässig (180, 228); d = slumpmässig (160, 208); } void draw () {l ++; pushMatrix (); rotera (r); translate (drawDist (), 1); ellips (10, 10, bredd/o/4, bredd/o/4); popMatrix (); o- = 0,06; } float drawDist () {return atan (n/o)*width/HALF_PI; }}

Steg 4: Steg 4: Anslut och testa

Steg 4: Anslut och testa
Steg 4: Anslut och testa

Steg 5: Steg 5: Se resultatet

Steg 5: Se resultatet!
Steg 5: Se resultatet!

Hastigheten på den rörliga bollen blir snabbare när något är närmare ultraljudssensorn. Dessutom kommer ljuskontrollen med fotoresistor att visas som bearbetning som bakgrundsmörker.

Rekommenderad: