Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Salam, bu layihə sensorlar tərəfindən hiss edilə bilən görünməz hissəciklərdən görünən qrafika hazırlamaq üçündür. Bu vəziyyətdə, işığı və məsafəni idarə etmək üçün ultrasəs sensoru və fotorezistordan istifadə etdim. Sensordakı dəyişənləri emalda dəyişənlər halına gətirərək bunu təsəvvür edirəm. Sonra Arduino və Processing -i Arduino -nu İşləmə ilə idarə etmək üçün bağlayıram. Beləliklə, İşləmə qrafiki Arduino sensorunun dəyişənlərini tətbiq edəcək.
Addım 1: Adım 1: Parçaları hazırlayın
Bu layihəni hazırlamaq üçün sizə lazım olacaq komponentlər:
- 10k OHM
- Ultrasonik sensor
- Fotoresistor
- Arduino Uno
- 7 tel
Adım 2: Adım 2: Bütün Komponentləri birləşdirin
Fotorezistor və ultrasəs sensoru dəqiq aşkar etmək üçün bir yerə ehtiyac duyur. Bir az yer ayırın və fotorezistor üçün işıq haqqında düşünün.
Adım 3: Adım 3: Kod
*Həm Arduino, həm də Qenerasiya kitabxanası əlavə edin.
Arduino: kitabxanada "yeni ping" axtarın
İşlənir: kitabxanada "serial" axtarın
Arduino kodu:
#daxil edin
#tetikleyici_PİN 12 -ni təyin edin #ECHO_PIN 11 -i təyin edin #MAX_DISTANCE 200 -ü təyin edin
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 (); Dəyər1 = xəritə (Dəyər1, 1, 60, 500, 24); Dəyər1 = məhdudlaşdırın (Dəyər1, 24, 500);
analogValue = analogRead (lightSensorPin); int cVal1 = xəritə (analogValue, 200, 600, 249, 100);
int cVal2 = xəritə (analogValue, 200, 600, 247, 97);
int cVal3 = xəritə (analogValue, 200, 600, 243, 101);
int cVal4 = xəritə (analogValue, 200, 600, 243, 150);
gecikmə (50);
Serial.print (Dəyər1); Serial.print (",");
Serial. çap (cVal1); Serial.print (","); Serial. çap (cVal2); Serial.print (","); Serial. çap (cVal3); Serial.print (","); Serial. çap (cVal4); Serial.print (",");
Serial.println (); }
Qenerasiya kodu:
// sinif: (əsas) //
idxal emalı.serial.*;
int end = 10; String serialı; Serial port;
int pcount = 350; Particle p = new Particle [pcount]; int diaqonal; int e = 100;
void setup () {port = new Serial (this, "/dev/cu.usbmodem141101"); port.clear (); serial = port.readStringUntil (son); serial = sıfır; üçün (int i = 0; i
üzən fırlanma = 0;
void draw () {while (port.available ()> 0) {serial = port.readStringUntil (end); gecikmə (10); } if (serial! = null) {String a = split (serial, ','); println (a [0]); println (a [1]); println (a [2]); println (a [3]); println (a [4]); int nəticə1 = Integer.parseInt (a [0]); System.out.println (nəticə1); frameRate (nəticə1); int nəticə2 = Integer.parseInt (a [1]); System.out.println (nəticə2); int result3 = Integer.parseInt (a [2]); System.out.println (nəticə3); int result4 = Integer.parseInt (a [3]); System.out.println (nəticə4); int nəticə5 = Integer.parseInt (a [4]); System.out.println (nəticə5); fon (nəticə2, nəticə3, nəticə4); tərcümə (eni/2, hündürlüyü); fırlanma- = 0.0005; fırlanma (fırlanma); for (int i = 0; i diaqonal) {p = yeni hissəcik (); }}}}
// sinif: hissəcik //
sinif Partikül {float n; float r; üzmək o; üzmək c; üzmək d; int l; Particle () {l = 100; n = təsadüfi (3, en/2); r = təsadüfi (0.10, TWO_PI); o = təsadüfi (1, təsadüfi (1, en/n)); c = təsadüfi (180, 228); d = təsadüfi (160, 208); } void draw () {l ++; pushMatrix (); döndərmək (r); tərcümə (drawDist (), 1); ellips (10, 10, eni/o/4, eni/o/4); popMatrix (); o- = 0.06; } float drawDist () {return atan (n/o)*width/HALF_PI; }}
Adım 4: Adım 4: Bağlayın və Test edin
Addım 5: Adım 5: Nəticəyə baxın
Hər hansı bir şey ultrasəs sensoruna yaxın olduqda, hərəkət edən topun sürəti daha yüksək olacaq. Üstəlik, fotorezistorlu işığın idarə edilməsi fonda qaranlıq kimi işlənəcək.