Πίνακας περιεχομένων:

Μεταφορά γραφικών επεξεργασίας Arduino: 5 βήματα
Μεταφορά γραφικών επεξεργασίας Arduino: 5 βήματα

Βίντεο: Μεταφορά γραφικών επεξεργασίας Arduino: 5 βήματα

Βίντεο: Μεταφορά γραφικών επεξεργασίας Arduino: 5 βήματα
Βίντεο: Πώς Να Βγάλεις Λεφτά Πουλώντας AI Φωτογραφίες 2024, Ιούλιος
Anonim
Μετατροπή γραφικών επεξεργασίας Arduino
Μετατροπή γραφικών επεξεργασίας Arduino

Γεια, αυτό το έργο προορίζεται για τη δημιουργία ορατών γραφικών από αόρατα σωματίδια που θα μπορούσαν να ανιχνευθούν από αισθητήρες. Σε αυτήν την περίπτωση, χρησιμοποίησα τον υπερηχητικό αισθητήρα και τη φωτοαντίσταση για τον έλεγχο του φωτός και της απόστασης. Το οπτικοποιώ κάνοντας τις μεταβλητές από τον αισθητήρα ως μεταβλητές στην επεξεργασία. Στη συνέχεια, συνδέω το Arduino και την Επεξεργασία για τον έλεγχο του Arduino με την Επεξεργασία. Έτσι, το γραφικό στην Επεξεργασία θα εφαρμόζει μεταβλητές από τον αισθητήρα Arduino.

Βήμα 1: Βήμα 1: Προετοιμασία εξαρτημάτων

Βήμα 1: Προετοιμάστε μέρη
Βήμα 1: Προετοιμάστε μέρη

Ακολουθούν τα στοιχεία που θα χρειαστείτε για να φτιάξετε αυτό το έργο:

- 10k OHM

- Αισθητήρας υπερήχων

- Φωτοαντίσταση

- Arduino Uno

- 7 σύρματα

Βήμα 2: Βήμα 2: Συνδέστε όλα τα εξαρτήματα

Βήμα 2: Συνδέστε όλα τα εξαρτήματα
Βήμα 2: Συνδέστε όλα τα εξαρτήματα

Η φωτοαντίσταση και ο αισθητήρας υπερήχων χρειάζονται χώρο για ακριβή ανίχνευση. Εξοικονομήστε λίγο χώρο και σκεφτείτε το φως για φωτοαντίσταση.

Βήμα 3: Βήμα 3: Κωδικός

Βήμα 3: Κωδικός!
Βήμα 3: Κωδικός!

*Προσθέστε βιβλιοθήκη τόσο στο Arduino όσο και στην Επεξεργασία.

Arduino: αναζητήστε "νέο ping" στη βιβλιοθήκη

Επεξεργασία: αναζήτηση "σειριακών" στη βιβλιοθήκη

Κωδικός για το Arduino:

#περιλαμβάνω

#define TRIGGER_PIN 12 #define ECHO_PIN 11 #define 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 = χάρτης (analogValue, 200, 600, 249, 100);

int cVal2 = χάρτης (analogValue, 200, 600, 247, 97);

int cVal3 = χάρτης (analogValue, 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 pcount = 350; Σωματίδιο p = νέο σωματίδιο [pcount]; int διαγώνιο? int e = 100;

void setup () {port = new Serial (this, "/dev/cu.usbmodem141101"); port.clear (); σειριακός = port.readStringUntil (τέλος); σειριακό = null; για (int i = 0; i

περιστροφή πλωτήρα = 0;

void draw () {while (port.available ()> 0) {serial = port.readStringUntil (τέλος); καθυστέρηση (10)? } if (σειριακό! = null) {String a = split (σειριακό, ','); 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 (result1); int result2 = Integer.parseInt (a [1]); System.out.println (result2); 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; περιστροφή (περιστροφή)? για (int i = 0; i διαγώνιος) {p = νέο σωματίδιο (); }}}}

// κλάση: Σωματίδιο //

class Particle {float n; float r? float o? float c? float d? 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 (); περιστροφή (r)? μετάφραση (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: Δείτε το Αποτέλεσμα!

Η ταχύτητα της κινούμενης μπάλας θα είναι μεγαλύτερη όταν οτιδήποτε είναι πιο κοντά στον αισθητήρα υπερήχων. Επιπλέον, ο έλεγχος φωτός με φωτοαντίσταση θα εμφανιστεί σε επεξεργασία ως σκοτάδι φόντου.

Συνιστάται: