Բովանդակություն:

Arduino մշակման գրաֆիկական անցում `5 քայլ
Arduino մշակման գրաֆիկական անցում `5 քայլ

Video: Arduino մշակման գրաֆիկական անցում `5 քայլ

Video: Arduino մշակման գրաֆիկական անցում `5 քայլ
Video: Scentroid's CTAir Continuous Urban Air Quality Monitor Seminar A 12.08.2020 (Subtitled) 2024, Հուլիսի
Anonim
Arduino մշակման գրաֆիկական անցում
Arduino մշակման գրաֆիկական անցում

Բարև, այս նախագիծը անտեսանելի մասնիկներից տեսանելի գրաֆիկա ստեղծելու համար է, որը կարող է զգացվել սենսորների միջոցով: Այս դեպքում ես օգտագործել եմ ուլտրաձայնային տվիչ և ֆոտոռեզիստոր ՝ լույսը և հեռավորությունը վերահսկելու համար: Ես պատկերացնում եմ այն ՝ փոփոխականները սենսորից դարձնելով որպես փոփոխման գործընթացում փոփոխականներ: Հետո Arduino- ն և Processing- ը միացնում եմ Arduino- ն վերահսկելու համար Processing- ի հետ: Այսպիսով, մշակման գծապատկերը կկիրառեր Arduino սենսորի փոփոխականները:

Քայլ 1: Քայլ 1: Պատրաստեք մասեր

Քայլ 1: Պատրաստեք մասեր
Քայլ 1: Պատրաստեք մասեր

Ահա այն բաղադրիչները, որոնք ձեզ հարկավոր են այս նախագիծը պատրաստելու համար.

- 10k OHM

- Ուլտրաձայնային ցուցիչ

- ֆոտոռեզիստոր

- Արդուինո Ունո

- 7 լար

Քայլ 2: Քայլ 2: Միացրեք բոլոր բաղադրիչները

Քայլ 2: Միացրեք բոլոր բաղադրիչները
Քայլ 2: Միացրեք բոլոր բաղադրիչները

Ֆոտոռեզիստորին և ուլտրաձայնային տվիչին անհրաժեշտ է տարածք ճշգրիտ հայտնաբերման համար: Խնայեք որոշակի տարածք և մտածեք լույսի մասին ֆոտոընդդիմադիրի համար:

Քայլ 3: Քայլ 3: Կոդ:

Քայլ 3: Կոդ!
Քայլ 3: Կոդ!

*Ավելացրեք գրադարան ինչպես Arduino- ում, այնպես էլ Processing- ում:

Arduino. Գրադարանում փնտրեք «նոր պինգ»

Վերամշակում. Գրադարանում որոնել «սերիալ»

Կոդ Arduino- ի համար.

#ներառում

#սահմանել TRIGGER_PIN 12 #սահմանել ECHO_PIN 11 #սահմանել MAX_DISTANCE 200

NewPing սոնար (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int lightSensorPin = A0; int analogValue = 0;

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

void loop () {int Value1 = sonar.ping_cm (); Արժեք 1 = քարտեզ (արժեք 1, 1, 60, 500, 24); Արժեք 1 = սահմանափակում (Արժեք 1, 24, 500);

analogValue = analogRead (lightSensorPin); int cVal1 = քարտեզ (անալոգային արժեք, 200, 600, 249, 100);

int cVal2 = քարտեզ (անալոգային արժեք, 200, 600, 247, 97);

int cVal3 = քարտեզ (անալոգային արժեք, 200, 600, 243, 101);

int cVal4 = քարտեզ (analogValue, 200, 600, 243, 150);

ուշացում (50);

Serial.print (արժեքը 1); Serial.print (",");

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

Serial.println (); }

Մշակման ծածկագիր.

// դաս: (հիմնական) //

ներմուծման մշակում. սերիա:*;

int վերջ = 10; Լարային սերիալ; Սերիական նավահանգիստ;

int հատ = 350; Մասնիկ p = նոր մասնիկ [pcount]; int անկյունագծային; int e = 100;

void setup () {port = new Serial (սա, "/dev/cu.usbmodem141101"); port.clear (); սերիալ = port.readStringUntil (վերջ); սերիական = null; համար (int i = 0; i

բոցի պտույտ = 0;

դատարկ վիճակահանություն () {while (port.available ()> 0) {serial = port.readStringUntil (վերջ); ուշացում (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 (արդյունք 1); frameRate (արդյունք 1); int result2 = Integer.parseInt (a [1]); System.out.println (արդյունք 2); int result3 = Integer.parseInt (a [2]); System.out.println (արդյունք 3); int result4 = Integer.parseInt (a [3]); System.out.println (արդյունք 4); int result5 = Integer.parseInt (a [4]); System.out.println (արդյունք 5); ֆոն (արդյունք 2, արդյունք 3, արդյունք 4); թարգմանել (լայնություն/2, բարձրություն); պտույտ- = 0.0005; պտտել (պտտվել); համար (int i = 0; i անկյունագիծ) {p = նոր մասնիկ (); }}}}

// դաս: մասնիկ //

class Particle {float n; բոց r; բոց o; բոց c; բոց դ; int l; Մասնիկ () {l = 100; n = պատահական (3, լայնություն/2); r = պատահական (0.10, TWO_PI); o = պատահական (1, պատահական (1, լայնություն/ն)); գ = պատահական (180, 228); d = պատահական (160, 208); } դատարկ վիճակահանություն () {l ++; pushMatrix (); պտտել (r); թարգմանել (drawDist (), 1); էլիպս (10, 10, լայնություն/o/4, լայնություն/o/4); popMatrix (); o- = 0.06; } float drawDist () {վերադարձ atan (n/o)*width/HALF_PI; }}

Քայլ 4: Քայլ 4. Միացեք և փորձարկեք

Քայլ 4: Միացեք և փորձարկեք
Քայլ 4: Միացեք և փորձարկեք

Քայլ 5: Քայլ 5. Տեսեք արդյունքը:

Քայլ 5: Տեսեք արդյունքը
Քայլ 5: Տեսեք արդյունքը

Շարժվող գնդակի արագությունն ավելի մեծ կլինի, երբ որևէ բան ավելի մոտ լինի ուլտրաձայնային տվիչին: Բացի այդ, ֆոտոռեզիստորով լույսի կարգավորիչը մշակման ընթացքում կհայտնվի որպես ֆոնային խավար:

Խորհուրդ ենք տալիս: