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

Բարձրախոսներին տեղեկացված Camara համակարգ (SPACS) ՝ 8 քայլ
Բարձրախոսներին տեղեկացված Camara համակարգ (SPACS) ՝ 8 քայլ

Video: Բարձրախոսներին տեղեկացված Camara համակարգ (SPACS) ՝ 8 քայլ

Video: Բարձրախոսներին տեղեկացված Camara համակարգ (SPACS) ՝ 8 քայլ
Video: Prüfungsvorbereitung B2/C1- "Let's Go" 2024, Նոյեմբեր
Anonim
Image
Image
Սարքավորումներ - 3D տպագրություն
Սարքավորումներ - 3D տպագրություն

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

Քայլ 1: Նյութեր

Adafruit փետուր nRF52840 Express X 1

www.adafruit.com/product/4062

Electret խոսափողի ուժեղացուցիչ - MAX4466 X 2

www.adafruit.com/product/1063

Micro Servo Motor X 1

www.adafruit.com/product/169

Android սմարթֆոն X 1

Քայլ 2. Սարքաշար - 3D տպագրություն

Սարքավորումներ - 3D տպագրություն
Սարքավորումներ - 3D տպագրություն
Սարքավորումներ - 3D տպագրություն
Սարքավորումներ - 3D տպագրություն

Արագ իրականացման համար մենք որոշեցինք 3D տպել մեզ անհրաժեշտ պարիսպները: Պարիսպների համար կա երկու հիմնական բաղադրիչ. պտտվող և սմարթֆոնների տակդիր: Մենք օգտագործեցինք շրջադարձային սարքը այս հղումից (https://www.thingiverse.com/thing:141287), որտեղ այն ապահովում է Arduino պատյան ներքևում և պտտվող սեղան, որը կարելի է միացնել սերվո շարժիչով: Մենք օգտագործեցինք սմարթֆոնների տակդիր այս հղումից (https://www.thingiverse.com/thing:2673050), որը ծալովի է և կարգավորելի է այնպես, որ թույլ է տալիս մեզ հարմար հարմարեցնել անկյունը: Ստորև նկարը ցույց է տալիս եռաչափ տպված մասերը միասին հավաքված:

Քայլ 3. Սարքաշար - Էլեկտրոնային բաղադրիչներ

Սարքավորումներ - Էլեկտրոնային բաղադրիչներ
Սարքավորումներ - Էլեկտրոնային բաղադրիչներ
Սարքավորումներ - Էլեկտրոնային բաղադրիչներ
Սարքավորումներ - Էլեկտրոնային բաղադրիչներ

Կան չորս լարային բաղադրիչներ; Adafruit փետուր, երկու խոսափող և շարժիչ: Կոմպակտ փաթեթավորման համար մենք կպցրեցինք (մոխրագույն շրջանակներ) լարերը ՝ առանց հացաթուղթ օգտագործելու: Ստորև նկարագրված է սխեմայի սխեման և իրական արտեֆակտը:

Քայլ 4: Softwareրագրակազմ

Մեր համակարգը հիմնականում օգտագործում է դեմքի ճանաչման տեսողական տեղեկատվությունը `խոսողին հետևելու համար, քանի որ այն ավելի ճշգրիտ է: Որպեսզի Փետուրը տեսողական տեղեկատվություն ստանա Android հավելվածից, մենք օգտագործում ենք Bluetooth Low Energy- ը ՝ որպես հաղորդակցության հիմնական մեթոդ:

Երբ որևէ դեմք է հայտնաբերվում, հավելվածը հաշվարկում է այն անկյունը, որն անհրաժեշտ է շարժիչին պտտելու համար ՝ բարձրախոսը կադրի կենտրոնում կենտրոնացնելու համար: Մենք քանդեցինք հնարավոր սցենարները և վարվեցինք հետևյալ կերպ.

  1. Եթե դեմքը (երերը) հայտնաբերվում և խոսում են, այն հաշվարկում է բարձրախոսների միջին կետը և վերադարձնում հարաբերական անկյունը Փետուրին:
  2. Եթե դեմքը (երերը) հայտնաբերվում են, և նրանցից ոչ մեկը չի խոսում, այն նաև հաշվարկում է դեմքերի միջին կետը և համապատասխանաբար վերադարձնում անկյունը:
  3. Եթե որևէ դեմք չի հայտնաբերվում, համակարգը փոխում է բարձրախոսներին հետևելու տրամաբանությունը տեսողականից դեպի ձայնային:

SPACS ծրագիրը գտնվում է https://github.com/yhoonkim/cse599h-fp հասցեում:

Քայլ 5. Softwareրագրակազմ - ձայն

Softwareրագրային ապահովում - ձայնային
Softwareրագրային ապահովում - ձայնային

Ձայն (YH)

Մուտքային ձայնի աղբյուրը գտնելու համար մենք նախ փորձեցինք օգտագործել երկու խոսափողի միջև եղած ժամանակային տարբերությունը: Բայց դա այնքան էլ ճշգրիտ չէր, որքան մենք սպասում էինք, քանի որ Arduino Leopard- ի նմուշառման արագությունը (~ 900 Հց), որտեղ մենք փորձարկել էինք ձայնային ազդանշանները, դանդաղ էին այնպես, որ այն չէր կարող վերցնել 10 սմ հեռավորության վրա գտնվող խոսափողների միջև եղած ժամանակային տարբերությունը:

Մենք փոխեցինք երկու մուտքային ձայնային ազդանշանների ինտենսիվության տարբերությունն օգտագործելու ծրագիրը: Արդյունքում, փետուրը վերցնում է երկու ձայնային ազդանշան և մշակում դրանք ՝ պարզելու համար, թե որտեղից է հնչում ձայնը: Մշակումը կարող է նկարագրվել հետևյալ քայլերով.

  1. Վերցրեք երկու խոսափողի մուտքերը և հանեք օֆսեթը ՝ ազդանշանների ամպլիտուդները ստանալու համար:
  2. Կուտակեք ամպլիտուդների բացարձակ արժեքները մեկ MIC- ի համար 500 պիկապի համար:
  3. Պահպանեք կուտակված արժեքների տարբերությունը 5 անցք ունեցող հերթում:
  4. Վերադարձեք հերթերի գումարը որպես վերջնական տարբերության արժեք:
  5. Համեմատեք վերջնական արժեքը շեմերի հետ `որոշելու, թե որտեղից է հնչում ձայնը:

Մենք գտանք շեմը ՝ վերջնական արժեքը գծագրելով տարբեր հանգամանքներում, ներառյալ ձախից և աջից հնչող ձայնը: Վերջնական արժեքի շեմերի վրա մենք նաև սահմանում ենք մեկ այլ շեմ `կուտակված ամպլիտուդների միջին 2 -րդ քայլում` աղմուկները զտելու համար:

Քայլ 6. Softwareրագրակազմ. Դեմքի և խոսքի հայտնաբերում

Դեմքի ճանաչման համար մենք օգտագործեցինք Google- ի կողմից թողարկված ML Kit Firebase- ի համար (https://firebase.google.com/docs/ml-kit): ML Kit- ը տրամադրում է դեմքի հայտնաբերման API, որը վերադարձնում է յուրաքանչյուր դեմքի սահմանափակ տուփը և նրա ուղենիշները, ներառյալ աչքերը, քիթը, ականջները, այտերը և բերանի տարբեր կետերը: Երբ դեմքերը հայտնաբերվեն, ծրագիրը հետևում է բերանի շարժմանը `որոշելու, թե արդյոք մարդը խոսում է: Մենք օգտագործում ենք պարզ շեմային մոտեցում, որը տալիս է հուսալի կատարում: Մենք օգտագործեցինք այն փաստը, որ բերանի շարժումը մեծանում է ինչպես հորիզոնական, այնպես էլ ուղղահայաց, երբ մարդը խոսում է: Մենք հաշվարկում ենք բերանի ուղղահայաց և հորիզոնական հեռավորությունը և հաշվարկում ստանդարտ շեղումը յուրաքանչյուր հեռավորության համար: Հեռավորությունը նորմալացվում է դեմքի չափին համապատասխան: Ավելի մեծ ստանդարտ շեղումը ցույց է տալիս խոսելը: Այս մոտեցումն ունի այն սահմանափակումը, որ յուրաքանչյուր գործունեություն ներառում է բերանի շարժում, ներառյալ ուտելը, խմելը կամ հորանջելը, կարող են ճանաչվել որպես խոսող: Բայց, այն ունի ցածր կեղծ բացասական տոկոսադրույք:

Քայլ 7: Softwareրագրակազմ - Պտտվող շարժիչ

Softwareրագրային ապահովում - Պտտվող շարժիչ
Softwareրագրային ապահովում - Պտտվող շարժիչ

Շարժիչի պտույտն այնքան էլ պարզ չէր, որքան մենք սպասում էինք ՝ պտտման արագության վերահսկման շնորհիվ: Արագությունը վերահսկելու համար մենք հայտարարում ենք գլոբալ հաշվիչ փոփոխական այնպիսին, որը թույլ է տալիս շարժիչին պտտել միայն այն ժամանակ, երբ փոփոխականը հասնում է որոշակի արժեքի: Մենք նաև հայտարարեցինք մեկ այլ գլոբալ փոփոխականի մասին, որը ցույց է տալիս, թե արդյոք շարժիչը շարժվում է խոսափողներին տեղյակ պահելու համար, որպեսզի կարողանա խուսափել շարժիչի պտույտից եկող ձայնից:

Քայլ 8. Ապագա բարելավումներ

Սահմանափակումներից մեկն այն է, որ շարժիչը շարժվում է որոշակի անկյան տակ: Թվում է, որ շարժիչն այնքան հզոր չէ, որ կարողանա հաղթահարել սմարթֆոնի պտտման արդյունքում առաջացած ոլորող մոմենտը: Այն կարող է լուծվել `օգտագործելով ավելի հզոր շարժիչ կամ սմարթֆոնի դիրքը ռոտացիայի կենտրոնի նկատմամբ հարմարեցումը նվազեցնելու համար:

Ձայնի վրա հիմնված ձայնի ուղղության հայտնաբերումը կարող է բարելավվել ավելի բարդ մեթոդով: Մենք կցանկանայինք փորձել ճառագայթների ձևավորման մոտեցում `որոշելու մուտքային ձայնի ուղղությունը: Մենք փորձել ենք ձայնային ազդանշանների ժամանման ժամանակ: Բայց, Փետուրի նմուշառման արագությունը սահմանափակ է `ժամանակի տարբերությունը հայտնաբերելու համար, երբ խոսափողերը գտնվում են ընդամենը 10 սմ հեռավորության վրա:

Այս նախատիպի վերջնական բաց թողնված հատվածը կիրառելիության գնահատումն է: Գնահատման մեկ խոստումնալից միջոց է համակարգը ինտեգրվել առկա տեսազանգերի հարթակին և դիտել օգտվողների արձագանքները: Այդ արձագանքները կօգնեն բարելավել համակարգը և կատարել այս նախատիպի հաջորդ կրկնությունը:

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