Talaan ng mga Nilalaman:

Pagproseso ng Arduino ng Paglipat ng Grapiko: 5 Hakbang
Pagproseso ng Arduino ng Paglipat ng Grapiko: 5 Hakbang

Video: Pagproseso ng Arduino ng Paglipat ng Grapiko: 5 Hakbang

Video: Pagproseso ng Arduino ng Paglipat ng Grapiko: 5 Hakbang
Video: Scentroid's CTAir Continuous Urban Air Quality Monitor Seminar A 12.08.2020 (Subtitled) 2024, Nobyembre
Anonim
Pagproseso ng Arduino ng Paglipat ng Grapiko
Pagproseso ng Arduino ng Paglipat ng Grapiko

Kumusta, ang proyektong ito ay para sa paggawa ng nakikitang mga graphic mula sa mga hindi nakikita na mga maliit na butil na maaaring ma-sensed ng mga sensor. Sa kasong ito, ginamit ko ang ultrasonic sensor at photoresistor upang makontrol ang ilaw at distansya. Ipinapakita ko ito sa pamamagitan ng paggawa ng mga variable mula sa sensor bilang mga variable sa pagproseso. Pagkatapos ay ikonekta ko ang Arduino at Pagproseso upang makontrol ang Arduino sa Pagproseso. Kaya, ang grapiko sa Pagproseso ay maglalapat ng mga variable mula sa Arduino sensor.

Hakbang 1: Hakbang 1: Maghanda ng Mga Bahagi

Hakbang 1: Maghanda ng Mga Bahagi
Hakbang 1: Maghanda ng Mga Bahagi

Narito ang mga sangkap na kakailanganin mong gawin ang proyektong ito:

- 10k OHM

- Ultrasonic sensor

- Photoresistor

- Arduino Uno

- 7 wires

Hakbang 2: Hakbang 2: Ikonekta ang Lahat ng Mga Bahagi

Hakbang 2: Ikonekta ang Lahat ng Mga Bahagi
Hakbang 2: Ikonekta ang Lahat ng Mga Bahagi

Ang photoresistor at Ultrasonic sensor ay nangangailangan ng isang puwang para sa tumpak na pagtuklas. Makatipid ng ilang puwang at isipin ang tungkol sa ilaw para sa photoresistor.

Hakbang 3: Hakbang 3: Code

Hakbang 3: Code!
Hakbang 3: Code!

* Magdagdag ng library sa parehong Arduino at Pagproseso.

Arduino: maghanap ng "bagong ping" sa silid-aklatan

Pagpoproseso: maghanap ng "serial" sa library

Code para sa Arduino:

# isama

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

NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int lightSensorPin = A0; int analogValue = 0;

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

void loop () {int Value1 = sonar.ping_cm (); Value1 = mapa (Value1, 1, 60, 500, 24); Value1 = pipilitin (Value1, 24, 500);

analogValue = analogRead (lightSensorPin); int cVal1 = mapa (analogValue, 200, 600, 249, 100);

int cVal2 = mapa (analogValue, 200, 600, 247, 97);

int cVal3 = mapa (analogValue, 200, 600, 243, 101);

int cVal4 = mapa (analogValue, 200, 600, 243, 150);

antala (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 (); }

Code para sa Pagproseso:

// class: (basic) //

pagproseso ng pag-import.serial. *;

int pagtatapos = 10; Serye ng string; Serial port;

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

void setup () {port = new Serial (ito, "/dev/cu.usbmodem141101"); port.clear (); serial = port.readStringUntil (end); serial = null; para sa (int i = 0; i

float rotation = 0;

void draw () {habang (port.available ()> 0) {serial = port.readStringUntil (end); antala (10); } kung (serial! = null) {String a = split (serial, ','); println (isang [0]); println (isang [1]); println (isang [2]); println (isang [3]); println (isang [4]); int resulta1 = Integer.parseInt (a [0]); System.out.println (resulta1); frameRate (resulta1); int resulta2 = Integer.parseInt (a [1]); System.out.println (resulta2); int resulta3 = Integer.parseInt (a [2]); System.out.println (resulta3); int resulta4 = Integer.parseInt (a [3]); System.out.println (resulta4); int resulta5 = Integer.parseInt (a [4]); System.out.println (resulta5); background (resulta2, resulta3, resulta4); isalin (lapad / 2, taas); pag-ikot- = 0,0005; paikutin (paikutin); para sa (int i = 0; i diagonal) {p = bagong Particle (); }}}}

// class: Particle //

klase ng Particle {float n; lumutang r; lumutang o; lumutang c; lumutang d; int l; Particle () {l = 100; n = random (3, lapad / 2); r = random (0.10, TWO_PI); o = random (1, random (1, lapad / n)); c = random (180, 228); d = random (160, 208); } walang bisa na pagguhit () {l ++; pushMatrix (); paikutin (r); isalin (drawDist (), 1); ellipse (10, 10, lapad / o / 4, lapad / o / 4); popMatrix (); o- = 0.06; } float drawDist () {return atan (n / o) * lapad / HALF_PI; }}

Hakbang 4: Hakbang 4: Kumonekta at Sumubok

Hakbang 4: Kumonekta at Sumubok
Hakbang 4: Kumonekta at Sumubok

Hakbang 5: Hakbang 5: Tingnan ang Resulta

Hakbang 5: Tingnan ang Resulta!
Hakbang 5: Tingnan ang Resulta!

Ang bilis ng bola na gumagalaw ay magiging mas mabilis kapag may anumang malapit sa ultrasonic sensor. Dagdag pa, ang kontrol ng ilaw na may photoresistor ay lilitaw sa pagproseso bilang kadiliman sa background.

Inirerekumendang: