Sadržaj:

Grafički prijelaz obrade Arduina: 5 koraka
Grafički prijelaz obrade Arduina: 5 koraka

Video: Grafički prijelaz obrade Arduina: 5 koraka

Video: Grafički prijelaz obrade Arduina: 5 koraka
Video: CS50 2013 - Week 1 2024, Srpanj
Anonim
Arduino grafički prijelaz za obradu
Arduino grafički prijelaz za obradu

Bok, ovaj projekt služi za izradu vidljivih grafika od nevidljivih čestica koje se mogu osjetiti senzorima. U ovom sam slučaju upotrijebio ultrazvučni senzor i fotootpornik za kontrolu svjetlosti i udaljenosti. Vizualiziram to izrađujući varijable iz senzora kao varijable u obradi. Zatim povežem Arduino i Processing da kontroliram Arduino s Processingom. Dakle, grafički prikaz u Obradi primijenio bi varijable iz Arduino senzora.

Korak 1: Korak 1: Pripremite dijelove

Korak 1: Pripremite dijelove
Korak 1: Pripremite dijelove

Evo komponenti koje su vam potrebne za izradu ovog projekta:

- 10 000 OHM

- Ultrazvučni senzor

- Fotootpornik

- Arduino Uno

- 7 žica

Korak 2: Korak 2: Povežite sve komponente

Korak 2: Povežite sve komponente
Korak 2: Povežite sve komponente

Fotootporniku i ultrazvučnom senzoru potreban je prostor za točnu detekciju. Uštedite malo prostora i razmislite o svjetlu za fotootpornik.

Korak 3: Korak 3: Kodirajte

Korak 3: Kodirajte!
Korak 3: Kodirajte!

*Dodajte knjižnicu u Arduino i u obradu.

Arduino: potražite "novi ping" u knjižnici

Obrada: pretraživanje "serijskog" u knjižnici

Kod za Arduino:

#uključi

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

Sonar NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int lightSensorPin = A0; int analognaVrijednost = 0;

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

void loop () {int Value1 = sonar.ping_cm (); Vrijednost1 = karta (Vrijednost1, 1, 60, 500, 24); Vrijednost1 = ograničenje (Vrijednost1, 24, 500);

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

int cVal2 = karta (analognaVrijednost, 200, 600, 247, 97);

int cVal3 = karta (analognaVrijednost, 200, 600, 243, 101);

int cVal4 = karta (analognaVrijednost, 200, 600, 243, 150);

kašnjenje (50);

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

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

Serial.println (); }

Kôd za obradu:

// klasa: (osnovni) //

uvoz obrada.serial.*;

int kraj = 10; Niz nizova; Serijski port;

int pcount = 350; Čestica p = nova Čestica [pcount]; int dijagonala; int e = 100;

void setup () {port = new Serial (this, "/dev/cu.usbmodem141101"); port.clear (); serijski = port.readStringUntil (kraj); serijski = null; za (int i = 0; i

rotacija plovka = 0;

void draw () {while (port.available ()> 0) {serial = port.readStringUntil (kraj); kašnjenje (10); } if (serial! = null) {String a = split (serijski, ','); println (a [0]); println (a [1]); println (a [2]); println (a [3]); println (a [4]); int result1 = Integer.parseInt (a [0]); System.out.println (rezultat1); frameRate (rezultat1); int result2 = Integer.parseInt (a [1]); System.out.println (rezultat 2); int result3 = Integer.parseInt (a [2]); System.out.println (rezultat3); int result4 = Integer.parseInt (a [3]); System.out.println (rezultat4); int result5 = Integer.parseInt (a [4]); System.out.println (rezultat 5); pozadina (rezultat2, rezultat3, rezultat4); prevesti (širina/2, visina); rotacija- = 0,0005; rotirati (rotacija); za (int i = 0; i dijagonala) {p = nova čestica (); }}}}

// klasa: Čestica //

klasa Čestica {float n; plovak r; plutati o; plovak c; plovak d; int l; Čestica () {l = 100; n = slučajno (3, širina/2); r = slučajno (0,10, TWO_PI); o = slučajno (1, slučajno (1, širina/n)); c = slučajno (180, 228); d = slučajno (160, 208); } void draw () {l ++; pushMatrix (); rotirati (r); prevesti (drawDist (), 1); elipsa (10, 10, širina/o/4, širina/o/4); popMatrix (); o- = 0,06; } float drawDist () {return atan (n/o)*width/HALF_PI; }}

Korak 4: Korak 4: Povežite se i testirajte

Korak 4: Povežite se i testirajte
Korak 4: Povežite se i testirajte

Korak 5: Korak 5: Pogledajte rezultat

Korak 5: Pogledajte rezultat!
Korak 5: Pogledajte rezultat!

Brzina pokretne kugle bit će veća ako je bilo što bliže ultrazvučnom senzoru. Osim toga, kontrola svjetla s fotootpornikom pojavit će se u obradi kao pozadinska tama.

Preporučeni: