Turinys:
- 1 žingsnis: reikalingi pagrindiniai elementai
- 2 žingsnis: Sistema
- 3 žingsnis: kodavimo laikas
- 4 žingsnis: sujungimas
- 5 žingsnis: Rezultatai
- 6 žingsnis: klaidingi teigiami rezultatai
Video: Katės kelias-„Computer Vision Cat“purkštuvas: 6 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
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
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
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
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
Įkiškite elektrą į vandeniui atsparų korpusą, įsukite daiktus į sienas ir naudokite daug lipnios juostos ir karštų klijų
5 žingsnis: Rezultatai
Kai jis veikia, jis veikia
6 žingsnis: klaidingi teigiami rezultatai
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:
Katės repelentas: 4 žingsniai (su nuotraukomis)
Katės repelentas: Pirmiausia nekenčiu kačių, bet myliu paukščius. Mano sode yra keletas atvirų narvų, į kuriuos paukščiai gali patekti ir išeiti, kaip nori. Ten jie gali rasti maisto ir vandens. Deja, kartais į mano sodą įeina katė iš kaimynystės ir aš
Pasidaryk pats 10/100M Ethernet PoE purkštuvas: 6 žingsniai
„Pasidaryk pats“10/100M eterneto „PoE“purkštukas: čia pagaminsime paprastą „PoE“injektorių, tinkantį 10/100M eternetui, taip pat galima maitinti tiesiai iš baterijų
Automatinis alkoholio purkštuvas: 3 žingsniai
Automatinis alkoholio purkštuvas: tai namuose pagaminta mašina, kuri purškia alkoholį jums artėjant. Ultragarso jutiklis aptinka jūsų ranką ir priverčia servo pasukti ir paspausti svertą alkoholiui purkšti. Nuoroda į kodą yra: https://create.arduino.cc/editor/terry_outsider/df
Katės ūsų sensorinis prailginimas (2.0): 6 žingsniai (su nuotraukomis)
„Cat Whisker Sensory Extension Wearable“(2.0): Šis projektas yra mano buvusio kolegos (metaterra) „Whisker Sensory Extension Wearable“tęsinys ir įsivaizdavimas. Šio projekto tikslas buvo sutelkti dėmesį į naujų, skaičiavimu praturtintų „jutimo plėtinių“kūrimą, kurie
Servo purkštuvas - USB vandens pistoletas: 5 žingsniai
Servo purkštuvas - USB vandens pistoletas: USB valdomas servo vandens pistoletas. Puikiai tinka šaudyti į nieko neįtariančius praeivius arba atbaidyti žmones nuo erzinančių klausimų. Šis projektas yra mažas vandens siurblys, sumontuotas ant servo, kad būtų galima šaudyti. Visa tai lemia mikro