Përmbajtje:

Sistemi Camara i vetëdijshëm për altoparlantët (SPACS): 8 hapa
Sistemi Camara i vetëdijshëm për altoparlantët (SPACS): 8 hapa

Video: Sistemi Camara i vetëdijshëm për altoparlantët (SPACS): 8 hapa

Video: Sistemi Camara i vetëdijshëm për altoparlantët (SPACS): 8 hapa
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Nëntor
Anonim
Image
Image
Pajisje kompjuterike - Shtypje 3D
Pajisje kompjuterike - Shtypje 3D

Imagjinoni një telefonatë konferencë ku folës të shumtë rrethojnë një aparat fotografik. Ne shpesh hasim aty ku këndi i kufizuar i shikimit të një aparati fotografik shpesh nuk arrin të shikojë personin që flet. Ky kufizim i harduerit degradon ndjeshëm përvojën e përdoruesit. Nëse kamera mund të shikojë altoparlantët aktivë, auditori në distancë do të ishte më i përfshirë në një bisedë gjatë telefonatës. Në këtë projekt, ne propozojmë një sistem (prototip) të kamerës që zbulon dhe ndjek altoparlantin aktiv duke e kthyer kamerën drejt altoparlantit. Sistemi përdor qasje vizuale dhe audio. Kur fytyrat zbulohen nga kamera, ajo përcakton personin që flet dhe llogarit këndin e rrotullimit. Kur fytyrat nuk zbulohen në këndin aktual, sistemi kërkon altoparlantin bazuar në drejtimin e sinjaleve audio të mbërritjes.

Hapi 1: Materialet

Pendë Adafruit nRF52840 Express X 1

www.adafruit.com/product/4062

Përforcues Mikrofoni Electret - MAX4466 X 2

www.adafruit.com/product/1063

Mikro Servo Motor X 1

www.adafruit.com/product/169

Smartphone Android X 1

Hapi 2: Pajisje kompjuterike - Shtypje 3D

Pajisje kompjuterike - Shtypje 3D
Pajisje kompjuterike - Shtypje 3D
Pajisje kompjuterike - Shtypje 3D
Pajisje kompjuterike - Shtypje 3D

Për zbatim të shpejtë, ne vendosëm të printonim 3D rrethimet që na duheshin. Ekzistojnë dy përbërës kryesorë për rrethimet; një tavolinë gramafoni dhe një stendë për smartphone. Ne përdorëm gramafonin nga kjo lidhje (https://www.thingiverse.com/thing:141287), ku siguron kutinë Arduino në pjesën e poshtme dhe një tavolinë rrotulluese që mund të lidhet me një servo motor. Ne përdorëm një mbajtës smartphone për këtë lidhje (https://www.thingiverse.com/thing:2673050), i cili është i palosshëm dhe i rregullueshëm nga këndi i tillë që na lejon të kalibrojmë këndin në mënyrë të përshtatshme. Figura më poshtë tregon pjesët e printuara 3D të mbledhura së bashku.

Hapi 3: Hardware - Komponentët Elektronikë

Hardware - Komponentët Elektronikë
Hardware - Komponentët Elektronikë
Hardware - Komponentët Elektronikë
Hardware - Komponentët Elektronikë

Ka katër përbërës me tela; Pendë Adafruit, dy mikrofona dhe një motor. Për paketimin kompakt, ne ngjitëm (rrethon gri) telat pa përdorur një dërrasë buke. Më poshtë përshkruhet diagrami i qarkut dhe artifakti aktual.

Hapi 4: Softuer

Sistemi ynë përdor kryesisht informacionin vizual nga njohja e fytyrës për të ndjekur folësin pasi është më i saktë. Në mënyrë që Feather të marrë informacion vizual nga aplikacioni Android, ne përdorim Bluetooth Low Energy si metoda kryesore e komunikimit.

Kur zbulohet ndonjë fytyrë, aplikacioni llogarit këndin që motori duhet të rrotullohet për të përqëndruar altoparlantin në qendër të kornizës. Ne dekompozuam skenarët e mundshëm dhe i trajtuam si më poshtë:

  1. Nëse fytyra (et) zbulohet dhe flet, ajo llogarit pikën e mesme të folësve dhe kthen këndin relativ në pendë.
  2. Nëse fytyra (et) zbulohet dhe asnjëra prej tyre nuk flet, ajo gjithashtu llogarit pikën e mesit të fytyrave dhe kthen këndin në përputhje me rrethanat.
  3. Nëse ndonjë fytyrë nuk zbulohet, sistemi ndryshon logjikën e përcjelljes së altoparlantëve nga ajo vizuale në audio.

Softueri SPACS ndodhet në

Hapi 5: Softuer - Tingull

Softuer - Tingull
Softuer - Tingull

Tingull (YH)

Për të gjetur burimin e zërit në hyrje, ne fillimisht u përpoqëm të përdorim diferencën kohore midis dy mikrofonëve. Por nuk ishte aq e saktë sa prisnim pasi shkalla e marrjes së mostrave (~ 900Hz) të Arduino Leopard, ku testuam sinjalet e zërit, ishte e ngadaltë aq sa nuk mund të kapë diferencën kohore midis mikrofonëve 10 cm të ndarë.

Ne ndryshuam planin për të përdorur ndryshimin e intensitetit midis dy sinjaleve të zërit të hyrjes. Si rezultat, pendë merr dy sinjale zanore dhe i përpunon ato për të zbuluar se nga vjen zëri. Përpunimi mund të përshkruhet me hapat e mëposhtëm:

  1. Merrni hyrjet nga dy mikrofona dhe zbritni kompensimin për të marrë amplituda e sinjaleve.
  2. Grumbulloni vlerat absolute të amplitudave për MIC për 500 kamionçina.
  3. Ruani diferencën e vlerave të grumbulluara në radhë që ka 5 lojëra elektronike.
  4. Ktheni shumën e radhëve si vlerë diferencë përfundimtare.
  5. Krahasoni vlerën përfundimtare me pragjet për të vendosur se nga ka ardhur tingulli.

Ne e gjetëm pragun duke vizatuar vlerën përfundimtare në rrethana të ndryshme duke përfshirë tingullin që vjen nga e majta dhe e djathta. Në krye të pragjeve për vlerën përfundimtare, ne gjithashtu vendosëm një prag tjetër për mesataren e amplitudave të grumbulluara në hapin 2 për të filtruar zhurmat.

Hapi 6: Softuer - Zbulimi i fytyrës dhe i të folurit

Për njohjen e fytyrës, ne përdorëm ML Kit për Firebase të lëshuar nga Google (https://firebase.google.com/docs/ml-kit). ML Kit siguron API për zbulimin e fytyrës që kthen kutinë kufizuese të secilës fytyrë dhe pikat e saj referuese, duke përfshirë sytë, hundën, veshët, faqet dhe pikat e ndryshme në gojë. Pasi të zbulohen fytyrat, aplikacioni gjurmon lëvizjen e gojës për të përcaktuar nëse personi flet. Ne përdorim një qasje të thjeshtë të bazuar në prag, e cila jep performancë të besueshme. Ne shfrytëzuam faktin se lëvizja e gojës bëhet më e madhe në horizontale dhe vertikale kur një person flet. Ne llogarisim distancën vertikale dhe horizontale të gojës dhe llogaritim devijimin standard për secilën distancë. Distanca normalizohet në madhësinë e fytyrës. Devijimi standard më i madh tregon të folurit. Kjo qasje ka kufizimin që çdo aktivitet të përfshijë lëvizjen e gojës, duke përfshirë ngrënien, pirjen ose gërhitjen, mund të njihet si të folur. Por, ajo ka një normë të ulët negative të rreme negative.

Hapi 7: Softueri - Motor rrotullues

Softuer - Motor rrotullues
Softuer - Motor rrotullues

Rrotullimi i motorit nuk ishte aq i drejtpërdrejtë sa prisnim për shkak të kontrollit të shpejtësisë së rrotullimit. Për të kontrolluar shpejtësinë, ne deklarojmë një ndryshore globale kundër të tillë që lejon motorin të kthehet vetëm kur ndryshorja arrin një vlerë të caktuar. Ne gjithashtu deklaruam një ndryshore tjetër globale që tregon nëse motori po lëviz për të njoftuar mikrofonat në mënyrë që të shmangë zhurmën që vjen nga rrotullimi i motorit.

Hapi 8: Përmirësimet e së ardhmes

Një nga kufizimet është se motori lëkundet në kënde të caktuara. Duket se motori nuk është aq i fuqishëm sa të kapërcejë çift rrotullues të gjeneruar nga rrotullimi i smartphone -it. Mund të zgjidhet duke përdorur një motor më të fuqishëm ose duke rregulluar pozicionin e smartphone -it drejt qendrës së rrotullimit për të zvogëluar çift rrotullues.

Zbulimi i drejtimit të zërit të bazuar në audio mund të përmirësohet me një metodë më të sofistikuar. Ne do të donim të provonim një qasje akustike të formimit të rrezeve për të përcaktuar drejtimin e zërit që vjen. Ne jemi përpjekur me kohën e mbërritjes së sinjaleve audio. Por, shkalla e marrjes së mostrave të pendës është e kufizuar për të zbuluar ndryshimin në kohë kur mikrofonat janë vetëm rreth 10 cm larg.

Pjesa e fundit që mungon në këtë prototip është vlerësimi i përdorshmërisë. Një mënyrë premtuese për të vlerësuar është integrimi i sistemit me platformën ekzistuese të thirrjeve video dhe vëzhgimi i përgjigjeve të përdoruesve. Këto përgjigje do të ndihmojnë për të përmirësuar sistemin dhe për të bërë përsëritjen tjetër të këtij prototipi.

Recommended: