Mündəricat:
- Addım 1: Ehtiyac duyacağınız şeylər:
- Addım 2: Python mühitinin qurulması:
- Addım 3: Python Script:
- Addım 4: Arduino Kodu:
- Addım 5: Pan-Tilt Mexanizmi:-
- Addım 6: Bağlantılar qurun:
- Addım 7: TEST:
Video: ARDUINO İSTİFADƏ EDƏN YÜZ TƏQDİM !!!: 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Əvvəlki bir təlimatda, 'pyserial' modulundan istifadə edərək Arduino və Python arasında necə ünsiyyət qura biləcəyinizi və bir LED -i idarə edə biləcəyinizi paylaşdım. Görməmisinizsə bura baxın: ARDUINO & PYTHON ARASINDAKİ MÜLAHİBƏ!
Və bir cismin rəngini necə aşkar edə və ekranda izləyə biləcəyinizə buradan baxın: OPENCV VƏ PİTON İSTİFADƏ EDƏN RENK TƏDBİR.
Bu Təlimat kitabında Arduino və Python istifadə edərək üzləri necə izlədiyinizi və Kameranın üzünü izləməsini sizə göstərəcəyəm. Bu çətin görünə bilər, amma inanın ki, belə deyil, sizə lazım olan tək şey Arduino və Python haqqında əsas biliklərdir.
Beləliklə başlayaq…
Addım 1: Ehtiyac duyacağınız şeylər:
Tələblər minimumdur. Burada ehtiyacınız olan hər şeyin bir hissə siyahısını təqdim etdim:
Avadanlıq Tələbi:
- Arduino UNO (Amazon ABŞ / Amazon AB)
- Veb Kamera (Amazon ABŞ / Amazon AB)
- Servos x 2 (Amazon ABŞ / Amazon AB)
- Çörək paneli (Amazon ABŞ / Amazon AB)
- Servo Pan Tilt Kit (Amazon US / Amazon EU)
Proqram Tələbləri:
- Python 2.7 (Qurulmalıdır, Linux OS ümumiyyətlə əvvəlcədən quraşdırılmışdır)
- OpenCV (Ayrı olaraq yükləyə və ya 'pip install' istifadə edərək quraşdıra bilərsiniz Daha sonra izah ediləcək)
- pyserial (pip ilə quraşdırıla bilər)
- əsəbi
- Haarcascade.
Hər şey toplandıqdan sonra Quraşdırma Adımına keçə bilərik …
Addım 2: Python mühitinin qurulması:
Python quraşdırılır:
Beləliklə, əvvəlcə Python 2.7 -nin işə salınması lazımdır. Bunu etmək üçün əvvəlcə python 2.7.14 yükləyin və quraşdırın. Düzgün quraşdırıldığını yoxlamaq üçün Goto: Windows Axtarış >> "IDLE" yazın >> Enter düyməsini basın. Python Shell açılmalıdır.
OR
Axtarışa 'CMD' yazın və Komanda İstemini açmaq üçün enter düyməsini basın. CMD tipində >> python və enter düyməsini basın, Python interfeysi göstərilməlidir.
CMD -də bir səhv görürsünüzsə, çaxnaşma, ehtimal ki, mühit dəyişənini təyin etməlisiniz. Ətraf Mühit Dəyişənini qurmaq üçün buradakı təlimatı izləyə bilərsiniz.
Pythonda 'pyserial', 'OpenCV' və 'numpy' qurmaq:
Bu modulları quraşdırmaq üçün pip install istifadə edəcəyik, Əvvəlcə CMD açın və aşağıdakı kodları yazın:-
pip quraşdırma seriyası
pip quraşdırma opencv-python> pip quraşdırma numpy
bu əmrlər lazımi modulları quraşdıracaq. İndi kodlaşdırma hissəsinə keçə bilərik …
Addım 3: Python Script:
Kod yazmağa başlamazdan əvvəl etməli olduğunuz şey yeni bir qovluq yaratmaqdır, çünki bütün kodların eyni qovluqda saxlanılması lazımdır. Buna görə yeni bir qovluq yaradın, istədiyiniz hər şeyi adlandırın. və aşağıdan 'Haarcascade' yükləyin və qovluğa yapışdırın.
İndi notepad açın və aşağıda verilən skript yazın, haarcascade ilə eyni qovluqda 'face.py' olaraq qeyd edin. (Aşağıdakı fayla verdiyim kodu yükləyə bilərsiniz):
#bütün lazımi modulları idxal edin
np kimi idxal edin serial ardıcıl idxal vaxtı idxal sys idxal cv2 #Quraşdırma arduino üçün əlaqə yolu ('COM5' yerinə arduinonun bağlı olduğu portu qoyun) arduino = serial. Serial ('COM5', 9600) time.sleep (2) çap et ("Arduino ilə əlaqə quruldu …") #üz tanıma üçün Haarcascade idxal face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml') #Videokameradan video axını çəkmək üçün. cap = cv2. VideoCapture (0) #Çəkilən şəkli oxuyun, Boz görüntüyə çevirin və 1: ret, img = cap.read () cv2.resizeWindow ('img', 500, 500) cv2.line (img, (500, 250), (0, 250), (0, 255, 0), 1) cv2.line (img, (250, 0), (250, 500), (0, 255, 0), 1) cv2.circle (img, (250, 250), 5, (255, 255, 255), -1) boz = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) üzlər = face_cascade.detectMultiScale (boz, 1.3) # üzü aşkar edin və ətrafında bir düzbucaq düzəldin. üzlərdə (x, y, w, h) üçün: cv2.dörtgen (img, (x, y), (x+w, y+h), (0, 255, 0), 5) roi_gray = boz [y: y+h, x: x+w] roi_color = img [y: y+h, x: x+w] arr = {y: y+h, x: x+w} çap (arr) çap ('X: '+str (x)) çap (' Y: '+str (y)) çap (' x+w: '+str (x+w)) çap (' y+h: '+str (y+h))) # Roi Mərkəzi (Dikdörtgen) xx = int (x+(x+h))/2 yy = int (y+(y+w))/2 print (xx) print (yy) center = (xx, yy) # məlumatların arduino çapına göndərilməsi ("Dikdörtgenin Mərkəzi:", mərkəz) data = "X {0: d} Y {1: d} Z".format (xx, yy) çap ("çıxış = '" +data + "'") arduino.write (data) #Axını göstər. cv2.imshow ('img', img) #İcranı sonlandırmaq üçün 'Esc' düyməsinə k = cv2.waitKey (30) & 0xff əgər k == 27: break
Bunu etdikdən sonra arduino kodunu yazmağa davam edin …
Addım 4: Arduino Kodu:
Python skript hazır olduqdan sonra servo idarə etmək üçün arduino eskizinə ehtiyacımız var. Aşağıdakı kodu daxil edin, Arduino IDE -ə yapışdırın və face.py və haarcascade ilə eyni qovluqda 'servo.ino' olaraq qeyd edin. kodu yükləyin və əlaqələr qurmaq üçün növbəti addıma keçin.
(Yüklənə bilən fayl aşağıda verilmişdir)
#daxil edin
Servo servoVer; // Şaquli Servo Servo servoHor; // Yatay Servo int x; int y; int prevX; int əvvəlki; void setup () {Serial.begin (9600); servoVer.attach (5); // 5 nömrəli servoHor.attach -a Vertikal Servo əlavə edin (6); // 6 nömrəli servoVer.write -ə Yatay Servo əlavə edin (90); servoHor.write (90); } void Pos () {if (prevX! = x || prevY! = y) {int servoX = map (x, 600, 0, 70, 179); int servoY = xəritə (y, 450, 0, 179, 95); servoX = min (servoX, 179); servoX = maksimum (servoX, 70); servoY = min (servoY, 179); servoY = maksimum (servoY, 95); servoHor.write (servoX); servoVer.write (servoY); }} void loop () {if (Serial.available ()> 0) {if (Serial.read () == 'X') {x = Serial.parseInt (); if (Serial.read () == 'Y') {y = Serial.parseInt (); Pos (); }} isə (Serial.available ()> 0) {Serial.read (); }}}
Addım 5: Pan-Tilt Mexanizmi:-
Pan-Tilt üçün hazır olan dəstdən istifadə etdim. İstəyirsinizsə, ağacdan/Plastikdən və ya hətta 3D çapdan istifadə edərək özünüz edə bilərsiniz.
İstifadə etdiyim olduqca ucuzdur və yığmaq çox asandır. Ancaq bunun necə ediləcəyi ilə bağlı təlimatlar istəyirsinizsə, burada tapa bilərsiniz.
Addım 6: Bağlantılar qurun:
Dövrə olduqca sadədir. Arduinoya iki servo əlavə edin.
- Pin 5 -ə dik
- Pin 6 -dan üfüqi
- +5V -a qədər güc
- GND üçün əsas
İstinad üçün dövrə diaqramını yoxlayın.
Addım 7: TEST:
- Hər şey bitdikdən sonra ən son işin olub olmadığını yoxlamaqdır. Test etmək üçün əvvəlcə servoların arduinoya düzgün bağlandığından və eskizin yükləndiyindən əmin olun.
- Eskiz yükləndikdən sonra IDE -ni bağladığınızdan əmin olun ki, liman pythona qoşulsun.
- İndi Python IDLE ilə 'face.py' açın və kodu işə salmaq üçün 'F5' düyməsini basın. Arduinoya qoşulmaq bir neçə saniyə çəkəcək və sonra veb kameranı axan bir pəncərə görməliyik. İndi kod üzünüzü aşkar edəcək və servolar onu izləyəcək.
- Obyekti hərəkət etdirərkən Servo hərəkət etməlidir. İndi kameranı servolara bağlayın ki, servo ilə birlikdə hərəkət etsin.
Çox sağ ol.
Tövsiyə:
SD Kart Təqdim Olmasa Xaricdən Raspberry Pi 4 Retropie Boot: 5 Addım
SD Kart Təqdim Olmasa Xaricdən Raspberry Pi 4 Retropie Boot: ~ github.com/engrpanda
Arduino ilə 2.4Ghz NRF24L01 Modulundan istifadə edən Simsiz Uzaqdan - Nrf24l01 4 Kanal / Quadcopter üçün 6 Kanal Verici Alıcısı - Rc Helikopteri - Arduino istifadə edərək Rc təyyarəsi: 5 addım (şəkillərlə)
Arduino ilə 2.4Ghz NRF24L01 Modulundan istifadə edən Simsiz Uzaqdan | Nrf24l01 4 Kanal / Quadcopter üçün 6 Kanal Verici Alıcısı | Rc Helikopteri | Arduino istifadə edərək Rc Plane: Rc avtomobili idarə etmək | Quadcopter | Drone | RC təyyarəsi | RC qayığı, həmişə bir alıcıya və ötürücüyə ehtiyacımız var, RC QUADCOPTER üçün 6 kanallı bir vericiyə və alıcıya ehtiyacımız olduğunu və bu tip TX və RX -in çox bahalı olduğunu düşünürük, buna görə də özümüzdə hazırlayacağıq
Boş Deodorant Çubuğunda 'Deodorino' - Infra -Red Controlled Arduino təqdim olunur. 1 -ci Şəkilə vurun: 7 addım
Boş Deodorant Çubuğunda 'Deodorino' - Infra -Red İdarəli Arduino təqdim olunur. 1 -ci Şəkilə vurun: İndi detallara keçə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
Flash əsaslı axın videosu üçün başlıqlar təqdim etmək: 10 addım
Flash əsaslı axın videosu üçün başlıqlar təqdim etmək: KEVIN JONES BY (bu Təlimatın PDF versiyasını DCMP-nin Əlçatımlılıq Məlumat Mərkəzindən yükləyin.)? &Quot; Axın mediamı necə yazıram? &Quot; ? " Videomu YouTube və ya öz veb saytım üçün necə yaza bilərəm? " ? & quot