Mundarija:
- 1 -qadam: 1/3 talablar - Uskuna
- 2 -qadam: 2/3 talablari - Sizning davringiz uchun komponentlar
- 3 -qadam: 3/3 talablari - dasturiy ta'minot
- 4 -qadam: kirish davri
- 5 -qadam: Chiqish davri
- 6 -qadam: [Ixtiyoriy] Borad va lehim komponentlarini bosma sxemasini yaratish
- 7 -qadam: SoC -ni sozlash
- 8 -qadam: C HPS dasturlash
- 9 -qadam: ADCni kartadan raqamli sotib olish
- 10 -qadam: FFTni hisoblash
- 11 -qadam: FFTni ko'rsatish
- 12 -qadam: yig'ish
- 13 -qadam: Ovoz effektlari
- 14 -qadam: [ixtiyoriy] dubulg'a yasash
Video: Spartalik ovoz almashtirgich dubulg'asi: 14 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
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
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
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
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
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
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
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 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
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
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
"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
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
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.
- Kirish davri mikrofon tomonidan olingan ovozli signalni kuchaytiradi, filtrlanadi va ofsetga yuboradi.
- 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.
- 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
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
Mana, biz loyihaning eng qo'lda bosqichida turibmiz:
- Avval dubulg'aning 3D bosilgan turli qismlarini yopishtirdik.
- Yelimlangan qismlar orasidagi bo'shliqlarni to'ldirish uchun biz 3D qalam yordamida pardoz qo'shdik.
- Biz qalam va dubulg'a bilan to'ldirilgan oraliqlarni silliqladik, shundan so'ng rasm yaxshi saqlanib qoldi.
- Biz dubulg'ani 2 ta qatlam bilan bo'yadik: birinchisi antrasit qora rangda, yaqinroqda, ikkinchisi esa yashil rangda quyuq yashil rangga bo'yalgan.
- Nihoyat, dubulg'a tomoniga maktabimizning logotipini bosdik
Tavsiya:
Kovid xavfsizlik dubulg'asi 1 -qism: Tinkerkad sxemalariga kirish !: 20 qadam (rasmlar bilan)
Kovid xavfsizlik dubulg'asi 1 -qism: Tinkerkad sxemalariga kirish !: Salom, do'stim! Bu ikki qismli seriyada biz Tinkerkad sxemalarini qanday ishlatishni bilib olamiz - bu sxemalar qanday ishlashini bilish uchun qiziqarli, kuchli va ta'limiy vosita! O'rganishning eng yaxshi usullaridan biri bu qilishdir. Shunday qilib, biz avval o'z loyihamizni ishlab chiqamiz: th
3D chop etiladigan diskoteka dubulg'asi!: 11 qadam (rasmlar bilan)
3D chop etiladigan diskoteka dubulg'asi!: Klassik Daft Punk "Tomas" dubulg'asidan ilhomlangan. Xonani yoritib bering va bu ajoyib Arduino diskoteka dubulg'asi bilan barcha do'stlaringizga hasad qiling! Loyihani bajarish uchun sizga 3D printer va lehim dazmoli kerak bo'ladi
LED velosiped dubulg'asi: 6 qadam (rasmlar bilan)
LED velosiped dubulg'asi: Bu erda o'tkazgichli bo'yoq yordamida velosiped dubulg'asiga xavfsizlik LEDlarini qanday qo'shish kerak. Men har doim siz velosipedga qo'yadigan chiroqlarni yo'qotardim va ular arzon yoki sifatli emas. Materiallar: Supero'tkazuvchilar bo'yoq o'tkazuvchi epoksi 5 daqiqali epoksi (kattalar uchun issiq elim
Konditsioner velosiped dubulg'asi (qayta ishlangan kompyuterlardan yasalgan): 5 qadam (rasmlar bilan)
Konditsioner velosiped dubulg'asi (qayta ishlangan kompyuterlardan ishlab chiqarilgan): bu teshiklar ustidagi ventilyatorli dubulg'a sizning boshingizdan havoni so'rib oladi va siz uning yuzingizga va boshingizning yoniga tushishini his qilasiz! Juda issiq bo'lgan quyoshli kunlarda velosipedda yurish juda yaxshi. LEDlar tunda velosipedda ham yordam beradi! Barcha qismlar
TEXNIKA VIKING! Kosmik Viking dubulg'asidagi LED shoxlari: ovoz ko'rsatkichi + shaffof Viking dubulg'asi: 6 qadam
TEXNIKA VIKING! Kosmik Viking dubulg'asidagi LED shoxlari: ovoz ko'rsatkichi + shaffof Viking dubulg'asi: Ha! Bu kosmik vikinglar uchun dubulg'a. *** Yangilash, bu Techno Viking dubulg'asi deb o'zgartirilishi kerak *** Lekin uning oktyabr 2010 va men faqat Techno Viking haqida bugun bilib oldim. Mem egri chizig'ining orqasida. Whateva, bu erda u yuqori mahsuldorlikka ega