Mundarija:

Spartalik ovoz almashtirgich dubulg'asi: 14 qadam (rasmlar bilan)
Spartalik ovoz almashtirgich dubulg'asi: 14 qadam (rasmlar bilan)

Video: Spartalik ovoz almashtirgich dubulg'asi: 14 qadam (rasmlar bilan)

Video: Spartalik ovoz almashtirgich dubulg'asi: 14 qadam (rasmlar bilan)
Video: 【旧車】駐車場には稀少なお宝がたくさん停まっていた!ハコスカ ケンメリ ギャランΣ! 2024, Dekabr
Anonim
Spartalik ovozni o'zgartiruvchi dubulg'a
Spartalik ovozni o'zgartiruvchi dubulg'a
Spartalik ovozni o'zgartiruvchi dubulg'a
Spartalik ovozni o'zgartiruvchi dubulg'a

Salom! Biz Sorbonna universiteti politexnika maktabining 4 talabasidan iborat jamoamiz.

  • Lui Buchert
  • Bilol Melehi
  • Bao Tinh Piot
  • Marko Longep

Ushbu loyiha bizning tadqiqotlarimiz doirasida amalga oshiriladi va uning maqsadi qator vositalarni qo'lga kiritish, shuningdek, nazariy yutuqlarimizni namoyish etishdir.

Mashhur ob'ekt ma'lum bir video o'yin qahramoniga o'xshash dubulg'a ko'rinishini oladi, uning ismi yo'qoladi. Dizayn tomoni uchun bizda dinamikdan chiqadigan audio signalning Furye konvertatsiyasini aks ettiruvchi ekran mavjud. Ushbu minigarnituraning maqsadi - tanlangan effektlar yordamida real vaqtda tashuvchining ovozini o'zgartirish.

Ta'lim maqsadlari:

  • Ovozni mikrofondan yozib oling
  • Signalni kuchaytirish, filtrlash, raqamlashtirish
  • Signalning FFT ni amalga oshiring
  • Bu FFTni ekranda ko'rsatish
  • Signal sintezi
  • Karnaydan ovoz chiqarib oling
  • Ovoz tovushiga ta'sirlarni amalga oshiring (aks sado, aks sado va hk.)

Endi biz fonni qo'ydik va loyihani taqdim qildik, qo'lingizni cho'zish vaqti keldi!

1 -qadam: 1/3 talablar - Uskuna

Talablar 1/3 - Uskuna
Talablar 1/3 - Uskuna

Sizning dubulg'angizni muvaffaqiyatli qurish uchun bizga qurilmani ishlatish uchun qo'shimcha uskunalar kerak bo'ladi.

  • Terasic + Adafruit TFT LCD displeyli DE0-Nano-SoC ishlab chiqish kengashi (Arduino)
  • Dubulg'a yasash uchun 3D printerdan foydalanish (agar siz universitet talabasi bo'lsangiz, universitetingizga yaqinlashsangiz, ba'zilarida laboratoriyalar talabalar uchun mavjud)
  • Internetga ulangan va minimal ulanishga ega kompyuter (USB, Ethernet). Kompyuteringizda kuchli protsessor bo'lishi kerak, chunki Qsys -da dasturlarni tuzish ko'p vaqtni oladi.
  • (Shart emas) Gerber fayllaridan elektron platalarni (PCB) ishlab chiqaruvchi, elektron o'lchamlarini qisqartirish uchun + lehimlovchi temir, komponentlarni tenglikka joylashtirish.
  • (Tavsiya etiladi): Bizning ko'rsatmamiz yordamida ishingizdan zavqlanish uchun yaxshi qahva:)

2 -qadam: 2/3 talablari - Sizning davringiz uchun komponentlar

2/3 talablari - Sizning davringiz uchun komponentlar
2/3 talablari - Sizning davringiz uchun komponentlar
2/3 talablari - Sizning davringiz uchun komponentlar
2/3 talablari - Sizning davringiz uchun komponentlar
2/3 talablari - Sizning davringiz uchun komponentlar
2/3 talablari - Sizning davringiz uchun komponentlar

Mana sizning sxemangiz uchun zarur bo'lgan komponentlar:

  • Texas Instrument LM386 AB sinfidagi ovoz kuchaytirgich
  • Non taxtasi
  • Erkak-Erkak, Erkak-Ayol kabellari to'plami
  • LM358P raqamli-analohli konvertor (DAC)
  • Karnay
  • Analog sxemada ishlatiladigan kichik mikrofon
  • 1kOm dan 220kOm gacha bo'lgan rezistorlar to'plami
  • Kondensator 1,5nF
  • Kondensator 50nF
  • Kondensator 100nF
  • Kondensator 100uF
  • Kondensator 220uF
  • x4 kondansatkichlari 10 uF

3 -qadam: 3/3 talablari - dasturiy ta'minot

3/3 talablari - dasturiy ta'minot
3/3 talablari - dasturiy ta'minot
3/3 talablari - dasturiy ta'minot
3/3 talablari - dasturiy ta'minot

Va nihoyat, sizga dasturiy ta'minot kerak bo'ladi:

  • Quartus 15.1: Lite versiyasi
  • C kompilyatori (masalan, gcc)
  • PCB dizayni uchun altium
  • SoC xaritasi bilan bog'lanish uchun Altera SoC o'rnatilgan to'plami

  • Macun

4 -qadam: kirish davri

Kirish davri
Kirish davri
Kirish davri
Kirish davri
Kirish davri
Kirish davri
Kirish davri
Kirish davri

Keling, sxemani tuzaylik. Devor paneliga yig'ish uchun yuqoridagi rasmdan foydalaning. Shuningdek, pinlar qanday ulanganligini bilish uchun BreadBoard rasmini va uning ichidagi sxemani ko'rasiz. Butun sxema 5V to'g'ridan -to'g'ri oqim (DC) bilan quvvatlanadi. Buning uchun siz USB-B konvertori yoki funktsiya generatori bo'lgan 5V batareyadan foydalanishingiz mumkin.

Ba'zi eslatmalar:

  • 5V quvvat manbai va zamin non taxtasining alohida gorizontal chiziqlariga ulangan
  • Agar siz ikkita komponentni parallel ravishda ulashni xohlasangiz, ularni umumiy taxtaning qatoriga qo'ying
  • Agar siz 2 ta ketma -ket komponentni ulashni xohlasangiz, komponentlar non paneli umumiy satrida faqat bitta pin bo'lishi kerak.

Nonni qanday ishlatish va unga sxemani o'rnatish bo'yicha maxsus ko'rsatmalarni tomosha qilishdan tortinmang. LM358P ovoz kuchaytirgichining pin holatini diqqat bilan o'qishni unutmang (yuqoridagi rasmga qarang).

5 -qadam: Chiqish davri

Chiqish davri
Chiqish davri
Chiqish davri
Chiqish davri
Chiqish davri
Chiqish davri
Chiqish davri
Chiqish davri

4-qadam bilan bir xil ko'rsatmalar. To'rtta kirish: SDI, CS emas, SCK emas, LDAC sizning DE0-Nano-Soc kartangizdan. Ularni qanday yaratishni keyinroq ko'rib chiqamiz.

LM386 audio kuchaytirgichining pin o'rnini diqqat bilan o'qishni unutmang (yuqoridagi rasmga qarang).

6 -qadam: [Ixtiyoriy] Borad va lehim komponentlarini bosma sxemasini yaratish

[Ixtiyoriy] Borad va lehim komponentlarini bosma sxemasini yaratish
[Ixtiyoriy] Borad va lehim komponentlarini bosma sxemasini yaratish
[Ixtiyoriy] Borad va lehim komponentlarini bosma sxemasini yaratish
[Ixtiyoriy] Borad va lehim komponentlarini bosma sxemasini yaratish
[Ixtiyoriy] Borad va lehim komponentlarini bosma sxemasini yaratish
[Ixtiyoriy] Borad va lehim komponentlarini bosma sxemasini yaratish

Agar sizda elektron karta printeriga ega bo'lish baxtiga muyassar bo'lsangiz yoki undan foydalana olsangiz, biz o'z bosma elektron kartamizni (PCB) yaratmoqchimiz. E'tibor bering, bu qadam ixtiyoriy. Bu qadam faqat sizning sxemangizni non panelidan PCBga o'tkazishdir.

Sizga bu 2 GERBER fayl kerak bo'ladi.

Bu fayllar Altiumda qilingan. Kompyuteringizni chop etish uchun ularni PCB printer dasturida ishlating. PCBni olganingizdan so'ng, PCB toza ekanligiga va yo'llar to'g'ri chop etilganligiga ishonch hosil qiling.

Mana, haqiqiy shartnoma: lehimlash. Yuqoridagi 2 ta rasm - bu tenglikni platasidagi sxemasi. Har bir komponentning nomlari bor (R6, C4, MK1 va boshqalar). 4 va 5 -qadamdagi rasmlarda komponentlar parametrlari ko'rsatilgan (qarshilik, o'tkazuvchanlik..). Har bir komponentni taxtadan PCBga nomlariga ko'ra joylashtiring.

Har bir narsani lehimlantiruvchi temir bilan lehimlaganingizdan so'ng, har qanday komponentni voltmetr bilan tekshiring va qisqa tutashuv mavjudligini tekshiring.

7 -qadam: SoC -ni sozlash

SoC sozlamalari
SoC sozlamalari
SoC sozlamalari
SoC sozlamalari

SoC sozlamalariga kelsak, siz terminalda o'rnatilgan SoC to'plamiga kiritilgan ba'zi buyruqlar va skriptlarni ishga tushirishingiz kerak bo'ladi. Buning uchun siz $ PATH qo'shishingiz kerak bo'ladi. PATH terminalda buyruqni bajarayotganda yo'l ko'rsatgan kataloglardan fayl qidirish uchun ishlatiladi. Buning uchun quyidagi buyruq qatorini kiriting:

eksport PATH =/cygdrive/c/altera_lite/15.1/quartus/sopc_builder/bin: $ PATH

Keyin sof fayldan sarlavhalar yaratish uchun buyruq satrini kiriting. Siz loyihangizni Quartus -da kompilyatsiya qilish orqali sof faylni olasiz. Buning uchun:./generate_header yozing.

8 -qadam: C HPS dasturlash

C HPS dasturlash
C HPS dasturlash

Biz bu qismda ikkita narsani amalga oshirishimiz kerak, ya'ni ADC qiymatini o'qish va uni SPIga yozish.

1. ADC qiymatini o'qing

ADC mavjud bo'lgan xotira manziliga to'g'ridan -to'g'ri kirish mumkin emas, aslida kartada mavjud bo'lgan linux tizimi xotiraning ajralishini o'rnatadi. ADC manziliga haqiqatan ham kirish uchun biz mmap funktsiyasidan foydalanamiz.

"h2p_lw_spi_addr = virtual_base + ((imzosiz uzun) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) va (imzosiz uzun) (HW_REGS_MASK))";

Bu ko'rsatma ADC uchun ajratilgan xotira manziliga etib borish uchun asosiy manzilning boshiga ofset qo'shishga va natijada paydo bo'ladigan manzilda mantiq VA maskalashni hisobga olishga imkon beradi.

Shundan so'ng, uning qiymatini olish uchun dasturda ko'rsatgichni ajratish kerak bo'ladi.

2. ADI qiymatini SPIda yozing

Manipulyatsiya bir xil, bu safar biz mmapni SPI tomonidan ajratilgan manzilga tushish uchun beramiz. SPIda yozish paytida, texnik hujjatlar + 1 manziliga adc qiymatini yozishingiz kerakligini ko'rsatadi.

"*(h2p_lw_spi_addr+1) = ((0x1 << 12) | *h2p_lw_adc_addr);"

Bu ko'rsatma SPIga yozish imkonini beradi. Haqiqatan ham bit 4, shuning uchun 1 << 12 - bu SPIni faollashtirishga imkon beradigan bit. Mantiqiy OR bilan biz SPIga faollashtirish bitini ham, ADC qiymatini ham beramiz.

9 -qadam: ADCni kartadan raqamli sotib olish

Kartadan ADCni raqamli sotib olish
Kartadan ADCni raqamli sotib olish
Kartadan ADCni raqamli sotib olish
Kartadan ADCni raqamli sotib olish
Kartadan ADCni raqamli sotib olish
Kartadan ADCni raqamli sotib olish
Kartadan ADCni raqamli sotib olish
Kartadan ADCni raqamli sotib olish

Birinchidan, siz kompyuteringizning Ethernet IP -manzilini Boshqarish paneli -> Tarmoq -> Karta Parmesallari orqali o'rnatishingiz kerak bo'ladi. Kartaning chekilgan interfeysini, xususiyatini, ipv4 manzilini tanlang va belgilangan IP, niqob va boshqalarni kiriting.

Keyin, kartani quvvat ulagichi yonidan mikro USB kabeli bilan ulang. Quartus dasturchisini oching va eksportni ishga tushiring. Ushbu manipulyatsiya kartani har o'chirgandan so'ng qayta bajariladi.

Bu safar Ethernet raz'emining yoniga ulanish uchun mikro USB vilkasi kabelini o'zgartiring. Endi Putty bilan kartaga ketma -ket havola orqali ulanish kerak bo'ladi. Konfiguratsiya fotosuratlarda ko'rinib turibdi, uning maqsadi COM5 -ni COM -ga almashtirish, so'ngra qurilma menejerida topishingiz mumkin bo'lgan raqam (uni ochish uchun Windows logotipini o'ng tugmasini bosing).

Enter tugmasini bosing, siz ulandingiz.

Loyihani qayta ishga tushirish uchun ma'lumot: - Kartaga mos keladigan chekilgan ipni to'g'rilang - Kartani yoqing, har safar quvvatni yoqsangiz, kartada tuzilgan loyihani kvartus ostiga "dastur" bilan qo'yish kerak. Bu micro -USB porti orqali amalga oshiriladi - Dastur natijasini ko'rsatish uchun biz ko'proq mikro USB ishlatamiz, lekin UART - ketma -ket COM5 (yoki 6 soatlik gestinnaire perifasi) uchun konfiguratsiya qilingan kartaga ulang. - Parolni o'rnating (passwd) - ifconfig ethxx IPchoice IP -manzilini o'rnating (IP -dan shaxsiy kompyuter uchun) - Qsys bo'yicha sarlavhani terminal o'rnatilgan (PATH eksporti) bilan yarating - make - scp l exec xarita - dasturni macun ostida bajaring

10 -qadam: FFTni hisoblash

FFT hisobi
FFT hisobi

"Fast Fourier Transform" dasturini C dasturida olish uchun biz Mark Borgerding: Kiss FFT tomonidan yozilgan kutubxonadan foydalanamiz. Kutubxonani bu yerdan yuklab olishingiz mumkin: https://kissfft.sourceforge.net/. Signal effektlarini o'zgartirish va qo'llash uchun signalga FFTni qo'llash zarur. Shuningdek, u signal spektrini ko'rsatishga xizmat qilishi mumkin.

C dasturining birinchi bosqichi FFT natijasini saqlash uchun xotirani ajratishdir. Xotiraning hajmi FFTni hisoblash uchun ishlatiladigan nuqta soniga bog'liq. Qancha ko'p ochko to'plasangiz, FFT shunchalik yaxshi bo'ladi. Biroq, dastur sekinroq ishlaydi va ko'proq xotiradan foydalanadi. E'tibor bering, siz kiss_fft funktsiyasidan ikkita massivni olasiz: funktsiyani kiritish va chiqarish (cx_in va cx_out)

Bizning massiv yangi FFT qiymatlari bilan to'ldirilgandan so'ng, ya'ni r = Win - 1 bo'lsa, biz FFTni qayta ishlaymiz. Displeyga kelsak, biz faqat spektrning ijobiy qismini ko'rsatamiz, chunki manfiy va musbat qismi o'rtasida simmetriya mavjud.

Gorizontal o'qga kelsak, biz asosiy chastotalar cho'qqilarini ajratish uchun tepalik qiymatlarini 100*balandlik/(balandlik²) ga kamaytirmoqdamiz.

Biz ADC qiymatlarini o'qish chastotasini aniqlash uchun usleep tizim chaqiruvidan foydalanamiz. Bu chastota hozirda 1, 5 Gts ga o'rnatilgan.

11 -qadam: FFTni ko'rsatish

FFT ko'rsatiladi
FFT ko'rsatiladi
FFT ko'rsatiladi
FFT ko'rsatiladi

Adafruit TFT LCD displeyidagi misolga asoslanib, bu erda mavjud: https://www.terasic.com/downloads/cd-rom/de0-nano-s… biz boshqaruv kengashi NIOS-ni dasturlashtirdik, shunda u o'qiy oladi. ADC qiymati.

Shunday qilib, ADC reestri NIOS va HPS o'rtasida taqsimlanadi, chunki ADC qiymatlari NIOS ekranida FFTni ko'rsatish uchun ishlatiladi va shu qiymatlar kartadan chiqarilishi va nihoyat konvertatsiya qilinishi uchun SPIda yoziladi. analog signalni olish uchun DAC tomonidan.

12 -qadam: yig'ish

O'rnatish
O'rnatish

Biz deyarli tugadik! Siz loyihaning har bir qismini (kirish sxemasi, chiqish davri va taxta) yig'ishingiz kerak bo'ladi. Quartus loyihasi bo'yicha qismlarni to'g'rilash pimlariga ulanganligiga ishonch hosil qiling.

  1. Kirish davri mikrofon tomonidan olingan ovozli signalni kuchaytiradi, filtrlanadi va ofsetga yuboradi.
  2. Kartada mavjud bo'lgan C dasturi, biz ilgari ko'rgan ADC qiymatlarini o'qiydi va uni SPIga yozadi, shunda biz kartaning GPIO qiymatini tiklay olamiz.
  3. Keyin SPI -ning chiqish GPIO -si bizning DAC -dan dekodlanadigan ma'lumotni uzatadi va dinamikga etib borish uchun yugurish orqali kuchaytiriladi.

13 -qadam: Ovoz effektlari

Ovoz effektlari
Ovoz effektlari
Ovoz effektlari
Ovoz effektlari

Qolgan yagona qadam - ovoz effektlari.

Mumkin bo'lgan ta'sirlar:

  • Yuqori chastotali filtr
  • Past chastotali filtr

Siz tugma yordamida effektlar o'rtasida almashishingiz mumkin. Bu tugma C dasturidagi o'zgaruvchini o'zgartiradi, shuning uchun u to'g'ri effektni qo'llay oladi.

14 -qadam: [ixtiyoriy] dubulg'a yasash

[Ixtiyoriy] dubulg'a yasash
[Ixtiyoriy] dubulg'a yasash
[Ixtiyoriy] dubulg'a yasash
[Ixtiyoriy] dubulg'a yasash
[Ixtiyoriy] dubulg'a yasash
[Ixtiyoriy] dubulg'a yasash

Mana, biz loyihaning eng qo'lda bosqichida turibmiz:

  1. Avval dubulg'aning 3D bosilgan turli qismlarini yopishtirdik.
  2. Yelimlangan qismlar orasidagi bo'shliqlarni to'ldirish uchun biz 3D qalam yordamida pardoz qo'shdik.
  3. Biz qalam va dubulg'a bilan to'ldirilgan oraliqlarni silliqladik, shundan so'ng rasm yaxshi saqlanib qoldi.
  4. Biz dubulg'ani 2 ta qatlam bilan bo'yadik: birinchisi antrasit qora rangda, yaqinroqda, ikkinchisi esa yashil rangda quyuq yashil rangga bo'yalgan.
  5. Nihoyat, dubulg'a tomoniga maktabimizning logotipini bosdik

Tavsiya: