Sommario:
- Passaggio 1: componenti necessari
- Passaggio 2: struttura corporea
- Passaggio 3: cablaggio e codifica
- Passaggio 4: Raspberry Pi e riconoscimento delle immagini
- Passaggio 5: LCD e altoparlante
- Passaggio 6: passaggi finali
Video: NAIN 1.0 - il robot umanoide di base che utilizza Arduino: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Nain 1.0 avrà fondamentalmente 5 moduli rimovibili-
1) Braccio – che può essere controllato tramite servi.
2) Ruote – che possono essere controllate con motori a corrente continua.
3) Leg – Nain sarà in grado di passare da ruote a gambe per il movimento.
4) Testa – La sua testa può essere controllata per vari cenni.
5) Modulo fotocamera- che può essere interfacciato per l'accesso al riconoscimento facciale.
Insieme a questo NAIN sarà in grado di parlare e interagire con gli utenti e può mostrarti l'ora grazie al suo orologio integrato. Avrà un controllo wireless tramite Wi-fi/Bluetooth.
Passaggio 1: componenti necessari
- Servomotori -4
- Arduino Mega - 1
- Lampone Pi - 1
- Fotocamera USB -1
- Altoparlante -1
- Motori CC -2
- L293D -1
- Pacco batteria - 1
- Ruote -2
- Rotelle - 2
Insieme a questi avrai bisogno di strisce quadrate di alluminio per realizzare il corpo e viti e dadi per adattarli correttamente.
Passaggio 2: struttura corporea
La struttura della carrozzeria sarà realizzata con barre quadrate in alluminio leggero che aiuteranno a montarla facilmente.
Già da ora montarli come mostrato in figura e ritagliare anche gli appositi spazi per i servomotori da agganciare nei bracci.
Attacca una base di legno esagonale nella parte inferiore.
Sotto la base in legno, collega i motori CC e le ruote come facciamo in qualsiasi robot seguace di linea.
È interessante notare che aggiungi due ruote piroettanti, una sulla parte anteriore e l'altra sul retro del robot.
Passaggio 3: cablaggio e codifica
Per cablare i vari moduli fare riferimento ai codici allegati in questa parte.
Per prima cosa abbiamo testato ogni modulo utilizzando codici standalone e poi li abbiamo combinati tutti in uno e controllato il movimento delle ruote e dei bracci utilizzando un modulo bluetooth.
Passaggio 4: Raspberry Pi e riconoscimento delle immagini
Il riconoscimento delle immagini viene eseguito utilizzando una fotocamera USB e Raspberry Pi.
Per questo, dovrai installare la libreria OPEN CV sul tuo Pi.
Puoi farlo da qui -
Quindi sarà necessario eseguire il riconoscimento delle immagini utilizzando haar cascata.
Puoi farlo da qui -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Dopo aver studiato il collegamento sopra e averlo seguito, ho apportato alcune modifiche al codice finale che ho usato che sto incollando di seguito -
GENERATORE DI DATI:
importcv2
cam = cv2. VideoCapture(0)
detector=cv2. CascadeClassifier('Classificatori/face.xml')
io=0
offset=50
nome=raw_input('inserisci il tuo id')
mentre vero:
ret, im =cam.read()
grigio=cv2.cvtColor(im, cv2. COLOR_BGR2GRAY)
faces=detector.detectMultiScale(gray, scaleFactor=1,2, minNeighbors=5, minSize=(100, 100), flags=cv2. CASCADE_SCALE_IMAGE)
for(x, y, w, h) nelle facce:
io=i+1
cv2.imwrite("dataSet/faccia."+name +'.'+ str(i) + ".jpg", grigio[offset y: offset y+h+, offset x:x+w+offset])
cv2.rettangolo(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])
if cv2.waitKey(100) & 0xFF == ord('q'):
rottura
# break se il numero del campione è maggiore di 20
elif (i>20):
rottura
cam.release()
cv2.destroyAllWindows()
Creerà un set di dati delle tue foto che verrà utilizzato per l'autenticazione.
ALLENATORE:
importcv2, os
importa numpy come np
da PIL import Immagine
riconoscitore = cv2.face.createLBPHFaceRecognizer()
cascataPath = "Classificatori/face.xml"
faceCascade = cv2. CascadeClassifier(cascadePath);
percorso = 'set di dati'
def get_images_and_labels(percorso):
image_paths = [os.path.join(percorso, f) for f in os.listdir(percorso)]
# immagini conterranno immagini di volti
immagini =
# etichette conterrà l'etichetta assegnata all'immagine
etichette =
per percorso_immagine in percorsi_immagine:
# Leggi l'immagine e converti in scala di grigi
image_pil = Image.open(image_path).convert('L')
# Converti il formato dell'immagine in un array numpy
immagine = np.array(image_pil, 'uint8')
# Ottieni l'etichetta dell'immagine
nbr = int(os.path.split(image_path)[-1].split(".")[1].replace("face-", ""))
#nbr=int(''.join(str(ord(c)) for c in nbr))
stampa n
# Rileva il volto nell'immagine
facce = faceCascade.detectMultiScale(immagine)
# Se viene rilevato un volto, aggiungi il volto alle immagini e l'etichetta alle etichette
per (x, y, w, h) nelle facce:
immagini.append(immagine[y: y + h, x: x + w])
etichette.append(nbr)
cv2.imshow("Aggiunta di volti al set di allenamento…", image[y: y + h, x: x + w])
cv2.waitKey(10)
# restituisce l'elenco delle immagini e l'elenco delle etichette
restituire immagini, etichette
immagini, etichette = get_images_and_labels(percorso)
cv2.imshow('test', immagini[0])
cv2.waitKey(1)
riconosciutor.train(immagini, np.array(etichette))
riconoscer.save('trainer/trainer.yml')
cv2.destroyAllWindows()
RIVELATORE
importcv2
importa numpy come np
importare il sistema operativo
c=0
riconoscitore = cv2.face.createLBPHFaceRecognizer()
riconoscer.load('trainer/trainer.yml')
cascataPath = "Classificatori/face.xml"
faceCascade = cv2. CascadeClassifier(cascadePath);
cam = cv2. VideoCapture(0)
carattere = cv2. FONT_HERSHEY_SIMPLEX
scala dei caratteri = 1
fontcolor = (255, 255, 255)
mentre vero:
ret, im =cam.read()
grigio=cv2.cvtColor(im, cv2. COLOR_BGR2GRAY)
facce=faceCascade.detectMultiScale(grigio, 1.2, 5)
for(x, y, w, h) nelle facce:
cv2.rettangolo(im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = riconoscitore.predict(grigio[y:y+h, x:x+w])
se(Id<70):
if(Id==1):
Id="Shashank"
elif(Id==2):
se(c==0):
Id="Shivam"
c=c+1
os.system("espeak 'Benvenuto Shivam Accesso concesso'")
altro:
Id="Shivam"
altro:
Id="Sconosciuto"
cv2.putText(im, str(Id), (x, y+h), fontface, fontscale, fontcolor)
cv2.imshow('io', sono)
if cv2.waitKey(10) & 0xFF==ord('q'):
rottura
cam.release()
cv2.destroyAllWindows()
Passaggio 5: LCD e altoparlante
Ho anche usato un display a LED I2C e un altoparlante.
Il LED è controllato tramite Arduino Mega e il suo codice è riportato nel codice finale.
Per Speaker, è collegato al Raspberry Pi e utilizza l'utility eSpeak.
Puoi trovare il suo riferimento qui -
Passaggio 6: passaggi finali
Assembla tutto e preparati per il botto.
Consigliato:
Robot controllato da gesti che utilizza Arduino: 7 passaggi
Robot controllato dai gesti che utilizza Arduino: i robot sono utilizzati in molti settori come l'edilizia, militare, manifatturiero, assemblaggio, ecc. I robot possono essere autonomi o semi-autonomi. I robot autonomi non richiedono alcun intervento umano e possono agire da soli in base alla situazione. Se
Robot cingolato RC che utilizza Arduino - Passo dopo passo: 3 passaggi
Robot cingolato RC che utilizza Arduino - Passo dopo passo: Ehi ragazzi, sono tornato con un altro fantastico telaio Robot di BangGood. Spero che tu abbia superato i nostri progetti precedenti: Spinel Crux V1 - Il robot controllato dai gesti, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms e The Badland Braw
Telefono cellulare di base che utilizza il kit di rilevamento STM32F407 e il modulo GSM A6: 14 passaggi (con immagini)
Telefono cellulare di base che utilizza il kit di rilevamento STM32F407 e il modulo GSM A6: hai mai desiderato creare un fantastico progetto integrato?. Se sì, che ne dici di costruire uno dei gadget più popolari e preferiti da tutti, ad esempio il cellulare!!!. In questo Instructable, ti guiderò su come costruire un telefono cellulare di base utilizzando l'STM
Robot Arduino wireless che utilizza il modulo wireless HC12: 7 passaggi
Robot Arduino wireless che utilizza il modulo wireless HC12: Ehi ragazzi, bentornati. Nel mio post precedente, ho spiegato cos'è un circuito a ponte H, IC driver motore L293D, IC driver motore L293D piggybacking per pilotare driver motore ad alta corrente e come è possibile progettare e realizzare la propria scheda driver motore L293D
Robot umanoide basato su Arduino che utilizza servomotori: 7 passaggi (con immagini)
Robot umanoide basato su Arduino che utilizza servomotori: Ciao a tutti, questo è il mio primo robot umanoide, realizzato con un foglio di schiuma di PVC. È disponibile in vari spessori. Qui, ho usato 0,5 mm. Al momento questo robot può semplicemente camminare quando l'ho acceso. Ora sto lavorando per connettere Arduino e Mobile tramite Bluetooth