Πίνακας περιεχομένων:
- Βήμα 1: Απαιτούνται εξαρτήματα
- Βήμα 2: Δομή σώματος
- Βήμα 3: Καλωδίωση και κωδικοποίηση
- Βήμα 4: Raspberry Pi και αναγνώριση εικόνας
- Βήμα 5: LCD και ηχείο
- Βήμα 6: Τελικά βήματα
Βίντεο: NAIN 1.0 - το βασικό ανθρωποειδές ρομπότ που χρησιμοποιεί Arduino: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Το Nain 1.0 θα έχει βασικά 5 αποσπώμενες μονάδες-
1) Βραχίονας - ο οποίος μπορεί να ελεγχθεί μέσω servos.
2) Τροχοί - οι οποίοι μπορούν να ελεγχθούν με μοτέρ dc.
3) Πόδι - Το Nain θα μπορεί να αλλάζει μεταξύ τροχών ή ποδιών για κίνηση.
4) Κεφάλι - Το κεφάλι του μπορεί να ελεγχθεί για διάφορα νεύματα.
5) Μονάδα κάμερας- η οποία μπορεί να διασυνδεθεί για πρόσβαση αναγνώρισης προσώπου.
Μαζί με αυτό το NAIN θα μπορεί να μιλά και να αλληλεπιδρά με τους χρήστες και μπορεί να σας δείξει την ώρα με το ενσωματωμένο ρολόι του. Θα έχει ασύρματο χειριστήριο χρησιμοποιώντας Wi-Fi /Bluetooth.
Βήμα 1: Απαιτούνται εξαρτήματα
- Servo Motors -4
- Arduino Mega - 1
- Raspberry Pi - 1
- USB κάμερα -1
- Ηχείο -1
- DC Motors -2
- L293D -1
- Μπαταρία - 1
- Τροχοί -2
- Ρόδες Castor - 2
Μαζί με αυτά θα χρειαστείτε τετράγωνες λωρίδες αλουμινίου για να φτιάξετε το σώμα και βίδες και παξιμάδια για να ταιριάζουν σωστά.
Βήμα 2: Δομή σώματος
Η δομή του αμαξώματος θα είναι κατασκευασμένη από ελαφριές τετράγωνες ράβδους αλουμινίου που θα σας βοηθήσουν να το συναρμολογήσετε εύκολα.
Από τώρα συναρμολογήστε τα όπως φαίνεται στο σχήμα και κόψτε επίσης τους κατάλληλους χώρους για να τοποθετηθούν οι σερβοκινητήρες στους βραχίονες.
Συνδέστε μια εξαγωνική ξύλινη βάση στο κάτω μέρος.
Κάτω από την ξύλινη βάση, συνδέστε κινητήρες και τροχούς DC όπως κάνουμε σε οποιοδήποτε ρομπότ που ακολουθεί γραμμές.
Είναι ενδιαφέρον ότι προσθέστε δύο τροχούς- έναν στο μπροστινό και έναν στο πίσω μέρος του ρομπότ.
Βήμα 3: Καλωδίωση και κωδικοποίηση
Για να συνδέσετε τις διάφορες μονάδες, ανατρέξτε στους κωδικούς που επισυνάπτονται σε αυτό το μέρος.
Αρχικά δοκιμάσαμε κάθε ενότητα χρησιμοποιώντας αυτόνομους κωδικούς και στη συνέχεια τα συνδυάσαμε όλα σε ένα και ελέγξαμε την κίνηση των τροχών και των βραχιόνων χρησιμοποιώντας μια μονάδα bluetooth.
Βήμα 4: Raspberry Pi και αναγνώριση εικόνας
Η αναγνώριση εικόνας πραγματοποιείται με χρήση κάμερας USB και Raspberry Pi.
Για αυτό, θα χρειαστεί να εγκαταστήσετε τη βιβλιοθήκη OPEN CV στο Pi σας.
Μπορείτε να το κάνετε από εδώ-https://github.com/jabelone/OpenCV-for-Pi
Στη συνέχεια, θα χρειαστεί να εκτελέσετε αναγνώριση εικόνας χρησιμοποιώντας καταρράκτη haar.
Μπορείτε να το κάνετε από εδώ -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Μετά τη μελέτη του παραπάνω συνδέσμου και μετά από αυτό, έκανα μερικές αλλαγές στον τελικό κώδικα που χρησιμοποίησα και επικολλώνω παρακάτω -
ΓΕΝΝΗΤΗΣ ΔΕΔΟΜΕΝΩΝ:
importcv2
cam = cv2. VideoCapture (0)
ανιχνευτής = cv2. CascadeClassifier ('Classifiers/face.xml')
i = 0
offset = 50
όνομα = raw_input ("εισαγάγετε το αναγνωριστικό σας")
ενώ True:
ret, im = cam.read ()
γκρι = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
πρόσωπα = detector.detectMultiScale (γκρι, scaleFactor = 1,2, minNeighbors = 5, minSize = (100, 100), σημαίες = cv2. CASCADE_SCALE_IMAGE)
για (x, y, w, h) στα πρόσωπα:
i = i+1
cv2.imwrite ("dataSet/face."+όνομα+'.'+str (i)+".jpg", γκρι [y-offset: y+h+offset, x-offset: x+w+offset])
cv2. ορθογώνιο (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
cv2.imshow ('im', im [y-offset: y+h+offset, x-offset: x+w+offset])
εάν cv2.waitKey (100) & 0xFF == ord ('q'):
Διακοπή
# διάλειμμα εάν ο αριθμός δείγματος είναι περισσότερος από 20
elif (i> 20):
Διακοπή
cam.release ()
cv2.destroyAllWindows ()
Θα δημιουργήσει ένα σύνολο δεδομένων από τις φωτογραφίες σας που θα χρησιμοποιηθεί για έλεγχο ταυτότητας.
ΕΚΠΑΙΔΕΥΤΗΣ:
importcv2, os
εισαγωγή numpy ως np
από εικόνα εισαγωγής PIL
αναγνωριστής = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Ταξινομητές/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
διαδρομή = 'dataSet'
def get_images_and_labels (διαδρομή):
image_paths = [os.path.join (διαδρομή, f) για f στο os.listdir (διαδρομή)]
# εικόνες θα περιέχουν εικόνες προσώπου
εικόνες =
# labels will περιέχει την ετικέτα που έχει εκχωρηθεί στην εικόνα
ετικέτες =
για image_path σε image_paths:
# Διαβάστε την εικόνα και μετατρέψτε την σε κλίμακα του γκρι
image_pil = Image.open (image_path).convert ('L')
# Μετατρέψτε τη μορφή εικόνας σε αριθμημένο πίνακα
image = np.array (image_pil, 'uint8')
# Αποκτήστε την ετικέτα της εικόνας
nbr = int (os.path.split (image_path) [-1].split (".") [1]. αντικατάσταση ("face-", ""))
#nbr = int (''. join (str (ord (c)) for c in nbr))
εκτύπωση nbr
# Εντοπίστε το πρόσωπο στην εικόνα
πρόσωπα = faceCascade.detectMultiScale (εικόνα)
# Εάν εντοπιστεί πρόσωπο, προσαρτήστε το πρόσωπο στις εικόνες και την ετικέτα στις ετικέτες
για (x, y, w, h) στα πρόσωπα:
images.append (εικόνα [y: y + h, x: x + w])
labels.append (nbr)
cv2.imshow ("Προσθήκη προσώπων στο σύνολο μετάβασης …", εικόνα [y: y + h, x: x + w])
cv2.waitKey (10)
# επιστροφή της λίστας εικόνων και της λίστας ετικετών
επιστροφή εικόνων, ετικετών
εικόνες, ετικέτες = get_images_and_labels (path)
cv2.imshow («δοκιμή», εικόνες [0])
cv2.waitKey (1)
αναγνωριστικό. τρένο (εικόνες, np.array (ετικέτες))
αναγνωριστικό.αποθήκευση ("trainer/trainer.yml")
cv2.destroyAllWindows ()
ΑΝΙΧΝΕΥΤΗΣ
importcv2
εισαγωγή numpy ως np
εισαγωγή os
c = 0
αναγνωριστής = cv2.face.createLBPHFaceRecognizer ()
αναγνωριστικό.φόρτωση ('trainer/trainer.yml')
cascadePath = "Ταξινομητές/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fontscale = 1
fontcolor = (255, 255, 255)
ενώ True:
ret, im = cam.read ()
γκρι = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
πρόσωπα = faceCascade.detectMultiScale (γκρι, 1,2, 5)
για (x, y, w, h) στα πρόσωπα:
cv2. ορθογώνιο (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = αναγνωριστικό. Πρόβλεψη (γκρι [y: y+h, x: x+w])
εάν (Id <70):
εάν (Id == 1):
Id = "Shashank"
elif (Id == 2):
αν (c == 0):
Id = "Shivam"
c = c+1
os.system ("espeak 'Welcome Shivam Access Granted'")
αλλού:
Id = "Shivam"
αλλού:
Id = "Άγνωστο"
cv2.putText (im, str (Id), (x, y+h), fontface, fontscale, fontcolor)
cv2.imshow ('im', im)
εάν cv2.waitKey (10) & 0xFF == ord ('q'):
Διακοπή
cam.release ()
cv2.destroyAllWindows ()
Βήμα 5: LCD και ηχείο
Έχω χρησιμοποιήσει επίσης μια οθόνη LED I2C και ένα ηχείο.
Το LED ελέγχεται μέσω Arduino Mega και ο κωδικός του δίνεται στον τελικό κωδικό.
Για το Speaker, συνδέεται με το Raspberry Pi και χρησιμοποιεί το βοηθητικό πρόγραμμα eSpeak.
Μπορείτε να βρείτε την αναφορά του εδώ-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
Βήμα 6: Τελικά βήματα
Συγκεντρώστε τα πάντα και ετοιμαστείτε για το χτύπημα.
Συνιστάται:
Φοβερό αναλογικό συνθεσάιζερ/όργανο που χρησιμοποιεί μόνο διακριτά εξαρτήματα: 10 βήματα (με εικόνες)
Φοβερό αναλογικό συνθεσάιζερ/όργανο που χρησιμοποιεί μόνο διακριτά συστατικά: Τα αναλογικά συνθεσάιζερ είναι πολύ δροσερά, αλλά και αρκετά δύσκολο να γίνουν. Έτσι ήθελα να κάνω ένα όσο το δυνατόν πιο απλό, ώστε η λειτουργία του να είναι εύκολα κατανοητή. Για να λειτουργήσει, χρειάζονται μερικά βασικά υπο-κυκλώματα: Ένας απλός ταλαντωτής με αντίσταση
Απλός σημειακός συγκολλητής που χρησιμοποιεί μπαταρία αυτοκινήτου για την κατασκευή πακέτου μπαταριών ιόντων λιθίου: 6 βήματα
Simple Spot Welder Using Battery Car for Building Lithium Ion Battery Pack: Έτσι έφτιαξα ένα σημείο συγκόλλησης με μπαταρία αυτοκινήτου που είναι χρήσιμο για την κατασκευή πακέτων μπαταριών ιόντων λιθίου (ιόντων λιθίου). Έχω καταφέρει να φτιάξω 3S10P Pack και πολλές συγκολλήσεις με αυτό το σημείο συγκόλλησης. Αυτό το Spot Welder περιλαμβάνει οδηγίες, Functional Block Dia
Πώς να φτιάξετε ένα ανθρωποειδές ρομπότ: 8 βήματα
Πώς να φτιάξετε ένα ανθρωποειδές ρομπότ: Γεια σας παιδιά! Ελπίζω να σας άρεσε ήδη ο προηγούμενος εκπαιδευτικός " Online Μετεωρολογικός Σταθμός (NodeMCU) " και είστε έτοιμοι για ένα νέο, Μετά το μοντέλο ρομπότ SMARS που συγκεντρώσαμε την προηγούμενη φορά, το σημερινό έργο, αφορά επίσης την εκμάθηση ρομπότ και
BONES το ανθρωποειδές ρομπότ: 11 βήματα (με εικόνες)
BONES the Humanoid Robot: Καλές Απόκριες σε όλους !!! Για να γιορτάσουμε αυτά τα χρόνια το Halloween σκέφτηκα ότι θα ήταν μια μεγάλη ιδέα να φτιάξουμε ένα ρομπότ κατάλληλο για την περίσταση. Ένας χορευτικός ανθρωποειδής σκελετός !!! Aθελα να σχεδιάσω και να φτιάξω το δικό μου ανθρωποειδές ρομπότ, οπότε αυτό ήταν το
Ανθρωποειδές ρομπότ βασισμένο σε Arduino χρησιμοποιώντας Servo Motors: 7 βήματα (με εικόνες)
Ανθρωποειδές ρομπότ βασισμένο σε Arduino χρησιμοποιώντας Servo Motors: Γεια σε όλους, Αυτό είναι το πρώτο μου ανθρωποειδές ρομπότ, κατασκευασμένο από φύλλο αφρού PVC. Διατίθεται σε διάφορα πάχη. Εδώ, χρησιμοποίησα 0.5mm. Προς το παρόν αυτό το ρομπότ μπορεί απλά να περπατήσει όταν ενεργοποιήθηκα. Τώρα εργάζομαι για τη σύνδεση Arduino και Mobile μέσω Bluetooth