Mundarija:

Karnaydan xabardor bo'lgan Camara tizimi (SPACS): 8 qadam
Karnaydan xabardor bo'lgan Camara tizimi (SPACS): 8 qadam

Video: Karnaydan xabardor bo'lgan Camara tizimi (SPACS): 8 qadam

Video: Karnaydan xabardor bo'lgan Camara tizimi (SPACS): 8 qadam
Video: Telefonning 15 ta siz bilmagan maxfiy kodlari/Телефоннинг сиз билмаган 15 та махфий кодлари 2024, Noyabr
Anonim
Image
Image
Uskuna - 3D bosib chiqarish
Uskuna - 3D bosib chiqarish

Tasavvur qiling, konferents -aloqa, bir nechta dinamik bir kamerani o'rab oladi. Kameraning cheklangan ko'rish burchagi gapiradigan odamga qaray olmaydigan joylarga tez -tez duch kelamiz. Bu apparat cheklovi foydalanuvchi tajribasini sezilarli darajada yomonlashtiradi. Agar kamera faol dinamiklarga qarasa, masofali auditoriya suhbat chog'ida ko'proq suhbatlashar edi. Ushbu loyihada biz kamerani dinamikga burab, faol dinamikni aniqlaydigan va unga ergashadigan (prototipli) kamera tizimini taklif qilamiz. Tizim vizual va ovozli yondashuvni qo'llaydi. Kameradan yuzlar aniqlanganda, u gapiradigan odamni aniqlaydi va burilish burchagini hisoblab chiqadi. Yuzlar joriy burchak ostida aniqlanmaganida, tizim ovoz signallarining kelish yo'nalishiga qarab dinamikni qidiradi.

1 -qadam: materiallar

Adafruit tuklar nRF52840 Express X 1

www.adafruit.com/product/4062

Elektret mikrofon kuchaytirgichi - MAX4466 X 2

www.adafruit.com/product/1063

Mikro Servo Dvigatel X 1

www.adafruit.com/product/169

Android smartfoni X 1

2 -qadam: Uskuna - 3D bosib chiqarish

Uskuna - 3D bosib chiqarish
Uskuna - 3D bosib chiqarish
Uskuna - 3D bosib chiqarish
Uskuna - 3D bosib chiqarish

