Სარჩევი:

Cat-a-way-კომპიუტერული ხედვა Cat Sprinkler: 6 ნაბიჯი (სურათებით)
Cat-a-way-კომპიუტერული ხედვა Cat Sprinkler: 6 ნაბიჯი (სურათებით)

ვიდეო: Cat-a-way-კომპიუტერული ხედვა Cat Sprinkler: 6 ნაბიჯი (სურათებით)

ვიდეო: Cat-a-way-კომპიუტერული ხედვა Cat Sprinkler: 6 ნაბიჯი (სურათებით)
ვიდეო: Радан бич звёзд, на ослике, Карл! Праздничный стрим ► 8 Прохождение Elden Ring 2024, ივნისი
Anonim
Cat-a-way-კომპიუტერული ხედვა Cat Sprinkler
Cat-a-way-კომპიუტერული ხედვა Cat Sprinkler

პრობლემა - კატები იყენებენ თქვენს ბაღს ტუალეტად

გამოსავალი - ძალიან ბევრი დრო დაუთმეთ კატის სპრინკლერის ინჟინერიას ავტომატური youtube ატვირთვის ფუნქციით

ეს არ არის ეტაპობრივად, არამედ კონსტრუქციისა და ზოგიერთი კოდის მიმოხილვა

#ადრედაძახებPETA - კატები კარგად არიან, ეს არის დაბალი წნევის შემასხურებელი, ისევე როგორც წვიმა, რომ მათ შეუძლიათ გადალახონ მანამ, სანამ ის მათ გარშემო ბრუნავს. პროექტი არ არის კატის გაჟღენთვა, არამედ მათი გაშუქება მანამ, სანამ ჩემს ბაღს არ დაყრიან ბარკერების კვერცხების კატის ვერსიით.

ნაბიჯი 1: ძირითადი ელემენტებია საჭირო

ძირითადი ელემენტებია საჭირო
ძირითადი ელემენტებია საჭირო

Raspberry Pi ნულოვანი და SD ბარათი

Raspberry Pi კამერა

სარელეო

555 ქრონომეტრი… (ან არდუინო და სხვა სარელეო თუ თქვენი 555 ტაიმერი არ ჩამოვა)

სოლენოიდი

ასხურე

ელექტრონიკის ერთგვარი საცხოვრებელი

მზადყოფნა მეტაფორულ ლურსმანს 6 ტონიანი სასხლეტი ჩაქუჩით დაარტყა

კამერა იმდენად მცირე გარჩევადობით, რომ თქვენ ძლივს ხედავთ წყალს, მაგრამ მაინც ხედავთ კატებს, რომლებიც დაფარვისთვის გარბიან

ნაბიჯი 2: სისტემა

Image
Image

1, Pi კამერა აღმოაჩენს კატის ზომის ობიექტს, რომელიც მოძრაობს რამდენიმე კამერის ჩარჩოზე (აღწერილია შემდეგ ეტაპზე)

2, Pi იწყებს სპრინკლერს

3, კატა გარბენს

4, ვიდეო ავტომატურად იტვირთება youtube– ზე სიამოვნების სანახავად

ნაბიჯი 3: კოდირების დრო

ერთად აყენებს მას
ერთად აყენებს მას

ჩარჩოს გამოკლების გამოყენებით openCV– ის გამოყენებით შეგიძლიათ იპოვოთ ჩარჩოს ის სფეროები, რომლებიც იცვლება დროთა განმავლობაში, რამდენიმე მშვენიერი ფუნქციის გამოყენებით შეგიძლიათ გაარკვიოთ რამდენად დიდია ეს ცვლილებები და თუ ისინი შენარჩუნდება დროთა განმავლობაში და რაც მთავარია გაარკვიეთ არის კატის ზომა.

არსებობს საკმაოდ ბევრი გაკვეთილი ჩარჩოების გამოკლების შესახებ, რომლებიც შესანიშნავ დეტალებშია, თუ Google– ს სწრაფად ეძებთ.

მიმოხილვა, თუ როგორ მუშაობს კოდი

1, კამერა იღებს ჩარჩოებს და ადარებს მათ უკანასკნელს

2, თუ კატის ზომის ფორმა გამოვლინდა აღინიშნება

3, თუ კატის ზომის ცვლილება შენარჩუნებულია დაახლოებით 4 ჩარჩოზე, pi იყენებს თავის GPIO- ს რელეში არდუინოს დასაწყებად

4, არდუინო აგზავნის სიგნალს მეორე რელე 5 წამის განმავლობაში, რაც ააქტიურებს სოლენოიდს

5, სოლენოიდი როდესაც იკვებება წყალს აძლევს წყალს ასხურებს

6, სანამ სპრინკლერი აქტიურია კამერა წყვეტს ვიდეოს გამოვლენას და ჩაწერას

7, ვიდეო იტვირთება Youtube– ზე

8, Stills აიტვირთა dropbox– ში ჯარიმის რეგულირების სისტემისთვის

შენიშვნა - რატომ გამოვიყენე 2 რელე და არდუინო სოლენოიდის ჩართვისთვის 5 წამის განმავლობაში …..

1, pi ვერ იწყებს და აჩერებს სოლენოიდს ვიდეოს ჩაწერისას, რადგან პითონი აჩერებს ვიდეოს დასრულებამდე, შესაბამისად საჭიროა არდუინომ (ან 555 ქრონომეტრმა) დაუშვას სოლენოიდი სკრიპტის დამოუკიდებლად გახსნისა და დახურვის დროს ვიდეო ჯერ კიდევ ჩაწერილია.

2, პირველი სარელეო და არდუინო შეიძლება შეიცვალოს 555 ქრონომეტრით, მაგრამ რაც დროულად არ მოვიდა ამ პროექტისთვის, 555 დაზოგავს უამრავ დროს და ფულს.

3, pi არ შეუძლია სოლენოიდის უშუალოდ გააქტიურება, რადგან Pi GPIO მუშაობს 3.3v და 51mA max– ზე, ხოლო სოლენოიდს სურს 5V და გაცილებით მეტი 51mA გააქტიურება.

4, თითოეული ჩარჩო შეიძლება ამოიჭრას მოძრაობის გამოვლენის ამოსაღებად არასასურველ ადგილებში, მაგალითად მეზობლების ბაღში. თუ ეს არ გაკეთებულა, მეზობელი დაბნეულ სახეს შემოიტანს თქვენს ბაღში, რადგან სპრენკლერი გადის ყოველ ჯერზე, როდესაც მას სურს შეღწევაში.

5, მე ალბათ გამოვტოვე რაღაც აშკარა და დავკარგე დრო ამის შესაქმნელად.

კოდი ქვემოთ

იმპორტი cv2 იმპორტი numpy როგორც np იმპორტი argparse #cat იმპორტი დრო იმპორტი RPi. GPIO როგორც GPIO იმპორტი os იმპორტი dropbox picamera.array იმპორტი PiRGBArray picamera იმპორტი PiCamera #------------------ -------------------------------- ატვირთვა youtube– ზე ----------------- ---------------------- def HDtoYoutube (): ctime = time.strftime ("_%H-%M-%S") cdate = time.strftime ("_%d-%m-%Y") vidname = ctime + cdate #Trigger relay GPIO.output (11, True) time.sleep (.5) GPIO.output (11, False) print ("ვიდეოს გადაღება") სცადეთ: #მიიღეთ ვიდეო os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #ატვირთეთ youtube ბეჭდვით ("YouTube- ზე ატვირთვა") os. system ('sudo youtube-upload --title = "კატა დაისველდა {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #ამოიღეთ ვიდეო ფაილი os.remove ('vid {0}.h264'.format (vidname)) print ("ვიდეო ატვირთულია და ამოღებულია Pi- დან") გარდა: pass #-------------------- ---------------------------- კვლავაც dropbox ------------------- -------------------- def წმ illsToDropbox (): print ("კვლავ ატვირთვა Dropbox ფუნქციაზე") access_token = 'აჰ აჰ, შენ არ თქვი ჯადოსნური სიტყვა … ააჰ აჰ, შენ არ თქვი ჯადოსნური სიტყვა' ctime = time.strftime (" %H:%M:%S ") cdate = time.strftime ("%d-%m-%Y ") ცადეთ: filename =" /Motion/{0}/DetectedAt_{1}.jpg".format(cdate, ctime) print (ფაილის სახელი) client = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (filename, image) image.close () os.remove ("ToDropbox-j.webp

#როგორ ტრიგერს გაუწიოს რეალური პროგრამისტები ცუდი კოდით

ნაბიჯი 4: ერთად აწყობა

ერთად აყენებს მას
ერთად აყენებს მას
ერთად აყენებს მას
ერთად აყენებს მას
ერთად აყენებს მას
ერთად აყენებს მას

ჩაასხით ელექტრონიკა წყალგაუმტარი კორპუსში, ხრახნიან ნივთებს კედლებში და გამოიყენეთ ბევრი წებოვანი ლენტი და ცხელი წებო

ნაბიჯი 5: შედეგები

Image
Image
შედეგები
შედეგები

როდესაც მუშაობს მუშაობს

ნაბიჯი 6: ცრუ დადებითი

ცრუ დადებითი
ცრუ დადებითი

როდესაც ის არ ასხურებს კატის ჩრდილებს, თქვენს ცოლს და თქვენს ქალიშვილს.

რჩევა - განათავსეთ გადამრთველი კარებთან, რომელიც აჩერებს მოძრაობის გამოვლენის პროგრამას….. შემდეგ დაივიწყეთ მისი გამოყენება და გაჟღენთილი იყავით ურნების ამოღებისას.

ვიმედოვნებ, რომ პროგრამირების, ელექტრონიკისა და წვრილმანების ექსპერტები დამეხმარა ყველა იმ შეცდომით, რაც მე ალბათ დავუშვი, და განსაკუთრებით ვიმედოვნებ, რომ მოგეწონათ ჩემი მართლწერის ყველა შეცდომა.

გირჩევთ: