Talaan ng mga Nilalaman:
- Hakbang 1: Kinakailangan ang Pangunahing Mga Item
- Hakbang 2: Ang Sistema
- Hakbang 3: Oras ng Coding
- Hakbang 4: Pagsasama-sama Ito
- Hakbang 5: Mga Resulta
- Hakbang 6: Maling Mga Positibo
Video: Cat-a-way - Computer Vision Cat Sprinkler: 6 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Suliranin - Mga pusa na ginagamit ang iyong hardin bilang isang banyo
Solusyon - Gumugol ng masyadong maraming oras sa pag-engineering ng isang pandilig ng pusa na may tampok na pag-upload ng auto youtube
Hindi ito isang hakbang-hakbang, ngunit isang pangkalahatang ideya ng konstruksyon at ilang code
#BeBeYouCallPETA - Ang mga pusa ay mabuti, ito ay isang mababang presyon ng tubig tulad ng ulan, na maaari silang lumakas bago ito kahit na mga pivot sa paligid nila. Ang proyekto ay hindi upang magbabad isang pusa, ngunit upang ipakita ang mga ito ang layo bago nila magkalat ang aking hardin sa bersyon ng pusa ng Barkers Egg.
Hakbang 1: Kinakailangan ang Pangunahing Mga Item
Raspberry Pi zero at SD card
Kamera ng Raspberry Pi
Relay
555 timer…. (o isang arduino at isa pang relay kung ang iyong 555 timer ay hindi dumating)
Solenoid
Pandilig
Ang ilang mga uri ng pabahay para sa electronics
Isang pagpayag na tamaan ang isang matalinghagang kuko gamit ang isang 6 tonelada na martilyo ng sledge
Isang kamera na may napakaliit na resolusyon na halos hindi mo makita ang tubig, ngunit maaari mo pa ring makita ang mga pusa na tumatakbo para sa takip
Hakbang 2: Ang Sistema
1, nakita ng Pi camera ang isang cat na laki ng bagay na gumagalaw para sa ilang mga frame ng camera (exapline sa susunod na hakbang)
2, itinakda ni Pi ang pandilig
3, tumatakbo ang Cat para sa takip
4, Awtomatikong na-upload ang video sa youtube para sa pagtingin sa kasiyahan
Hakbang 3: Oras ng Coding
Gamit ang openCV gamit ang pagbabawas ng frame maaari kang makahanap ng mga lugar ng frame na nagbabago sa paglipas ng panahon, gamit ang ilang magagaling na pag-andar maaari mong malaman kung gaano kalaki ang mga pagbabagong ito at kung mananatili ang mga ito sa paglipas ng panahon, at pinakamahalagang alamin kung sila ay laki ng pusa.
Mayroong ilang mga tutorial sa pagbabawas ng frame na napupunta sa mahusay na detalye kung gagawin mo ang isang mabilis na paghahanap sa google.
Pangkalahatang-ideya ng kung paano gumagana ang code
1, Patuloy na kumukuha ng mga frame ang camera at inihambing ang mga ito sa huli
2, Kung ang isang cat na hugis ng hugis ay napansin na ito ay nabanggit
3, Kung ang pagbabago ng laki ng pusa ay nagpatuloy sa paligid ng 4 na mga frame ang pi ay gumagamit ng GPIO nito sa power relay upang simulan ang arduino
4, Ang arduino ay nagpapadala ng isang senyas upang mapagana ang pangalawang relay sa loob ng 5 segundo na nagpapagana ng solenoid
5, Ang solenoid kapag pinapatakbo ay nagbibigay-daan sa tubig sa pandilig
6, Habang ang pandilig ay aktibo ang camera ay tumitigil sa pagtuklas at nagtatala ng video
7, na-upload ang video sa Youtube
8, na-upload pa rin sa dropbox para sa fine system ng pag-tune
Tandaan - Bakit natapos akong gumamit ng 2 relay at isang arduino upang i-on ang isang solenoid sa loob ng 5 segundo …..
1, ang pi ay hindi maaaring magsimula at ihinto ang solenoid habang naitala ang video habang ang python scrips ay naka-pause hanggang sa natapos ang video, samakatuwid ang pangangailangan para sa arduino (o 555 timer) upang payagan ang solenoid na buksan at isara nang nakapag-iisa sa script habang ang nagre-record pa rin ang video.
2, Ang unang relay at arduino ay maaaring mapalitan ng isang 555 timer ngunit hindi dumating sa post sa oras para sa proyektong ito, 555 ay makatipid ng maraming pera at mga hakbang sa oras.
3, Ang pi ay hindi maaaring mag-trigger ng solenoid nang direkta habang ang Pi GPIO ay gumagana sa 3.3v at 51mA max, at nais ng solenoid ang 5V at higit sa 51mA na mag-uudyok.
4, Ang bawat frame ay maaaring i-crop upang alisin ang paggalaw ng paggalaw sa mga hindi ginustong mga lugar, tulad ng isang neigbours na hardin. Ang kabiguang gawin ito ay magreresulta sa nasabing kapitbahay na nagbibigay ng nalilito na hitsura sa iyong hardin dahil ang pandilig ay lumalabas sa tuwing nais niyang pumunta sa kanyang libangan.
5, malamang na napalampas ko ang isang bagay na halata at nasayang ang oras ko sa pagse-set up nito ng ganito.
Code sa ibaba
i-import ang cv2import numpy bilang np import argparse #cat import time import RPi. GPIO bilang GPIO import os import dropbox mula sa picamera.array import PiRGBArray mula sa picamera import PiCamera # ---------------- ---------------------------- Mag-upload sa 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.s Sleep (.5) GPIO.output (11, Mali) print ("Pagkuha ng Video") subukan: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Upload to youtube print ("Uploading to YouTube") os. system ('sudo youtube-upload --title = "Cat Got Wet {0}" --client-lihim = client_secret.json vid {0}.h264'.format (vidname)) #Katanggal ang file ng video kapag tapos na os.remove ('vid {0}.h264'.format (vidname)) print ("Na-upload ang video at inalis mula sa Pi") maliban sa: ipasa ang # ----------------- ---------------------------- Stills to dropbox ------------------- -------------------- def St. illsToDropbox (): print ("Pag-upload Pa rin sa Dropbox Function") access_token = 'Ah ah ah, hindi mo sinabi ang mahika na salita … Ah ah ah, hindi mo sinabi ang mahika na salitang' ctime = time.strftime (" % H:% M:% S ") cdate = time.strftime ("% d-% m-% Y ") subukan: filename =" /Motion/{0}/DetectedAt_{1}.jpg".format(cdate, ctime) print (filename) client = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (filename, image) image.close () os.remove ("ToDropbox.jpg ") maliban sa: pumasa # ------------------------------------------ ------ Tuklasin ang paggalaw --------------------- def DetectMotion (): #Define vars min_area = 400 tolarance = 25 #pagpalit sa pixel bluramount = 21 timetoforget = 0.5 kernel = np.ones ((5, 5), np.uint8) #ginagamit para sa dialate MotionCounter = 0 MinTargetArea = 600 # pinakamaliit na sukat upang makita ang MaxTargetArea = 5000 # Pinakamalaking sukat upang matukoy ngayon = oras.time () pagkatapos = oras.time () #initialise camera camera = PiCamera () camera.resolution = (640, 480) camera.framerate = 10 raw Capture = PiRGBArray (camera, size = (640, 480)) #warmup camera time. Sleep (1) #Grab first frame & prep it to go into cv2.acumulate weight camera.capture (rawCapture, format = "bgr") avg = rawCapture.array #Crop out hindi ginustong rehiyon PolyCrop = np.array (
#HowToTriggerRealProgrammersWithBadCode
Hakbang 4: Pagsasama-sama Ito
I-cram ang mga electrics sa isang hindi tinatagusan ng tubig na pabahay, i-tornilyo ang mga bagay sa dingding at gumamit ng maraming duct tape at mainit na pandikit
Hakbang 5: Mga Resulta
Kapag gumagana ito gumagana
Hakbang 6: Maling Mga Positibo
Kapag hindi ito nag-spray ng mga anino ng pusa, ang iyong asawa at ang iyong anak na babae.
Pro-tip - Maglagay ng isang switch sa pamamagitan ng pintuan na nag-pause sa programa ng paggalaw ng paggalaw ….. pagkatapos kalimutan na gamitin ito at magbabad kapag inilalagay ang mga bins.
Inaasahan kong gumawa ako ng anumang mga dalubhasa sa pagprograma, electronics at DIY cringe sa lahat ng mga pagkakamali na malamang na nagawa ko, at lalo na inaasahan kong nasiyahan ka sa lahat ng aking pagkakamali sa pagbaybay.
Inirerekumendang:
May-ari ng Larawan Na May Built-in Speaker: 7 Hakbang (na may Mga Larawan)
May-ari ng Larawan Sa Built-in Speaker: Narito ang isang magandang proyekto na isasagawa sa katapusan ng linggo, kung nais mong gumawa ka ng sariling tagapagsalita na maaaring magkaroon ng mga larawan / post card o kahit na listahan ng dapat mong gawin. Bilang bahagi ng pagbuo gagamitin namin ang isang Raspberry Pi Zero W bilang sentro ng proyekto, at isang
Mga Paw na Hugasan - Ang Cat ay Nakakatagpo sa Covid Handwashing Project: 5 Mga Hakbang (na may Mga Larawan)
Paws to Wash - Cat Meets Covid Handwashing Project: Dahil lahat tayo ay naglalayo sa bahay, ang Paws to Wash ay isang proyekto sa DIY na gumagabay sa mga magulang at bata sa proseso ng pagbuo ng isang nakatutuwang timer ng feedback na may isang kumakaway na pusa upang hikayatin ang malusog na ugali sa paglalaba. Sa oras ng Covid-19, paghuhugas ng kamay
Google Glass / Aid ng Mahihirap na Tao para sa Mga May Tunnel Vision: 5 Hakbang (na may Mga Larawan)
Ang Google Glass / Aid ng Poor Man para sa Mga May Tunnel Vision: Abstract: Ang proyektong ito ay nag-stream ng live na video mula sa isang eye-eye camera papunta sa isang naisusuot na head-up display. Ang resulta ay isang mas malawak na larangan ng view sa loob ng isang mas maliit na lugar (ang display ay maihahambing sa isang 4 " screen 12 " ang layo mula sa iyong mata at output sa 720
Ilunsad ang Iyong Larawan sa Holiday Larawan Sa Isang Touch ng Magic!: 9 Mga Hakbang (na may Mga Larawan)
Ilunsad ang Iyong Mga Larawan sa Holiday Larawan Sa Isang Touch ng Magic!: Sa paglipas ng mga taon, nabuo ko ang isang ugali ng pagkuha ng isang maliit na pigurin sa akin kapag naglalakbay: Madalas akong bumili ng isang maliit, blangko na artoy (tulad ng nasa larawan) at pintura upang itugma ang watawat at tema ng bansang aking binibisita (sa kasong ito, Sisilia). T
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: 7 Mga Hakbang (na may Mga Larawan)
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: Mayroong maraming mga satellite sa itaas ng aming mga ulo. Alam mo ba, na ang paggamit lamang ng Iyong computer, TV Tuner at simpleng DIY antena Maaari mong matanggap ang mga pagpapadala mula sa kanila? Halimbawa ng mga real time na larawan ng mundo. Ipapakita ko sa iyo kung paano. Kakailanganin mo ang: - 2 w