Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Kumusta, ang proyektong ito ay para sa paggawa ng nakikitang mga graphic mula sa mga hindi nakikita na mga maliit na butil na maaaring ma-sensed ng mga sensor. Sa kasong ito, ginamit ko ang ultrasonic sensor at photoresistor upang makontrol ang ilaw at distansya. Ipinapakita ko ito sa pamamagitan ng paggawa ng mga variable mula sa sensor bilang mga variable sa pagproseso. Pagkatapos ay ikonekta ko ang Arduino at Pagproseso upang makontrol ang Arduino sa Pagproseso. Kaya, ang grapiko sa Pagproseso ay maglalapat ng mga variable mula sa Arduino sensor.
Hakbang 1: Hakbang 1: Maghanda ng Mga Bahagi
Narito ang mga sangkap na kakailanganin mong gawin ang proyektong ito:
- 10k OHM
- Ultrasonic sensor
- Photoresistor
- Arduino Uno
- 7 wires
Hakbang 2: Hakbang 2: Ikonekta ang Lahat ng Mga Bahagi
Ang photoresistor at Ultrasonic sensor ay nangangailangan ng isang puwang para sa tumpak na pagtuklas. Makatipid ng ilang puwang at isipin ang tungkol sa ilaw para sa photoresistor.
Hakbang 3: Hakbang 3: Code
* Magdagdag ng library sa parehong Arduino at Pagproseso.
Arduino: maghanap ng "bagong ping" sa silid-aklatan
Pagpoproseso: maghanap ng "serial" sa library
Code para sa Arduino:
# isama
#define TRIGGER_PIN 12 # tukuyin ang ECHO_PIN 11 #define MAX_DISTANCE 200
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 (); Value1 = mapa (Value1, 1, 60, 500, 24); Value1 = pipilitin (Value1, 24, 500);
analogValue = analogRead (lightSensorPin); int cVal1 = mapa (analogValue, 200, 600, 249, 100);
int cVal2 = mapa (analogValue, 200, 600, 247, 97);
int cVal3 = mapa (analogValue, 200, 600, 243, 101);
int cVal4 = mapa (analogValue, 200, 600, 243, 150);
antala (50);
Serial.print (Value1); Serial.print (",");
Serial.print (cVal1); Serial.print (","); Serial.print (cVal2); Serial.print (","); Serial.print (cVal3); Serial.print (","); Serial.print (cVal4); Serial.print (",");
Serial.println (); }
Code para sa Pagproseso:
// class: (basic) //
pagproseso ng pag-import.serial. *;
int pagtatapos = 10; Serye ng string; Serial port;
int pcount = 350; Particle p = bagong Particle [pcount]; int diagonal; int e = 100;
void setup () {port = new Serial (ito, "/dev/cu.usbmodem141101"); port.clear (); serial = port.readStringUntil (end); serial = null; para sa (int i = 0; i
float rotation = 0;
void draw () {habang (port.available ()> 0) {serial = port.readStringUntil (end); antala (10); } kung (serial! = null) {String a = split (serial, ','); println (isang [0]); println (isang [1]); println (isang [2]); println (isang [3]); println (isang [4]); int resulta1 = Integer.parseInt (a [0]); System.out.println (resulta1); frameRate (resulta1); int resulta2 = Integer.parseInt (a [1]); System.out.println (resulta2); int resulta3 = Integer.parseInt (a [2]); System.out.println (resulta3); int resulta4 = Integer.parseInt (a [3]); System.out.println (resulta4); int resulta5 = Integer.parseInt (a [4]); System.out.println (resulta5); background (resulta2, resulta3, resulta4); isalin (lapad / 2, taas); pag-ikot- = 0,0005; paikutin (paikutin); para sa (int i = 0; i diagonal) {p = bagong Particle (); }}}}
// class: Particle //
klase ng Particle {float n; lumutang r; lumutang o; lumutang c; lumutang d; int l; Particle () {l = 100; n = random (3, lapad / 2); r = random (0.10, TWO_PI); o = random (1, random (1, lapad / n)); c = random (180, 228); d = random (160, 208); } walang bisa na pagguhit () {l ++; pushMatrix (); paikutin (r); isalin (drawDist (), 1); ellipse (10, 10, lapad / o / 4, lapad / o / 4); popMatrix (); o- = 0.06; } float drawDist () {return atan (n / o) * lapad / HALF_PI; }}
Hakbang 4: Hakbang 4: Kumonekta at Sumubok
Hakbang 5: Hakbang 5: Tingnan ang Resulta
Ang bilis ng bola na gumagalaw ay magiging mas mabilis kapag may anumang malapit sa ultrasonic sensor. Dagdag pa, ang kontrol ng ilaw na may photoresistor ay lilitaw sa pagproseso bilang kadiliman sa background.