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

Απλό σύστημα ραντάρ από το Magicbit: 6 βήματα
Απλό σύστημα ραντάρ από το Magicbit: 6 βήματα

Βίντεο: Απλό σύστημα ραντάρ από το Magicbit: 6 βήματα

Βίντεο: Απλό σύστημα ραντάρ από το Magicbit: 6 βήματα
Βίντεο: Θεσσαλονίκη: Με φορητό ραντάρ η Τροχαία στην Ανδριανουπόλεως (2) 2024, Ιούλιος
Anonim

Αυτό το σεμινάριο δείχνει πώς να φτιάξετε ένα απλό σύστημα ραντάρ χρησιμοποιώντας αισθητήρα HC-SR04 και πίνακα Microbit dev με επεξεργασία και Arduino IDE.

Προμήθειες:

  • Μικρο-σερβοκινητήρας SG90
  • Καλώδια βραχυκυκλωτήρων (γενικά)
  • Breadboard (γενικό)
  • Magicbit
  • Καλώδιο USB-A σε Micro-USB
  • Αισθητήρας υπερήχων - HC -SR04 (Generic)

Βήμα 1: Ιστορία

Σε αυτό το σεμινάριο θα μάθουμε πώς να φτιάξουμε ένα απλό σύστημα ραντάρ χρησιμοποιώντας το Magicbit core devboard. Για το σκοπό αυτό χρησιμοποιούμε αισθητήρα υπερήχων HC-SR04 και για την εμφάνιση δεδομένων, χρησιμοποιούμε περιβάλλον επεξεργασίας. Ας ξεκινήσουμε.

Βήμα 2: Θεωρία και Μεθοδολογία

Αρχικά, ας συζητήσουμε πώς λειτουργεί αυτό. Η αρχή είναι πολύ εύκολη. Αρχικά περιστρέφουμε τον αισθητήρα μας γύρω από τον κατακόρυφο άξονα σε εύρος 180 μοιρών συνεχώς. Κατά τη διάρκεια αυτής της κίνησης λαμβάνουμε τα δεδομένα σχετικά με την απόσταση στο πλησιέστερο αντικείμενο από τον αισθητήρα υπερήχων σε κάθε γωνία. Για αυτή τη διαδικασία χρησιμοποιούμε τον κεντρικό πίνακα Magicbit. Στη συνέχεια, πρέπει να δημιουργήσουμε τη σύνδεση με το περιβάλλον επεξεργασίας για την εμφάνιση των δεδομένων μας. Γι 'αυτό χρησιμοποιούμε πρωτόκολλο σειριακής επικοινωνίας με κατάλληλο ρυθμό baud. Στη συνέχεια σχεδιάζουμε τη διεπαφή του συστήματος ραντάρ μας χρησιμοποιώντας IDE επεξεργασίας. Σε αυτό το IDE ρυθμίζουμε τη σειριακή επικοινωνία μας για λήψη δεδομένων πραγματικού χρόνου μέσω σειριακής. Έτσι κάνουμε επικοινωνία σε πραγματικό χρόνο με το Magicbit και δείχνουμε τα δεδομένα που στέλνονται από το Magicbit στο IDE επεξεργασίας.

Βήμα 3: Ρύθμιση υλικού

Ρύθμιση υλικού
Ρύθμιση υλικού
Ρύθμιση υλικού
Ρύθμιση υλικού

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

Ο αισθητήρας υπερήχων χρησιμοποίησε 3,3 v για ενεργοποίηση. Ως εκ τούτου, χρησιμοποιήσαμε τη δεξιά κάτω θύρα του πίνακα Magicbit για να συνδέσουμε τον αισθητήρα υπερήχων στο Magicbit. Αλλά ο σερβοκινητήρας χρησιμοποιείται 5V για σωστή λειτουργία, γι 'αυτό χρησιμοποιήσαμε την αριστερή κάτω θύρα για να συνδέσουμε τον σερβοκινητήρα με το Magicbit. Σε αυτήν την περίπτωση, χρησιμοποιούμε μονάδα σύνδεσης Magic bit servo connector. Αλλά αν δεν έχετε αυτήν τη μονάδα, μπορείτε να χρησιμοποιήσετε τρία καλώδια jumper για να συνδέσετε 5V σε 5V, Gnd σε Gnd και ακίδα σήματος σε 26 ακίδες στο magicbit.

Μετά την κατασκευή του κυκλώματος έχουμε να κατασκευάσουμε ένα μικρό μηχανικό μέρος. βάλτε μονό πλευρικό συνδετήρα σερβο σερβοκινητήρα χρησιμοποιώντας μικρό παξιμάδι. Στη συνέχεια, στερεώστε τον αισθητήρα σε αυτόν τον σύνδεσμο χρησιμοποιώντας βραχίονα σε σχήμα L ή με σωστό τρόπο. Μετά από ολόκληρο το σύστημα στερεωθήκαμε στο breadboard. Αλλά μπορείτε να χρησιμοποιήσετε άλλη επιφάνεια για να τοποθετήσετε σερβο και Magicbit.

Βήμα 4: Ρύθμιση λογισμικού

Ρύθμιση λογισμικού
Ρύθμιση λογισμικού
Ρύθμιση λογισμικού
Ρύθμιση λογισμικού

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

magicbit-arduino.readthedocs.io/el/latest/

hello.processing.org/editor/

Ας δούμε τον κώδικα Arduino IDE και πώς λειτουργεί αυτός ο κώδικας.

Για οδήγηση σερβο χρησιμοποιούμε τη σερβο βιβλιοθήκη ESP32. Αυτή η βιβλιοθήκη περιλαμβάνει σχεδόν στο μαγικό διαχειριστή πλακέτας bit στο Arduino IDE. Για την αντιμετώπιση του αισθητήρα υπερήχων χρησιμοποιούμε τη νέα βιβλιοθήκη Ping. Μπορείτε να το κατεβάσετε από τον παρακάτω σύνδεσμο.

bitbucket.org/teckel12/arduino-new-ping/do…

Κατεβάστε το αρχείο zip και μεταβείτε στα εργαλεία> συμπεριλάβετε τη βιβλιοθήκη> προσθέστε βιβλιοθήκη Zip στο Arduino. τώρα επιλέξτε το αρχείο zip που έχετε κατεβάσει από τη νέα βιβλιοθήκη καρφιτσών. Για επικοινωνία με την επεξεργασία χρησιμοποιήσαμε σειριακή επικοινωνία με 115200 baud rate. Αυτή είναι η πιο κατάλληλη συχνότητα για το ESP32. Σε κάθε γωνία στέλνουμε τα δεδομένα μας στον υπολογιστή χρησιμοποιώντας αυτό το πρωτόκολλο. Σε αυτά τα δεδομένα περιλαμβάνεται η απόσταση από το πλησιέστερο μπροστινό αντικείμενο από τον αισθητήρα, η κατεύθυνση περιστροφής και η γωνία περιστροφής. Χρησιμοποιώντας δύο βρόχους περιστρέφουμε το σερβο μας σε δύο κατευθύνσεις. Ενώ περιστροφή ενός βαθμού στείλαμε σειριακά δεδομένα σε 4 φορές. Ο λόγος για τον οποίο μπορείτε να καταλάβετε κατά την επεξεργασία εξήγησης μέρους.

Τώρα ήρθε η ώρα να εξετάσουμε το περιβάλλον επεξεργασίας. Αυτό είναι λογισμικό προγραμματισμού που βασίζεται σε java. Μπορούμε να γράψουμε σκίτσο του προγράμματος μας σε αυτό το σκίτσο κατά την επεξεργασία του IDE. Μπορούμε επίσης να δημιουργήσουμε οπτική έξοδο από την εκτέλεση του προγράμματός μας. Επίσης, μπορείτε να λάβετε έξοδο ως 2D και 3D αντικείμενα. Όχι μόνο αυτό, μπορεί να χρησιμοποιηθεί για επεξεργασία εικόνας και πολλά άλλα πράγματα.

Στο σκίτσο επεξεργασίας σχεδιάζουμε πρώτα τη διεπαφή εμφάνισης δεδομένων μας χρησιμοποιώντας απλές γραφικές λειτουργίες. Στην αρχή του κώδικα δημιουργούμε τη σειριακή επικοινωνία μας συμπεριλαμβάνοντας σειριακές βιβλιοθήκες. Στη λειτουργία ρύθμισης πρέπει να κάνετε κάποια αλλαγή σύμφωνα με τη θύρα USB που χρησιμοποιήσατε για να συνδέσετε το Magicbit με τον υπολογιστή. μπορείτε να ελέγξετε τη θύρα σας χρησιμοποιώντας το Arduino IDE όταν ρυθμίσετε το Arduino IDE για τη μεταφόρτωση του κώδικα. Στη συνέχεια, αλλάξτε το όνομα θύρας com στο τμήμα εγκατάστασης στο σκίτσο επεξεργασίας. όταν είναι διαθέσιμα τα σειριακά δεδομένα, η λειτουργία Serialevent ενεργοποιείται αυτόματα. Ως εκ τούτου, η κύρια λογική του κώδικα περιλαμβάνεται στο σειριακό συμβάν για την αποτροπή των γωνιών και των δεδομένων που λείπουν. όταν είναι διαθέσιμα νέα δεδομένα, σχεδιάζουμε μια γραμμή στην οθόνη σύμφωνα με τη γωνία μας. Εκείνη τη στιγμή εάν δεν υπάρχει ανίχνευση αντικειμένου, τότε η πλήρης γραμμή είναι πράσινη. Εάν όχι, τότε κάποιο τμήμα της γραμμής θα είναι κόκκινο ανάλογα με την απόσταση από τον αισθητήρα στο αντικείμενο. Επίσης, σύμφωνα με την κατεύθυνση περιστροφής σχεδιάζουμε άλλες 200 γραμμές κοντά στη γραμμή αυτή με μειωμένο επίπεδο πράσινου χρώματος. μεταξύ κάθε Main έχουμε 0,25 μοίρες διαφορά. Ως εκ τούτου, λαμβάνουμε 4 μετρήσεις κάθε φορά από το Magicbit σε κάθε περιστροφή βαθμού. Εξαιτίας αυτού, μπορούμε να δημιουργήσουμε όμορφη αναζήτηση χέρι -χέρι στην οθόνη.

Αφού ανεβάσετε την επιτυχία του κώδικα στο μαγικό και ρυθμίστε το τμήμα υλικού, ανοίξτε με επιτυχία το IDE επεξεργασίας και εκτελέστε τον κώδικα κάνοντας κλικ στο κουμπί εκτέλεσης. Τώρα έχετε πολύ απλό σύστημα ραντάρ.

Μπορείτε να προσαρμόσετε τους κωδικούς όπως θέλετε αυτό που θέλετε να εμφανίζεται.

Βήμα 5: Αντιμετώπιση προβλημάτων

Το σκίτσο επεξεργασίας δεν εκτελείται.

  • Περίμενε λίγο. Ο χρόνος εκκίνησης εξαρτάται από την απόδοση του υπολογιστή και της GPU.
  • Ελέγξτε ότι ο αριθμός σειριακής θύρας είναι σωστός στο σκίτσο επεξεργασίας.
  • Ελέγξτε ότι η σύνδεση USB έχει διορθωθεί σωστά.
  • Ελέγξτε τη σύνδεση μεταξύ αισθητήρα υπερήχων και Magicbit.
  • Ανοίξτε τη σειριακή οθόνη και ελέγξτε ότι τα δεδομένα προέρχονται από το Arduino. Εάν όχι, τότε το πρόβλημα είναι ο κωδικός Arduino ή η σύνδεση USB.

Το Servo δεν λειτουργεί.

  • Ελέγξτε ότι η σύνδεση USB έχει διορθωθεί σωστά.
  • Ελέγξτε την καλωδίωση.
  • Ελέγξτε το σερβο είναι σε καλή κατάσταση.

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

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

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // include servo Library int distance? Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Καθορίζει σε ποια ακίδα είναι συνδεδεμένος ο σερβοκινητήρας καθυστέρηση (3000). } void loop () {// περιστρέφει τον σερβοκινητήρα από 15 έως 165 μοίρες για (int i = 0; i <= 180; i ++) {RadarServo.write (i); καθυστέρηση (50)? απόσταση = sonar.ping_cm (); // Καλεί μια συνάρτηση για τον υπολογισμό της απόστασης που μετράται από τον αισθητήρα υπερήχων για κάθε βαθμό για (int j = 0; j0) {break; } Serial.print (i); // Στέλνει το τρέχον πτυχίο στο Serial Port Serial.print (","); // Στέλνει χαρακτήρα προσθήκης ακριβώς δίπλα στην προηγούμενη τιμή που απαιτείται αργότερα στο Processing IDE για ευρετηρίαση Serial.print (j). // Στέλνει το τρέχον πτυχίο στο Serial Port Serial.print ("*"). Serial.print (1); // Αποστέλλει την τιμή απόστασης στη Σειριακή θύρα Serial.print ("/"); // Στέλνει χαρακτήρα προσθήκης ακριβώς δίπλα στην προηγούμενη τιμή που απαιτείται αργότερα στο IDE επεξεργασίας για ευρετηρίαση Serial.print (απόσταση). // Αποστέλλει την τιμή απόστασης στο Serial Port Serial.print ("."); // Στέλνει χαρακτήρα προσθήκης ακριβώς δίπλα στην προηγούμενη τιμή που απαιτείται αργότερα στο Processing IDE για ευρετηρίαση}} // Επαναλαμβάνει τις προηγούμενες γραμμές από 165 έως 15 μοίρες για (int i = 180; i> = 0; i-) {RadarServo. γράψτε (i); καθυστέρηση (50)? απόσταση = sonar.ping_cm (); για (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {συνέχεια; } Serial.print (i); // Στέλνει το τρέχον πτυχίο στο Serial Port Serial.print (","); // Στέλνει χαρακτήρα προσθήκης ακριβώς δίπλα στην προηγούμενη τιμή που απαιτείται αργότερα στο Processing IDE για ευρετηρίαση Serial.print (j). // Στέλνει το τρέχον πτυχίο στο Serial Port Serial.print ("*"). Serial.print (-1); // Αποστέλλει την τιμή απόστασης στη Σειριακή θύρα Serial.print ("/"). // Στέλνει χαρακτήρα προσθήκης ακριβώς δίπλα στην προηγούμενη τιμή που απαιτείται αργότερα στο IDE επεξεργασίας για ευρετηρίαση Serial.print (απόσταση). // Αποστέλλει την τιμή απόστασης στη Σειριακή θύρα Serial.print ("."); // Στέλνει χαρακτήρα προσθήκης ακριβώς δίπλα στην προηγούμενη τιμή που απαιτείται αργότερα στο Επεξεργαστικό IDE για ευρετηρίαση}}

}

Συνιστάται: