Բովանդակություն:

Water Blaster- ի ավտոմատ հետևում. 9 քայլ
Water Blaster- ի ավտոմատ հետևում. 9 քայլ

Video: Water Blaster- ի ավտոմատ հետևում. 9 քայլ

Video: Water Blaster- ի ավտոմատ հետևում. 9 քայլ
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Հուլիսի
Anonim
Water Blaster- ի ավտոմատ հետևում
Water Blaster- ի ավտոմատ հետևում

Վարդեր ուտող եղջերուն ինձ դրդեց կառուցել թիրախին հետևող ջրի պայթուցիչ, որը կօգնի զսպել անհագ ժայթքողներին… Այս ջրափայլը օգտագործում է տեսաֆիլմերի վրա հիմնված շարժման հայտնաբերում `սերվո նպատակ ունենալու և թիրախին ջրի կարճ պոռթկումներ առաջացնելու համար: Այն կրակում է միայն ձեռք բերված թիրախը մի քանի վայրկյան անշարժ մնալուց հետո (ուշացումը կարող է ճշգրտվել ծածկագրում): Ինձ չի հետաքրքրում, եթե եղջերուները պարզապես կողքով են անցնում, բայց եթե նրանք կանգ են առնում խորտիկ անելու համար, սպլուշ:

Ահա մի տեսանյութ, որտեղ ես փորձում եմ ջրի պայթուցիչը.

Blaրի պայթուցիչը ինքնուրույն տուփ է, որը կարող է հեռակա կարգով միացվել (wi-fi/VNC- ի միջոցով) ձեր ցանցի ցանկացած համակարգչից `վերահսկելու, թե ինչ է դա անում: Այն ամեն անգամ նկարում է, երբ այն ակտիվանում է, որպեսզի հետագայում տեսնեք, թե ինչ է պայթեցվում:

Ես օգտագործել եմ Raspberry Pi, NoIR տեսախցիկ, IR լուսավորիչ, ստանդարտ գծային սերվո և ջրի փական `այս գիշեր/գիշեր նպատակակետին հետևող ջրի մաքրիչ ստեղծելու համար: Կոդը գրված է Python- ում և մեծապես վերցված է Ադրիան Ռոզեբրոքի cv2 պատկերի մշակման կոդի նմուշներից: Նրա գրածը կարող եք տեսնել ՝

www.pyimagesearch.com/2015/06/01/home-surv…

Քանի որ ես գնում եմ համեմատաբար մեծ, ցամաքային թիրախների (եղջերուների) հետևից, իմ խնդիրը որոշ չափով պարզեցված է: Ես պահանջում եմ միայն հորիզոնական ուղղվածություն, որպեսզի կարողանամ ազատվել միայն մեկ սերվո օգտագործելուց: Եղնիկի կանգուն սպասելը ինձ օգնում է վերացնել բազմաթիվ կեղծ հրահրիչներ: Սա իմ rev-0 փորձն է, և ես գտել եմ մի քանի բան, որոնք կփոխեի, եթե կառուցեի ևս մեկը: Ես այս բաները նշել եմ ստորև բերված մանրամասն գրության մեջ:

Քայլ 1: Կոդ

Blaրային պայթուցիչը վերամշակման համար օգտագործում է Raspberry Pi 3 -ը: Տեսանյութը նկարահանելու համար NoIR Raspberry Pi տեսախցիկը օգտագործվում է գիշերային տեսանյութերի համար IR լուսավորիչով: OpenCV/cv2 Python փաթեթն օգտագործվում է պատկերի տեղեկատվությունը գրավելու և մշակելու և թիրախային կոորդինատները հաշվարկելու համար: Pigpio գրադարանը օգտագործվում է gpio- ն կայուն սերվո աշխատանքի համար վերահսկելու համար: RPi. GPIO- ի սովորական փաթեթի օգտագործումը հանգեցրեց դողացող սերվոյի: ՈEՇԱԴՐՈԹՅՈՆ. Խոզուկի գրադարանից օգտվելիս պետք է գործարկել խոզուկի դևը: Ավելացրեք սա ձեր Pi- ի /etc/rc.local գործարկման ֆայլում ՝ pigpio lib- ի և Raspberry Pi տեսախցիկի միջերեսի համար.

/etc/rc.local# Կարգավորեք/dev/video0 ՝ Raspberry Pi- ին ներկառուցված ինտերֆեյսին միացնելու համար interfacemodprobe bcm2835-v4l2# Սկսեք pigpio daemon- ը Raspberry Pi IO հսկողության գրադարանի համար

Լրացուցիչ մանրամասների համար տե՛ս

Աղբյուրի կոդը ՝ water_blaster.py և կցված է ստորև:

Հրաժարում.

Հիմնական ալգորիթմը հետևյալն է.

  • Ձեռք բերեք տեսանյութի սկզբնական հղման շրջանակ: Սա կօգտագործվի շարժումը հայտնաբերելու դեմ համեմատելու համար:
  • Բռնել մեկ այլ շրջանակ:
  • Փոխակերպեք շրջանակը մոխրագույն մասշտաբի, չափեք այն, պղտորեք այն:
  • Հաշվիր տարբերությունը տեղեկատուի շրջանակից
  • Terտեք փոքր տարբերությունները, ստացեք ամենամեծ տարբերության կոորդինատները:
  • Սահմանեք ժամանակաչափ: Եթե թիրախի կոորդինատը չի փոխվում մի քանի վայրկյան, ապա նկարեք այն, ինչ պատրաստվում ենք նկարահանել և ջրի փականը միացրեք ջրի պայթյունի համար: Սերվոն մի քանի աստիճան ետ ու առաջ քաշեք ՝ «որսորդական հրացան» պայթյունի համար:
  • Եթե մենք երեք հրահրիչ ստանանք շատ արագ, անջատենք նկարահանումը, մի փոքր դադար տանք, ապա թարմացնենք հղման շրջանակը, քանի որ մենք կարող ենք նկարահանել ստվերային կամ շքամուտքի լույսի ներքո, որը պարզապես միացված էր…
  • Մի քանի րոպեն մեկ թարմացրեք տեղեկատուի շրջանակը `ցածր հաճախականությունների փոփոխությունների համար (արևը բարձրանում/մայր մտնում, ամպամած տեղաշարժվել և այլն)

Ես օգտագործում եմ միայն հորիզոնական նպատակակետման մեխանիզմ, բայց EBay- ում հասանելի են բազմաթիվ թեքման/թեքման servo հենակներ, և հեշտ կլինի ուղղահայաց նպատակակետը վերահսկելու համար մեկ այլ սերվո ավելացնել, եթե ցանկանաք ավելի ճշգրիտ թիրախավորում:

Ես ստեղծեցի Raspberry Pi- ն ՝ որպես VNC սերվեր աշխատելու համար, այնուհետև այն միացրեք VNC- ի միջոցով իմ նոութբուքից ՝ ծրագիրը սկսելու և տեսանյութը և տեղեկամատյանները վերահսկելու համար: cd գրացուցակում, որտեղ դուք պահում եք water_blaster.py- ն և գործարկեք այն ՝ մուտքագրելով.

./ պիթոն water_blaster.py

Այն կբացի վիդեո մոնիտորի պատուհան, կսկսի «./log_ [date]_timetime» անունով ֆայլ և կստեղծի «trig_pictures» անունով ենթաօրենսդրական ծրագիր, որտեղ պահվում են-j.webp

Ահա որոշ նշումներ ձեր Raspberry Pi- ում VNC- ի ստեղծման վերաբերյալ.

Առաջին անգամ, երբ ես տեղադրեցի Raspberry Pi- ն, ամեն ինչ կարգավորելու համար օգտագործեցի արտաքին մոնիտոր/ստեղնաշար/մկնիկ: Այնտեղ ես միացրեցի VNC սերվերը RasPi կազմաձևով (Raspberry Logo / Preferences / Raspberry Pi Configuration / Interfaces / Check VNC տարբերակ): Այնուհետև, երբ այն բարձրանում է, այն հնարավորություն է տալիս միանալ իր ՝ 0 ցուցադրմանը VNC հաճախորդի միջոցով (նույն հավատարմագրերով, ինչպես կանխադրված «pi» օգտագործողը):

Գլխազերծ ռեժիմում այն կանխադրված է շատ փոքր թույլատրելի դիսփլեյի վրա (քանի որ այն չի հայտնաբերում որևէ էկրան), այն ավելի մեծ լուծաչափի պարտադրելու համար սա ավելացնում եք /boot/config.txt- ին և վերագործարկում.

# Օգտագործեք, եթե ունեք ցուցադրում# hdmi_ignore_edid = 0xa5000080hdmi_group = 2# 1400x1050 w/ 60Hz# hdmi_mode = 42# 1356x768 w/ 60Hzhdmi_mode = 39

Ահա ևս մի քանի տեղեկատվություն ՝

Քայլ 2: Էլեկտրոնիկա

Blaրի պայթեցման էլեկտրոնիկայի պահանջները նվազագույն են Raspberry Pi 3 gpio- ի միջոցով `սերվո, ջրի փական և IR լուսավորիչ քշելու համար` դիսկրետ տրանզիստորային բուֆերների միջոցով (կառուցված փոքր նախատախտակի վրա): Ստանդարտ NoIR տեսախցիկը միանում է անմիջապես Raspberry Pi- ին:

Սխեմատիկայի անունն է ՝ water_blaster_schematic.pdf և կցված է ստորև:

Ես օգտագործեցի 5v/2.5A հատուկ մատակարարում Raspberry Pi- ի համար և 12v/1A մատակարարում `IR լուսավորիչն ու ջրի փականը վարելու համար: 12 վ լարման միջոցով աշխատում է նաև 5 վ կարգավորիչ ՝ 5 վ սերվոյին էներգիա մատակարարելու համար: Դա արվել է, որպեսզի «աղմկոտ» շարժիչի կառավարման հզորությունը մեկուսացված մնա Raspberry Pi 5v մատակարարումից: Պարզվեց, որ 12v/1A մատակարարումը ճիշտ էր իր սահմանին (իրականում մի փոքր ավելացրեց օդափոխիչը ավելացնելուց հետո): Theրի փականի ռելեին միացնելուց առաջ ծածկագիրը անջատում է IR լուսավորիչը ՝ ընթացիկ շեղումը տիրույթում պահելու համար … Ավելի լավ կլիներ, եթե օգտագործեիք 1.5 Ա հոսանք: Համոզվեք, որ միացրեք բոլոր հոսանքի աղբյուրների ստորգետնյա տերմինալները միասին:

Ֆոտոխցիկի մոդուլը ստանդարտ NoIR տարբերակ է, որն անմիջապես միանում է Raspberry Pi- ին: Դա Raspberry Pi տեսախցիկ է, որի IR զտիչն արդեն հեռացված է, ինչը հնարավորություն է տալիս այն օգտագործել IR լուսավորիչով գիշերային տեսանյութեր նկարելու համար:

Օգտագործված սերվոն ստանդարտ չափի 5 վ գծային սերվո է ՝ 3-4 կգ-սմ պտտող մոմենտով:

IR լուսավորիչը ցածր գնով 48 լեդ մատանի էր, որը ես գտա EBay- ում մոտ 4 դոլարով: Այն չափազանց ուժեղ չէ և կարող է լուսավորել միայն մինչև 15 ոտնաչափ: Եթե ունեք լրացուցիչ բյուջե, ավելի լավ լուսավորիչ ձեռք բերելը լավ բարելավում կլինի:

Ես gpio23- ին ավելացրեցի «վրիպազերծման անջատիչ»: Կոդը ստուգում է անջատիչի վիճակը և սեղմված լինելու դեպքում անջատելու է ջրի փականի ռելեը չոր հրդեհի փորձարկման համար: Ես մտածում էի, որ ավելի շատ բան կանեմ այդ անջատիչի հետ, բայց իրականում ընդհանրապես չօգտագործեցի այն: Ես կհեռացնեի այն և այն փնտրող ծածկագիրը…

Քայլ 3. Կառուցում. Տեսախցիկ և IR լուսավորիչ

Շինություն. Տեսախցիկ և IR լուսավորիչ
Շինություն. Տեսախցիկ և IR լուսավորիչ

Ես որպես պարիսպ օգտագործեցի Harbor Freight պլաստիկ զինամթերքի տուփը: Հիմնականում ինձ ջրի դիմացկուն մի բան էր պետք, քանի որ շատ ջրի ցողում/արտահոսք անխուսափելի է: Կան բազմաթիվ անցքեր/կտրվածքներ, բայց դրանք ծածկված են հովանոցներով, թափանցիկ պլաստմասսայով կամ փորված են գերբնակվածության տակ `ջուր թափելու համար: Հետևյալ տեսանկյունից, ես պետք է օգտագործեի մետաղյա տուփ, որի ներսում ներքին հզորությամբ ամրացված էին բարձր հզորության բաղադրիչները: Դրանով ես կարծում եմ, որ կարող էի խուսափել երկրպագու ավելացնելուց: Պլաստիկ տուփը չափազանց մեկուսիչ էր և թույլ տվեց ներքին ջերմաստիճանը չափազանց բարձրացնել:

Վերջում մի փոքրիկ պատուհան կտրվեց, որպեսզի տեսախցիկը տեսնի, և IR լուսավորիչը տեղադրվեց հին պլաստիկ ոսպնյակի պատյանում, որը ես դրել էի շուրջս:

Քայլ 4. Կառուցում. Waterրատար խողովակներ

Շինություն. Waterրատար խողովակներ
Շինություն. Waterրատար խողովակներ
Շինարարություն. Waterրատար խողովակներ
Շինարարություն. Waterրատար խողովակներ

Inրի մուտքը խողովակավորվում է 12 վ ջրի փականի մեջ, որը միացված է ¼”ID x 3/8” OD վինիլային խողովակին: Դա իր հերթին միացված է ¼”փշալարերով” `PVC միակցիչին սայթաքելու համար և սոսնձված է ¾” PVC ջրի գլխարկին `ջրի հոսքի համար փորված 1/16” անցքով: Ես ուզում էի ջրի փականի ռելեին պահել եղանակից դուրս, որպեսզի այն տեղադրվի տուփի ներսում: Վտանգ կա, որ կարող եմ արտահոսք ստանալ, բայց տուփի ներքևում անցքեր եմ բացել և էլեկտրոնիկան բարձր եմ տեղադրել, որպեսզի դա նվազեցնի էլեկտրոնիկայի ջրի հնարավոր վնասի հավանականությունը, եթե դա տեղի ունենա: Ավելի քիչ էսթետիկ, բայց ավելի ապահով ծրագիր կլինի արտաքինի վրա փականը տեղադրելը և 12 վ ռելեի լարերը ներսից անցկացնելը: Սերվոյի վրայով թափանցիկ պլաստիկ սկավառակը գուլպաների ծայրը տեղադրելու հարմար միջոց էր և այն թույլ չի տալիս ջուրը կաթել դեպի սերվո: Երկրպագուն հետագայում մտածեց, քանի որ տուփը շատ էր տաքանում: Ես դրա վրա մի փոքրիկ հովանոց եմ կառուցել, որպեսզի ջուրը չթափվի:

Քայլ 5. Շինարարություն

Շինություն. Նպատակը `Servo
Շինություն. Նպատակը `Servo

Տուփի վերևում կտրված է մի փոս, իսկ նպատակային սերվոն տեղադրվում և կնքվում է սիլիկոնով `ջրի արտահոսքը պահպանելու համար:

Քայլ 6. Շինարարություն. Տեղադրեք էներգիայի աղբյուրներ, օդափոխիչ, ազնվամորի Pi և նախատախտակ

Շինություն. Տեղադրեք էներգիայի աղբյուրներ, օդափոխիչ, ազնվամորի պի և նախատախտակ
Շինություն. Տեղադրեք էներգիայի աղբյուրներ, օդափոխիչ, ազնվամորի պի և նախատախտակ

Երկու սնուցման աղբյուրները (5v և 12v) միացված են մեկ հոսանքի լարին, որը դուրս է գալիս տուփի կողքից: Raspberry Pi- ն և նախատախտակը տեղադրված են տուփի կողքին ՝ գագաթին մոտ: Ուշադրություն դարձրեք ներքևում փորված ջրահեռացման անցքերին և վերին եզրին երկայնքով փորված օդափոխման անցքերին: Օդափոխիչը տեղադրված է Raspberry Pi- ի դիմաց: Չկա միացման/անջատման անջատիչ, քանի որ ես չեմ ցանկանում խրախուսել Raspberry Pi- ի անջատումը առանց պաշտոնական «sudo shutdown now» հրամանի (այսինքն ՝ չեմ ուզում, որ հոսանքը շատ հեշտ անջատվի):

Քայլ 7. Կառուցում. Նախատախտակ

Շինություն. Proto Board
Շինություն. Proto Board

Պրոտո տախտակը պարունակում է 5 վ կարգավորիչ, ֆիլտրի կափարիչ, էներգիայի տրանզիստորներ (որոնք մղում են սերվոյի և ջրի փականը) և կարգաբերման անջատիչ:

Քայլ 8: Շինություն. Ազնվամորի Pi տեսախցիկ

Շինություն ՝ Raspberry Pi տեսախցիկ
Շինություն ՝ Raspberry Pi տեսախցիկ

Raspberry Pi տեսախցիկը միանում է անմիջապես Raspberry Pi- ին ժապավենի մալուխի միջոցով և տեղադրված է թափանցիկ պլաստիկ ափսեի վրա, որը ծածկում է տուփի առջևի դիտման հատվածը:

Քայլ 9: Մասերի ցուցակ

Theրագիրն ավարտվեց մոտ 120 դոլար արժողությամբ: Նախագծի արժեքի հիմնական մասը Raspberry Pi- ն է, տեսախցիկը, servo- ն և սնուցման աղբյուրները: Ես գտա մասերը EBay- ում կամ Amazon- ում, իսկ սանտեխնիկայի մասերը `տեղական շինանյութի խանութում:

  • Raspberry Pi 3 (Amazon) 38 դոլար
  • NoIR տեսախցիկ (EBay) 30 դոլար
  • 5v անալոգային սերվո (4 կգ-սմ ոլորող մոմենտ) (EBay) 10 դոլար
  • 5v/2.4A պատի էլեկտրամատակարարում (EBay) 8 դոլար
  • 12v Water”Valրի փական (EBay) 5 դոլար
  • Խողովակներ, խողովակներ-կցորդիչներ (Օշ) $ 5
  • Պլաստիկ զինամթերքի արկղ (նավահանգիստ) 5 դոլար
  • 12 վ/1.5 Ա պատի էլեկտրամատակարարում (EBay) 5 դոլար
  • IR Illuminator (EBay) 4 դոլար
  • Տարբեր Բաղադրիչներ (ռեզիստորներ, անջատիչներ, դիոդ) 2 դոլար
  • CPU Fan (EBay) 2 դոլար
  • Proto Board, Standoffs, Screws (EBay) 2 դոլար
  • (2) ուժային տրանզիստորներ (2n5296) (EBay) 1 դոլար
  • 5 վ կարգավորիչ (LM7805) (EBay) 1 դոլար
  • Մաքրել պլաստմասսա 3/32 »(Հպեք պլաստմասսայի տարբեր. Աղբարկղ) $ 1
  • Հոսանքի լար (Օշ) 1 $

Խանութներ/կայքեր, որտեղ ես գնել եմ ապրանքներ.

  • Alice1101983 EBay կայք ՝
  • 2bevoque EBay կայք ՝
  • Նավահանգիստ բեռնափոխադրումներ
  • Այգու մատակարարման սարքավորում
  • Amazon
  • Կտտացրեք Պլաստմասսա

Խորհուրդ ենք տալիս: