Sisällysluettelo:

Arduino Graafinen siirtymä: 5 vaihetta
Arduino Graafinen siirtymä: 5 vaihetta

Video: Arduino Graafinen siirtymä: 5 vaihetta

Video: Arduino Graafinen siirtymä: 5 vaihetta
Video: Älä näpistä! 2024, Marraskuu
Anonim
Arduino käsittelee graafista siirtymää
Arduino käsittelee graafista siirtymää

Hei, tämä projekti on tarkoitettu tekemään näkyvä grafiikka näkymättömistä hiukkasista, jotka anturit voivat havaita. Tässä tapauksessa käytin ultraäänianturia ja valoresistoria valon ja etäisyyden hallintaan. Visualisoin sen tekemällä muuttujat anturista muuttujiksi käsittelyssä. Sitten yhdistä Arduino ja Processing ohjaamaan Arduinoa Processingilla. Näin ollen prosessoinnin grafiikka soveltaa Arduino -anturin muuttujia.

Vaihe 1: Vaihe 1: Valmistele osat

Vaihe 1: Osien valmistelu
Vaihe 1: Osien valmistelu

Tässä ovat komponentit, joita tarvitset tämän projektin toteuttamiseen:

- 10k OHM

- Ultraäänianturi

- Valovastus

- Arduino Uno

- 7 johtoa

Vaihe 2: Vaihe 2: Yhdistä kaikki komponentit

Vaihe 2: Yhdistä kaikki komponentit
Vaihe 2: Yhdistä kaikki komponentit

Valoresistori ja ultraäänianturi tarvitsevat tilaa tarkalle havaitsemiselle. Säästä tilaa ja ajattele valoa vastusvalolle.

Vaihe 3: Vaihe 3: Koodi

Vaihe 3: Koodi!
Vaihe 3: Koodi!

*Lisää kirjasto sekä Arduinossa että Processingissa.

Arduino: etsi kirjastosta "uusi ping"

Käsittely: etsi kirjastosta "sarja"

Arduinon koodi:

#sisältää

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

NewPing -luotain (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int lightSensorPin = A0; int analogValue = 0;

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

void loop () {int Arvo1 = kaikuluotain.ping_cm (); Arvo1 = kartta (arvo1, 1, 60, 500, 24); Arvo1 = rajoittaa (Arvo1, 24, 500);

analoginen Arvo = analoginenLue (lightSensorPin); int cVal1 = kartta (analoginen arvo, 200, 600, 249, 100);

int cVal2 = kartta (analoginen arvo, 200, 600, 247, 97);

int cVal3 = kartta (analoginen arvo, 200, 600, 243, 101);

int cVal4 = kartta (analoginen arvo, 200, 600, 243, 150);

viive (50);

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

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

Sarja.println (); }

Käsittelykoodi:

// luokka: (perus) //

tuonti käsittely. sarja.*;

int end = 10; Jousisarja; Sarjaportti;

int pcount = 350; Partikkeli p = uusi Partikkeli [pcount]; int lävistäjä; int e = 100;

void setup () {port = new Serial (this, "/dev/cu.usbmodem141101"); port.clear (); serial = port.readStringUntil (loppu); sarja = null; varten (int i = 0; i

kellukkeen kierto = 0;

void draw () {while (port.available ()> 0) {serial = port.readStringUntil (end); viive (10); } if (sarja! = null) {String a = split (serial, ','); println (a [0]); println (a [1]); println (a [2]); println (a [3]); println (a [4]); int tulos1 = Integer.parseInt (a [0]); System.out.println (tulos1); frameRate (tulos1); int tulos2 = Integer.parseInt (a [1]); System.out.println (tulos2); int tulos3 = Integer.parseInt (a [2]); System.out.println (tulos3); int tulos4 = Integer.parseInt (a [3]); System.out.println (tulos4); int tulos5 = Integer.parseInt (a [4]); System.out.println (tulos5); tausta (tulos2, tulos3, tulos4); kääntää (leveys/2, korkeus); kierto- = 0,0005; kiertää (kierto); for (int i = 0; i lävistäjä) {p = uusi hiukkanen (); }}}}

// luokka: hiukkaset //

luokka Hiukkaset {float n; kellua r; kellua o; kellua c; kellua d; int l; Hiukkas () {l = 100; n = satunnainen (3, leveys/2); r = satunnainen (0,10, TWO_PI); o = satunnainen (1, satunnainen (1, leveys/n)); c = satunnainen (180, 228); d = satunnainen (160, 208); } mitätön draw () {l ++; pushMatrix (); pyöritä (r); kääntää (drawDist (), 1); ellipsi (10, 10, leveys/o/4, leveys/o/4); popMatrix (); o- = 0,06; } float drawDist () {return atan (n/o)*width/HALF_PI; }}

Vaihe 4: Vaihe 4: Yhdistä ja testaa

Vaihe 4: Yhdistä ja testaa
Vaihe 4: Yhdistä ja testaa

Vaihe 5: Vaihe 5: Katso tulos

Vaihe 5: Katso tulos!
Vaihe 5: Katso tulos!

Liikkuvan pallon nopeus on suurempi, kun mikään on lähempänä ultraäänianturia. Lisäksi valonohjauksella varustettu valonohjaus näkyy taustalla tummuutena.

Suositeltava: