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

Zombie Detecting Smart Security Owl (Deep Learning). 10 քայլ (նկարներով)
Zombie Detecting Smart Security Owl (Deep Learning). 10 քայլ (նկարներով)

Video: Zombie Detecting Smart Security Owl (Deep Learning). 10 քայլ (նկարներով)

Video: Zombie Detecting Smart Security Owl (Deep Learning). 10 քայլ (նկարներով)
Video: The Light Gate Welcomes Mike Clelland, August 7th, 2023- UFOs 2024, Դեկտեմբեր
Anonim

Ողջույն բոլորին, բարի գալուստ T3chFlicks: Հելոուինի այս ձեռնարկում մենք ձեզ ցույց կտանք, թե ինչպես ենք մենք սարսափելի սարսափելի շրջադարձ անում սովորական տնային դասականի ՝ անվտանգության տեսախցիկի վրա:

Ինչպե՞ս ?! Մենք գիշերային բու ենք պատրաստել, որն օգտագործում է պատկերի մշակումը մարդկանց հետևելու համար: Օ,, և այն աղմկում է, ինչպես իրականը:

Մենք չափազանց ոգևորված էինք այս նախագծով և սպասում էինք, որ դա անենք այն պահից ի վեր, երբ նոր Raspberry Pi 4 -ն ընկավ: Այն ունի 4 ԳԲ օպերատիվ հիշողություն, որը դուռ է բացում բազմաթիվ հիանալի հնարավորությունների, այդ թվում ՝ իրական ժամանակում խորը ուսուցման մոդելներով պատկերների մշակման միջոցով:

Եթե ցանկանում եք ուշադրություն չդարձնել Հելոուինին զոմբիների մոտենալուն, կամ պարզապես ստուգել ձեր այգին տարվա մնացած օրերին, սա մեկն է ձեզ համար: Անվտանգությունը չպետք է ձանձրալի լինի արդյունավետ լինելու համար:

Պարագաներ

Այս կառուցման համար ձեզ հարկավոր է.

  • Ազնվամորի Pi 4 (4 ԳԲ Ram) Amazon
  • Գիշերային տեսողության տեսախցիկ Amazon
  • Micro Servo Amazon
  • Կեղծ բու Amazon
  • Սոսինձ Amazon
  • Ներկիր Ամազոնը
  • Պտուտակներ Amazon
  • USB բարձրախոս Amazon
  • Խոշոր (5v+) շարժական սնուցման աղբյուր Amazon
  • 3D տպիչ Amazon

Քայլ 1: Քայլ 1. Գլխատել

Քայլ 1: Գլխատել
Քայլ 1: Գլխատել
Քայլ 1: Գլխատել
Քայլ 1: Գլխատել
Քայլ 1: Գլխատել
Քայլ 1: Գլխատել

ա Քաշեք գլուխը բուից (երբեմն պարզապես պետք է լինել դաժան) ՝ ուժգին քաշելով նրա գլխին, որտեղ այն կպչում է աղբյուրին:

բ. Բու գլուխը մարմնին միանում է գլանով, որը նստած է մեծ աղբյուրի գագաթին: Հեռացրեք այս գլանը ՝ հանելով պտուտակը:

գ. Մխոցը, որը դուք պարզապես հանել եք, բաղկացած է երկու մասից ՝ պլաստիկ բաժակից և առանցքում, որը նստած է դրա ներսում: Պտուտակահանով (կամ նմանատիպ գործիքով) հանեք առանցքակալը գլանից:

դ. Մխոցը զսպանակին միացնող պտուտակով ամրացրեք սերվերը գլանին:

ե. Հեռացրեք զսպանակը ՝ պտուտակելով այն երեք պտուտակները, որոնք ամրացնում են այն մարմնին:

զ Բու մարմնի վերևում մի անցք արեք, որն այնքան մեծ է, որ կարող է տեղավորվել որոշ լարերի և տեսախցիկի մալուխի մեջ: Մենք դրա համար օգտագործեցինք փորվածք և պտուտակահան անճաշակ համադրություն:

Քայլ 2: Քայլ 2: Ավելացրեք խելացի

Քայլ 2: Ավելացրեք խելացի
Քայլ 2: Ավելացրեք խելացի
Քայլ 2: Ավելացրեք խելացի
Քայլ 2: Ավելացրեք խելացի
Քայլ 2: Ավելացրեք խելացի
Քայլ 2: Ավելացրեք խելացի

ա 3D տպեք տեսախցիկի պատյանը և ներկեք այն բուին համապատասխանելու համար. Մենք օգտագործեցինք էժան ակրիլային ներկեր: Նկարչությունը կենսական քայլ չէ, բայց դա կտրուկ բարելավում է ընդհանուր տեսքը:

բ. Բու գլուխը գլխիվայր շուռ տալով, պտուտակեք տեսախցիկի պատյանի գագաթը գլխի ներսում, որտեղ կտուցը դուրս է ցցված:

գ. Տեղադրեք տեսախցիկը պատյանում և միացրեք տեսախցիկի մալուխը:

դ. Սոսինձը սոսնձեցրեք գարնան վերին վահանակին:

ե. Երկար լարերը միացրեք servo կապումներին (5V, Gnd, ազդանշան)

զ Կերակրեք տեսախցիկի մալուխը և լարերը սերվոյի համար աղբյուրի միջով և մարմնի վերևում արած անցքով, որպեսզի դրանք լինեն բու խոռոչի մարմնի ներսում:

Քայլ 3. Քայլ 3. Լրացրեք նրան

Քայլ 3: Լրացրեք նրան
Քայլ 3: Լրացրեք նրան
Քայլ 3: Լրացրեք նրան
Քայլ 3: Լրացրեք նրան
Քայլ 3: Լրացրեք նրան
Քայլ 3: Լրացրեք նրան
Քայլ 3: Լրացրեք նրան
Քայլ 3: Լրացրեք նրան

ա Հեռացրեք խրոցը բու ներքևից և մեծացրեք այս անցքի չափը `կտրելով պլաստիկը: Շարունակեք մեծացնել չափը, մինչև Raspberry Pi- ն և բարձրախոսը տեղավորվեն բու մարմնի մեջ:

բ. Երբ փոսը բավականաչափ մեծ լինի, որպեսզի բոլոր բաղադրիչները տեղավորվեն ներսում, քաշեք տեսախցիկի մալուխը, որը սնուցել եք բուի գագաթով, հիմքից դուրս և միացրեք այն Raspberry Pi- ին:

գ. Նմանապես, քաշեք servo լարերը և միացրեք դրանք Raspberry Pi- ի մեջ.

  • +5v servo- ում => +5V Pi- ի վրա
  • Gnd servo => gnd Pi
  • Ազդանշանի servo => կապ 12 Pi

դ. Միացրեք USB խոսնակին Pi- ին:

ե. Տեղադրեք SD քարտը Pi- ի մեջ:

զ Power Pi ՝ օգտագործելով շարժական սնուցման աղբյուր:

է. Տեղադրեք Pi- ն, սնուցման աղբյուրը և բարձրախոսը բուի մեջ հիմքի անցքից:

Քայլ 4: Քայլ 4. Կարգավորեք Pi- ն

Քայլ 4: Տեղադրեք Pi- ն
Քայլ 4: Տեղադրեք Pi- ն

Ամբողջ ծածկագիրը կարող է գտնվել

ա Ներբեռնեք Raspian- ը և վերբեռնեք այն ձեր SD քարտին ՝ օգտագործելով Balena Etcher:

բ. Ձեր pi- ին հեռակա մուտք գործելու համար

  • Ձեր boot sd քարտին ավելացրեք ssh անունով ֆայլ
  • Ավելացրեք wpa_supplicant.conf անունով ֆայլ և տեղադրեք ձեր wifi հավատարմագրերը

    ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev update_config = 1

    ցանց = {ssid = "MySSID" psk = "MyPassword"}

գ. Տեղադրեք SD քարտը pi- ում և փորձեք մուտք գործել ssh- ի միջոցով:

Քայլ 5: Քայլ 5. Գլուխը շարժելը

Քայլ 5: Գլուխը շարժելը
Քայլ 5: Գլուխը շարժելը

Գլուխը տեղափոխելու կոդի ձեռնարկ (վերահսկում է սերվոն ազնվամորի պիով)

Pi- ի վրա աշխատող servo- ն վերահսկելու համար մենք պատրաստվում ենք ստեղծել սցենար, որը վերահսկում է GPIO- ի կապերը, որոնց servo- ն միացված է:

ա Միացրեք servo- ն Pi- ին.

  • +5v servo- ում => +5V Pi- ի վրա
  • Gnd servo => gnd Pi- ի վրա
  • Ազդանշանի servo => pin 12 Pi- ի վրա

բ. Նախ պետք է կարգավորել gpio կապերը, որպեսզի PWM- ն օգտագործվի սերվոյի ազդանշանային քորոցում:

գ. Այնուհետև, նույնքան պարզ է, որքան ազդանշանային քորոցի աշխատանքային ցիկլը (այստեղ բացատրված է) ընտրելը ՝ սերվոն 90 աստիճանից 7,5 -ից մինչև 0 աստիճան աշխատանքային ցիկլով տեղափոխելիս, երբ աշխատանքային ցիկլը 2,5 է և 180 աստիճան ՝ հերթապահ ցիկլով: 12.5

ներմուծեք RPi. GPIO- ն որպես GPIO

ներմուծման ժամանակը GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (false) GPIO.setup (12, GPIO. OUT) p = GPIO. PWM (12, 50) p.start (7.5) try: while True: p. ChangeDutyCycle (7.5) # 90 աստիճան ժամանակ. Քուն (1) p. ChangeDutyCycle (2.5) # 0 աստիճան ժամանակ: քուն (1) p. ChangeDutyCycle (12.5) # 180 աստիճան ժամանակ: քուն (1) բացի ստեղնաշարից Անընդհատ `p.stop () GPIO.cleanup ()

Քայլ 6: Քայլ 6. Այն դարձնել հիմք

Քայլ 6: Այն դարձնել խելամիտ
Քայլ 6: Այն դարձնել խելամիտ
Քայլ 6: Այն դարձնել խելամիտ
Քայլ 6: Այն դարձնել խելամիտ

Բու սափրիչ պատրաստելու կոդի ձեռնարկ (ազնվամորի պիով աուդիո նվագարկել)

ա Միացրեք USB խոսնակին:

բ. Ներբեռնեք ձայն. Մենք ընտրեցինք սարսափելի թռիչք:

գ. Նվագարկեք ձայնը ՝ գործարկելով այս հրամանը ՝ omxplayer -o alsa: hw: 1, 0 owl_sound.mp3

[դ. Եթե դա չի աշխատում, ստուգեք, թե ինչ ելք է օգտագործում ձեր Pi- ն և որ ծավալով ՝ օգտագործելով alsamixer հրահանգը. Ձեզ դիմավորելու են խառնիչի էկրանը, որտեղ կարող եք փոխել ձայնը և ընտրել ձեր մեդիա սարքը: Ձեր ձայնի ձայնը բարձրացնելու համար կատարեք այս omxplayer –o alsa- ի նման հրամանը. Hw: 1, 0 owl_sound.mp3 --vol 500 Այս ձայնը Python- ով նվագարկելու համար նայեք մեր փորձարկման սցենարին:]

ներմուծման ենթամշակման գործընթաց

command = "omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500" player = subprocess. Popen (command.split (')), stdin = subprocess. PIPE, stdout = subprocess. PIPE, stderr = subprocess. Խողովակաշար)

Քայլ 7: Քայլ 7: Հեռարձակեք տեսանյութը Pi- ից

Քայլ 7: Հեռարձակեք տեսանյութը Pi- ից
Քայլ 7: Հեռարձակեք տեսանյութը Pi- ից
Քայլ 7: Հեռարձակեք տեսանյութը Pi- ից
Քայլ 7: Հեռարձակեք տեսանյութը Pi- ից

Կոդի ձեռնարկ ՝ ստեղծելով ազնվամորի pi տեսախցիկի հոսք

ա Գործարկեք python app.py և դիտեք ձեր տեղական ցանցում ՝ https://raspberrypi.local: 5000

բ. Այս ծածկագիրը վերցված և փոքր-ինչ հարմարեցված է Միգել Գրինբերգից https://blog.miguelgrinberg.com/post/flask-video-… նա լավ բացատրում է, թե ինչպես է դա արվում, և նրա ձեռնարկները հիանալի են. Deffo ստուգեք նրան: Հիմնական հասկացությունն այն է, որ մենք օգտագործում ենք թելեր և գեներատորներ ՝ հոսքի արագությունը բարելավելու համար:

Քայլ 8. Քայլ 8. Մարմնի հայտնաբերում

Քայլ 8: Մարմնի հայտնաբերում
Քայլ 8: Մարմնի հայտնաբերում

Մարմնի հայտնաբերման կոդ (ImageNetSSD ՝ ազնվամորի պիով վիդեո հոսքի վրա)

ա Քանի որ մենք օգտագործում ենք Raspberry Pi 4 -ը, մենք մտածեցինք, որ լավագույնն է դրա վրա փորձել խորը ուսուցման մոդելներ ՝ HaarCascade- ի հիմնական մեթոդի փոխարեն, որով մինչ այժմ սահմանափակված էինք:

բ. Մենք նայեցինք այնտեղ նախապես պատրաստված մոդելներից մի քանիսին, ինչպիսին է YOLOv3- ը, որը շատ սառը տեսք ունի: YOLOv3 փոքր կշիռներ, որոնք կատարյալ կլինեին Pi- ի համար, բայց մենք չկարողացանք այն գործարկել:(գ. Փոխարենը, մենք ընտրեցինք MobileSSD մոդելը, որը կարող ենք գործարկել ՝ օգտագործելով openCVs DNN (խորը նյարդային ցանց) մոդուլ, ինչպես սովորեցինք այս ծածկագրից ՝ https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 և պատկերի մշակման ձեռնարկների հերոս Ադրիան Ռոզեբրոքից ՝ https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/

դ. Այնուամենայնիվ, քանի որ մենք փորձում ենք հոսել այս բովանդակությունը և մոդելներ տեղադրել յուրաքանչյուր շրջանակի վրա, դա հանգեցնում է ուշացած, մասնատված տեսանյութի: Մենք նորից սովորեցինք Ադրիան Ռոզեբրոքից https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ և օգտագործեցինք Python բազմամշակման մոդուլը ՝ մեր պատկերները հերթերի մեջ դնելու համար: որտեղ դրանք կարող են մշակվել ՝ առանց տեսախցիկի հոսքը այդքան մեծ արգելափակելու:

ե. Փորձեք ինքներդ գործարկել կոդը:)

Քայլ 9. Քայլ 9. Zombie- ի ծանուցումների ուղարկում

Քայլ 9: Ուղարկեք Zombie ծանուցումներ
Քայլ 9: Ուղարկեք Zombie ծանուցումներ
Քայլ 9: Ուղարկեք Zombie ծանուցումներ
Քայլ 9: Ուղարկեք Zombie ծանուցումներ

Codeանուցում ուղարկելու կոդ (պիթոն հեռախոսին)

ա Մենք որոշեցինք օգտագործել https://pushed.co ծանուցման ծառայությունը:

բ. Կարող եք անվճար հաշիվ ստանալ և ներբեռնել ծրագիրը և իսկապես արագ կարգավորել բջջային ծանուցումներ կատարելը: Մենք ստեղծեցինք ծանուցումները ՝ օգտագործելով այսպիսի պիտոնի սցենար:

ներմուծման հարցումներ

payload = {"app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Owl- ն հայտնաբերել է զոմբի": } r = request.post ("https://api.pushed.co/1/push", տվյալներ = բեռնվածություն)

Դա չափազանց պարզ է, և դուք կարող եք հարմարեցնել ձեր ծանուցման անունը:

Քայլ 10: Ի Whatնչ անհեթեթություն:

Ի Whatնչ խայտառակություն
Ի Whatնչ խայտառակություն

Հուսով ենք, որ ձեզ դուր եկավ մեր Smart Security Owl նախագիծը: Սա չափազանց զվարճալի կատարում էր, և ես ինձ շատ ավելի ապահով եմ զգում ՝ իմանալով, որ իմ տունը հսկվում է մեր վստահելի բուի կողմից:

Եթե կարծում եք, որ սա կլինի Հելոուինի առասպելական հավելում ձեր խելացի տան համար, խնդրում ենք քվեարկեք մեր օգտին Instructables Halloween մրցույթում և ինչպես միշտ, հիշեք, որ հավանում եք, մեկնաբանեք և բաժանորդագրվեք:

Գրանցվեք մեր Փոստային ցուցակին:

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