Мазмуну:

Cat-a-way-Computer Vision Cat Sprinkler: 6 кадам (сүрөттөр менен)
Cat-a-way-Computer Vision Cat Sprinkler: 6 кадам (сүрөттөр менен)

Video: Cat-a-way-Computer Vision Cat Sprinkler: 6 кадам (сүрөттөр менен)

Video: Cat-a-way-Computer Vision Cat Sprinkler: 6 кадам (сүрөттөр менен)
Video: 😈 АСМР по 100 комментариям 🤪ASMR by 100 comments 2024, Ноябрь
Anonim
Cat-a-way-Computer Vision Cat Sprinkler
Cat-a-way-Computer Vision Cat Sprinkler

Көйгөй - мышыктар бакчаңызды ажаткана катары колдонушат

Чечим - YouTube'га автоматтык түрдө жүктөө мүмкүнчүлүгү бар мышыктын чачыраткычын курууга көп убакыт бөлүңүз

Бул этап -этабы менен эмес, курулушка жана кээ бир коддорго сереп

#Сизге ЧакырууPETA - Мышыктар жакшы, жамгыр сыяктуу төмөн басымдагы чачыраткыч, алар айланып кете электе эле ашып кетет. Долбоор мышыкты чылап коюу эмес, бирок алар бакчамды Barkers Eggs мышык версиясы менен ыргыта электе, аларды көрсөтүү.

1 -кадам: Негизги пункттар талап кылынат

Негизги пункттар талап кылынат
Негизги пункттар талап кылынат

Raspberry Pi нөл жана SD карта

Raspberry Pi камерасы

Эстафета

555 таймер…. (же 555 таймериңиз келбесе, ардуино жана башка реле)

Соленоид

Чачыраткыч

Электроника үчүн кандайдыр бир турак жай

6 тонналык чана балка менен метафоралык мыкка урууга даярдык

Камерасы анча чоң эмес, сиз сууну араң көрөсүз, бирок мышыктар чуркап жүргөнүн көрө аласыз

2 -кадам: Система

Image
Image

1, Pi камерасы бир нече камера алкактары үчүн жылып жаткан мышык өлчөмүндөгү нерсени аныктайт (кийинки кадамда өчүрүлгөн)

2, Пи чачыраткычты иштетет

3, Мышык капкак үчүн чуркайт

4, Видео ырахатты көрүү үчүн автоматтык түрдө youtubeка жүктөлөт

3 -кадам: коддоо убактысы

Аны бириктирүү
Аны бириктирүү

OpenCVди колдонуп, кадрды азайтууну колдонуп, убакыттын өтүшү менен өзгөрүп турган жерлерди таба аласыз, кээ бир ыңгайлуу функцияларды колдонуп, бул өзгөрүүлөрдүн канчалык чоң экенин жана алар убакыттын өтүшү менен сакталып кала тургандыгын аныктай аласыз жана эң башкысы мышыктын өлчөмүн билиңиз.

Гуглдан тез издесеңиз, майда -чүйдөсүнө чейин кароо боюнча бир нече окуу куралдары бар.

Коддун кантип иштээри жөнүндө жалпы маалымат

1, Камера кадрларды тартып, аларды акыркысына салыштыра берет

2, эгерде мышыктын чоңдугу аныкталса

3, Эгерде мышыктын өлчөмү 4 бурчтан ашпаса, пи ардуинону иштетүү үчүн өзүнүн GPIO релесин колдонот.

4, arduino экинчи релени 5 секундга иштетүү үчүн сигнал жиберип, соленоидди иштетет

5, электромагнит сууну чачыратуучуга берет

6, Спринклер иштеп турганда камера видеону аныктоону токтотот жана жаздырат

7, Видео Youtube га жүктөлдү

8, Stills жакшы тюнинг системасы үчүн dropboxко жүктөлгөн

Эскертүү - Эмне үчүн мен 2 релени жана 5 секундга соленоидди күйгүзүү үчүн ардуинону колдонуп калдым ….

1, pi видеону жазуу учурунда соленоидди баштабайт жана токтото албайт, анткени питон скрипттери видео аяктаганга чейин тыныгат, демек arduino (же 555 таймер) электромагниттин скриптке көз карандысыз түрдө ачылышына жана жабылышына уруксат бериши керек. видео дагы эле жазылып жатат.

2, Биринчи реле менен ардуинону 555 таймер менен алмаштырса болот, бирок бул долбоор убагында постко келген эмес, 555 көп убакытты жана кадамдарды үнөмдөйт.

3, Pi түздөн -түз электромагнитти иштете албайт, анткени Pi GPIO 3.3v жана 51mA макста иштейт, ал эми электромагнити 5В жана 51мАдан көбүрөөк иштетүүнү каалайт.

4, Ар бир кадрды керексиз аймактарда кыймыл аныктоону алып салуу үчүн кыркууга болот, мисалы, неигборс бакчасы. Муну аткарбоо бул кошунанын сиздин бакчаңызга түшүнүксүз кароосуна алып келет, анткени чачыратуучу сарайына киргиси келген сайын өчүп калат.

5, мен, балким, ачык нерсени сагындым жана муну жөндөө үчүн убактымды текке кетирдим.

Төмөндө код

импорт cv2import numpy катары np импорттоо argparse #cat импорттоо убактысы RPi. GPIO импорттоо GPIO катары импорттоо os picamera.arrayден импорттоо PiRGBArray picamera импорттоо PiCamera #------------------ ------------------------------ Ютубка жүктөө ----------------- ---------------------- def HDtoYoutube (): ctime = time.strftime ("_%H-%M-%S") cdate = time.strftime ("_%d-%m-%Y") vidname = ctime + cdate #Триггер релеси GPIO.output (11, True) time.sleep (.5) GPIO.output (11, False) басып чыгаруу ("Видео тартуу")) аракет кылыңыз: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Ютубга басып чыгарууга жүктөө ("YouTube'га жүктөө") os. система ('sudo youtube-upload --title = "Cat Got Wet {0}" --client-secret = client_secret.json vid {0}.h264'.format (vidname)) #os.remove бүткөндө видео файлды алып салуу ('vid {0}.h264'.format (vidname)) print ("Видео Piден жүктөлүп, алынып салынган"): pass #-------------------- ---------------------------- Дропбокс үчүн дагы эле ------------------- -------------------- def St 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 (filename) client = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (файлдын аты, сүрөт) image.close () os.remove ("ToDropbox)-j.webp

#КантипТриггерРеалПрограммисттериЖаман Код менен

4 -кадам: Аны бириктирүү

Аны бириктирүү
Аны бириктирүү
Аны бириктирүү
Аны бириктирүү
Аны бириктирүү
Аны бириктирүү

Электриктерди суу өткөрбөгөн корпуска тыгып, дубалдарга нерселерди бурап, скотч менен ысык желимди колдонуңуз

5 -кадам: Жыйынтыктар

Image
Image
Жыйынтыктар
Жыйынтыктар

Ал иштегенде иштейт

6 -кадам: Жалган позитивдер

Жалган позитивдер
Жалган позитивдер

Качан ал мышыктын көлөкөсүн чачат, аялың менен кызың.

Pro -tip - Кыймылды аныктоо программасын токтотуучу эшиктин жанына коммутаторду коюңуз ….. андан кийин аны колдонууну унутуп, урналарды чыгарууда чылап коюңуз.

Мен программалоо, электроника жана DIY боюнча бардык эксперттерди, балким, кетирген каталарымдын баарына коштум деп үмүттөнөм жана айрыкча, менин бардык орфографиялык каталарым сизге жакты деп үмүттөнөм.

Сунушталууда: