Სარჩევი:

Arduino დამუშავების გრაფიკული გადასვლა: 5 ნაბიჯი
Arduino დამუშავების გრაფიკული გადასვლა: 5 ნაბიჯი

ვიდეო: Arduino დამუშავების გრაფიკული გადასვლა: 5 ნაბიჯი

ვიდეო: Arduino დამუშავების გრაფიკული გადასვლა: 5 ნაბიჯი
ვიდეო: Equipment Corner - Cura 4.8 install and setup 2024, ნოემბერი
Anonim
Arduino დამუშავების გრაფიკული გადასვლა
Arduino დამუშავების გრაფიკული გადასვლა

გამარჯობა, ეს პროექტი განკუთვნილია უხილავი ნაწილაკებისგან ხილული გრაფიკის შესაქმნელად, რომელსაც სენსორები იგრძნობენ. ამ შემთხვევაში, მე გამოვიყენე ულტრაბგერითი სენსორი და ფოტორეზისტორი სინათლისა და მანძილის გასაკონტროლებლად. მე ვიზუალიზაციას ვაკეთებ სენსორიდან ცვლადების დამუშავებისას ცვლადებად. შემდეგ მე ვაკავშირებ Arduino– ს და Processing– ს Arduino– ს გასაკონტროლებლად დამუშავებასთან. ამრიგად, გრაფიკული დამუშავება გამოიყენებს ცვლადებს არდუინოს სენსორიდან.

ნაბიჯი 1: ნაბიჯი 1: ნაწილების მომზადება

ნაბიჯი 1: მოამზადეთ ნაწილები
ნაბიჯი 1: მოამზადეთ ნაწილები

აქ არის კომპონენტები, რომლებიც დაგჭირდებათ ამ პროექტის შესაქმნელად:

- 10k OHM

- ულტრაბგერითი სენსორი

- ფოტორეზისტორი

- არდუინო უნო

- 7 მავთული

ნაბიჯი 2: ნაბიჯი 2: დააკავშირეთ ყველა კომპონენტი

ნაბიჯი 2: დააკავშირეთ ყველა კომპონენტი
ნაბიჯი 2: დააკავშირეთ ყველა კომპონენტი

ფოტორეზისტორს და ულტრაბგერითი სენსორს სჭირდებათ სივრცე ზუსტი გამოვლენისთვის. დაზოგეთ ადგილი და იფიქრეთ სინათლეზე ფოტორეზისტორისთვის.

ნაბიჯი 3: ნაბიჯი 3: კოდი

ნაბიჯი 3: კოდი!
ნაბიჯი 3: კოდი!

*დაამატეთ ბიბლიოთეკა როგორც არდუინოში, ასევე დამუშავებაში.

არდუინო: მოძებნეთ "ახალი პინგი" ბიბლიოთეკაში

დამუშავება: მოძებნეთ "სერიული" ბიბლიოთეკაში

კოდი არდუინოსთვის:

#ჩართეთ

#განსაზღვრეთ 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 = რუკა (ანალოგური ღირებულება, 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 pcount = 350; ნაწილაკი p = ახალი ნაწილაკი [pcount]; int დიაგონალი; int e = 100;

void setup () {პორტი = ახალი სერიალი (ეს, "/dev/cu.usbmodem141101"); port.clear (); სერიული = port.readStringUntil (ბოლომდე); სერიული = null; for (int i = 0; i

float როტაცია = 0;

void draw () {while (port.available ()> 0) {serial = port.readStringUntil (ბოლომდე); დაგვიანება (10); } if (სერიული! = null) {სიმებიანი a = გაყოფილი (სერიული, ','); println (a [0]); println (a [1]); println (a [2]); println (a [3]); println (a [4]); int result1 = Integer.parseInt (a [0]); System.out.println (result1); frameRate (შედეგი 1); int result2 = Integer.parseInt (a [1]); System.out.println (შედეგი 2); int result3 = Integer.parseInt (a [2]); System.out.println (result3); int result4 = Integer.parseInt (a [3]); System.out.println (result4); int result5 = Integer.parseInt (a [4]); System.out.println (result5); ფონი (შედეგი 2, შედეგი 3, შედეგი 4); თარგმნა (სიგანე/2, სიმაღლე); ბრუნვა- = 0.0005; როტაცია (როტაცია); for (int i = 0; i დიაგონალი) {p = ახალი ნაწილაკი (); }}}}

// კლასი: ნაწილაკი //

კლასი ნაწილაკი {float n; float r; float o; float c; float დ; int l; ნაწილაკი () {l = 100; n = შემთხვევითი (3, სიგანე/2); r = შემთხვევითი (0.10, TWO_PI); o = შემთხვევითი (1, შემთხვევითი (1, სიგანე/n)); c = შემთხვევითი (180, 228); d = შემთხვევითი (160, 208); } void draw () {l ++; pushMatrix (); როტაცია (რ); თარგმნა (drawDist (), 1); ელიფსი (10, 10, სიგანე/ო/4, სიგანე/ო/4); popMatrix (); o- = 0.06; } float drawDist () {return atan (n/o)*width/HALF_PI; }}

ნაბიჯი 4: ნაბიჯი 4: დაკავშირება და გამოცდა

ნაბიჯი 4: დაკავშირება და ტესტირება
ნაბიჯი 4: დაკავშირება და ტესტირება

ნაბიჯი 5: ნაბიჯი 5: იხილეთ შედეგი

ნაბიჯი 5: იხილეთ შედეგი!
ნაბიჯი 5: იხილეთ შედეგი!

მოძრავი ბურთის სიჩქარე უფრო მაღალი იქნება, როდესაც რაიმე უახლოვდება ულტრაბგერითი სენსორთან. გარდა ამისა, სინათლის კონტროლი ფოტორეზისტორთან ერთად გამოჩნდება დამუშავების პროცესში, როგორც ფონური სიბნელე.

გირჩევთ: