Mündəricat:
- Addım 1: Tələblər 1/3 - Avadanlıq
- Addım 2: Tələblər 2/3 - Dövrəniz üçün Komponentlər
- Addım 3: Tələblər 3/3 - Proqram təminatı
- Addım 4: Giriş dövrəsi
- Addım 5: Çıxış Devresi
- Addım 6: [İSTEĞE BAĞLI] Çaplı Dövrə Borad və Lehim Komponentləri Yaratmaq
- Addım 7: SoC Quraşdırması
- Addım 8: C HPS -in proqramlaşdırılması
- Addım 9: Kartdan ADC -nin Rəqəmsal Alınması
- Addım 10: FFT hesablanması
- Addım 11: FFT -nin göstərilməsi
- Addım 12: Quraşdırma
- Addım 13: Səs effektləri
- Addım 14: [İSTEĞE BAĞLI] Dəbilqə hazırlamaq
Video: Spartalı Səs dəyişdirən Dəbilqə: 14 Addım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Salam! Sorbonna Universitetinin Politexnik Məktəbindən 4 tələbədən ibarət bir komandayıq:
- Louis Buchert
- Bilal Melehi
- Bao Tinh Piot
- Marko Longépé
Bu layihə tədqiqatlarımızın bir hissəsi olaraq həyata keçirilir və nəzəri nailiyyətlərimizi nümayiş etdirməklə yanaşı, bir çox vasitələri ələ almağı hədəfləyir.
Məşhur obyekt, adı itiriləcək müəyyən bir video oyunun qəhrəmanına bənzəyən bir dəbilqə görünüşü alır. Dizayn tərəfi üçün dinamikdən gələn səs siqnalının Fourier çevrilməsini göstərən bir ekrana sahibik. Bu qulaqlığın məqsədi bir sıra seçilmiş effektlərdən istifadə edərək daşıyıcının səsini real vaxtda dəyişdirməkdir.
Təhsil məqsədləri:
- Səsi mikrofondan çəkin
- Siqnalı gücləndirin, süzün, rəqəmləşdirin
- Bir siqnalın FFT -ni həyata keçirin
- Bu FFT -ni ekranda göstərin
- Siqnal sintezi
- Dinamikdən bir səs çıxarın
- Səs effektlərini həyata keçirin (yankı, əks -səda və s.)
İndi arxa plana qoyduq və layihəni təqdim etdik, əllərinizi çəkməyin vaxtı gəldi!
Addım 1: Tələblər 1/3 - Avadanlıq
Dəbilqənizi uğurla düzəltmək üçün cihazı işə salmaq üçün bəzi avadanlıqlara ehtiyacımız olacaq.
- Terasic + Adafruit TFT LCD Ekranı (Arduino) tərəfindən DE0-Nano-SoC İnkişaf Şurası
- Dəbilqə etmək üçün 3D printerə giriş (Bir universitet tələbəsisinizsə universitetinizə yaxınlaşırsınızsa, bəzilərində tələbələr üçün əlçatan laboratoriyalar var)
- Minimum internet bağlantısı olan bir kompüter (USB, Ethernet). Kompüterinizin güclü bir prosessora da ehtiyacı var, çünki Qsys -də proqram tərtib etmək çox vaxt aparır.
- (Lazım deyil) Komponentləri PCB -yə yerləşdirmək üçün dövrə ölçüsünü kiçiltmək üçün + bir lehimləmə dəmiri üçün Gerber fayllarından Çaplı Devre Kartları (PCB) edən bir printer.
- (Tövsiyə olunur): Təlimatçımızla işinizdən zövq almaq üçün yaxşı bir qəhvə:)
Addım 2: Tələblər 2/3 - Dövrəniz üçün Komponentlər
Dövrünüz üçün lazım olan komponentlər:
- Texas Instrument LM386 AB sinifli səs gücləndiricisi
- Çörək lövhəsi
- Kişi-Kişi, Kişi-Dişi kabellər dəsti
- LM358P Rəqəmsal-Analoh çeviricisi (DAC)
- Dinamik
- Analoq dövrədə istifadə olunan kiçik mikrofon
- 1kOhm -dan 220kOhm -ə qədər olan bir rezistor dəsti
- Kondansatör 1.5nF
- Kondansatör 50nF
- Kondansatör 100nF
- Kondansatör 100 uF
- Kondansatör 220 uF
- x4 Kondansatörler 10 uF
Addım 3: Tələblər 3/3 - Proqram təminatı
Nəhayət, proqram təminatına ehtiyacınız olacaq:
- Quartus 15.1: Lite versiyası
- C tərtibçisi (məsələn, gcc)
- PCB Dizaynı üçün Altium
-
Altera'nın SoC kartı SoC xəritəsi ilə ünsiyyət qurmaq üçün quraşdırılmış dəstidir
- Macun
Addım 4: Giriş dövrəsi
Dövr quraq. Çörək taxtanıza yığmaq üçün yuxarıdakı sxemdən istifadə edin. Pimlərin necə bağlandığını görmək üçün BreadBoard şəklini və içindəki dövrə də görəcəksiniz. Bütün dövrə 5V birbaşa cərəyan (DC) ilə təchiz edilmişdir. Bunun üçün USB-B çeviricisi və ya funksiya generatoru olan 5V batareyadan istifadə edə bilərsiniz.
Bəzi xatırlatmalar:
- 5V enerji təchizatı və torpaq çörək taxtasının ayrı -ayrı üfüqi xətləri ilə bağlıdır
- Paralel olaraq 2 komponenti birləşdirmək istəyirsinizsə, onları çörək taxtasının ümumi xəttinə qoyun
- 2 serial komponenti bağlamaq istəyirsinizsə, komponentlər çörək panelinin ümumi xəttində yalnız bir pin olmalıdır.
Çörək taxtasının necə istifadə ediləcəyi ilə bağlı xüsusi bir təlimatı izləməkdən çəkinməyin. LM358P Audio Gücləndiricinin pin mövqeyini də diqqətlə oxumağı unutmayın (yuxarıdakı şəklə baxın)
Addım 5: Çıxış Devresi
Adım 4 ilə eyni təlimatlar. Dörd giriş: SDI, CS deyil, SCK, LDAC DE0-Nano-Soc Boardunuzdan deyil. Bunların necə yaradılacağını daha sonra görəcəyik.
LM386 Audio Gücləndiricinin pin mövqelərini diqqətlə oxumağı unutmayın (yuxarıdakı şəklə baxın)
Addım 6: [İSTEĞE BAĞLI] Çaplı Dövrə Borad və Lehim Komponentləri Yaratmaq
Bir Devre Yazıcıya sahib olmaq şansınız varsa və ya istifadə edə bilsəniz, öz Çaplı Devre Kartımızı (PCB) yaradacağıq. Qeyd edək ki, bu addım isteğe bağlıdır. Bu addım yalnız dövrənizi çörək taxtasından PCB -yə köçürməkdən ibarətdir.
Bu 2 GERBER sənədinə ehtiyacınız olacaq.
Bu sənədlər Altiumda hazırlanmışdır. PCB -ni çap etmək üçün onları PCB printer proqramınızda istifadə edin. PCB -ni əldə etdikdən sonra, PCB -nin təmiz olduğundan və parçaların düzgün çap olunduğundan əmin olun.
İndi burada əsl anlaşma gəlir: Lehimləmə. Yuxarıdakı 2 şəkil, PCB üzərindəki dövrə xəritəsidir. Hər bir komponentin adları var (R6, C4, MK1 və s.). Addım 4 və 5 -dəki şəkillər komponentlərin parametrlərini (Müqavimət, keçiricilik..) göstərir. Çörək taxtanızdan hər bir komponenti adlarına uyğun olaraq PCB -yə yerləşdirin.
Hər şeyi lehimləmə dəmirinizlə lehimlədikdən sonra hər bir komponenti bir voltmetre ilə yoxlayın və qısa qapanma olub olmadığını yoxlayın.
Addım 7: SoC Quraşdırması
SoC quraşdırma ilə əlaqədar olaraq, bir terminal daxilində SoC quraşdırılmış dəstinə daxil olan bəzi əmrləri və skriptləri işə salmalı olacaqsınız. Bunu etmək üçün bir az $ PATH əlavə etməlisiniz. PATH, bir əmr işləyərkən yolun verdiyi qovluqlarda bir fayl axtarmaq üçün bir terminalda istifadə olunur. Bunu etmək üçün aşağıdakı əmr satırını yazın:
ixrac PATH =/cygdrive/c/altera_lite/15.1/quartus/sopc_builder/bin: $ PATH
Sonra bir sof faylından başlıqlar yaratmaq üçün əmr satırını yazın. Layihənizi Quartus -da tərtib edərək sof faylını əldə edirsiniz. Bunu etmək üçün:./generate_header yazın.
Addım 8: C HPS -in proqramlaşdırılması
Bu hissədə 2 şeyi həyata keçirməliyik, yəni ADC -nin dəyərini oxuyun və SPI -də yazın.
1. ADC dəyərini oxuyun
ADC -nin olduğu yaddaş ünvanı birbaşa əldə edilə bilməz, əslində kartda olan linux sistemi yaddaşın soyutlanmasını qurur. ADC ünvanına həqiqətən daxil olmaq üçün mmap funksiyasından istifadə edəcəyik.
"h2p_lw_spi_addr = virtual_base + ((işarəsiz uzun) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (imzasız uzun) (HW_REGS_MASK));"
Bu təlimat, ADC üçün ayrılmış yaddaşın ünvanına çatmaq və yaranan ünvanda bir məntiq VƏ maskelemeyi nəzərə almaq üçün əsas ünvanın əvvəlinə bir ofset əlavə etməyə imkan verir.
Bundan sonra, dəyərini əldə etmək üçün proqramdakı göstəricini ləğv etmək kifayətdir.
2. ADİ -nin dəyərini SPI -də yazın
Manipulyasiya eynidır, bu dəfə mmapa SPI tərəfindən ayrılan ünvana enmək üçün ofset veririk. SPI -də yazarkən texniki sənədlər + 1 ünvanına adc dəyərini yazmalı olduğunuzu göstərir.
"*(h2p_lw_spi_addr+1) = ((0x1 << 12) | *h2p_lw_adc_addr);"
Bu təlimat SPI -yə yazmağa imkan verir. Həqiqətən bit 4, buna görə də 1 << 12, SPI -ni aktivləşdirməyə imkan verən bitdir. Məntiqli bir OR ilə, buna görə də həm aktivləşdirmə bitini, həm də ADC -nin dəyərini SPI -yə veririk.
Addım 9: Kartdan ADC -nin Rəqəmsal Alınması
Əvvəlcə İdarəetmə Paneli -> Şəbəkə -> Kart Paralları vasitəsilə kompüterinizin Ethernet IP ünvanını təyin etməlisiniz. Kartın ethernet interfeysini, xüsusiyyətini, ipv4 ünvanını seçin və sabit bir IP, maska və s. Daxil edin …
Sonra, kartı USB yuvası tərəfindən mikro USB kabeli ilə bağlayın. Quartus proqramçısını açın və ixracı başladın. Kartın hər söndürülməsindən sonra bu manipulyasiya yenidən ediləcək.
Bu dəfə Ethernet jakının yanına qoşulmaq üçün mikro USB fiş kabelini dəyişdirin. İndi Putty ilə birlikdə karta serial keçidlə qoşulmaq lazım gələcək. Konfiqurasiya fotoşəkillərdə görünür, COM5 -in yerini COM ilə əvəz etmək, sonra cihaz menecerinizdə tapa biləcəyiniz nömrə (onu açmaq üçün Windows loqotipinə sağ vurun).
Enter düyməsini basın, bağlısınız.
Layihəni yenidən başlatmaq üçün məlumat: - Karta uyğun olan Ethernet IP -ni düzəldin - Kartı yandırın, hər dəfə gücünü açanda, kartda tərtib edilmiş layihəni kvartusun altına "proqram" ilə qoymaq lazımdır. Bu mikro USB portu vasitəsi ilə edilir - Proqramın nəticəsini göstərmək üçün daha çox mikro USB istifadə edirik, lakin UART - Seriya COM5 (və ya 6 saatlıq gestinnaire perif) üçün konfiqurasiya edilmiş macunla birlikdə karta qoşun. - Şifrə təyin edin (passwd) - Ifconfig ethxx IPchoice IP ünvanını təyin edin (IP etiketi PC -nin etikası üçün bundan uzaq deyil) - Qsys -ə uyğun olaraq başlığı yaradılmış terminalla (PATH -ı ixrac edin) - make - scp l exec xəritə - proqramı macun altında icra edin
Addım 10: FFT hesablanması
C proqramımızda Fast Fourier Transformunu əldə etmək üçün Mark Borgerding: Kiss FFT tərəfindən yazılmış kitabxanadan istifadə edəcəyik. Kitabxananı buradan yükləyə bilərsiniz: https://kissfft.sourceforge.net/. Siqnal effektlərini dəyişdirmək və tətbiq etmək üçün bir FFT tətbiq etmək lazımdır. Həm də bir siqnal spektrini göstərməyə xidmət edə bilər.
C proqramınızda ilk addım, FFT nəticəsini saxlamaq üçün yaddaş ayırmaqdır. Yaddaşın ölçüsü FFT -ni hesablamaq üçün istifadə olunan nöqtə sayından asılıdır. Xallarınız nə qədər çox olarsa, FFT bir o qədər çox alacaq. Bununla birlikdə, proqram daha yavaş işləyəcək və daha çox yaddaş istifadə edəcək. Qeyd edək ki, kiss_fft funksiyasından iki sıra alacaqsınız: funksiyanın girişi və çıxışı (cx_in və cx_out)
Arrayımız yeni FFT dəyərləri ilə doldurulduqda, yəni r = Win - 1 olduqda, FFT -ni emal edirik. Mənfi hissə ilə müsbət hissə arasında bir simmetriya olduğu üçün ekrana gəldikdə, biz yalnız spektrin müsbət hissəsini göstəririk.
Üfüqi oxla əlaqədar olaraq, əsas tezliklərin zirvələrini ayırd etmək üçün pik dəyərlərini 100*boy/(hündürlük²) azaldırıq.
ADC dəyərlərinin oxunma tezliyini təyin etmək üçün usleep sistem zəngindən istifadə edirik. Bu tezlik hal -hazırda 1, 5 Hz olaraq təyin edilmişdir.
Addım 11: FFT -nin göstərilməsi
Burada mövcud olan Adafruit TFT LCD Ekranındakı bir nümunəyə əsaslanaraq: https://www.terasic.com/downloads/cd-rom/de0-nano-s… İdarə Heyətimizin NIOS-u proqramlaşdırdıq ki, oxuya bilsin. ADC dəyəri.
ADC reyestri NIOS və HPS arasında paylaşılır, çünki ADC dəyərləri NIOS ekranında FFT -ni göstərmək üçün istifadə ediləcək və eyni dəyərlər lövhədən çıxarmaq və nəhayət çevrilmək üçün SPI -də yazılacaq. analoji siqnal almaq üçün DAC tərəfindən.
Addım 12: Quraşdırma
Demək olar ki, bitirdik! Layihənin hər bir hissəsini (giriş dövrəsi, çıxış dövrəsi və lövhə) yığmalısınız. Parçaları Quartus Layihəsinə uyğun olaraq sancaqlar ilə bağladığınızdan əmin olun.
- Giriş dövrəsi mikrofon tərəfindən çəkilmiş, gücləndirilmiş, süzülmüş və ofset edilmiş səs siqnalını göndərəcəkdir.
- Kartda mövcud olan C proqramı, əvvəlcədən gördüyümüz kimi ADC dəyərlərini oxuyacaq və kartın GPIO -dakı dəyərini bərpa edə biləcəyimiz üçün SPI -də yazacaq.
- Daha sonra SPI -nin GPIO çıxışı, DAC -dan şifrələnəcək və dinamikə çatmaq üçün qaçaraq gücləndiriləcək məlumatları ötürəcək.
Addım 13: Səs effektləri
Qalan tək addım səs effektləridir.
Mümkün təsirlər bunlardır:
- Yüksək Tezlik Filtri
- Aşağı Tezlik Filtri
- …
Bir düymə sayəsində effektlər arasında keçid edə bilərsiniz. Bu düymə C proqramımızdakı bir dəyişəni dəyişdirəcək, buna görə də düzgün effekti tətbiq edə bilər.
Addım 14: [İSTEĞE BAĞLI] Dəbilqə hazırlamaq
İşdə layihənin ən əl ilə addımını atırıq:
- Əvvəlcə dəbilqənin müxtəlif 3D çaplı hissələrini yapışdırdıq.
- Yapışqan parçalar arasındakı boşluqları doldurmaq üçün 3D qələm istifadə edərək son qat əlavə etdik.
- Qələm və dəbilqə ilə doldurulmuş boşluqları daha da cilaladıq ki, rəsm sonradan yaxşı keçsin.
- Dəbilqəni 2 təbəqə ilə boyadıq: Birincisi antrasit qara rəngdə, yaxından və bir qədər sonra daha yaşıl rəngli, daha tünd yaşıl çalarlar verir.
- Nəhayət, dəbilqə tərəfində məktəbimizin loqotipini çap etdik
Tövsiyə:
"Şam" ı dəyişdirən Asan LED Rəngi: 5 Adım (Şəkillərlə birlikdə)
Asan LED Rəng Dəyişdirən "Şam": Bu uşaqlar və böyüklər üçün əla olan rəng dəyişdirən sadə bir işıqdır. Yüngül işıqlı bir otaqda gözəl görünür, tətil üçün əla və olduqca sərin bir gecə işığı yaradır
Geyilə bilən Texnologiya: Səs dəyişdirən əlcək: 7 addım
Geyilə bilən Texnologiya: Səs-Dəyişən Əlcək: Bəli, inanılmaz gücə malik əlcəklər bu günlərdə qəzəblənir. Thanos Infinity Gauntlet olduqca güclü bir əlcək olsa da, daha da diqqətəlayiq bir şey edə biləcək bir əlcək hazırlamaq istədik: istifadəçinin səsini real vaxtda dəyişdirin
Layihə 2 Ağıllı Dəbilqə: 6 Addım (Şəkillərlə birlikdə)
Layihə 2 Ağıllı Dəbilqə: Biz, Benoot Sven, Staelens Lennert və Dujardin Laurens, məktəb üçün bir layihə hazırlamalı olduq. IPO (Sənaye Məhsul Dizaynı) tələbəsi ilə birlikdə işləmək məcburiyyətində qaldıq. Ağıllı bir motosiklet dəbilqəsi düzəltmək fikri ilə gəldi. Dizaynını hazırladı
MOSFET Səs Gücləndiricisi (Aşağı Səs və Yüksək Qazanc): 6 Addım (Şəkillərlə)
MOSFET Səs Gücləndiricisi (Aşağı Səs və Yüksək Qazanc): Salam uşaqlar! Bu layihə MOSFET -lərdən istifadə edərək Aşağı Güclü Səs gücləndiricisinin dizaynı və tətbiqidir. Dizayn mümkün olduğu qədər sadədir və komponentlər asanlıqla əldə edilə bilər. Özüm çox şey yaşadığım üçün bu təlimatı yazıram
Dəbilqə ilə İki Daft Punk Kıyafeti Necə Hazırlanır: 5 Addım (Şəkillərlə)
Dəbilqə ilə İki Daft Punk Kıyafeti Necə Hazırlanır: 30-cu Doğum Günüm üçün D-Temalı bir kostyum partiyası keçirməyə qərar verdim, sevgilim Kylie ilə Daft Punk olaraq gedəcəyimizə qərar verdik. Kostyumlar hazırlamaq üçün çox məşğul idi, amma çox əyləndik və çox gözəl göründülər