Tez amalga oshirish uchun biz kerakli korpuslarni 3D bosib chiqarishga qaror qildik. Qoplamalar uchun ikkita asosiy komponent mavjud; aylanuvchi stol va smartfon uchun stend. Biz aylanuvchi stolni ushbu havola orqali ishlatdik (https://www.thingiverse.com/thing:141287), u erda Arduino korpusi pastki qismida va servo dvigatel bilan bog'lanishi mumkin bo'lgan aylanadigan stol mavjud. Biz bu havoladan (https://www.thingiverse.com/thing:2673050) smartfon stendidan foydalandik, bu burchakni sozlanishi, bu burchakni qulay sozlash imkonini beradi. Quyidagi rasmda 3D bosilgan qismlar birlashtirilgan.

3 -qadam: Uskuna - elektron komponentlar

Uskuna - elektron komponentlar
Uskuna - elektron komponentlar
Uskuna - elektron komponentlar
Uskuna - elektron komponentlar

To'rtta simli komponent mavjud; Adafruit Feather, ikkita mikrofon va motor. Yilni qadoqlash uchun biz non taxtasidan foydalanmasdan simlarni lehimladik (kulrang doiralar). Quyida elektron diagramma va haqiqiy artefakt tasvirlangan.

4 -qadam: dasturiy ta'minot

Bizning tizim, birinchi navbatda, dinamikni kuzatish uchun yuzni aniqlash vizual ma'lumotidan foydalanadi, chunki u aniqroq. Tuklar Android ilovasidan vizual ma'lumotlarni olishlari uchun biz asosiy muloqot usuli sifatida Bluetooth Low Energy -dan foydalanamiz.

Har qanday yuz aniqlanganda, ilova karnayni ramkaning markaziga yo'naltirish uchun dvigatel aylanishi kerak bo'lgan burchakni hisoblab chiqadi. Biz mumkin bo'lgan stsenariylarni ajratdik va quyidagicha ishladik:

  1. Agar yuz (lar) aniqlansa va gapirsa, u karnaylarning o'rta nuqtasini hisoblab, Tukning nisbiy burchagini qaytaradi.
  2. Agar yuz (lar) aniqlansa -da, lekin ularning hech biri gapirmasa, u yuzlarning o'rta nuqtasini hisoblab chiqadi va burchakni mos ravishda qaytaradi.
  3. Agar biron bir yuz aniqlanmasa, tizim dinamikni kuzatish mantig'ini vizualdan audioga o'zgartiradi.

SPACS dasturi https://github.com/yhoonkim/cse599h-fp manzilida joylashgan.

5 -qadam: dasturiy ta'minot - ovoz

Dasturiy ta'minot - Ovoz
Dasturiy ta'minot - Ovoz

Ovoz (YH)

Kiruvchi tovush manbasini topish uchun biz avval ikkita mikrofon orasidagi vaqt farqini ishlatishga harakat qildik. Ammo bu biz kutganimizdek aniq emas edi, chunki biz ovozli signallarni sinovdan o'tkazgan Arduino Leopard-ning namuna olish tezligi (~ 900Hz) 10 sm masofadagi mikrofonlar orasidagi vaqt farqini aniqlay olmasdi.

Biz ikkita kirish ovozli signallari orasidagi farqni ishlatish rejasini o'zgartirdik. Natijada, tuklar ikkita tovush signalini oladi va ularni tovushning qaerdan kelganini aniqlash uchun qayta ishlaydi. Qayta ishlashni quyidagi bosqichlar bilan ta'riflash mumkin:

  1. Signallarning amplitudasini olish uchun ikkita mikrofondan kirishni oling va ofsetni olib tashlang.
  2. 500 ta pikap uchun MIK bo'yicha amplitudalarning mutlaq qiymatlarini to'plang.
  3. To'plangan qiymatlar farqini 5 uyasi bo'lgan navbatga saqlang.
  4. Navbatlar yig'indisini yakuniy farq qiymati sifatida qaytaring.
  5. Ovoz qayerdan kelganini aniqlash uchun yakuniy qiymatni chegaralar bilan solishtiring.

Biz ostonani har xil sharoitda, shu jumladan chapdan va o'ngdan keladigan ovozning yakuniy qiymatini chizish orqali topdik. Yakuniy qiymatning ostonalari ustiga, biz shovqinlarni filtrlash uchun 2 -qadamda to'plangan amplitudalarning o'rtacha qiymatini ham qo'ydik.

6 -qadam: dasturiy ta'minot - yuz va nutqni aniqlash

Yuzni aniqlash uchun biz Google tomonidan chiqarilgan Firebase uchun ML Kit-ni ishlatdik (https://firebase.google.com/docs/ml-kit). ML Kit yuzni aniqlash API -ni taqdim etadi, u har bir yuzning chegara qutisini va ko'zlari, burun, quloqlari, yonoqlari va og'zidagi turli nuqtalarni o'z ichiga oladi. Yuzlar aniqlangandan so'ng, dastur og'iz harakatini kuzatib, odam gapirayotganini aniqlaydi. Biz ishonchli ishlashni ta'minlaydigan oddiy chegaraga asoslangan yondashuvdan foydalanamiz. Odam gapirganda, og'iz harakati gorizontal va vertikal ravishda kattalashib borayotganidan foydalanganmiz. Biz og'izning vertikal va gorizontal masofasini hisoblaymiz va har bir masofa uchun standart og'ishni hisoblaymiz. Yuzning kattaligiga masofa normallashtiriladi. Katta standart og'ish gapirishni ko'rsatadi. Bu yondashuv cheklovga ega, har bir harakat og'iz harakatini o'z ichiga oladi, shu jumladan ovqatlanish, ichish yoki esnashni gapirish deb bilish mumkin. Biroq, u past salbiy ko'rsatkichga ega.

7 -qadam: dasturiy ta'minot - aylanadigan vosita

Dasturiy ta'minot - aylanadigan vosita
Dasturiy ta'minot - aylanadigan vosita

Dvigatelning aylanish tezligi boshqarilishi tufayli biz kutganimizdek oddiy emas edi. Tezlikni nazorat qilish uchun biz global hisoblagich o'zgaruvchini e'lon qilamiz, shunda faqat o'zgaruvchi ma'lum bir qiymatga yetganda dvigatelning aylanishiga imkon beradi. Shuningdek, biz boshqa global o'zgaruvchini e'lon qildik, bu dvigatel dvigatelning aylanishidan keladigan tovushni oldini olish uchun mikrofonni xabardor qilish uchun harakatlanayotganligini ko'rsatadi.

8 -qadam: kelajakdagi yaxshilanishlar

Cheklovlardan biri shundaki, vosita ma'lum burchaklarda chayqaladi. Aftidan, dvigatel smartfonni aylantirish natijasida hosil bo'ladigan momentni yengishga qodir emas. Buni kuchliroq dvigatel yordamida yoki momentni pasaytirish uchun smartfon o'rnini aylanish markaziga moslashtirish orqali hal qilish mumkin.

Ovozli ovoz yo'nalishini aniqlashni yanada murakkab usul bilan yaxshilash mumkin. Kiruvchi tovush yo'nalishini aniqlash uchun biz akustik nurlanish usulini sinab ko'rmoqchimiz. Ovozli signallar kelishi bilan sinab ko'rdik. Biroq, tuklar namuna olish tezligi mikrofonlar atigi 10 sm masofada bo'lgan vaqt farqini aniqlash uchun cheklangan.

Ushbu prototipning oxirgi yo'qolgan qismi - bu foydalanish qulayligini baholash. Baholashning istiqbolli usullaridan biri bu tizimni mavjud video qo'ng'iroqlar platformasi bilan birlashtirish va foydalanuvchilarning javoblarini kuzatishdir. Bu javoblar tizimni takomillashtirishga va ushbu prototipning keyingi takrorlanishiga yordam beradi.

Tavsiya: