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

Ρομπότ ζητιανής με παρακολούθηση προσώπου και χειριστήριο από Xbox Controller - Arduino: 9 βήματα (με εικόνες)
Ρομπότ ζητιανής με παρακολούθηση προσώπου και χειριστήριο από Xbox Controller - Arduino: 9 βήματα (με εικόνες)

Βίντεο: Ρομπότ ζητιανής με παρακολούθηση προσώπου και χειριστήριο από Xbox Controller - Arduino: 9 βήματα (με εικόνες)

Βίντεο: Ρομπότ ζητιανής με παρακολούθηση προσώπου και χειριστήριο από Xbox Controller - Arduino: 9 βήματα (με εικόνες)
Βίντεο: Ο χορός των Ρομπότ / Ρομπότ/ τραγούδι μουσικοκινητικής / εικονίδια PECS/ 2024, Ιούλιος
Anonim
Image
Image
Εγκατάσταση και διαμόρφωση OpenCV και C ++
Εγκατάσταση και διαμόρφωση OpenCV και C ++

Θα φτιάξουμε ένα ρομπότ που ζητιανεύει. Αυτό το ρομπότ θα προσπαθήσει να ερεθίσει ή να τραβήξει την προσοχή των περαστικών ανθρώπων. Θα εντοπίσει τα πρόσωπά τους και θα προσπαθήσει να τους πυροβολήσει λέιζερ. Εάν δώσετε στο ρομπότ ένα νόμισμα, θα τραγουδήσει ένα τραγούδι και θα χορέψει. Το ρομπότ θα χρειαστεί 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 ++

Εγκατάσταση και διαμόρφωση OpenCV και C ++
Εγκατάσταση και διαμόρφωση 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

Ρύθμιση του Arduino
Ρύθμιση του Arduino
Ρύθμιση του Arduino
Ρύθμιση του Arduino
Ρύθμιση του Arduino
Ρύθμιση του Arduino
Ρύθμιση του Arduino
Ρύθμιση του 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. Και το ρομπότ θα πυροβολήσει και θα μαζέψει όλα τα νομίσματα του κόσμου !!!

Συνιστάται: