Համակարգչային տեսողության վերահսկվող սայլակ մանեկենով. 6 քայլ (նկարներով)
Համակարգչային տեսողության վերահսկվող սայլակ մանեկենով. 6 քայլ (նկարներով)
Anonim
Image
Image
Համակարգչային տեսողության վերահսկվող սայլակ մանեկենով
Համակարգչային տեսողության վերահսկվող սայլակ մանեկենով
Համակարգչային տեսողության վերահսկվող սայլակ մանեկենով
Համակարգչային տեսողության վերահսկվող սայլակ մանեկենով

Նախագիծ ՝ AJ Sapala, Fanyun Peng, Kuldeep Gohel, Ray LC: Անուղղելի ՝ AJ Sapala, Fanyun Peng, Ray LC:

Մենք ստեղծեցինք անվասայլակ ՝ անիվներով, որոնք կառավարվում են Arduino տախտակի միջոցով, որն էլ իր հերթին վերահսկվում է ազնվամորու pi- ի միջոցով, որը բաց CV- ն է մշակում: Երբ openCV- ում դեմքեր ենք հայտնաբերում, շարժիչները շարժում ենք դեպի այն ՝ սայլակը շրջելով այնպես, որ այն դեմքով դեպի մարդը, իսկ մանեկենը (նրա բերանով) շատ սարսափելի լուսանկար կանի և կկիսվի աշխարհի հետ: Սա չարիք է:

Քայլ 1. Սայլակի ձևավորում, նախատիպ և սխեմաներ:

Սայլակի ձևավորում, նախատիպ և սխեմաներ
Սայլակի ձևավորում, նախատիպ և սխեմաներ
Սայլակի ձևավորում, նախատիպ և սխեմաներ
Սայլակի ձևավորում, նախատիպ և սխեմաներ
Սայլակի ձևավորում, նախատիպ և սխեմաներ
Սայլակի ձևավորում, նախատիպ և սխեմաներ
Սայլակի ձևավորում, նախատիպ և սխեմաներ
Սայլակի ձևավորում, նախատիպ և սխեմաներ

Նախնական հայեցակարգը հիմնված էր այն գաղափարի վրա, որ շարժական կտորը կկարողանա լրտեսել չկասկածող դասարանցիներին և նրանց տգեղ լուսանկարել: Մենք ցանկանում էինք, որ կարողանանք մարդկանց վախեցնել ՝ շարժվելով դեպի նրանց, չնայած չէինք ենթադրում, որ շարժիչային մեխանիկական խնդիրներն այդքան դժվար կլինեն: Մենք հաշվի առանք այն հնարավորությունները, որոնք կտորը կդարձնեն հնարավորինս գրավիչ (չար ձևով) և որոշեցինք մանեկեն տեղադրել սայլակի վրա, որը կարող է շարժվել դեպի համակարգչային տեսողություն ունեցող մարդկանց մոտ: Արդյունքի նախատիպը պատրաստել է AJ- ն փայտից և թղթից, մինչդեռ Ռեյը և Ռեբեկկան OpenCV- ին ստիպել են աշխատել ազնվամորու pi- ով ՝ համոզվելով, որ դեմքերը կարելի է հուսալիորեն հայտնաբերել:

Քայլ 2: Նյութեր և կարգավորում

Նյութեր և կարգավորում
Նյութեր և կարգավորում
Նյութեր և կարգավորում
Նյութեր և կարգավորում
Նյութեր և կարգավորում
Նյութեր և կարգավորում

1x սայլակ (https://www.amazon.com/Medline-Lightweight-Transpo…

2x սկուտերային շարժիչներ

2x Cytron շարժիչի տախտակներ

1x arduino UNO R3 (https://www.amazon.com/Arduino-Uno-R3-Microcontrol…

1x ազնվամորի պի 3 (https://www.amazon.com/Raspberry-Pi-RASPBERRYPI3-M…

1x ազնվամորի pi տեսախցիկ v2 (https://www.amazon.com/Raspberry-Pi-Camera-Module-…

1x 12v լիցքավորվող մարտկոց

նրբատախտակ

L- փակագծեր

ռետինե հատակներ

Քայլ 3. Սայլակին կցորդիչի և մանեկենի գլխիկի շարժիչի պատրաստում

Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում
Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում
Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում
Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում
Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում
Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում
Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում
Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում

AJ- ն սարքեց սարք, որը սկուտերների շարժիչները (2) ամրացնում է անիվի աթոռի ներքևին և ամրացնում սկիպիդարների փակագիծը պատվերով պատրաստված ռետինե ժամանակացույցի գոտու վրա: Յուրաքանչյուր շարժիչ տեղադրվում է առանձին և ամրագրված է համապատասխան անիվի վրա: Երկու անիվ, երկու շարժիչ: Այնուհետև շարժիչները սնվում և սնվում են երկու Cytron շարժիչային տախտակների միջոցով Arduino (1) մինչև Raspberry Pi (1), բոլոր տարրերը սնվում են 12 վոլտ լիցքավորվող մարտկոցով (1): Շարժիչային ապարատները ստեղծվել են նրբատախտակի, L- փակագծերի, քառակուսի փակագծերի և փայտի ամրացումների միջոցով: Փաստացի շարժիչի շուրջ փայտե ամրակ ստեղծելով ՝ շարժիչը սայլակի ներքևում տեղում տեղադրելը շատ ավելի հեշտ էր և կարող էր տեղափոխվել ժամանակացույցի գոտին ձգելու համար: Շարժիչային ապարատները տեղադրվել են սայլակի մետաղյա շրջանակի միջոցով հորատման և փայտը L- փակագծերով ամրացնելու միջոցով:

Timամացույցի գոտիները պատրաստված էին ռետինե հատակից: Ռետինե հատակին արդեն իսկ պատրաստված էր մի քայլ, որը չափերով նման էր շարժիչների պտտվող բրա: Յուրաքանչյուր կտոր կտրված էր այն լայնությամբ, որն աշխատում է շարժիչների պտտվող բրա հետ: Կտրված կաուչուկի յուրաքանչյուր կտոր միաձուլվում էր իրար հետ ՝ ստեղծելով «գոտի» ՝ մի ծայրը և հակառակ ծայրը հղկելով և միացնելով փոքր քանակությամբ Barge սոսինձ: Barge- ը շատ վտանգավոր է, և այն օգտագործելիս պետք է դիմակ կրել, օգտագործել նաև օդափոխություն: Ես ստեղծեցի ժամացույցի գոտու չափսերի մի քանի տեսակներ ՝ գերձիգ, ամուր, չափավոր: Այնուհետեւ գոտին պետք է միացվեր անիվին: Անիվն ինքնին ունի փոքր քանակությամբ մակերես ՝ հիմքի վրա ՝ գոտուն ուղեկցելու համար: Այս փոքր տարածքը մեծացվեց ստվարաթղթե գլանով, որի գոտու վրա տաք ժամանակ սոսնձված էր ժամանակացույցի ռետին: Այս կերպ ժամանակացույցի գոտին կարող է բռնել անիվը ՝ օգնելով այն համաժամանակորեն պտտվել պտտվող սկուտերի շարժիչի հետ:

AJ- ն նաև ստեղծեց կեղծ գլուխ, որը միավորում է Raspberry Pi- ի տեսախցիկի մոդուլը: Ռեյը օգտագործեց կեղծ գլուխը և տեղադրեց Pi տեսախցիկը և տախտակը կեղծիքի բերանի շրջանում: Սլոթերը ստեղծվել են USB և HDMI միջերեսների համար, իսկ տեսախցիկը կայունացնելու համար օգտագործվում է փայտե ձող: Տեսախցիկը տեղադրված է հատուկ տպված 3D կտորի վրա, որն ունի կցորդ 1/4-20 պտուտակների համար: Ֆայլը կցված է (ընդունված է Ray- ի ՝ thingaverse- ից տեղավորվելու համար): AJ- ն գլուխը ստեղծեց ստվարաթղթի, սոսնձի ժապավենի և մարկերներով շիկահեր պարիկի միջոցով: Բոլոր տարրերը դեռ նախատիպի փուլում են: Կեղծ գլուխը կեղծված էր կին մանեկենի մարմնին և տեղադրված սայլակի նստատեղին: Գլուխը ամրացված էր մանեկենին ՝ օգտագործելով ստվարաթղթե ձող:

Քայլ 4: Գրեք և ճշգրտեք օրենսգիրքը

Օրենսգրքի գրառում և ճշգրտում
Օրենսգրքի գրառում և ճշգրտում
Օրենսգրքի գրառում և ճշգրտում
Օրենսգրքի գրառում և ճշգրտում

Ռեբեկկան և Ռեյը առաջին անգամ փորձեցին տեղադրել openCV- ն անմիջապես raspi- ի հետ python- ով (https://pythonprogramming.net/raspberry-pi-camera-…, սակայն այն կարծես կենդանի չի աշխատում: Ի վերջո, Python- ի միջոցով openCV տեղադրելու բազմաթիվ փորձերից հետո և ձախողումը, մենք որոշեցինք անցնել pi- ով, քանի որ ProcessC- ում openCV գրադարանը բավականին լավ է աշխատում: Տե՛ս https://github.com/processing/processing/wiki/Rasp… Նկատի ունեցեք նաև, որ այն աշխատում է GPIO նավահանգիստների հետ, որից հետո կարող ենք օգտվել վերահսկել arduino- ն ՝ օգտագործելով սերիական հաղորդակցություն:

Ռեյը գրել է համակարգչային տեսողության կոդը, որը հենվում է դեմքերի հայտնաբերման համար կցված xml ֆայլին: Հիմնականում այն տեսնում է, եթե դեմքի ուղղանկյան կենտրոնը գտնվում է կենտրոնից աջ կամ ձախ, և շարժիչները շարժեք հակառակ ուղղություններով, որպեսզի աթոռը շրջվի դեպի դեմքը: Եթե դեմքը բավականաչափ մոտ է, շարժիչները շարժվում են լուսանկարելու համար: Եթե դեմքեր չեն հայտնաբերվում, մենք նույնպես դադարում ենք ավելորդ վնասվածքներ չառաջացնելու համար (կարող եք փոխել այդ գործառույթը, եթե կարծում եք, որ դա բավականաչափ չար չէ):

Ռեբեկկան Arduino- ի կոդը գրեց շարժիչային տախտակի հետ ինտերֆեյսի միջոցով `օգտագործելով Pi- ի վրա Processing- ի սերիական հաղորդակցությունը: Կարևոր ստեղները բացում են USB սերիական ACM0 պորտը Arduino- ին և միացնում ազնվամորի pi- ին Arduino- ին `USB մալուխի միջոցով: Միացրեք Arduino- ն DC շարժիչի վարորդին `շարժիչի արագությունն ու ուղղությունը վերահսկելու համար` ազնվամորի pi- ից ուղղություն և արագության հրամաններ ուղարկելով Arduino: Ըստ էության, Ray- ի մշակման կոդը շարժիչին ասում է արագությունը, մինչդեռ Arduino- ն արդար գուշակություն է անում հրամանի տևողության վրա:

Քայլ 5. Միացրեք սայլակը, մանեկենը և ծածկագիրը և թեստը:

Image
Image
Միավորել սայլակը, մանեկենը և ծածկագիրը և թեստը
Միավորել սայլակը, մանեկենը և ծածկագիրը և թեստը
Միավորել սայլակը, մանեկենը և ծածկագիրը և թեստը
Միավորել սայլակը, մանեկենը և ծածկագիրը և թեստը

Բոլոր մասերը միասին դնելով ՝ մենք պարզեցինք, որ հիմնական խնդիրը շարժիչի միացումն էր սայլակի անիվներին, քանի որ ժամանակացույցի գոտիները հաճախ սայթաքում էին: Երկու շարժիչներն էլ տեղադրված են եղել

անվասայլակ գլխիվայր `ավելի հեշտ տեղադրման համար: Երկու շարժիչներն էլ լավ էին աշխատում միացված լինելով 12 վոլտ մարտկոցի աղբյուրին: Երբ սայլակն ինքն էր ուղղահայաց շրջվում, շարժիչները դժվարանում էին աթոռը հետ ու առաջ շարժել ՝ հենց աթոռի ծանրության պատճառով: Մենք փորձեցինք այնպիսի բաներ, ինչպիսիք են ՝ ժամանակացույցի գոտու լայնությունը փոխելը, գոտին կողքերին ամրացնելը և շարժիչ ուժի ավելացումը, բայց ոչ մեկը հուսալի չաշխատեց: Այնուամենայնիվ, մենք կարողացանք հստակ ցույց տալ, երբ դեմքերը գտնվում են աթոռի յուրաքանչյուր կողմում, շարժիչները կշարժվեն համապատասխան հակառակ ուղղությամբ `ազնվամորու pi- ի հետ դեմքի հայտնաբերման շնորհիվ, այնպես որ Processing և Arduino կոդերն աշխատում են ըստ նախատեսվածի, և շարժիչները կարող են համապատասխան վերահսկվել: Հաջորդ քայլերը աթոռի անիվները քշելու և մանեկենը կայուն դարձնելու ավելի ամուր միջոց դարձնելն է:

Քայլ 6. Վայելեք ձեր նոր չար մանեկեն-սայլակը

Վայելեք ձեր նոր չար մանեկեն-սայլակը
Վայելեք ձեր նոր չար մանեկեն-սայլակը
Վայելեք ձեր նոր չար մանեկեն-սայլակը
Վայելեք ձեր նոր չար մանեկեն-սայլակը
Վայելեք ձեր նոր չար մանեկեն-սայլակը
Վայելեք ձեր նոր չար մանեկեն-սայլակը
Վայելեք ձեր նոր չար մանեկեն-սայլակը
Վայելեք ձեր նոր չար մանեկեն-սայլակը

Մենք շատ բան սովորեցինք շարժիչներ և վարորդներ սարքելու մասին: Մեզ հաջողվեց վարել դեմքի հայտնաբերում ազնվամորու փոսով փոքր մեքենայի վրա: Մենք պարզեցինք, թե ինչպես կառավարել շարժիչները շարժիչային տախտակներով և շարժիչների աշխատանքի հզորությունը: Մենք պատրաստեցինք մի քանի զովացուցիչ մանեկեններ և կերպարներ և նախատիպեր, և նույնիսկ տեսախցիկ դրեցինք նրա բերանում: Մենք զվարճանում էինք որպես թիմ, որը ծաղրում էր այլ մարդկանց: Դա հատուցող փորձ էր:

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