Tartalomjegyzék:
- 1. lépés: Szükséges összetevők
- 2. lépés: A test felépítése
- 3. lépés: Kábelezés és kódolás
- 4. lépés: Raspberry Pi és képfelismerés
- 5. lépés: LCD és hangszóró
- 6. lépés: Utolsó lépések
Videó: NAIN 1.0 - az alapvető humanoid robot az Arduino használatával: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
A Nain 1.0 alapvetően 5 levehető modult tartalmaz-
1) Kar - amely szervók segítségével vezérelhető.
2) Kerekek - egyenáramú motorokkal vezérelhetők.
3) Láb - Nain képes lesz váltani a kerekek vagy lábak között a mozgáshoz.
4) Fej - Feje különböző bólogatásokhoz vezérelhető.
5) Kamera modul- amely illeszthető az arcfelismerő hozzáféréshez.
Ezzel együtt a NAIN képes lesz beszélni és interakcióba lépni a felhasználókkal, és a beépített óra alapján megmutatja az időt. Vezeték nélküli vezérléssel rendelkezik Wi-Fi /Bluetooth használatával.
1. lépés: Szükséges összetevők
- Szervomotorok -4
- Arduino Mega - 1
- Raspberry Pi - 1
- USB kamera -1
- Hangszóró -1
- DC motorok -2
- L293D -1
- Akkumulátor - 1
- Kerekek -2
- Castor kerekek - 2
Ezek mellett alumínium négyszögletes csíkokra lesz szüksége a test, valamint a csavarok és anyák megfelelő illesztéséhez.
2. lépés: A test felépítése
A karosszéria könnyű alumínium négyszögletes rudakból készül, amelyek megkönnyítik az összeszerelést.
Mostantól szerelje össze őket az ábrán látható módon, és vágja ki a megfelelő tereket a karokhoz rögzítendő szervomotorokhoz.
Alul rögzítsen egy hatszögletű fa alapot.
A faalap alatt rögzítse az egyenáramú motorokat és a kerekeket, mint minden vonalkövető robotnál.
Érdekes módon adjunk hozzá két görgős kereket- az egyik a robot elülső, a másik a hátlapján.
3. lépés: Kábelezés és kódolás
A különböző modulok bekötéséhez olvassa el az ebben a részben található kódokat.
Először teszteltük az egyes modulokat önálló kódok használatával, majd egyesítettük őket egyben, és egy bluetooth modul segítségével irányítottuk a kerekek és karok mozgását.
4. lépés: Raspberry Pi és képfelismerés
A képfelismerés USB -kamera és Raspberry Pi segítségével történik.
Ehhez telepítenie kell az OPEN CV könyvtárat a Pi -re.
Ezt megteheti innen-https://github.com/jabelone/OpenCV-for-Pi
Ezután el kell végeznie a képfelismerést haar kaszkád használatával.
Ezt innen teheti meg --https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Miután tanulmányoztam a fenti linket, és ezt követően, néhány változtatást eszközöltem az általam használt végső kódban, amelyet alább beillesztek -
DATASET GENERATOR:
importcv2
cam = cv2. VideoCapture (0)
detektor = cv2. CascadeClassifier ('Classifiers/face.xml')
i = 0
eltolás = 50
name = raw_input ('adja meg az azonosítóját')
míg igaz:
ret, im = cam.read ()
szürke = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
arcok = detektor.detectMultiScale (szürke, scaleFactor = 1,2, minSzomszédok = 5, minSize = (100, 100), zászlók = cv2. CASCADE_SCALE_IMAGE)
(x, y, w, h) esetén:
i = i+1
cv2.imwrite ("dataSet/face."+név+'.'+str (i)+".jpg", szürke [y-eltolás: y+h+eltolás, x-eltolás: x+w+eltolás])
cv2.téglalap (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
cv2.imshow ('im', im [y-eltolás: y+h+eltolás, x-eltolás: x+w+eltolás])
ha cv2.waitKey (100) & 0xFF == ord ('q'):
szünet
# szünet, ha a minta száma több mint 20
elif (i> 20):
szünet
cam.release ()
cv2.destroyAllWindows ()
Létrehozza a fényképek adathalmazát, amelyet hitelesítésre használnak.
EDZŐ:
importcv2, os
importálja a numpy -t np -ként
a PIL import képből
felismerő = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Classifiers/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'dataSet'
def get_images_and_labels (elérési út):
image_paths = [os.path.join (elérési út, f) for f in os.listdir (elérési út)]
# kép arcképeket tartalmaz
képek =
# labels will tartalmazza a képhez rendelt címkét
címkék =
image_path esetén: image_paths:
# Olvassa el a képet, és konvertálja szürkeárnyalatosra
image_pil = Image.open (image_path).convert ('L')
# Konvertálja a képformátumot numpy tömbré
image = np.array (image_pil, 'uint8')
# Szerezd meg a kép címkéjét
nbr = int (os.path.split (image_path) [-1].split (".") [1].replace ("face-", ""))
#nbr = int ("". join (str (ord (c)) for c in nbr))
nyomtatás nbr
# Érzékelje az arcot a képen
arcok = faceCascade.detectMultiScale (kép)
# Ha arcot észlel, csatolja az arcot a képekhez, és a címkét a címkékhez
(x, y, w, h) esetén:
images.append (kép [y: y + h, x: x + w])
labels.append (nbr)
cv2.imshow ("Arcok hozzáadása az átviteli készlethez …", kép [y: y + h, x: x + w])
cv2.waitKey (10)
# visszaadja a képek és a címkék listáját
képek, címkék visszaküldése
képek, címkék = get_images_and_labels (elérési út)
cv2.imshow ('teszt', képek [0])
cv2.waitKey (1)
elismerő.vonat (képek, np.tömb (címkék))
elismerő.save ('trainer/trainer.yml')
cv2.destroyAllWindows ()
DETEKTOR
importcv2
importálja a numpy -t np -ként
importál
c = 0
felismerő = cv2.face.createLBPHFaceRecognizer ()
elismerő.load ('trainer/trainer.yml')
cascadePath = "Classifiers/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
betűtípus = 1
fontcolor = (255, 255, 255)
míg igaz:
ret, im = cam.read ()
szürke = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
arcok = faceCascade.detectMultiScale (szürke, 1,2, 5)
(x, y, w, h) esetén:
cv2.téglalap (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = felismerő.jóslat (szürke [y: y+h, x: x+w])
ha (Id <70):
ha (Id == 1):
Id = "Shashank"
elif (Id == 2):
ha (c == 0):
Id = "Shivam"
c = c+1
os.system ("espeak 'Welcome Shivam Access Granted" ")
más:
Id = "Shivam"
más:
Id = "Ismeretlen"
cv2.putText (im, str (Id), (x, y+h), fontface, fontscale, fontcolor)
cv2.imshow ('im', im)
ha cv2.waitKey (10) & 0xFF == ord ('q'):
szünet
cam.release ()
cv2.destroyAllWindows ()
5. lépés: LCD és hangszóró
I2C LED kijelzőt és hangszórót is használtam.
A LED -et az Arduino Mega vezérli, és kódját a végső kód tartalmazza.
A hangszóróhoz a Raspberry Pi csatlakozik, és az eSpeak segédprogramot használja.
Hivatkozását itt találja-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
6. lépés: Utolsó lépések
Gyűjts össze mindent, és készülj fel a bummra.
Ajánlott:
A Funbot - alapvető motoros bővíthető robot: 7 lépés
A Funbot - alapvető motoros bővíthető robot: Üdvözlök mindenkit. Ma megmutatom, hogyan kell felépíteni a FunBot -ot - egy szuper egyszerű motoros robotot, amely lóghat, mintákat rajzolhat, pöröghet és kerékbottá válhat. Bővíthető alkatrészekkel, relékkel és még mikrovezérlőkkel is, de ez világít
6 éves: Alapvető közlekedési lámpa karcolással az Arduino számára: 3 lépés
6 éves: Alapvető közlekedési lámpa karcolással az Arduino számára: A fiam már kíváncsi volt az Arduino projektjeimre. Játszott egy ideig a Snap Circuits -en, és a LEGOHe is elkezdett néhány Scratch -projektet építeni. Csak idő kérdése volt, hogy játszhassunk a Scratch -rel az Arduino számára. Ez az első projektünk. Ob
Alapvető stopperóra a VHDL és a Basys3 Board használatával: 9 lépés
Alapvető stopperóra a VHDL és a Basys3 Board használatával: Üdvözöljük abban, hogy hogyan lehet stopperórát készíteni az alapvető VHDL és Basys 3 kártyák használatával. Örömmel osztjuk meg Önnel projektünket! Ez volt a CPE 133 (Digitális tervezés) tanfolyam utolsó projektje a Cal Poly, SLO -ban 2016 őszén
10 alapvető Arduino projekt kezdőknek! Készítsen legalább 15 projektet egyetlen táblával !: 6 lépés
10 alapvető Arduino projekt kezdőknek! Készítsen legalább 15 projektet egyetlen táblával !: Arduino Project &Oktatótábla; 10 alapvető Arduino projektet tartalmaz. Minden forráskód, a Gerber fájl és így tovább. Nincs SMD! Könnyű forrasztás mindenkinek. Könnyen eltávolítható és cserélhető alkatrészek. Egyetlen eszközzel legalább 15 projektet készíthet
Parallax BOE-Bot készítése az alapvető bélyegzőchip használatával: 7 lépés
Hogyan készítsünk egy Parallax BOE-Bot-ot az alapvető bélyegzőchip használatával: Ez az utasítás a Parallax BOE-Bot Basic bélyegző robot felépítését és módosítását mutatja be