Мазмуну:

Спикер-кабардар Camara системасы (SPACS): 8 кадам
Спикер-кабардар Camara системасы (SPACS): 8 кадам

Video: Спикер-кабардар Camara системасы (SPACS): 8 кадам

Video: Спикер-кабардар Camara системасы (SPACS): 8 кадам
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Июль
Anonim
Image
Image
Аппараттык - 3D басып чыгаруу
Аппараттык - 3D басып чыгаруу

Бир камераны бир нече спикер курчап алган конференц -чалууну элестетиңиз. Биз көп учурда камеранын чектүү көрүү бурчу сүйлөп жаткан адамды карай албаган учурларга туш болобуз. Бул аппараттык чектөө колдонуучунун тажрыйбасын олуттуу түрдө начарлатат. Эгерде камера активдүү динамиктерди карай алса, алыскы аудитория чалуу учурунда сүйлөшүүгө көбүрөөк катышмак. Бул долбоордо биз камераны спикерге карай буруп активдүү спикерди байкап, ээрчип турган (прототип) камера системасын сунуштайбыз. Система визуалдык жана аудиого негизделген ыкманы колдонот. Камерадан жүздөр аныкталганда, ал сүйлөп жаткан адамды аныктайт жана бурулуу бурчун эсептейт. Жүздөр учурдагы бурчта аныкталбаганда, система келүү аудио сигналдарынын багытына негизделген динамикти издейт.

1 -кадам: материалдар

Adafruit Feather nRF52840 Express X 1

www.adafruit.com/product/4062

Электр микрофонун күчөткүч - 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), ал бүктөлүүчү жана бурч менен жөнгө салынуучу, бул бурчту ыңгайлуу калибрлөөгө мүмкүндүк берет. Төмөндөгү сүрөттө чогулган 3D басылган бөлүктөр көрсөтүлгөн.

3 -кадам: Аппараттык - Электрондук компоненттер

Аппараттык - Электрондук компоненттер
Аппараттык - Электрондук компоненттер
Аппараттык - Электрондук компоненттер
Аппараттык - Электрондук компоненттер

Төрт зымдуу компонент бар; Adafruit Feather, эки микрофон жана мотор. Ыкчам таңгактоо үчүн биз зымдарды нан тактасын колдонбостон (боз тегерекчелерге) ширетип койдук. Төмөндө схема жана чыныгы артефакт сүрөттөлөт.

4 -кадам: Программалык камсыздоо

Биздин система, негизинен, жүздү таануудагы визуалдык маалыматты колдонот, анткени спикерди ээрчүү такыраак. Feather Android колдонмосунан визуалдык маалымат алышы үчүн, биз байланыштын негизги ыкмасы катары Bluetooth Low Energy колдонобуз.

Кандайдыр бир бет табылганда, колдонмо динамикти кадрдын ортосуна буруу үчүн бурулушу керек болгон бурчту эсептейт. Биз мүмкүн болгон сценарийлерди ажыратып, төмөндөгүдөй иштедик:

  1. Эгерде бет (тер) аныкталып, сүйлөп жатса, анда спикерлердин орто чекитин эсептеп, мамыкка салыштырмалуу бурчту кайтарат.
  2. Эгерде бет (тер) табылып, бирок алардын эч кимиси сүйлөбөсө, анда ал ошондой эле жүздөрдүн орто чекитин эсептеп, бурчту ошого жараша кайтарат.
  3. Эгерде кандайдыр бир бет аныкталбаса, система динамикти көзөмөлдөө логикасын визуалдыктан аудиого өзгөртөт.

SPACS программасы https://github.com/yhoonkim/cse599h-fp дарегинде жайгашкан.

5 -кадам: Программалык камсыздоо - Үн

Программалык камсыздоо - Үн
Программалык камсыздоо - Үн

Үн (YH)

Кирүүчү үндүн булагын табуу үчүн, адегенде эки микрофондун ортосундагы убакыт айырмасын колдонууга аракет кылдык. Бирок биз күткөндөй так болгон жок, анткени биз үн сигналдарын текшерген Arduino Leopard үлгүлөрүнүн ылдамдыгы (~ 900Hz) 10 см аралыкта микрофондордун ортосундагы убакыт айырмасын ала албайт.

Биз эки киргизүү үн сигналынын ортосундагы интенсивдүүлүк айырмасын колдонуу үчүн планды өзгөрттүк. Натыйжада, мамык эки үн сигналын алат жана аларды үн кайдан келгенин аныктоо үчүн иштетет. Иштетүү төмөнкү кадамдар менен сүрөттөлүшү мүмкүн:

  1. Сигналдардын амплитудасын алуу үчүн эки микрофондун кириштерин алыңыз жана офсетти алып салыңыз.
  2. 500 пикап үчүн MICтин амплитудаларынын абсолюттук маанилерин топтоо.
  3. Топтолгон баалуулуктардын айырмасын 5 уячасы бар кезекке сактаңыз.
  4. Кезектин суммасын акыркы айырма мааниси катары кайтарыңыз.
  5. Үн кайдан келгенин чечүү үчүн акыркы маанини босоголор менен салыштырыңыз.

Биз босогону ар кандай шарттарда, анын ичинде солдон жана оңдон чыккан үндүн акыркы баасын пландап таптык. Акыркы маанинин босогосунун үстүнө, биз дагы 2 -кадамдагы топтолгон амплитудалардын орточо үнүн чыпкалоо үчүн дагы бир чекти койдук.

6 -кадам: Программалык камсыздоо - Бет жана сүйлөөнү аныктоо

Жүздү таануу үчүн биз Google тарабынан чыгарылган Firebase үчүн ML Kit колдондук (https://firebase.google.com/docs/ml-kit). ML Kit жүздү аныктоочу API менен камсыз кылат, ал ар бир беттин чектөө кутусун жана анын белгилерин, анын ичинде көздү, мурунду, кулактарды, жаактарды жана ооздогу ар кандай чекиттерди кайтарат. Жүздөр табылгандан кийин, колдонмо адамдын сүйлөп жаткандыгын аныктоо үчүн ооз кыймылын көзөмөлдөйт. Биз ишенимдүү аткарууну камсыз кылган босого негизделген ыкманы колдонобуз. Адам сүйлөп жатканда ооз кыймылы горизонталдуу да, вертикалдуу да чоңоет. Биз ооздун вертикалдуу жана горизонталдык аралыктарын эсептеп, ар бир аралык үчүн стандарттык четтөөнү эсептейбиз. Алыстык жүздүн чоңдугуна чейин нормалдаштырылган. Чоң стандарттык четтөө сүйлөөнү билдирет. Бул ыкма ар бир иш оозеки кыймылды камтыйт, анын ичинде тамактануу, ичүү же эсин чыгарууну сүйлөө катары таанууга болот. Бирок, анын жалган терс көрсөткүчү төмөн.

7 -кадам: Программалык камсыздоо - Ротордук мотор

Программалык камсыздоо - айлануучу мотор
Программалык камсыздоо - айлануучу мотор

Мотордун айлануусу айлануу ылдамдыгын көзөмөлдөгөндүктөн биз күткөндөй жөнөкөй болгон жок. Ылдамдыкты көзөмөлдөө үчүн, биз глобалдык эсептегич өзгөрмөнү жарыялайбыз, мындай өзгөрмө белгилүү бир мааниге жеткенде гана моторду бурууга мүмкүндүк берет. Биз дагы бир глобалдык өзгөрмөнү жарыяладык, мотор микрофондорго билдирүү үчүн кыймылдап жаткандыгын көрсөтүп, мотордун айлануусунан чыккан үндөн сактануу үчүн.

8 -кадам: Келечектеги жакшыртуулар

Чектөөлөрдүн бири - мотор белгилүү бир бурчтарда термелет. Мотор смартфондун айлануусунан пайда болгон моментти жеңе турганчалык күчтүү эмес окшойт. Бул моментти азайтуу үчүн күчтүү моторду колдонуу же смартфондун айлануу борборуна карата абалын тууралоо аркылуу чечилиши мүмкүн.

Аудиого негизделген үн багытын аныктоо жакшыраак ыкма менен жакшыртылышы мүмкүн. Кирүүчү үндүн багытын аныктоо үчүн биз акустикалык нур берүү ыкмасын колдонууну каалайбыз. Биз аудио сигналдар келген убакыт менен аракет кылдык. Бирок, Feather үлгүлөрүнүн ылдамдыгы микрофондор 10смдин тегерегинде болгондо убакыт айырмасын аныктоо үчүн чектелген.

Бул прототиптин жок болгон акыркы бөлүгү - бул колдонууга баа берүү. Баалоонун келечектүү бир жолу - системаны учурдагы видео чалуу платформасы менен интеграциялоо жана колдонуучулардын жоопторун байкоо. Бул жооптор системаны жакшыртууга жана бул прототиптин кийинки итерациясын жасоого жардам берет.

Сунушталууда: