Satura rādītājs:
- 1. darbība. Nepieciešamie galvenie vienumi
- 2. darbība: sistēma
- 3. darbība: kodēšanas laiks
- 4. solis: salieciet to kopā
- 5. darbība. Rezultāti
- 6. solis: viltus pozitīvi
Video: Cat-a-way-Computer Vision Cat smidzinātājs: 6 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Problēma - kaķi izmanto jūsu dārzu kā tualeti
Risinājums - pavadiet pārāk daudz laika, lai izstrādātu kaķu smidzinātāju ar automātisku YouTube augšupielādes funkciju
Tas nav soli pa solim, bet gan pārskats par būvniecību un daži kodi
#BeforeYouCallPETA - Kaķiem viss ir kārtībā, tā zema spiediena smidzinātājs ir gluži kā lietus, ka viņi var apsteigt, pirms tas pat pagriežas apkārt. Projekta mērķis nav mērcēt kaķi, bet gan atraut viņu, pirms tas pakaiš manu dārzu ar kaķu versiju Barkers Eggs.
1. darbība. Nepieciešamie galvenie vienumi
Raspberry Pi nulles un SD karte
Raspberry Pi kamera
Stafete
555 taimeris … (vai arduino un citu stafeti, ja neierodas jūsu 555 taimeri)
Solenoīds
Smidzinātājs
Kaut kāds elektronikas korpuss
Gatavība trāpīt metaforiskā naglā ar 6 tonnu smagu kameru
Kamera ar tik mazu izšķirtspēju, ka jūs tik tikko neredzat ūdeni, bet joprojām varat redzēt kaķus, kas skrien aizsegā
2. darbība: sistēma
1, Pi kamera nosaka kaķa izmēra objektu, kas pārvietojas dažus kameras kadrus (piemērs nākamajā darbībā)
2, Pi ieslēdz smidzinātāju
3, Kaķis skrien aizsegā
4, video automātiski augšupielādēts youtube, lai skatītos prieku
3. darbība: kodēšanas laiks
Izmantojot openCV, izmantojot kadru atņemšanu, jūs varat atrast kadra apgabalus, kas laika gaitā mainās, izmantojot dažas lieliskas funkcijas, lai noskaidrotu, cik lielas ir šīs izmaiņas un vai tās saglabājas laika gaitā, un pats galvenais - noskaidrot, vai tās ir kaķa izmēra.
Ir diezgan daudz pamācību par kadru atņemšanu, kas ir ļoti detalizētas, ja veicat ātru meklēšanu Google.
Pārskats par koda darbību
1, kamera turpina uzņemt kadrus un salīdzināt tos ar pēdējo
2, Ja tiek konstatēta kaķa izmēra forma, tā tiek atzīmēta
3, ja kaķa izmēra izmaiņas turpinās aptuveni 4 kadrus, pi izmanto savu GPIO, lai ieslēgtu releju, lai palaistu arduino
4, arduino nosūta signālu, lai 5 sekundes darbinātu otro releju, kas aktivizē solenoīdu
5, elektromagnētiskais barošanas avots ļauj ūdeni smidzinātājam
6, Kamēr smidzinātājs ir aktīvs, kamera pārstāj noteikt un ierakstīt video
7, video tiek augšupielādēts Youtube
8, attēli, kas augšupielādēti Dropbox, lai precizētu sistēmu
Piezīme - Kāpēc es izmantoju 2 relejus un arduino, lai ieslēgtu solenoīdu uz 5 sekundēm…..
1, pi nevar iedarbināt un apturēt solenoīdu video ierakstīšanas laikā, jo pitona skrubēšana tiek pārtraukta, līdz video ir pabeigts, tāpēc ir nepieciešams arduino (vai 555 taimeris), lai ļautu solenoīdam atvērt un aizvērt neatkarīgi no skripta, kamēr video joprojām tiek ierakstīts.
2, Pirmo releju un arduino var aizstāt ar 555 taimeri, bet šis projekts netika saņemts laikā, 555 ietaupītu daudz laika un naudas.
3, pi nevar iedarbināt solenoīdu tieši, jo Pi GPIO darbojas ar 3.3v un 51mA max, un solenoīds vēlas, lai iedarbinātu 5V un daudz vairāk nekā 51mA.
4, katru rāmi var apgriezt, lai novērstu kustības noteikšanu nevēlamās vietās, piemēram, kaimiņu dārzā. Ja to neizdarīsit, minētais kaimiņš jūsu dārzā ieskatīsies neizpratnē, jo smidzinātājs izslēdzas katru reizi, kad viņš vēlas iekļūt savā šķūnītī.
5, es, iespējams, palaidu garām kaut ko acīmredzamu un izšķērdēju savu laiku, iestatot to šādi.
Kods zemāk
importēt cv2import numpy kā np importēt argparse #cat importēšanas laiks importēt RPi. GPIO kā GPIO importēt os importēšanas dropbox no picamera.array importēt PiRGBArray no picamera importa PiCamera #------------------ ------------------------------ Augšupielādēt youtube ----------------- ---------------------- def HDtoYoutube (): ctime = time.strftime ("_%H-%M-%S") cdate = time.strftime ("_%d-%m-%Y") vidname = ctime + cdate #Trigger relejs GPIO.output (11, True) time.sleep (.5) GPIO.output (11, False) print ("Video uzņemšana") mēģiniet: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Augšupielādēt uz youtube print ("Uploading to YouTube") os. sistēma ('sudo youtube-upload --title = "Cat Got Wet {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #Noņemt video failu, kad pabeigts os.remove ('vid {0}.h264'.format (vidname)) print ("Video augšupielādēts un noņemts no Pi"), izņemot: caurlaide #-------------------- ---------------------------- Stills to dropbox ------------------- -------------------- def St illsToDropbox (): print ("Faila augšupielāde uz Dropbox funkciju") access_token = 'Ah ah ah, tu neteici burvju vārdu … Ah ah ah, tu neteici burvju vārdu' ctime = time.strftime (" %H:%M:%S ") cdate = time.strftime ("%d-%m-%Y ") try: filename =" /Motion/{0}/DetectedAt_{1}.jpg".format(cdate, ctime) print (faila nosaukums) client = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (faila nosaukums, attēls) image.close () os.remove ("ToDropbox-j.webp
#HowToTriggerRealProgrammersWithBadCode
4. solis: salieciet to kopā
Ielieciet elektrību ūdensnecaurlaidīgā korpusā, ieskrūvējiet lietas sienās un izmantojiet daudz līmlentes un karstu līmi
5. darbība. Rezultāti
Kad tas darbojas, tas darbojas
6. solis: viltus pozitīvi
Ja tas nenotiek, tas izsmidzina kaķu ēnas, jūsu sieva un meita.
Ieteikums - pie durvīm novietojiet slēdzi, kas aptur kustības noteikšanas programmu….. pēc tam aizmirstiet to lietot un iemērciet, izliekot tvertnes.
Es ceru, ka es liku kādiem programmēšanas, elektronikas un DIY ekspertiem saskarties ar visdrīzāk pieļautajām kļūdām, un īpaši ceru, ka jums patika visas manas pareizrakstības kļūdas.
Ieteicams:
Vision LED personāla noturība: 11 soļi (ar attēliem)
Vision LED personāla noturība: Ir labi zināms, ka pat pēc gaismas izslēgšanas cilvēka acs turpina "redzēt". to uz sekundes daļu. Tas ir pazīstams kā redzes noturība jeb POV, un tas ļauj " krāsot " attēlus, ātri pārvietojot sloksni
Raspberry PI Vision procesors (SpartaCam): 8 soļi (ar attēliem)
Raspberry PI Vision Processor (SpartaCam): Raspberry PI redzes procesora sistēma jūsu PIRMAJAM robotikas sacensību robotam. Par FIRST No Wikipedia bezmaksas enciklopēdijas https://en.wikipedia.org/wiki/FIRST_Robotics_Compe..PIRMĀS Robotikas sacensības (FRC) ir starptautisks vidusskolas
Vision Fidget Spinner noturība: 8 soļi (ar attēliem)
Vision Fidget Spinner noturība: tas ir izklaidējošs vērpējs, kas izmanto redzes noturības efektu, kas ir optiska ilūzija, kurā vairāki diskrēti attēli cilvēka prātā saplūst vienā attēlā. Tekstu vai grafiku var mainīt, izmantojot Bluetooth Low Energy saiti, izmantojot a P
Automātiskais alkohola smidzinātājs: 3 soļi
Automātiskais alkohola smidzinātājs: šī ir mājās gatavota mašīna, kas izsmidzina alkoholu, kad jūs tuvojaties. Ultraskaņas sensors nosaka jūsu roku un liek servo pagriezt un nospiest sviru, lai izsmidzinātu alkoholu. Saite uz kodu ir šāda: https://create.arduino.cc/editor/terry_outsider/df
Servo smidzinātājs - USB ūdens pistole: 5 soļi
Servo smidzinātājs - USB ūdens pistole: USB vadāms servo ūdens lielgabals. Lieliski piemērots šaušanai uz nenojaušiem garāmgājējiem vai cilvēku aizturēšanai ar kaitinošiem jautājumiem. Šis projekts ir mazs ūdens sūknis, kas uzstādīts virs servo virziena šaušanai. Visu vada mikro