Grafički prijelaz Arduino obrade: 5 koraka
Grafički prijelaz Arduino obrade: 5 koraka
Anonim
Arduino grafički prijelaz za obradu
Arduino grafički prijelaz za obradu

Bok, ovaj projekt je 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 stvaranjem varijabli sa senzora kao varijabli u obradi. Zatim povežem Arduino i Processing da kontroliram Arduino sa Processingom. Dakle, grafički prikaz u Obradi primijenio bi varijable sa 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:

- 10k 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 preciznu detekciju. Uštedite malo prostora i razmislite o svjetlu za fotootpornike.

Korak 3: Korak 3: Kodirajte

Korak 3: Kodirajte!
Korak 3: Kodirajte!

*Dodajte biblioteku u Arduino i u obradu.

Arduino: potražite "novi ping" u biblioteci

Obrada: pretražite "serijski" u biblioteci

Kôd za Arduino:

#include

#define TRIGGER_PIN 12 #define 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 (); Vrijednost1 = mapa (Vrijednost1, 1, 60, 500, 24); Vrijednost1 = ograničenje (Vrijednost1, 24, 500);

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

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

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

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

kašnjenje (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 (); }

Kôd za obradu:

// klasa: (osnovno) //

import processing.serial.*;

int kraj = 10; String serial; 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 (); serial = port.readStringUntil (kraj); serial = null; za (int i = 0; i

rotacija plovka = 0;

void draw () {while (port.available ()> 0) {serial = port.readStringUntil (end); kašnjenje (10); } if (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 (rezultat1); frameRate (rezultat1); int result2 = Integer.parseInt (a [1]); System.out.println (rezultat2); int result3 = Integer.parseInt (a [2]); System.out.println (rezultat 3); int result4 = Integer.parseInt (a [3]); System.out.println (rezultat 4); int result5 = Integer.parseInt (a [4]); System.out.println (rezultat 5); pozadina (rezultat2, rezultat3, rezultat4); prevesti (širina/2, visina); rotacija- = 0,0005; rotirati (rotacija); for (int i = 0; i dijagonala) {p = nova čestica (); }}}}

// klasa: čestica //

klasa čestica {float n; float r; float o; float c; float 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); translate (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 sa fotootpornikom pojavit će se u obradi kao tamna pozadina.