Taula de continguts:

Transició gràfica de processament Arduino: 5 passos
Transició gràfica de processament Arduino: 5 passos

Vídeo: Transició gràfica de processament Arduino: 5 passos

Vídeo: Transició gràfica de processament Arduino: 5 passos
Vídeo: NR-12 Acidente em torno 2024, Desembre
Anonim
Transició gràfica de processament Arduino
Transició gràfica de processament Arduino

Hola, aquest projecte és per fer gràfics visibles a partir de partícules invisibles que els sensors podrien detectar. En aquest cas, he utilitzat el sensor d’ultrasons i la fotoresistència per controlar la llum i la distància. El visualitzo fent que les variables del sensor siguin variables en el processament. Després connecto Arduino i Processing per controlar Arduino amb Processing. Per tant, el gràfic de Processament aplicaria variables del sensor Arduino.

Pas 1: Pas 1: prepareu les peces

Pas 1: prepareu les peces
Pas 1: prepareu les peces

Aquests són els components que necessitareu per fer aquest projecte:

- 10 k OHM

- Sensor d'ultrasons

- Fotoresistència

- Arduino Uno

- 7 cables

Pas 2: Pas 2: Connecteu tots els components

Pas 2: connecteu tots els components
Pas 2: connecteu tots els components

El fotoresistor i el sensor d’ultrasons necessiten un espai per a una detecció precisa. Estalvieu una mica d’espai i penseu en la llum per a la fotoresistència.

Pas 3: Pas 3: Codi

Pas 3: Codi!
Pas 3: Codi!

* Afegiu biblioteca tant a Arduino com a Processament.

Arduino: cerqueu "ping nou" a la biblioteca

Processament: cerca "sèrie" a la biblioteca

Codi per a Arduino:

#incloure

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

Newar sonar NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int lightSensorPin = A0; int Valor analògic = 0;

configuració nul·la () {Serial.begin (9600); }

bucle buit () {int Valor1 = sonar.ping_cm (); Valor1 = mapa (valor1, 1, 60, 500, 24); Valor1 = restringir (valor1, 24, 500);

AnalògicValor = analogRead (lightSensorPin); int cVal1 = mapa (valorValor, 200, 600, 249, 100);

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

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

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

retard (50);

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

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

Serial.println (); }

Codi de processament:

// classe: (bàsic) //

processament de la importació. sèrie. *;

int final = 10; Sèrie de cadenes; Port sèrie;

int pcount = 350; Partícula p = Partícula nova [pcount]; int diagonal; int e = 100;

void setup () {port = new Serial (this, "/dev/cu.usbmodem141101"); port.clear (); serial = port.readStringUntil (final); serial = nul; per a (int i = 0; i

rotació flotant = 0;

void draw () {while (port.available ()> 0) {serial = port.readStringUntil (end); retard (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 = Enter.parseInt (a [0]); System.out.println (resultat1); frameRate (resultat1); int result2 = Enter.parseInt (a [1]); System.out.println (resultat2); int result3 = Enter.parseInt (a [2]); System.out.println (resultat3); int result4 = Enter.parseInt (a [3]); System.out.println (resultat4); int result5 = Enter.parseInt (a [4]); System.out.println (resultat5); fons (resultat2, resultat3, resultat4); traduir (amplada / 2, alçada); rotació- = 0,0005; girar (rotació); for (int i = 0; i diagonal) {p = new Particle (); }}}}

// classe: Partícula //

classe Particle {float n; flotador r; flotador o; flotador c; flotador d; int l; Partícula () {l = 100; n = aleatori (3, ample / 2); r = aleatori (0,10, TWO_PI); o = aleatori (1, aleatori (1, ample / n)); c = aleatori (180, 228); d = aleatori (160, 208); } void draw () {l ++; pushMatrix (); girar (r); traduir (drawDist (), 1); el·lipse (10, 10, ample / o / 4, amplada / o / 4); popMatrix (); o- = 0,06; } float drawDist () {return atan (n / o) * width / HALF_PI; }}

Pas 4: pas 4: connecteu-vos i proveu

Pas 4: connecteu-vos i proveu
Pas 4: connecteu-vos i proveu

Pas 5: Pas 5: vegeu el resultat

Pas 5: vegeu el resultat
Pas 5: vegeu el resultat

La velocitat de la bola en moviment serà més ràpida quan hi hagi alguna cosa més a prop del sensor d’ultrasons. A més, el control de llum amb fotoresistència apareixerà en processament com a foscor de fons.

Recomanat: