Mundarija:
- 1 -qadam: materiallar
- 2 -qadam: Uskuna - 3D bosib chiqarish
- 3 -qadam: Uskuna - elektron komponentlar
- 4 -qadam: dasturiy ta'minot
- 5 -qadam: dasturiy ta'minot - ovoz
- 6 -qadam: dasturiy ta'minot - yuz va nutqni aniqlash
- 7 -qadam: dasturiy ta'minot - aylanadigan vosita
- 8 -qadam: kelajakdagi yaxshilanishlar
Video: Karnaydan xabardor bo'lgan Camara tizimi (SPACS): 8 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
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
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
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:
- Agar yuz (lar) aniqlansa va gapirsa, u karnaylarning o'rta nuqtasini hisoblab, Tukning nisbiy burchagini qaytaradi.
- Agar yuz (lar) aniqlansa -da, lekin ularning hech biri gapirmasa, u yuzlarning o'rta nuqtasini hisoblab chiqadi va burchakni mos ravishda qaytaradi.
- 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
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:
- Signallarning amplitudasini olish uchun ikkita mikrofondan kirishni oling va ofsetni olib tashlang.
- 500 ta pikap uchun MIK bo'yicha amplitudalarning mutlaq qiymatlarini to'plang.
- To'plangan qiymatlar farqini 5 uyasi bo'lgan navbatga saqlang.
- Navbatlar yig'indisini yakuniy farq qiymati sifatida qaytaring.
- 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
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:
ATLASdan xabardor bo'ling - STAR WARS - O'lim yulduzi II: 7 qadam (rasmlar bilan)
ATLAS - STAR WARS - Death Star II: Bandai Death Star II plastmassa modelidan xabardor bo'ling. Asosiy xususiyatlarga quyidagilar kiradi: ✅Yorug'lik va Ovoz effekti✅MP3 pleer✅InfraRED masofadan boshqarish pulti✅ Harorat sensori✅3 daqiqa taymeri o'lim yulduzi
Zavodingiz uchun namlik past bo'lgan tuproq haqida ogohlantirish tizimi: 5 qadam
Zavodingiz uchun namlik past bo'lgan tuproq haqida ogohlantirish tizimi: Bir nechta turar -joylarda har xil turdagi idishlarni topish odatiy holdir. Kundalik mashg'ulotlarning ko'pligi tufayli odamlar o'z o'simliklarini sug'orishni unutishadi va ular suv etishmasligidan o'lishadi
Qo'lda karnaydan aqlli qog'oz qutisini yasang: 5 qadam
Qo'lda karnaydan aqlli qog'oz qutisini yasang: Ilgari, men qog'oz quti uchun SAPR faylini loyihalash uchun LibreCAD va Pythondan foydalanish haqida qisqacha ma'lumotga ega bo'ldim. SAPR faylini olganimizda, qog'oz qutini kesish uchun bizga lazer kesgich kerak bo'ladi. Biroq, hamma ham lazerli kesgichdan foydalana olmaydi, shuning uchun yaxshi bo'lardi
IFTTT bilan veb -saytga tashrif buyuruvchilarni xabardor qilish: 6 qadam
IFTTT yordamida veb -saytga tashrif buyuruvchilar haqida bildirishnoma: Kimdir sizning veb -saytingizga tashrif buyurganida, siz Android xabarnomasini olasiz, shuning uchun siz bu IFTTT ilovasini bilish uchun PHP dasturlash tili va oddiy C tili haqida ozgina ma'lumotga ega bo'lishingiz kerak. ishlaydi (
Ovozni karnaydan ko'taring: 4 qadam
Ovozni karnaydan ko'taring: dinamikdan ovozni bir necha qadamda qanday kuchaytirish kerak