Turinys:

Katės kelias-„Computer Vision Cat“purkštuvas: 6 žingsniai (su nuotraukomis)
Katės kelias-„Computer Vision Cat“purkštuvas: 6 žingsniai (su nuotraukomis)

Video: Katės kelias-„Computer Vision Cat“purkštuvas: 6 žingsniai (su nuotraukomis)

Video: Katės kelias-„Computer Vision Cat“purkštuvas: 6 žingsniai (su nuotraukomis)
Video: Kelis - Millionaire (Official Music Video) 2024, Lapkritis
Anonim
Katės kelias-kompiuterinis regėjimas kačių purkštuvas
Katės kelias-kompiuterinis regėjimas kačių purkštuvas

Problema - katės naudoja jūsų sodą kaip tualetą

Sprendimas - praleiskite per daug laiko kurdami kačių purkštuvą su automatine „YouTube“įkėlimo funkcija

Tai ne žingsnis po žingsnio, bet konstrukcijos apžvalga ir tam tikras kodas

#BeforeYouCallPETA - Katėms viskas gerai, žemo slėgio purkštuvas, kaip ir lietus, kad jie gali aplenkti, kol jis net nepasisuka aplink juos. Projektas yra ne mirkyti katę, bet ją nuplauti, kol šiukšlins mano sodą su katės „Barkers Eggs“versija.

1 žingsnis: reikalingi pagrindiniai elementai

Reikalingi pagrindiniai elementai
Reikalingi pagrindiniai elementai

Raspberry Pi zero & SD kortelė

„Raspberry Pi“fotoaparatas

Estafetė

555 laikmatis … (arba arduino ir kita estafetė, jei neatvyks jūsų 555 laikmačiai)

Solenoidas

Purkštuvas

Kažkoks elektronikos korpusas

Noras pataikyti metaforišką vinį 6 tonų rogių plaktuku

Fotoaparatas su tokia maža raiška, kad vos matote vandenį, bet vis tiek matote, kaip katės bėga

2 žingsnis: Sistema

Image
Image

1, „Pi“fotoaparatas aptinka katės dydžio objektą, judantį kelis fotoaparato kadrus (pavyzdys kitame žingsnyje)

2, Pi paleidžia purkštuvą

3, katė bėga prie priedangos

4, Vaizdo įrašas automatiškai įkeliamas į „YouTube“, kad būtų malonu žiūrėti

3 žingsnis: kodavimo laikas

Sujungimas
Sujungimas

Naudodami „openCV“naudodami kadrų atimtį, galite rasti kadro sritis, kurios laikui bėgant keičiasi, naudodami keletą puikių funkcijų galite išsiaiškinti, kokie dideli šie pokyčiai ir ar jie išlieka laikui bėgant, o svarbiausia sužinoti, ar jie yra katės dydžio.

Yra daug pamokų apie kadrų atimtį, kurios labai išsamiai aprašomos, jei greitai atliekate „Google“paiešką.

Kodo veikimo apžvalga

1, Fotoaparatas vis fotografuoja kadrus ir lygina juos su paskutiniais

2, jei aptinkama katės dydžio forma, ji pažymima

3, Jei katės dydžio keitimas išlieka maždaug 4 kadrus, pi naudoja savo GPIO, kad įjungtų relę, kad paleistų arduino

4, „Arduino“siunčia signalą, kad 5 sekundes maitintų antrąją relę, kuri suaktyvina solenoidą

5, Solenoidas, kai yra maitinamas, leidžia purkštuvui tekėti vandens

6, Kai purkštuvas yra aktyvus, fotoaparatas nustoja aptikti ir įrašyti vaizdo įrašą

7, Vaizdo įrašas įkeliamas į „YouTube“

8, vaizdai įkelti į „Dropbox“, kad būtų galima sureguliuoti sistemą

Pastaba - kodėl aš naudoju 2 reles ir arduino, kad įjungčiau solenoidą 5 sekundėms…..

1, „Pi“negali paleisti ir sustabdyti solenoido įrašydamas vaizdo įrašą, nes „Python“nuskaito pauzes, kol vaizdo įrašas bus baigtas, todėl reikia arduino (arba 555 laikmačio), kad solenoidas galėtų atsidaryti ir užsidaryti nepriklausomai nuo scenarijaus. vaizdo įrašas vis dar įrašomas.

2, Pirmąją estafetę ir arduino galima pakeisti 555 laikmačiu, tačiau šis projektas neatėjo laiku, 555 sutaupytų daug laiko ir pinigų.

3, Pi negali tiesiogiai suaktyvinti solenoido, nes Pi GPIO veikia esant 3.3v ir 51mA maks., O solenoidas nori, kad suveiktų 5V ir daug daugiau nei 51mA.

4, Kiekvienas rėmas gali būti apkarpytas, kad pašalintų judesio aptikimą nepageidaujamose vietose, pvz., Kaimynų sode. Jei to nepadarysite, minėtas kaimynas pažvelgs į jūsų sodą sumišusiais žvilgsniais, nes purkštuvas išsijungia kiekvieną kartą, kai nori eiti į savo pašiūrę.

5, tikriausiai praleidau kažką akivaizdaus ir sugaišau savo laiką jį sukurdamas.

Kodas žemiau

importuoti cv2import numpy kaip np importuoti argparse #cat importo laikas importuoti RPi. GPIO kaip GPIO importuoti os importavimo dropbox iš picamera.array importuoti PiRGBArray iš picamera importuoti PiCamera #------------------ ------------------------------ Įkelti į „YouTube“----------------- ---------------------- def HDtoYoutube (): ctime = time.strftime ("_%H-%M-%S") cdate = time.strftime ("_%d-%m-%Y") vidname = ctime + cdate #Trigger relė GPIO.output (11, True) time.sleep (.5) GPIO.output (11, False) print ("Filmavimas")) pabandykite: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Įkelti į „YouTube“spausdinimą („Įkėlimas į„ YouTube “) os. sistema ('sudo youtube-upload --title = "Cat Got Wet {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #Pašalinti vaizdo failą, kai baigta os.remove ('vid {0}.h264'.format (vidname)) print ("Vaizdo įrašas įkeltas ir pašalintas iš Pi"), išskyrus: leidimo Nr. -------------------- ---------------------------- Nuotraukos į dropboxą ------------------- -------------------- def Šv illsToDropbox (): print („Įkėlimo funkcija į„ Dropbox “funkciją“) access_token = 'Ah ah ah, tu nepasakei stebuklingo žodžio … Ah ah ah, nepasakei stebuklingo žodžio' ctime = time.strftime (" %H:%M:%S ") cdate = time.strftime ("%d-%m-%Y ") pabandykite: filename =" /Motion/{0}/DetectedAt_{1}.jpg".format(cdate, ctime) print (failo pavadinimas) klientas = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (failo pavadinimas, vaizdas) image.close () os.remove ("ToDropbox-j.webp

#HowToTriggerRealProgrammersWithBadCode

4 žingsnis: sujungimas

Sujungimas
Sujungimas
Sujungimas
Sujungimas
Sujungimas
Sujungimas

Įkiškite elektrą į vandeniui atsparų korpusą, įsukite daiktus į sienas ir naudokite daug lipnios juostos ir karštų klijų

5 žingsnis: Rezultatai

Image
Image
Rezultatai
Rezultatai

Kai jis veikia, jis veikia

6 žingsnis: klaidingi teigiami rezultatai

Klaidingi teigiami
Klaidingi teigiami

Kai to nepadarysite, jūsų žmona ir dukra purškia kačių šešėlius.

Patarimas - prie durų uždėkite jungiklį, kuris pristabdo judesio aptikimo programą ….. tada pamirškite jį naudoti ir išmirkę išmeskite dėžes.

Tikiuosi, kad sukūriau programavimo, elektronikos ir „pasidaryk pats“ekspertus su visomis tikriausiai padarytomis klaidomis, ir ypač tikiuosi, kad jums patiko visos mano rašybos klaidos.

Rekomenduojamas: