Taula de continguts:
- Pas 1: components necessaris
- Pas 2: Estructura corporal
- Pas 3: cablejat i codificació
- Pas 4: Raspberry Pi i reconeixement d'imatges
- Pas 5: LCD i altaveu
- Pas 6: passos finals
Vídeo: NAIN 1.0: el robot humanoide bàsic que utilitza Arduino: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
Nain 1.0 tindrà bàsicament 5 mòduls desmuntables.
1) Braç: es pot controlar mitjançant servos.
2) Rodes: es poden controlar amb motors de corrent continu.
3) Cama: Nain podrà canviar entre rodes o cames per moure’s.
4) Cap: es pot controlar el cap per fer diversos caps.
5) Mòdul de càmera: es pot connectar per a l'accés al reconeixement facial.
Juntament amb això, NAIN podrà parlar i interactuar amb els usuaris i us pot mostrar l'hora mitjançant el rellotge incorporat. Tindrà un control sense fils mitjançant Wi-fi / Bluetooth.
Pas 1: components necessaris
- Servomotors -4
- Arduino Mega - 1
- Raspberry Pi - 1
- Càmera USB -1
- Altaveu -1
- DC Motors -2
- L293D -1
- Paquet de bateries: 1
- Rodes -2
- Rodes de rodes - 2
Juntament amb aquestes, necessitareu tires quadrades d'alumini per fer el cos i les rosques i femelles per ajustar-les correctament.
Pas 2: Estructura corporal
L'estructura del cos estarà formada per varetes quadrades d'alumini lleugeres que ajudaran a muntar-la fàcilment.
A partir d'ara, munteu-los tal com es mostra a la figura i també retalleu els espais adequats perquè els servomotors s'uneixin als braços.
Col·loqueu una base de fusta hexagonal a la part inferior.
A sota de la base de fusta, poseu motors i rodes de corrent continu com fem en qualsevol robot seguidor de línia.
Curiosament, afegiu dues rodes de rodes, una a la part davantera i una altra a la part posterior del robot.
Pas 3: cablejat i codificació
Per connectar els diferents mòduls, consulteu els codis adjunts en aquesta part.
En primer lloc, vam provar cada mòdul mitjançant codis independents i després els vam combinar tots en un i vam controlar el moviment de rodes i braços mitjançant un mòdul bluetooth.
Pas 4: Raspberry Pi i reconeixement d'imatges
El reconeixement d’imatges es realitza mitjançant una càmera USB i Raspberry Pi.
Per a això, haureu d’instal·lar la biblioteca OPEN CV al vostre Pi.
Podeu fer-ho des d’aquí:
A continuació, haureu de realitzar el reconeixement d’imatges fent servir cascada haar.
Podeu fer-ho des d'aquí -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Després d’estudiar l’enllaç anterior i després d’haver-ho fet, he fet alguns canvis en el codi final que he utilitzat que enganxo a continuació:
GENERADOR DE DATESET:
importcv2
cam = cv2. VideoCapture (0)
detector = cv2. CascadeClassifier ("Classificadors / face.xml")
i = 0
desplaçament = 50
name = raw_input ("introduïu el vostre identificador")
mentre que és cert:
ret, im = cam.read ()
gris = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
faces = detector.detectMultiScale (gris, factorFactor = 1,2, veïns mínims = 5, mida mínima = (100, 100), indicadors = cv2. CASCADE_SCALE_IMAGE)
per a (x, y, w, h) en cares:
i = i + 1
cv2.imwrite ("DataSet / face." + nom + '.' + str (i) + ".jpg", gris [y-offset: y + h + offset, x-offset: x + w + offset])
cv2.rectangle (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])
si cv2.waitKey (100) i 0xFF == ord ('q'):
trencar
# trencar si el nombre de mostra és més gran que 20
elif (i> 20):
trencar
cam.release ()
cv2.destroyAllWindows ()
Es crearà un conjunt de dades de les vostres fotos que s'utilitzaran per a l'autenticació.
ENTRENADOR:
importcv2, os
importa numpy com a np
de la imatge d'importació PIL
recognizer = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Classificadors / face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'dataSet'
def get_images_and_labels (ruta):
image_paths = [os.path.join (path, f) for f in os.listdir (path)]
# images will conté imatges de cara
imatges =
# etiquetes conté l'etiqueta assignada a la imatge
etiquetes =
per a image_path a image_paths:
# Llegeix la imatge i converteix-la a escala de grisos
image_pil = Image.open (image_path).convert ('L')
# Converteix el format de la imatge en una matriu numpy
image = np.array (image_pil, 'uint8')
# Obteniu l'etiqueta de la imatge
nbr = int (os.path.split (image_path) [- 1].split (".") [1].replace ("face-", ""))
# nbr = int ( . join (str (ord (c)) per a c a nbr))
imprimir nbr
# Detecta la cara de la imatge
faces = faceCascade.detectMultiScale (imatge)
# Si es detecta la cara, afegiu la cara a les imatges i l'etiqueta a les etiquetes
per a (x, y, w, h) en cares:
images.append (imatge [y: y + h, x: x + w])
labels.append (nbr)
cv2.imshow ("Afegir cares al conjunt de traning …", imatge [y: y + h, x: x + w])
cv2.waitKey (10)
# torna la llista d'imatges i la llista d'etiquetes
tornar imatges, etiquetes
imatges, etiquetes = get_images_and_labels (ruta)
cv2.imshow ('prova', imatges [0])
cv2.waitKey (1)
recognizer.train (imatges, np.array (etiquetes))
recognizer.save ('entrenador / entrenador.yml')
cv2.destroyAllWindows ()
DETECTOR
importcv2
importar numpy com a np
import os
c = 0
recognizer = cv2.face.createLBPHFaceRecognizer ()
recognizer.load ('entrenador / entrenador.yml')
cascadePath = "Classificadors / face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fontscale = 1
fontcolor = (255, 255, 255)
mentre que és cert:
ret, im = cam.read ()
gris = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale (gris, 1,2, 5)
per a (x, y, w, h) en cares:
cv2.rectangle (im, (x-50, y-50), (x + w + 50, y + h + 50), (225, 0, 0), 2)
Id = recognizer.predict (gris [y: y + h, x: x + w])
si (Id <70):
si (Id == 1):
Id = "Shashank"
elif (Id == 2):
if (c == 0):
Id = "Shivam"
c = c + 1
os.system ("Espeak 'Accés a Shivam de benvinguda concedit'")
en cas contrari:
Id = "Shivam"
en cas contrari:
Id = "Desconegut"
cv2.putText (im, str (Id), (x, y + h), fontface, fontscale, fontcolor)
cv2.imshow ('im', im)
si cv2.waitKey (10) i 0xFF == ord ('q'):
trencar
cam.release ()
cv2.destroyAllWindows ()
Pas 5: LCD i altaveu
També he utilitzat una pantalla LED I2C i un altaveu.
El LED es controla mitjançant Arduino Mega i el seu codi es dóna al codi final.
Per a Speaker, està connectat amb el Raspberry Pi i utilitza eSpeak Utility.
Podeu trobar la seva referència aquí:
Pas 6: passos finals
Muntar-ho tot i preparar-se per a la explosió.
Recomanat:
Robot d'evitació d'obstacles que utilitza un sensor d'ultrasons (Proteus): 12 passos
Robot d'evitació d'obstacles que utilitza un sensor d'ultrasons (Proteus): generalment ens trobem amb qualsevol robot d'evitació d'obstacles. La simulació de maquinari d’aquest robot forma part de la competència en molts col·legis i en molts esdeveniments. Però la simulació de programari del robot d'obstacles és poc freqüent. Tot i que si el podem trobar en algun lloc
Robot de seguiment humà que utilitza Arduino Uno per sota de 20 $: 9 passos
Humà seguint el robot fent servir Arduino Uno per sota de 20 $: així que vaig fabricar aquest robot fa aproximadament un any i em va encantar que et pugui seguir a qualsevol lloc i a tot arreu. aquesta és la millor alternativa per a un gos. encara estic amb mi fins ara. També tinc un canal de youtube on podeu veure el procés de creació al vi
Telèfon mòbil bàsic que utilitza el kit de descobriment STM32F407 i el mòdul GSM A6: 14 passos (amb imatges)
Telèfon mòbil bàsic que utilitza el kit de descobriment STM32F407 i el mòdul GSM A6: mai heu volgut crear un projecte incrustat? Si és així, què us sembla crear un dels gadgets preferits i populars de tots, és a dir, el telèfon mòbil !!!. En aquest instructiu, us guiaré sobre com construir un telèfon mòbil bàsic mitjançant el STM
Sistema d'alarma contra incendis que utilitza Arduino [en pocs passos fàcils]: 3 passos
Sistema d'alarma contra incendis que utilitza Arduino [en pocs passos fàcils]: voleu fer un projecte senzill i interessant amb Arduino que al mateix temps pugui ser realment útil i potencialment salvavides? Si és així, heu vingut al lloc adequat per aprendre quelcom nou i innovador. En aquest post ja anem
Robot "MadLib" que utilitza Excel: 9 passos
Robot "MadLib" que utilitza Excel: Recordeu estar enamorat amb els vostres amics? Una persona proporcionaria els noms i els verbs i l’altra proporcionaria una frase amb espais en blanc per emplenar-los. El més divertit era veure les connexions inesperades. Aquesta instrucció us mostrarà