Πίνακας περιεχομένων:
- Βήμα 1: Τα υλικά
- Βήμα 2: Εγκατάσταση και διαμόρφωση OpenCV και C ++
- Βήμα 3: Ρύθμιση του Arduino
- Βήμα 4: Ο κώδικας C ++
- Βήμα 5: Ο κώδικας Arduino
- Βήμα 6: Τρισδιάστατη εκτύπωση και βελτίωση της εκτύπωσης
- Βήμα 7: Χτίζοντας το κουτί
- Βήμα 8: Ολοκλήρωση
- Βήμα 9: Ξεκινήστε το Πρόγραμμα
Βίντεο: Ρομπότ ζητιανής με παρακολούθηση προσώπου και χειριστήριο από Xbox Controller - Arduino: 9 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
Θα φτιάξουμε ένα ρομπότ που ζητιανεύει. Αυτό το ρομπότ θα προσπαθήσει να ερεθίσει ή να τραβήξει την προσοχή των περαστικών ανθρώπων. Θα εντοπίσει τα πρόσωπά τους και θα προσπαθήσει να τους πυροβολήσει λέιζερ. Εάν δώσετε στο ρομπότ ένα νόμισμα, θα τραγουδήσει ένα τραγούδι και θα χορέψει. Το ρομπότ θα χρειαστεί arduino, ζωντανή ροή κάμερας και υπολογιστή για να εκτελέσει το openCV. Το ρομπότ θα μπορεί επίσης να ελέγχεται από έναν ελεγκτή xBox εάν είναι συνδεδεμένος στον υπολογιστή.
Βήμα 1: Τα υλικά
Ηλεκτρονικό υλικό
- Arduino NANO ή UNO
- Κάμερα USB 2.0
- Καλώδια άλματος (αρσενικό και θηλυκό)
- 2 x Servo - Γενικά (Μέγεθος Sub -Micro)
- 2 x LED - RGB CATHODE 5mm
- 2 x 5mW Laser
- 1 x Κόκκινο LED 5mm
- 1 x Breadboard
- 4 x 220Ω αντίσταση
- 1 x 1KΩ αντίσταση
- 1 x πρωτοπόρ
- 1 x αισθητήρας Sonar 4 ακίδες
- Ελεγκτής Xbox
Αναλογικό υλικό
- Ξύλινο κουτί (15 x 15 x 7 cm)
- Κόλλα
- Ηλεκτρική ταινία
Λογισμικό
- Arduino IDE
- Visual Studio 2017
- 3Ds Max (ή οποιοδήποτε άλλο λογισμικό τρισδιάστατης μοντελοποίησης)
- Προδιαμόρφωση 2.14.0 ή μεταγενέστερη έκδοση
- OpenCV 3.4.0 ή μεταγενέστερο
Εργαλεία
- Συγκολλητικός εξοπλισμός
- Πριόνι και τρυπάνι
- Κόφτης καλωδίων
Βήμα 2: Εγκατάσταση και διαμόρφωση OpenCV και C ++
Βήμα 2.1: Λήψη του λογισμικού
Visual studio 2017: Λήψη Visual studio Comunity 2017openCV 3.4.0 Win pack: Μετάβαση στην επίσημη σελίδα λήψης
Βήμα 2.2: Εγκατάσταση του OpenCV2.2.1: Εξαγάγετε το αρχείο zip στη μονάδα Windows (: C).2.2.2: Μεταβείτε στις προηγμένες ρυθμίσεις συστήματος. Αυτό μπορεί να βρεθεί στη συνάρτηση αναζήτησης win10.2.2.3: Πρέπει να ρυθμίσουμε νέες περιβαλλοντικές μεταβλητές. Εντοπίστε το περιβάλλον "Διαδρομή" και πατήστε edit.2.2.4: Τώρα πρέπει να προσθέσουμε τη θέση του "χάρτη κάδου" σε μια νέα μεταβλητή στο περιβάλλον της διαδρομής. Εάν έχετε εγκαταστήσει το openCV στη μονάδα δίσκου C, η διαδρομή μπορεί να γίνει ως εξής: C: / opencv / build / x64 / vc14 / bin Επικολλήστε τη διαδρομή και πατήστε "OK" σε όλα τα παράθυρα που ενδέχεται να έχετε ανοίξει κατά τη διάρκεια αυτής της διαδικασίας.
Βήμα 2.3: διαμόρφωση του visual studio C ++ 2.3.1: Δημιουργήστε ένα νέο οπτικό έργο C ++. Κάντε το ένα κενό έργο Win32 Console Application.2.2.2: Στην καρτέλα Αρχεία προέλευσης, κάντε δεξί κλικ και προσθέστε ένα νέο αρχείο C ++ (.cpp) και ονομάστε το "main.cpp".2.3.3: Δεξί κλικ στο έργο- όνομα στον εξερευνητή λύσεων και επιλέξτε Ιδιότητες.2.3.4: Πρέπει να προσθέσουμε επιπλέον Συμπερίληψη καταλόγων. Αυτό μπορεί να βρεθεί στην καρτέλα C/C ++ γενικά. Αντιγράψτε την ακόλουθη διαδρομή: C: / opencv / build / include και επικολλήστε το πίσω από το "AID" και κάντε κλικ στην εφαρμογή. 2.3.5: Στο ίδιο παράθυρο πρέπει να επιλέξτε την καρτέλα "Linker". γενικά πρέπει να δημιουργήσουμε έναν άλλο Πρόσθετο Βιβλιοθήκη. Επικολλήστε την ακόλουθη διαδρομή πίσω από το "AID" C: / opencv / build / x64 / vc14 / lib και πατήστε ξανά Apply.2.3.6: Στην ίδια καρτέλα Linker επιλέξτε την καρτέλα "Input". Και πατήστε "Πρόσθετες εξαρτήσεις> επεξεργασία" και επικολλήστε το ακόλουθο αρχείο opencv_world320d.lib και xinput.lib (Για τον ελεγκτή) και πατήστε ξανά εφαρμογή. Κλείστε το παράθυρο. Τώρα το αρχείο C ++ είναι έτοιμο για εργασία.
Βήμα 3: Ρύθμιση του Arduino
Συναντήσεις με τα σερβο: Τα σερβο είναι σε θέση να περιστρέφονται ~ 160 °. Πρέπει να έχουν μεταξύ 4, 8 και 6, 0 Volt για να λειτουργούν κανονικά. Το σερβο έχει 3 ακίδες: γείωση, 4, 8 - 6, καρφίτσα 0 volt και δεδομένα καρφίτσα. Για το έργο μας θα ορίσουμε τις ακίδες δεδομένων για τα servos στο DigitalPin 9 και 10.
Συνάντηση των οδηγήσεων RGB: Τα led RGB έχουν 4 ακίδες. Κόκκινη, πράσινη, μπλε και γείωση. Για να εξοικονομήσουμε χώρο στο arduino, μπορούμε να συνδέσουμε τα 2 RGB led μαζί. Έτσι, θα χρησιμοποιήσουμε μόνο 3 ακίδες. Μπορούμε να συνδέσουμε και να συγκολλήσουμε τα led RGB σε ένα πρωτόκολλο όπως στην εικόνα. Red pin => DigitalPin 3 (PWM) Green pin => DigitalPin 4Blue pin => DigitalPin 7
Συνάντηση με τον βομβητή Piezo: Το μικρό μας ρομπότ θα κάνει λίγο θόρυβο. Για να το κάνουμε αυτό πρέπει να του δώσουμε μια φωνή! Μπορούμε να επιλέξουμε να τον κάνουμε πολύ δυνατό. Or μπορούμε να βάλουμε μια αντίσταση 220Ω πριν από τον πιεζοηχητικό βομβητή για να τον κάνουμε λίγο λιγότερο αντιπαθητικό. Αφήνουμε τον βομβητή Piezo στο breadboard. Επομένως, δεν χρειάζεται συγκόλληση. Συνδέουμε τον ακροδέκτη δεδομένων (+) στο DigitalPin 2 και τον πείρο γείωσης στη γείωση στον πίνακα ψωμιού.
Συνάντηση με το σόναρ: Προκειμένου το ρομπότ να μην προσπαθεί να στοχεύσει σε άτομο που βρίσκεται 10 μέτρα μακριά. Μπορούμε να δώσουμε στο ρομπότ μια απόσταση από όπου θα μπορεί να στοχεύει σε ανθρώπους. Το κάνουμε αυτό με έναν αισθητήρα σόναρ. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => γείωση
Συνάντηση με τον ανιχνευτή νομισμάτων: Θα φτιάξουμε έναν ανιχνευτή νομισμάτων. Ο ανιχνευτής νομισμάτων θα λειτουργήσει ανιχνεύοντας εάν το κύκλωμα είναι κλειστό ή σπασμένο. Θα λειτουργήσει σχεδόν σαν διακόπτης. Πρέπει όμως να είμαστε προσεκτικοί. Εάν το κάνουμε αυτό λάθος, θα μας κοστίσει ένα arduino. Πρώτον: Συνδέστε το AnalogPin A0 σε καλώδιο 5 volt. Αλλά βεβαιωθείτε ότι έχετε τοποθετήσει μια αντίσταση 1KΩ μεταξύ του. Δεύτερο: Συνδέστε ένα καλώδιο στη γείωση. Μπορούμε να συγκολλήσουμε αμέσως τα καλώδια και την αντίσταση στο ίδιο πρωτόκολλο με το RGB. Τώρα, αν αγγίξουμε τα 2 καλώδια για το arduino, θα εντοπίσει ένα κλειστό κύκλωμα. Αυτό σημαίνει ότι υπάρχει ένα νόμισμα! Συνάντηση με τα λέιζερ του χαμού. Το ρομπότ χρειάζεται τα όπλα για να πυροβολήσει! Για εξοικονόμηση χώρου, κόλλησα τα 2 λέιζερ μαζί. Θα ταιριάζουν απόλυτα στο πλαίσιο της κάμερας. Συνδέστε τα με το DigitalPin 11 και τη γείωση. Πυροβολήστε μικρό παιδί!
Προαιρετικό κόλπο. Μπορούμε να βάλουμε ένα κόκκινο LED κάτω από το κουλοχέρη. Αυτό θα είναι ένα διασκεδαστικό μικρό τέχνασμα όταν είναι σκοτεινό. Συνδέστε ένα καλώδιο στο DigitalPin 8 και τοποθετήστε μια αντίσταση 220Ω μεταξύ της λυχνίας LED και του καλωδίου για να αποτρέψετε την ανατίναξή της. Συνδέστε τον κοντό πείρο του LED στη γείωση.
Βήμα 4: Ο κώδικας C ++
Βήμα 4.1: Ρύθμιση του κωδικού main.cpp4.1.1: Κατεβάστε το "main.cpp" και αντιγράψτε τον κωδικό στο δικό σας main.cpp.4.1.2: Στη γραμμή 14 αλλάξτε το "com" στο com που χρησιμοποιεί το arduino. "\. / COM (αλλάξτε αυτό)" 4.1.3: Στη γραμμή 21 και 22 ορίστε τη σωστή διαδρομή στα αρχεία "haarcascade_frontalface_alt.xml" και "haarcascade_eye_tree_eyeglasses.xml" Εάν το openCV είναι εγκατεστημένο στη μονάδα δίσκου C, Αυτά τα αρχεία μπορούν να βρίσκονται εδώ: "C: / opencv / build / etc / haarcascades \" Διατηρήστε τις διπλές πλάγιες παύλες ή προσθέστε ένα όπου υπάρχει μόνο ένα.
Βήμα 4.2: Προσθήκη tserial.h και Tserial.cppΑυτά τα 2 αρχεία θα φροντίσουν για την επικοινωνία μεταξύ του arduino και του υπολογιστή.4.2.1: Λήψη tserial.h και Tserial.cpp.4.2.2: Τοποθετήστε αυτά τα 2 αρχεία στο έργο Ευρετήριο. Στην εξερεύνηση λύσεων κάντε δεξί κλικ στο έργο και επιλέξτε προσθήκη> υπάρχον στοιχείο. Στο αναδυόμενο παράθυρο επιλέξτε τα δύο αρχεία που θα προστεθούν.
Βήμα 4.2: Προσθέστε CXBOXController.h και CXBOXController.hΑυτά τα αρχεία θα αναλάβουν το τμήμα ελεγκτή του έργου.4.2.1: Στην εξερεύνηση λύσεων κάντε δεξί κλικ στο έργο και επιλέξτε προσθήκη> υπάρχον στοιχείο. Στο αναδυόμενο παράθυρο επιλέξτε τα δύο αρχεία που θα προστεθούν. Τα αρχεία C ++ είναι εγκατεστημένα.
Βήμα 5: Ο κώδικας Arduino
Βήμα 5.1: NewPing Library5.1.1: Κατεβάστε το ArduinoCode.ino και ανοίξτε το στο arduino IDE.5.1.2: Μεταβείτε στο "Sketch> Include libary> Manage libaries".5.1.3: Αναζήτηση στο πλαίσιο φίλτρου στο "NewPing" και εγκαταστήστε αυτήν τη βιβλιοθήκη.
Βήμα 5.2: Βιβλιοθήκη θέσεων pitches.txt στη νέα καρτέλα και αποθηκεύστε το ως "pitches.h". Ο κώδικας Arduino έχει ρυθμιστεί
Βήμα 6: Τρισδιάστατη εκτύπωση και βελτίωση της εκτύπωσης
Βήμα 6.1: Εκτυπώστε το αρχείο 3D Ανοίξτε το printfile.form και ελέγξτε αν όλα είναι εντάξει. Εάν όλα φαίνονται εντάξει, στείλτε την εργασία εκτύπωσης στον εκτυπωτή. Εάν κάτι φαίνεται ή θέλετε να αλλάξετε το μοντέλο. Έχω συμπεριλάβει τα αρχεία 3Ds Max και αρχεία OBJ για επεξεργασία.
Βήμα 6.2: Βελτιώστε το μοντέλο 6.2.1: Αφού ολοκληρωθεί η εκτύπωση, μουλιάστε τα 2 μοντέλα σε περίπου 70% οινόπνευμα για να αφαιρέσετε τυχόν εκτύπωση. σκληρύνετε το μοντέλο. Or μπορείτε να χρησιμοποιήσετε μια λάμπα UV για να σκληρύνετε το μοντέλο. Αυτό πρέπει να γίνει γιατί το μοντέλο θα είναι κολλώδες.
6.2.3: Αφαιρέστε το πλαίσιο υποστήριξης. Αυτό μπορεί να γίνει με έναν κοπτήρα σύρματος. Or οποιοδήποτε άλλο εργαλείο που μπορεί να κόψει πλαστικά.6.2.4: Ορισμένα μέρη της τρισδιάστατης εκτύπωσης μπορεί να είναι ακόμα μαλακά. Ακόμα κι αν το μοντέλο ήταν σε πολύ υπεριώδες φως. Τα μέρη που μπορούν να είναι μαλακά, είναι τα μέρη που βρίσκονται κοντά στα πλαίσια στήριξης. Απλώστε το μοντέλο σε περισσότερο ήλιο με υπεριώδη ακτινοβολία για να σκληρύνει. 6.2.5: Με ένα "dremel" μπορείτε να τρίψετε όλα τα μικρά χτυπήματα που γίνονται από το πλαίσιο. Μπορείτε να δοκιμάσετε να προσαρμόσετε τα servos στο πλαίσιο. Εάν δεν ταιριάζουν, μπορείτε να χρησιμοποιήσετε το Dremel για να τρίψετε το υλικό. κάνει να ταιριάζει.
Βήμα 7: Χτίζοντας το κουτί
Βήμα 7.1: Κάνοντας τις τρύπες Έχω συμπεριλάβει ένα σχεδιάγραμμα του εν λόγω κουτιού. Το σχεδιάγραμμα δεν είναι της κλίμακας, αλλά όλα τα μεγέθη είναι σωστά.7.1.1: Ξεκινήστε σημειώνοντας όλες τις τρύπες στις σωστές θέσεις.7.1.2: Ανοίξτε όλες τις τρύπες. Οι μεγαλύτερες τρύπες μπορούν να γίνουν σε μέγεθος με ένα Dremel.7.1.3: Οι τετράγωνες τρύπες μπορούν επίσης να τρυπηθούν. Αλλά για να τα κάνετε τετράγωνα, μπορείτε να χωρέσετε το Dremel με ένα μικρό αρχείο και να καταγράψετε ευκρινείς γωνίες.7.1.4: Προσπαθήστε να χωρέσετε όλα τα εξαρτήματα. αν ταιριάζουν, καλό είναι να πάτε! 7.1.5: Προσέξτε τα θραύσματα ξύλου. Χρησιμοποιήστε χαρτί άμμου για να τα ξεφορτωθείτε.
Βήμα 7.2: Ζωγραφική7.2.1: Ξεκινήστε με λείανση του καπακιού. Χρειαζόμαστε το χρώμα να κολλήσει.
Βήμα 8: Ολοκλήρωση
Τώρα πρέπει να βάλουμε τα πάντα στη θέση τους και να το κάνουμε αυτό. Βήμα 8.1: Ο ανιχνευτής νομισμάτων 8.1.1: Κολλήστε μερικά μεταλλικά τιράντες για τον ανιχνευτή νομισμάτων..3: Δοκιμάστε τη σύνδεση με ένα νόμισμα. Εάν δεν υπάρχει κλειστό κύκλωμα, συγκολλήστε τα καλώδια περισσότερο στην άκρη. Βήμα 8.2: Το protoboard και τα led RGB8.2.1: Τοποθετήστε το protoboard στην επάνω δεξιά γωνία και κολλήστε το! 8.2.2: Συνδέστε τα led RGB με τα καλώδια από το protoboard! 8.2.3: Συνδέστε όλα τα καλώδια από το protoboard στο arduino. Βήμα 8.3: Ο αισθητήρας σόναρ8.3.1: Τοποθετήστε τον αισθητήρα στις τρύπες που κάναμε γι 'αυτό. Εάν έχετε αρσενικά προς θηλυκά πηδάλια, μπορείτε να παραλείψετε 8.3.28.3.2: Κόψτε μερικά αρσενικά και θηλυκά καλώδια στη μέση και κολλήστε τα θηλυκά και τα αρσενικά καλώδια μαζί για να φτιάξετε ένα μόνο καλώδιο που μπορούμε να χρησιμοποιήσουμε για να συνδέσουμε τον αισθητήρα στο arduino.8.3.3: Συνδέστε τον αισθητήρα στο arduino
Βήμα 8.4: Λέιζερ και κάμερα8.4.1: Κολλήστε το μικρό πλαίσιο στην κάμερα. Βεβαιωθείτε ότι είναι όρθιο.8.4.2: Τοποθετήστε τα λέιζερ επίσης στο πλαίσιο. Κολλήστε τα για να μην τα κλέψει ο εχθρός!
Βήμα 8.5: Το Servos και η τρισδιάστατη εκτύπωση8.5.1: Κολλήστε το σερβο στην τρύπα του καπακιού 8.5.2: Ανεβάστε το αρχείο arduino στο arduino (αυτό κάνει τα servos να στέκονται στη σωστή θέση) 8.5.3: Με το σερβο ήρθε ένα μικρό στρογγυλό οροπέδιο. Τοποθετήστε το στο σερβο στο καπάκι. 8.5.6: Βάλτε την κάμερα στη θέση της και όλα είναι έτοιμα!
Βήμα 9: Ξεκινήστε το Πρόγραμμα
Για να ξεκινήσετε το ρομπότ, ανοίξτε το αρχείο C ++ στο Visual studio. Βεβαιωθείτε ότι βρίσκεστε σε "λειτουργία εντοπισμού σφαλμάτων" Ανεβάστε το αρχείο arduino στο arduino. Μόλις ανέβει αυτό πατήστε play στο visual studio. Και το ρομπότ θα πυροβολήσει και θα μαζέψει όλα τα νομίσματα του κόσμου !!!
Συνιστάται:
Παρακολούθηση ποιότητας αέρα με MQ135 και εξωτερικός αισθητήρας θερμοκρασίας και υγρασίας πάνω από MQTT: 4 βήματα
Παρακολούθηση ποιότητας αέρα με MQ135 και εξωτερικός αισθητήρας θερμοκρασίας και υγρασίας πάνω από MQTT: Αυτό είναι για δοκιμαστικούς σκοπούς
Παρακολούθηση προσώπου και ανίχνευση χαμόγελου ρομπότ αποκριών: 8 βήματα (με εικόνες)
Face Tracking and Smile Detecting Halloween Robots: Το Halloween έρχεται! Αποφασίσαμε να φτιάξουμε κάτι δροσερό. Γνωρίστε τα ρομπότ Ghosty και Skully. Μπορούν να ακολουθήσουν το πρόσωπό σας και ξέρουν πότε χαμογελάτε για να γελάσετε μαζί σας! Αυτό το έργο είναι ένα άλλο παράδειγμα χρήσης της εφαρμογής iRobbie που μετατρέπει το iPhone σε
Solderdoodle Plus: Συγκολλητικό σίδερο με χειριστήριο αφής, ανατροφοδότηση LED, θήκη με 3D εκτύπωση και επαναφορτιζόμενη θύρα USB: 5 βήματα (με εικόνες)
Solderdoodle Plus: Συγκολλητικό σίδερο με χειριστήριο αφής, LED Feedback, τρισδιάστατη θήκη και επαναφορτιζόμενη θύρα USB: Κάντε κλικ παρακάτω για να επισκεφθείτε τη σελίδα του έργου μας στο Kickstarter για το Solderdoodle Plus, ένα επαναφορτιζόμενο ζεστό πολυ-εργαλείο USB και προπαραγγείλετε ένα μοντέλο παραγωγής! Https: //www.kickstarter.com/projects/249225636/solderdoodle-plus-cordless-usb-rechargeable-ho
Πώς να συναρμολογήσετε ένα εντυπωσιακό ξύλινο βραχίονα ρομπότ (Μέρος 1: Ρομπότ για παρακολούθηση γραμμών)-Βασισμένο στο Micro: Bit: 9 βήματα
Πώς να συναρμολογήσετε ένα εντυπωσιακό ξύλινο βραχίονα ρομπότ (Μέρος 1: Ρομπότ για παρακολούθηση γραμμών)-Με βάση το Micro: Bit: Αυτός ο ξύλινος τύπος έχει τρεις μορφές, είναι πολύ διαφορετικός και εντυπωσιακός. Στη συνέχεια, ας μπούμε σε αυτό ένα προς ένα
Ανίχνευση προσώπου και ματιών με Raspberry Pi Zero και Opencv: 3 βήματα
Ανίχνευση προσώπου και ματιών με Raspberry Pi Zero και Opencv: Σε αυτό το διδακτικό θα δείξω πώς μπορείτε να ανιχνεύσετε πρόσωπο και μάτι χρησιμοποιώντας βατόμουρο pi και opencv. Αυτό είναι το πρώτο μου εκπαιδευτικό σε opencv. Ακολούθησα πολλά σεμινάρια για τη δημιουργία ανοικτού βιογραφικού σε βατόμουρο, αλλά κάθε φορά χτυπούσα με κάποια λάθη. Όπως και να έχει