Sisukord:
- Samm: vajalikud komponendid
- 2. samm: kehaehitus
- Samm: juhtmestik ja kodeerimine
- 4. samm: Vaarika Pi ja pildituvastus
- Samm: LCD ja kõlar
- 6. samm: viimased sammud
Video: NAIN 1.0 - põhiline humanoidrobot Arduino abil: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Nain 1.0-l on põhimõtteliselt 5 eemaldatavat moodulit-
1) Arm - mida saab juhtida servode kaudu.
2) Rattad - mida saab juhtida alalisvoolumootoritega.
3) Jalg - Nain saab liikumiseks rataste või jalgade vahel vahetada.
4) Pea - selle pead saab juhtida erinevate noogutuste jaoks.
5) Kaameramoodul- mida saab liidestada näotuvastuse jaoks.
Koos sellega saab NAIN kasutajatega rääkida ja nendega suhelda ning saab teile aega näidata oma sisseehitatud kella järgi. Sellel on juhtmevaba juhtimine, kasutades Wi-Fi /Bluetoothi.
Samm: vajalikud komponendid
- Servomootorid -4
- Arduino Mega - 1
- Vaarika Pi - 1
- USB -kaamera -1
- Kõlar -1
- DC mootorid -2
- L293D -1
- Aku - 1
- Rattad -2
- Kastirattad - 2
Koos nendega vajate alumiiniumist ruudukujulisi ribasid, et kere ja kruvid ja mutrid korralikult kokku panna.
2. samm: kehaehitus
Kere konstruktsioon on valmistatud kergetest alumiiniumist ruudukujulistest vardadest, mis aitavad seda hõlpsalt kokku panna.
Praeguse seisuga pange need kokku, nagu joonisel näidatud, ja lõigake välja ka sobivad ruumid servomootorite külge kinnitamiseks.
Altpoolt kinnitage kuusnurkne puidust alus.
Puidust aluse alla kinnitage alalisvoolumootorid ja rattad, nagu me teeme mis tahes rida järgiva roboti puhul.
Huvitav on see, et lisage kaks ratast- üks roboti esiküljel ja teine taga.
Samm: juhtmestik ja kodeerimine
Erinevate moodulite ühendamiseks vaadake selles osas lisatud koode.
Esiteks testisime igat moodulit eraldiseisvate koodide abil ja seejärel ühendasime need kõik ühes ning kontrollisime rataste ja relvade liikumist bluetooth mooduli abil.
4. samm: Vaarika Pi ja pildituvastus
Pildituvastus toimub USB -kaamera ja Raspberry Pi abil.
Selleks peate oma Pi -le installima OPEN CV kogu.
Seda saate teha siit-https://github.com/jabelone/OpenCV-for-Pi
Seejärel peate pildituvastuse tegema, kasutades haar kaskaadi.
Seda saate teha siit -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Pärast ülaltoodud lingi uurimist ja selle järgset muutmist olen kasutanud lõplikus koodis, mille ma allpool kleepin -
DATASET GENERATOR:
importcv2
cam = cv2. VideoCapture (0)
detektor = cv2. CascadeClassifier ('Classifiers/face.xml')
i = 0
nihe = 50
name = raw_input ('sisestage oma ID')
kuigi tõsi:
ret, im = cam.read ()
hall = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
näod = detektor.detectMultiScale (hall, scaleFactor = 1,2, minNaabrid = 5, minSize = (100, 100), lipud = cv2. CASCADE_SCALE_IMAGE)
(x, y, w, h) nägude puhul:
i = i+1
cv2.imwrite ("dataSet/nägu."+nimi+'.'+str (i)+".jpg", hall [y-offset: y+h+offset, x-offset: x+w+offset])
cv2. ristkülik (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
cv2.imshow ('im', im [y-nihe: y+h+nihe, x-nihe: x+w+nihe])
kui cv2.waitKey (100) & 0xFF == ord ('q'):
murda
# murda, kui proovi number on suurem kui 20
elif (i> 20):
murda
cam.release ()
cv2.destroyAllWindows ()
See loob teie fotodest andmekogumi, mida kasutatakse autentimiseks.
KOOLITAJA:
importcv2, os
import numpy np -na
PIL -i impordipildilt
äratundja = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Classifiers/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'dataSet'
def get_images_and_labels (tee):
image_paths = [os.path.join (tee, f) f jaoks os.listdir (tee)]
# pilti sisaldab näopilte
pildid =
# labels will sisaldab pildile määratud silti
sildid =
image_path jaoks image_paths:
# Lugege pilti ja teisendage see halltoonidesse
image_pil = Image.open (image_path).convert ('L')
# Teisendage pildivorming numbrimassiiviks
image = np.array (image_pil, 'uint8')
# Hankige pildi silt
nbr = int (os.path.split (image_path) [-1].split (".") [1].replace ("face-", ""))
#nbr = int ("". liitu (str (ord (c)) c jaoks in nbr))
trükk nr
# Tuvastage pildil olev nägu
näod = faceCascade.detectMultiScale (pilt)
# Kui nägu tuvastatakse, lisage nägu piltidele ja silt siltidele
(x, y, w, h) nägude puhul:
images.append (pilt [y: y + h, x: x + w])
labels.append (nbr)
cv2.imshow ("Nägude lisamine trennikomplekti …", pilt [y: y + h, x: x + w])
cv2.waitKey (10)
# tagastage piltide ja siltide loend
tagastada pilte, silte
pildid, sildid = get_images_and_labels (tee)
cv2.imshow ('test', pildid [0])
cv2.waitKey (1)
tunnistaja.treen (pildid, np.massiiv (sildid))
tunnistaja.save ('koolitaja/koolitaja.yml')
cv2.destroyAllWindows ()
DETEKTOR
importcv2
import numpy np -na
import os
c = 0
äratundja = cv2.face.createLBPHFaceRecognizer ()
tunnistaja.load ('trainer/trainer.yml')
cascadePath = "Classifiers/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fontide skaala = 1
fontcolor = (255, 255, 255)
kuigi tõsi:
ret, im = cam.read ()
hall = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
näod = faceCascade.detectMultiScale (hall, 1,2, 5)
(x, y, w, h) nägude puhul:
cv2. ristkülik (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = äratundja.prognoos (hall [y: y+h, x: x+w])
kui (Id <70):
kui (Id == 1):
Id = "Shashank"
elif (Id == 2):
kui (c == 0):
Id = "Shivam"
c = c+1
os.system ("espeak 'Welcome Shivam Access Granted" ")
muidu:
Id = "Shivam"
muidu:
Id = "Tundmatu"
cv2.putText (im, str (Id), (x, y+h), fontface, fontscale, fontcolor)
cv2.imshow ('im', im)
kui cv2.waitKey (10) & 0xFF == ord ('q'):
murda
cam.release ()
cv2.destroyAllWindows ()
Samm: LCD ja kõlar
Olen kasutanud ka I2C LED -ekraani ja kõlarit.
LED -i juhitakse Arduino Mega kaudu ja selle kood on antud lõplikus koodis.
Kõlari jaoks on see ühendatud Raspberry Pi -ga ja kasutab utiliiti eSpeak.
Selle viite leiate siit-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
6. samm: viimased sammud
Pange kõik kokku ja valmistuge pauguks.
Soovitan:
Isetegemine -- Kuidas teha ämblikrobotit, mida saab nutitelefoni abil Arduino Uno abil juhtida: 6 sammu
Isetegemine || Kuidas teha ämblikrobotit, mida saab nutitelefoni abil Arduino Uno abil juhtida: Ämblikroboti tegemisel saab robootika kohta nii mõndagi õppida. Nagu robotite tegemine, on see nii meelelahutuslik kui ka väljakutsuv. Selles videos näitame teile, kuidas teha ämblikrobot, mida saame juhtida oma nutitelefoni abil (Androi
Avatud lähtekoodiga täiustatud käsitsi valmistatud humanoidrobot MIA-1: 4 sammu
MIA-1 avatud lähtekoodiga täiustatud käsitsi valmistatud humanoidrobot!: Tere kõigile, täna näitan, kuidas ma tegin roboti MIA-1, mis pole mitte ainult täiustatud ja ainulaadne, vaid ka avatud lähtekoodiga ja mida saab teha ilma 3D-printimiseta! Jah, said aru, see robot on täielikult käsitsi valmistatud. Ja avatud lähtekood tähendab - saate
Kella tegemine M5stick C abil Arduino IDE abil RTC reaalajas kell M5stack M5stick-C abil: 4 sammu
Kella tegemine M5stick C abil, kasutades Arduino IDE | RTC reaalajas kell koos M5stack M5stick-C-ga: Tere, selles juhendis olevad poisid, me õpime, kuidas Arduino IDE abil kella m5stick-C arendusplaadiga teha. Nii kuvab m5stick kuupäeva, kellaaja ja amp; kuunädal ekraanil
ASPIR: täissuuruses 3D-trükitud humanoidrobot: 80 sammu (koos piltidega)
ASPIR: täissuuruses 3D-trükitud humanoidrobot: autonoomne tugi- ja positiivse inspiratsiooni robot (ASPIR) on täissuuruses, 4,3-jalase avatud lähtekoodiga 3D-trükitud humanoidrobot, mida igaüks saab ehitada piisava jõu ja sihikindlusega. jagasin selle massiivse 80-astmelise juhendatava 10 osaks
Arduino -põhine humanoidrobot servomootorite abil: 7 sammu (piltidega)
Arduino põhine humanoidrobot, mis kasutab servomootoreid: Tere kõigile! See on minu esimene humanoidrobot, mis on valmistatud PVC vahtplaadist. See on saadaval erineva paksusega. Siin kasutasin 0,5 mm. Praegu saab see robot lihtsalt kõndida, kui ma sisse lülitasin. Nüüd töötan Arduino ja Mobile'i ühendamise kaudu Bluetoothi kaudu