Πίνακας περιεχομένων:
- Βήμα 1: Βήμα 1: Προετοιμασία εξαρτημάτων
- Βήμα 2: Βήμα 2: Συνδέστε όλα τα εξαρτήματα
- Βήμα 3: Βήμα 3: Κωδικός
- Βήμα 4: Βήμα 4: Σύνδεση και δοκιμή
- Βήμα 5: Βήμα 5: Δείτε το Αποτέλεσμα
Βίντεο: Μεταφορά γραφικών επεξεργασίας Arduino: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Γεια, αυτό το έργο προορίζεται για τη δημιουργία ορατών γραφικών από αόρατα σωματίδια που θα μπορούσαν να ανιχνευθούν από αισθητήρες. Σε αυτήν την περίπτωση, χρησιμοποίησα τον υπερηχητικό αισθητήρα και τη φωτοαντίσταση για τον έλεγχο του φωτός και της απόστασης. Το οπτικοποιώ κάνοντας τις μεταβλητές από τον αισθητήρα ως μεταβλητές στην επεξεργασία. Στη συνέχεια, συνδέω το Arduino και την Επεξεργασία για τον έλεγχο του Arduino με την Επεξεργασία. Έτσι, το γραφικό στην Επεξεργασία θα εφαρμόζει μεταβλητές από τον αισθητήρα Arduino.
Βήμα 1: Βήμα 1: Προετοιμασία εξαρτημάτων
Ακολουθούν τα στοιχεία που θα χρειαστείτε για να φτιάξετε αυτό το έργο:
- 10k OHM
- Αισθητήρας υπερήχων
- Φωτοαντίσταση
- Arduino Uno
- 7 σύρματα
Βήμα 2: Βήμα 2: Συνδέστε όλα τα εξαρτήματα
Η φωτοαντίσταση και ο αισθητήρας υπερήχων χρειάζονται χώρο για ακριβή ανίχνευση. Εξοικονομήστε λίγο χώρο και σκεφτείτε το φως για φωτοαντίσταση.
Βήμα 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: Σύνδεση και δοκιμή
Βήμα 5: Βήμα 5: Δείτε το Αποτέλεσμα
Η ταχύτητα της κινούμενης μπάλας θα είναι μεγαλύτερη όταν οτιδήποτε είναι πιο κοντά στον αισθητήρα υπερήχων. Επιπλέον, ο έλεγχος φωτός με φωτοαντίσταση θα εμφανιστεί σε επεξεργασία ως σκοτάδι φόντου.
Συνιστάται:
Ενδιαφέρουσες οδηγίες προγραμματισμού επεξεργασίας για σχεδιαστές-Έλεγχος χρωμάτων: 10 βήματα
Ενδιαφέρουσες οδηγίες προγραμματισμού για σχεδιαστές-Έλεγχος χρωμάτων: Σε προηγούμενα κεφάλαια, έχουμε μιλήσει περισσότερο για τον τρόπο χρήσης του κώδικα για τη διαμόρφωση αντί για σημεία γνώσης σχετικά με το χρώμα. Σε αυτό το κεφάλαιο, θα διερευνήσουμε αυτή την πτυχή της γνώσης βαθύτερα
Σύστημα αναγνώρισης και πυρόσβεσης βάσει επεξεργασίας εικόνας: 3 βήματα
Σύστημα αναγνώρισης και πυρόσβεσης με βάση την επεξεργασία εικόνας: Γεια σας φίλοι, αυτό είναι ένα σύστημα ανίχνευσης και πυρόσβεσης που βασίζεται στην επεξεργασία εικόνας χρησιμοποιώντας το Arduino
Σύνδεση επεξεργασίας και Arduino και Make 7 Segment και Servo GUI Controller: 4 βήματα
Connecting Processing and Arduino and Make 7 Segment and Servo GUI Controller: Για ορισμένα έργα που κάνατε πρέπει να χρησιμοποιήσετε το Arduino καθώς παρέχει μια εύκολη πλατφόρμα πρωτοτύπων, αλλά η εμφάνιση γραφικών σε σειριακή οθόνη του Arduino μπορεί να διαρκέσει πολύ και είναι ακόμη και δύσκολο να γίνει. Μπορείτε να εμφανίσετε γραφήματα στο Arduino Serial Monitor bu
Μπλέντερ: Βασική διαδικασία επεξεργασίας: 10 βήματα
Μπλέντερ: Βασική διαδικασία επεξεργασίας: Γεια σε όλους! Καλώς ήρθατε σε αυτό το διδακτικό! Ως δημιουργός του avatar για το VRChat, κάτι που κάνω πολύ συχνά είναι οι χαρακτήρες που χρησιμοποιούνται για χρήση στο Unity! Κάθε χαρακτήρας είναι διαφορετικός, αλλά διαπιστώνω ότι τις περισσότερες φορές, όλοι ακολουθούν έναν βασικό σχεδιασμό. Αυτό θα κάνω
Πώς να ελέγξετε ένα απλό παιχνίδι επεξεργασίας με το Arduino: 6 βήματα
Πώς να ελέγξετε ένα απλό παιχνίδι επεξεργασίας με το Arduino: Γεια σε όλους, Σε αυτό το Instructable, θα δούμε πώς να δημιουργήσετε έναν " σύνδεσμο " μεταξύ σκίτσου επεξεργασίας και κάρτας Arduino. Σε αυτό το παράδειγμα, μια μονάδα υπερήχων θα χρησιμοποιηθεί για τον έλεγχο ενός επιπέδου σε ένα απλό παιχνίδι. Και πάλι, αυτό το σεμινάριο είναι απλώς μια εξέταση