Mündəricat:
- Addım 1: Lazım olan komponentlər
- Addım 2: Bədən quruluşu
- Addım 3: Kablolama və Kodlaşdırma
- Addım 4: Raspberry Pi və Görüntü Tanıma
- Addım 5: LCD və Dinamik
- Addım 6: Son addımlar
Video: NAIN 1.0 - Arduino istifadə edən əsas humanoid robot: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Nain 1.0-də əsasən 5 ayrılan modul olacaq-
1) Qol - servo vasitəsi ilə idarə oluna bilər.
2) Təkərlər - DC mühərrikləri ilə idarə oluna bilər.
3) Ayaq - Nain hərəkət üçün təkərlər və ya ayaqları arasında keçid edə biləcək.
4) Baş - Başı müxtəlif düyünlər üçün idarə oluna bilər.
5) Kamera modulu- Üz Tanıma Girişi üçün birləşdirilə bilər.
Bununla yanaşı, NAIN istifadəçilərlə danışa və onlarla ünsiyyət qura biləcək və vaxtını daxili saatı ilə göstərə bilər. Wi-Fi /Bluetooth istifadə edərək simsiz idarəetməyə sahib olacaq.
Addım 1: Lazım olan komponentlər
- Servo Motorlar -4
- Arduino Mega - 1
- Moruq Pi - 1
- Usb Kamera -1
- Dinamik -1
- DC mühərrikləri -2
- L293D -1
- Batareya dəsti - 1 ədəd
- Təkərlər -2
- Kastor Təkərləri - 2
Bunlarla yanaşı, bədəni düzəltmək üçün alüminium kvadrat zolaqlara və vintlərə və qoz -fındıqlara düzgün oturması üçün ehtiyacınız olacaq.
Addım 2: Bədən quruluşu
Gövdə quruluşu, asan yığılmasına kömək edəcək yüngül alüminium kvadrat çubuqlardan hazırlanacaq.
Hal -hazırda onları şəkildə göstərildiyi kimi yığın və servo motorların qollara bağlanması üçün uyğun yerləri kəsin.
Dibinə altıbucaqlı bir taxta baza yapışdırın.
Taxta bazanın altına, hər hansı bir xətt izləyicisi robotunda etdiyimiz kimi DC mühərrikləri və təkərləri bağlayın.
Maraqlısı budur ki, iki təkər əlavə edin- biri robotun ön tərəfində, digəri isə arxada.
Addım 3: Kablolama və Kodlaşdırma
Fərqli modulları bağlamaq üçün bu hissədə əlavə edilmiş kodlara baxın.
Əvvəlcə hər bir modulu müstəqil kodlarla sınadıq, sonra hamısını bir yerə yığdıq və bluetooth modulu istifadə edərək təkərlərin və qolların hərəkətini idarə etdik.
Addım 4: Raspberry Pi və Görüntü Tanıma
Şəkil Tanıma USB Kamera və Raspberry Pi istifadə edərək həyata keçirilir.
Bunun üçün Pi -yə OPEN CV kitabxanasını quraşdırmalısınız.
Bunu buradan edə bilərsiniz-https://github.com/jabelone/OpenCV-for-Pi
Sonra haar kaskadından istifadə edərək görüntü tanıma etməlisiniz.
Bunu buradan edə bilərsiniz -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Yuxarıdakı linki öyrəndikdən və izlədikdən sonra, aşağıda yapışdırdığım istifadə etdiyim son kodda bəzi dəyişikliklər etdim -
DATASET JENERATORU:
importcv2
cam = cv2. VideoCapture (0)
detektor = cv2. CascadeClassifier ('Təsnifatçılar/face.xml')
i = 0
ofset = 50
ad = raw_input ('id nömrənizi daxil edin')
Doğru halda:
ret, im = cam.read ()
boz = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
sifətlər = detector.detectMultiScale (boz, miqyaslıFaktor = 1.2, minQonşular = 5, minSize = (100, 100), bayraqlar = cv2. CASCADE_SCALE_IMAGE)
üzlərdə (x, y, w, h) üçün:
i = i+1
cv2.imwrite ("dataSet/face."+ad+'.'+str (i)+".jpg", boz [y-ofset: y+h+ofset, x-offset: x+w+offset])
cv2.dörtgen (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
cv2.imshow ('im', im [y-ofset: y+h+ofset, x-offset: x+w+offset])
əgər cv2.waitKey (100) & 0xFF == ord ('q'):
fasilə
Nümunə sayı 20 -dən çox olarsa # fasilə
elif (i> 20):
fasilə
cam.release ()
cv2.destroyAllWindows ()
Doğrulama üçün istifadə ediləcək fotoşəkillərinizdən ibarət bir məlumat toplusu yaradacaq.
MƏŞĞƏR:
importcv2, os
np kimi numpy idxal edin
PIL idxal Şəkilindən
tanıyıcı = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Təsnifatçılar/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
yol = 'dataSet'
def get_images_and_labels (yol):
image_paths = [os.path.join (yol, f) üçün os.listdir (yol)]
# şəkillərdə üz şəkilləri olacaq
şəkillər =
# etiketdə görüntüyə təyin edilmiş etiket olacaq
etiketlər =
image_paths -da image_path üçün:
# Şəkli oxuyun və boz rəngə çevirin
image_pil = Image.open (image_path).convert ('L')
# Şəkil formatını numpy massivinə çevirin
image = np.array (image_pil, 'uint8')
# Şəklin etiketini alın
nbr = int (os.path.split (image_path) [-1].split (".") [1].dəyişdir ("face-", ""))
#nbr = int (''. qoşul (str (ord (c)) in c in nbr))
çap nbr
# Şəkildəki üzü aşkar edin
üzlər = faceCascade.detectMultiScale (şəkil)
# Üz aşkarlanarsa, üzü şəkillərə və etiketi etiketlərə əlavə edin
üzlərdə (x, y, w, h) üçün:
images.append (şəkil [y: y + h, x: x + w])
labels.append (nbr)
cv2.imshow ("Tərcümə dəstinə üzlər əlavə olunur …", şəkil [y: y + h, x: x + w])
cv2.waitKey (10)
# şəkillər siyahısını və etiket siyahısını qaytarın
şəkilləri, yazıları qaytarın
şəkillər, etiketlər = get_images_and_labels (yol)
cv2.imshow ('test', şəkillər [0])
cv2.waitKey (1)
tanıyıcı.train (şəkillər, np.array (etiketlər))
tanıyıcı.save ('məşqçi/məşqçi.yml')
cv2.destroyAllWindows ()
DEDEKTOR
importcv2
np kimi numpy idxal edin
id id
c = 0
tanıyıcı = cv2.face.createLBPHFaceRecognizer ()
tanıyıcı yük ('trainer/trainer.yml')
cascadePath = "Təsnifatçılar/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
font ölçüsü = 1
fontcolor = (255, 255, 255)
Doğru halda:
ret, im = cam.read ()
boz = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
üzlər = faceCascade.detectMultiScale (boz, 1.2, 5)
üzlərdə (x, y, w, h) üçün:
cv2.dörtgen (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = tanıyıcı.predikt (boz [y: y+h, x: x+w])
əgər (Id <70):
əgər (Id == 1):
Id = "Shashank"
elif (Id == 2):
əgər (c == 0):
Id = "Şivam"
c = c+1
os.system ("Xüsusi" Xoş gəldiniz Shivam Girişinə icazə verildi "")
başqa:
Id = "Şivam"
başqa:
Id = "Naməlum"
cv2.putText (im, str (Id), (x, y+h), fontface, fontscale, fontcolor)
cv2.imshow ('im', im)
əgər cv2.waitKey (10) & 0xFF == ord ('q'):
fasilə
cam.release ()
cv2.destroyAllWindows ()
Addım 5: LCD və Dinamik
Həm də I2C LED Ekran və dinamikdən istifadə etdim.
LED Arduino Mega vasitəsilə idarə olunur və kodu son kodda verilir.
Dinamik üçün, Raspberry Pi ilə bağlıdır və eSpeak Utility -dən istifadə edir.
İstinadını burada tapa bilərsiniz-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
Addım 6: Son addımlar
Hər şeyi yığın və partlamağa hazır olun.
Tövsiyə:
Notepad istifadə edərək əsas bir veb saytı necə etmək olar: 4 addım
Notepad istifadə edərək əsas bir veb saytı necə qurmaq olar: Hər kəs "əsas bir yazı proqramından bir veb saytı necə düzəldə bilərəm?" Sualına varmı? Aydındır ki, xüsusi olaraq deyil … Hər halda, burada sizə BASIC -in necə hazırlanacağını göstərəcəyəm. yalnız notepad istifadə edərək veb sayt
STM32F407 Discovery Kit və GSM A6 Modulundan istifadə edərək Əsas Cib Telefonu: 14 Addım (Şəkillərlə)
STM32F407 Discovery Kit və GSM A6 Modulundan İstifadə Edilən Əsas Cib Telefonu: Heç sərin bir quraşdırılmış layihə yaratmaq istəmisinizmi? Əgər belədirsə, ən populyar və hər kəsin ən çox sevdiyi gadget'lardan birini, yəni Mobil Telefonu qurmağa necə !!! Bu Təlimat kitabında, STM -dən istifadə edərək əsas bir cib telefonu qurmaq üçün sizə yol göstərəcəyəm
VHDL və Basys3 Board istifadə edərək əsas Saniyəölçən: 9 addım
VHDL və Basys3 lövhəsindən istifadə edərək əsas saniyəölçən: Əsas VHDL və Basys 3 lövhəsindən istifadə edərək saniyəölçən qurmağın yollarını öyrənin. Layihəmizi sizinlə bölüşməkdən məmnunuq! Bu, 2016 -cı ilin payızında Cal Poly, SLO -da CPE 133 (Rəqəmsal Dizayn) kursu üçün son bir layihə idi. Satın aldığımız layihə
Mac Terminalından Necə İstifadə Edilir və Əsas Fonksiyonlardan Necə İstifadə Edilir: 4 Addım
Mac Terminalını necə istifadə etməli və əsas funksiyaları necə istifadə etməli: MAC Terminalını necə açacağınızı sizə göstərəcəyik. Terminalda ifconfig, qovluqların dəyişdirilməsi, fayllara daxil olmaq və arp kimi bir neçə xüsusiyyət göstərəcəyik. Ifconfig, IP ünvanınızı və MAC reklamınızı yoxlamağa imkan verəcək
Şamları Sensor Olaraq İstifadə edən Kompüter Siçanı Olaraq Wiimote Necə İstifadə Edilir !!: 3 addım
Şamları Sensor Olaraq İstifadə edən Kompüter Siçanı Olaraq Wiimote -dan Necə İstifadə Edin !!: Bu təlimat Wii Uzaqdan (Wiimote) cihazınızı kompüterinizə necə bağlayacağınızı və siçan kimi necə istifadə edəcəyinizi göstərəcək