Sadržaj:

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

Video: Grafički prijelaz Arduino obrade: 5 koraka

Video: Grafički prijelaz Arduino obrade: 5 koraka
Video: Веб-программирование – информатика для руководителей бизнеса 2016 2024, Juli
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.

Preporučuje se: