Სარჩევი:
- მარაგები
- ნაბიჯი 1: დააინსტალირეთ პითონი და OpenCV
- ნაბიჯი 2: რა არის ჰარის მსგავსი თვისებები?
- ნაბიჯი 3: კოდირება პითონში
- ნაბიჯი 4: არდუინოს დაპროგრამება
- ნაბიჯი 5: დასკვნა
ვიდეო: სახის თვალთვალის მოწყობილობა! პითონი და არდუინო: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
ავტორი Techovator0819 ჩემი Youtube არხი დაიცავით მეტი ავტორის მიერ:
შესახებ: მე უბრალოდ მიყვარს ახალი ნივთების შექმნა. ისევე როგორც მიკრო კონტროლერებთან დაკავშირებული საკითხები, მექანიკური ინჟინერია, ხელოვნური ინტელექტი, კომპიუტერული მეცნიერება და ყველაფერი რაც მაინტერესებს. აქ ნახავთ ყველაფერს… მეტი Techovator0819- ის შესახებ »
გამარჯობა ყველას, ვინც კითხულობს ამ სახელმძღვანელოს. ეს არის სახის თვალთვალის მოწყობილობა, რომელიც მუშაობს პითონის ბიბლიოთეკაზე სახელწოდებით OpenCV. CV ნიშნავს "კომპიუტერული ხედვა". შემდეგ შევქმენი სერიული ინტერფეისი ჩემს კომპიუტერსა და ჩემს Arduino UNO- ს შორის. ეს ნიშნავს, რომ ეს არ მუშაობს მხოლოდ პითონზე.
ეს მოწყობილობა ამოიცნობს თქვენს სახეს ჩარჩოში, შემდეგ ის აგზავნის გარკვეულ ბრძანებებს არდუინოს, რომ კამერა ისე განათავსოს, რომ დარჩეს ჩარჩოს შიგნით! Კარგად ჟღერს? მოდი მაშინვე შევიდეთ მასში.
მარაგები
1. არდუინო გაერო
2. 2 x Servo Motors (ნებისმიერი servo motors იქნება კარგი, მაგრამ მე გამოვიყენე Tower Pro SG90)
3. პითონის დაყენება
4. OpenCV- ის დაყენება
5. ვებ-კამერა
ნაბიჯი 1: დააინსტალირეთ პითონი და OpenCV
პითონის დაყენება საკმაოდ წინ არის!
www.python.org/downloads/
თქვენ შეგიძლიათ მიყევით ზემოთ მოცემულ ბმულს, რომ გადმოწეროთ პითონის ვერსია (Mac, Windows ან Linux), რომელიც თქვენთვის საუკეთესოა (64 ბიტიანი ან 32 ბიტიანი). დანარჩენი ინსტალაციის პროცესი მარტივია და თქვენ იხელმძღვანელებთ ინტერფეისით.
ინსტალაციის დასრულების შემდეგ გახსენით თქვენი ბრძანების სტრიქონი და ჩაწერეთ შემდეგი:
pip დააინსტალირეთ opencv-python
ამან უნდა დააინსტალიროს openCV ბიბლიოთეკა. სროლის პრობლემის შემთხვევაში, შეგიძლიათ ნახოთ ეს გვერდი.
მას შემდეგ რაც შევქმენით გარემო და ყველა წინაპირობა, ვნახოთ როგორ შეგვიძლია რეალურად ავაშენოთ ეს!
ნაბიჯი 2: რა არის ჰარის მსგავსი თვისებები?
ჰარის მსგავსი მახასიათებლები ციფრული გამოსახულების მახასიათებლებია. სახელი მოდის ჰაარის ტალღებიდან. ეს არის კვადრატული ფორმის ტალღების ოჯახი, რომლებიც გამოიყენება ციფრული გამოსახულების მახასიათებლების დასადგენად. ჰარის კასკადები არის ძირითადად კლასიფიკატორი, რომელიც გვეხმარება ობიექტების (ჩვენს შემთხვევაში სახეების) გამოვლენაში ბეწვის მსგავსი თვისებების გამოყენებით.
ჩვენს შემთხვევაში, სიმარტივისთვის, ჩვენ გამოვიყენებთ წინასწარ გაწვრთნილ ჰარის კასკადებს სახეების დასადგენად. თქვენ შეგიძლიათ მიყევით github გვერდის ამ ბმულს და ჩამოტვირთოთ xml ფაილი ჰარის კასკადისათვის.
1. დააწკაპუნეთ 'haarcascade_frontalface_alt.xml'
2. დააწკაპუნეთ ღილაკზე "ნედლეული" კოდის ფანჯრის ზედა მარჯვენა ნაწილში.
3. ის მიგიყვანთ სხვა გვერდზე მხოლოდ ტექსტით.
4. დააწკაპუნეთ მარჯვენა ღილაკით და დააჭირეთ ღილაკს "შენახვა როგორც.."
5. შეინახეთ იგი იმავე დირექტორიაში ან საქაღალდეში, როგორც პითონის კოდის, რომლის წერასაც აპირებთ.
ნაბიჯი 3: კოდირება პითონში
იმპორტი cv2
იმპორტის numpy როგორც np იმპორტი სერიული იმპორტის დრო
ჩვენ შემოვიტანთ ყველა საჭირო ბიბლიოთეკას.
ard = სერიული. სერიული ("COM3", 9600)
ჩვენ ვქმნით სერიულ ობიექტს სახელწოდებით 'ard'. ჩვენ ასევე მიუთითებთ პორტის სახელს და BaudRate როგორც პარამეტრებს.
face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml')
ჩვენ ვქმნით სხვა ობიექტს ჩვენი ჰარის კასკადისათვის. დარწმუნდით, რომ HaarCascade ფაილი რჩება იმავე საქაღალდეში, როგორც ეს პითონის პროგრამა.
vid = cv2. ვიდეო გადაღება (0)
ჩვენ ვქმნით ობიექტს, რომელიც იღებს ვიდეოკამერას. 0, როგორც პარამეტრი ნიშნავს პირველ ვებ კამერას, რომელიც დაკავშირებულია ჩემს კომპიუტერთან.
docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
მართალია:
_, frame = vid.read ()#კითხულობს მიმდინარე ჩარჩოს ცვლადი ჩარჩოში ნაცრისფერი = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY)#გარდაქმნის ჩარჩოს -> ნაცრისფერი მასშტაბის გამოსახულებას#შემდეგი ხაზი ამოიცნობს სახეებს. #პირველი პარამეტრი არის სურათი, რომელზედაც გსურთ აღმოაჩინოთ #minSize = () განსაზღვრავს სახის მინიმალურ ზომას პიქსელებში #დააწკაპუნეთ ზემოთ მოცემულ ბმულზე კასკადის კლასიფიკაციის სახეების შესახებ = face_cascade.detectMultiScale (ნაცრისფერი, minSize = (80, 80), minNeighours = 3) #A მარყუჟისათვის სახეების გამოვლენის მიზნით. for (x, y, w, h) in სახეები: cv2. მართკუთხედი (ჩარჩო, (x, y), (x+w, y+h), (255, 0, 0), 2)#ხატავს ოთხკუთხედს გარშემო სახე Xpos = x+(w/2)#ითვლის სახის ცენტრის X კოორდინატს. Ypos = y+(h/2) #ითვლის სახის ცენტრის Y კოორდინატს, თუ Xpos> 280: #შემდეგი კოდი ბლოკავს, შეამოწმეთ თუ არა სახე ard.write ('L'.encode ()) #on მარცხენა, მარჯვენა, ზედა ან ქვედა დროის მიმართ. ძილი (0.01) #კადრის ცენტრი. elif Xpos 280: ard.write ('D'.encode ()) time.sleep (0.01) elif Ypos <200: ard.write (' U'.encode ()) time.sleep (0.01) else: ard.write ('S'. კოდი ()) time.sleep (0.01) შესვენება cv2.imshow ('ჩარჩო', ჩარჩო)#აჩვენებს ჩარჩოს ცალკეულ ფანჯარაში. k = cv2.waitKey (1) & 0xFF თუ (k == ord ('q')): #if 'q' დაჭერილია კლავიატურაზე, ის გამოდის while მარყუჟიდან. შესვენება
cv2.destroyAllWindows () #ხურავს ყველა ფანჯარას
ard.close () #ხურავს სერიულ კომუნიკაციას
vid.release () #შეწყვეტს ვიდეოს მიღებას ვებკამერიდან.
ნაბიჯი 4: არდუინოს დაპროგრამება
მოგერიდებათ შეცვალოთ პროგრამა თქვენი ტექნიკის კონფიგურაციის შესაბამისად, რომელიც თქვენს მოთხოვნებს შეესაბამება.
#ჩართეთ
Servo servoX;
Servo servoY;
int x = 90;
int y = 90;
void setup () {
// განათავსეთ თქვენი კონფიგურაციის კოდი აქ, ერთხელ გასაშვებად: Serial.begin (9600); servoX.atach (9); servoY.atach (10); servoX. დაწერეთ (x); servoY. დაწერეთ (y); დაგვიანება (1000); }
char შეყვანა = ""; // სერიული შეყვანა ინახება ამ ცვლადში
ბათილი მარყუჟი () {
// განათავსეთ თქვენი მთავარი კოდი აქ განმეორებით გასაშვებად: if (Serial.available ()) {// ამოწმებს არის თუ არა რაიმე მონაცემი სერიული ბუფერის შეყვანისას = Serial.read (); // კითხულობს მონაცემებს ცვლადში if (input == 'U') {servoY.write (y+1); // არეგულირებს სერვო კუთხეს შეყვანის y += 1 შესაბამისად; // განაახლებს კუთხის მნიშვნელობას} else if (input == 'D') {servoY.write (y-1); y -= 1; } else {servoY.write (y); } if (შეყვანა == 'L') {servoX.write (x-1); x -= 1; } else if (input == 'R') {servoX.write (x+1); x += 1; } else {servoX.write (x); } input = ""; // ასუფთავებს ცვლადს} // პროცესი იმეორებს !!:)}
ნაბიჯი 5: დასკვნა
ეს არის ერთი ლამაზი და ინტერაქტიული გზა, რომლის საშუალებითაც შეგიძლიათ შეიმუშაოთ კომპიუტერის ხედვა თქვენს არდუინოს პროექტებში. კომპიუტერული ხედვა რეალურად საკმაოდ სახალისოა. და მე ნამდვილად ვიმედოვნებ, რომ თქვენ მოგეწონათ. თუ კი, შემატყობინეთ კომენტარებში. და გთხოვთ გამოიწეროთ ჩემი youtube არხი. მადლობა წინასწარ <3 <3
youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos
გირჩევთ:
ASS მოწყობილობა (ანტისოციალური სოციალური მოწყობილობა): 7 ნაბიჯი
ASS მოწყობილობა (ანტისოციალური სოციალური მოწყობილობა): თქვით, რომ თქვენ ხართ ისეთი ადამიანი, ვისაც უყვარს ადამიანების გვერდით ყოფნა, მაგრამ არ მოსწონს ისინი ძალიან ახლოს. თქვენ ასევე ხართ ხალხის მოსიყვარულე და გიჭირთ უარის თქმა ხალხზე. ასე რომ თქვენ არ იცით როგორ უთხრათ რომ უკან დაიხიონ. აბა, შეიყვანეთ - ASS მოწყობილობა! Y
პითონი (pySerial) + არდუინო + DC ძრავა: 14 ნაბიჯი
პითონი (pySerial) + Arduino + DC ძრავა: ეს სწრაფი სახელმძღვანელო გვიჩვენებს DC ძრავის მარტივ მუშაობას პითონის GUI გამოყენებით. იმისათვის, რომ პითონი დაუკავშირდეს Arduino დაფას, ჩვენ ვიყენებთ pySerial პაკეტს. pySerial არის პითონის ბიბლიოთეკა, რომელიც უზრუნველყოფს სერიული კავშირების მხარდაჭერას
სახის თვალთვალის იარაღი: 4 ნაბიჯი
სახის თვალთვალის იარაღი: ეს პროექტი არის გაფართოება აქ ნაჩვენები ლაზერული სამგზავრო თოფიდან-https://www.instructables.com/id/Building-a-Sentry-Gun-with-Laser-Trip-Wire-System-/ ? ALLSTEPS ერთადერთი განსხვავება ისაა, რომ იარაღი არ იმოქმედებს ლაზერით, არამედ
ყველაზე იაფი არდუინო -- ყველაზე პატარა არდუინო -- Arduino Pro Mini -- პროგრამირება -- არდუინო ნენო: 6 ნაბიჯი (სურათებით)
ყველაზე იაფი არდუინო || ყველაზე პატარა არდუინო || Arduino Pro Mini || პროგრამირება || არდუინო ნენო: …………………………. გთხოვთ გამოიწეროთ ჩემი YouTube არხი მეტი ვიდეოსთვის ……. . ეს პროექტი ეხება იმას, თუ როგორ უნდა დააკავშიროთ ყველაზე პატარა და იაფი არდუინო ოდესმე. ყველაზე პატარა და იაფი arduino არის arduino pro mini. არდუინოს მსგავსია
უხეში თვალთვალის მოწყობილობა GPS– დან და ორმხრივი რადიოებიდან: 7 ნაბიჯი
უხეში თვალთვალის მოწყობილობა GPS– დან და ორმხრივი რადიოებიდან: ასე რომ, მინდოდა მიმეღო თვალთვალის მოწყობილობა. როგორც კი ბაზარს ჩავხედე, მივხვდი, რომ ფასები ერთ -ერთზე იწყება მკლავიდან და მაღლა იწევს ფეხიზე ან მეტზე! სიგიჟე უნდა შეწყდეს! რა თქმა უნდა, პრინციპებია იმის ცოდნა, თუ სად რა