Mündəricat:

Cactus 2000: 7 addım
Cactus 2000: 7 addım

Video: Cactus 2000: 7 addım

Video: Cactus 2000: 7 addım
Video: Юго-Западная Азия. Конфликты Ближнего Востока, Южного Кавказа и Афганистана 2024, Iyul
Anonim
Kaktus 2000
Kaktus 2000

MIDI KONTROL EISE4 PROJESİ

Fransızlar:

Məşğul olmayan şirkətlər, heç bir iş görməmişlər. Pour ce faire, nous avions à notre disposition:

  • Kart DE0 Nano Soc
  • Des osiloskoplar, des multimètres
  • Müxtəlif növ kompozisiyalar (gücləndirici, müqavimət, tutum…)
  • Mikro et və haut-parleur
  • Əla deyil

İlkin məlumatlara görə, bu layihə bir neçə dəfə fərqlənə bilər. Nous allons vous les présenter dans cet Instructable.

Başlanğıc tökün, bu da ən çox maraq doğuran şeydir. Altium ilə əlaqədar olaraq, PCB -dən istifadə edərək, bir dövrə görə. PCB de l'entrée və de la sortie, les deux autres s'occupaient de faire fonctionner la carte DE0 Nano Soc, que la carte puisse récupérer les echantillons du micro et redonner, siqnal göndər haut-parleur. Yekun olaraq, son dəyişikliklər etmək üçün son dəyişikliklər etmək lazımdır.

İngilis dili:

Məktəbin dördüncü ilində bir midi nəzarətçi gördük. Bunu etmək üçün əlimizdə idi:

  • Xəritə DE0 Nano Soc
  • Osiloskoplar, multimetrlər
  • Müxtəlif növ komponentlər (gücləndirici, müqavimət, tutum …)
  • Mikrofon və dinamik
  • Balaca ekran

Layihənin uğurlu olması üçün müxtəlif təhlükəli addımlardan keçməli olduq. Sizi bu Təlimatla tanış edəcəyik.

Birincisi, mikrofonun oğlunu bərpa etmək və dinamik etmək üçün lazım olan əsas sxem dizaynı. Dövrə çəkildikdən sonra, PCB Altium proqramında edilməli idi. İki tələbə giriş və çıxış PCB -lərini idarə etməklə məşğul olarkən, digər ikisi kartın mikrofon nümunələrini götürüb dinamikə siqnal verə bilməsi üçün DE0 Nano Soc kartını işə salmaq üçün çalışırdılar. Nəhayət, səsi dəyişdirmək üçün səs effektləri yaratmalı olduq.

Addım 1: Konsepsiya Du Circuit En Entrée / Entrance Circuit Design

Du Circuit En Entrée / Entrance Circuit Design anlayışı
Du Circuit En Entrée / Entrance Circuit Design anlayışı

Fransızlar:

Səs siqnalı elçisi tərəfindən alqı -satqı DE0 Nano Soc.

Şəxsi məlumatlara görə, notre entrée.

(1) 5 volt və ya daha çox transformatorun dəyişdirilməsi - 5 V. Le - 5 V servisin yüksək sürətlə tökülməsi.

(2) Iki, nous avons un amplificateur ters deyil. İstifadə qaydaları:

Vs = Ve (1 + Z1/Z2)

Seçdiyiniz zaman R1 = 100 kOhm və R2 = 1 kOhm nisbətində əldə edin.

Yükseltici və mikrofon gücləndiricisi.

(3) 0 və 4 V aralığında olan gərginlik və gərginlik fərqi yoxdur.

(4) Yüksək gücləndirici və ya gücləndirici.

(5) CAG (Controle Automatique de Gain)

(6) RC-nin ikinci hissəsini doldurun və süzgəcdən keçirin. Lord 2 -dən 40 saniyəyə qədər davam edəcək. Seçim 20 kHz -dir.

İngilis dili:

İlk addım, mikrofonda siqnalın DE0 Nano Soc kartına ötürülməsi üçün qəbul edə biləcək bir dövrə qurmaqdır. Girişimizin diaqramının üstündə.

(1) İnverter 5 Volt -u geri alacaq və onu 5 V -ə çevirəcək. - 5 V aşağıda görəcəyimiz gücləndirici üçün xidmət edəcək.

(2) Burada ters çevrilməyən gücləndiricimiz var. Aşağıdakı düstura görə:

Vs = Ve (1 + Z1 / Z2)

101 qazancı R1 = 100 kOhm və R2 = 1 kOhm olaraq təyin edilərək seçildi.

Bu gücləndirici mikrofonun səsini gücləndirmək üçün istifadə olunacaq.

(3) İki müqavimət, çıxış gərginliyinin 0 ilə 4 V arasında olması üçün bir ofset yaradacaq.

(4) Gücləndirici ilə gücləndiriləcək mikrofon.

(5) AGC (Avtomatik Qazanc Nəzarəti)

(6) Nəhayət, iki RC ilə ikinci dərəcəli aşağı keçid filtri yaratdıq. Sifariş 2 -40db / onilliyin zəifləməsi üçün lazım idi. Seçilən kəsmə tezliyi 20 kHz -dir.

Addım 2: Concept Du Circuit En Sortie / Output Circuit of Design

Konsepsiya Du Dövrü / Çıxış Devrinin Dizaynı
Konsepsiya Du Dövrü / Çıxış Devrinin Dizaynı

Fransızlar:

İkinci dövrdə, bütün dövrlər üçün ən yaxşı seçimdir.

Şəxsi sənədlərin siyahısı.

(1) Le DAC (Rəqəmsaldan Analog Konverterə) siqnalın sayını təyin etmək üçün DE0 Nano Soc və digər siqnal analoqunu çevirir (neccessaire pour le haut parleur)

(2) Səbəbi nə qədər çox deyilsə, siqnalın da davam etməsi.

(3) Montaj qui va permettre d'amplifier la puissance de notre siqnal. Növ avronlar:

www.ti.com/lit/ds/symlink/lm386.pdf

səhifə 10

Səbəbi 200 -ə yaxın avtomobilin heç bir siqnalı yoxdur.

İngilis dili:

Çıxışımızın diaqramının üstündə.

(1) DE0 Nano Soc kartı tərəfindən göndərilən rəqəmsal siqnalın bərpasına və analoq siqnalına (dinamik üçün lazım olan) çevrilməsinə imkan verən DAC (Digital to Analog Converter).

(2) Tutum siqnalımızın davamlı komponentini ötürmək üçün istifadə ediləcək.

(3) Siqnalımızın gücünü artıracaq montaj. Sxemi götürdük:

www.ti.com/lit/ds/symlink/lm386.pdf

səhifə 10

Bu sxem siqnalımız həqiqətən zəif olduğu üçün lazım olan 200 qazanc əldə etməyi mümkün edir.

Addım 3: Konsepsiya Des PCB / PCB Dizaynı

Konsept Des PCB / PCB dizaynı
Konsept Des PCB / PCB dizaynı

Fransızlar:

PCB -də heç bir problem yoxdur.

Altium -un ən yaxşı və ən yaxşı oyunlarını tökün. Düzgün əlaqələndirici bir şey var:

Menyu Dizaynı -> PCB Sənədini Yeniləyin.

"Dəyişiklikləri Doğrula" bölməsinə daxil olun. Çağırma düyməsini tıqqıltı ilə yuvarlayın: "Yoxlayın".

Müqəddəs Yazıçılar, bu əsərləri bir -birinə bağlamadılar.

Əlavə olaraq menyu "Fayl" -> "İstehsal Çıxışı" -> "Gerber Dosyaları"

Une fenêtre s'ouvre, dans celle-ci vous trouverez;

  • "Layers" menyusu PCB -dən istifadə etməklə ən yaxşı seçimdir.
  • "Matkap Çəkmə" menyusundan bəzilərini seçin.
  • "Diyaframlar" menyusu "Gömülü aperturalar" düyməsini basın.

Şikayət etmək istədinizmi?

Revenons maintenant à la fenêtre avec les comp Compants sur celle-ci vous cliquez surətdə.

Fayl -> İstehsal Çıxışı -> NC Qazma Faylları

Ən son şey, heç bir iş görmədiyiniz və 3D nümunələri təqdim etdiyimiz şeylərdir.

VC trouverez ci-birgə fotoşəkillər PCB-də.

İngilis dili:

Dövrlərimiz qurulduqdan sonra onları PCB -lərə taxmalı olduq.

Bunun üçün Altium proqramından istifadə edirik. Hər şey düzgün bağlanmalıdır, sonra vurun:

Menyu Dizaynı -> PCB Sənədini Yeniləyin.

Sonra "Dəyişiklikləri Doğrula" düyməsini basın. Hər bir təsdiq edilmiş dəyişiklik üçün "Check" sütununda yaşıl bir onay işareti görünür.

Bundan sonra yeni bir nişan açılacaq və komponentləri bu pəncərəyə yerləşdirməlisiniz.

Sonra "Fayl" -> "Çıxış Çıxışı" -> "Gerber Faylları" menyusuna keçməlisiniz

Bir pəncərə açılır, burada tapa bilərsiniz;

PCB -ni hansı qatların dəstəkləyəcəyini seçməyə imkan verən "Layers" menyusu. Hər şeyin yoxlanılmalı olduğu "Matkap Rəsmi" menyusu. "Gömülü aparatlar" ı yoxlamalı olduğunuz "Diyaframlar" menyusu.

Onun bütün addımları başa çatdı?

Tıkladığınız komponentlərin olduğu pəncərəyə qayıdaq

Fayl-> İstehsal Çıxışı -> NC Qazma Faylları

Nəhayət bitdi, etməli olduğunuz şey 3D printerə sənədləri verməkdir.

Əlavə edilmiş iki PCB -nin fotoşəkillərini tapa bilərsiniz.

Addım 4: Périphériques, DE0 Nano Soc Kart üçün La Carte DE0 Nano Soc / Periferik Cihazları Tökün

Périphériques DE0 Nano Soc Card üçün La Carte DE0 Nano Soc / Periferik Cihazları Tökün
Périphériques DE0 Nano Soc Card üçün La Carte DE0 Nano Soc / Periferik Cihazları Tökün

Francais:

IP ünvanlarını optimallaşdırmaq üçün, Intel FPGA və digər proqramlar, konsepsiyanı və testi sınaqdan keçirin.

Qsys nous avons pu créer des périphériques embarqués dans notre carte.

Aşağıdakı siyahıdakı siyahıları göstərin:

  • Əlaqə SPI DAC -a daxil olur
  • ADC, analoqu olmayan siqnalları və rəqəmsal rəqəmləri çevirmək üçün istifadə olunur.
  • HPS (prosessor) daha çox kod göndərir
  • GPIO, bir çox problemi həll edəcək
  • Mémoire (çip yaddaşında)

İngilis dili:

IP nüvələri Intel FPGA cihazları üçün optimallaşdırılmışdır və dizayn və sınaq müddətini azaltmaq üçün asanlıqla həyata keçirilə bilər.

Qsys proqramı sayəsində xəritəmizdə quraşdırılmış ətraf qurğular yarada bildik. Əlavə etdiyimiz cihazın siyahısı:

  • DAC üçün SPI əlaqəsi
  • ADC, analoq dəyərləri siqnalımızdan almaq və rəqəmsal məlumatlara çevirmək üçün
  • Bütün kodları idarə etmək üçün HPS (prosessor)
  • Müəyyən təsirlərin öhdəsindən gəlmək üçün istifadə ediləcək düymələr üçün GPIO
  • Yaddaş (çipin yaddaşında)

Addım 5: L'écran LT24

L'écran LT24
L'écran LT24

Fransızlar:

LT24, NIOS əməliyyat sistemini idarə etmək üçün lazım olan hər şeyi etdi.

Başlanğıc, sənədlər və sənədlər sənədləri daxil edin.

FFT ilə əlaqəli heç bir nəticə yoxdur və bu seçimin nəticəsidir.

İngilis dili:

LT24 simulyasiya edilmiş bir NIOS prosessoru tərəfindən idarə olunacağını başa düşməliyik və idarə etməliyik. Başlamaq üçün bu barədə çoxlu sənədləri oxuduq.

Sonda, ekranınız FFT -ni istənilən effekti göstərmək üçün istifadə olunur.

Addım 6: C ++ da En C ++ / Faydalı Kodlardan istifadə edir

Kodlar En C ++ / C ++ da Faydalı Kodlardan istifadə edir
Kodlar En C ++ / C ++ da Faydalı Kodlardan istifadə edir

Kodları C ++ ilə əlaqələndirmək üçün bu proqramlar çox vaxt istifadə edilə bilər.

Voici d'abord heç bir açıqlama vermir (oui un peu tükənmiş…):

Sizə səs effektləri yaratmağımız üçün faydalı olan C ++ kodlarını göstərəcəyəm.

Birincisi, bütün ifadələrimiz (bəli bir az dolğun …):

#daxil edin

#daxil edin #daxil edin #daxil edin #daxil edin #daxil edin #daxil edin "daxil edin" "WavUtils.cpp" daxil edin "Biquad.cpp" daxil edin #daxil edin #daxil edin "daxil edin" hps_0.h " #daxil edin" hps.h " #include "alt_gpio.h" #include "hwlib.h" #include "socal.h" #include #include "kiss_fft.h" #define nbpoint 1000 #define HW_REGS_BASE (ALT_STM_OFST) #define HW_REGS00_00 (0x0) HW_REGS_SPAN - 1) #define PI 3.1415926535 #define NFFT 80 #define FE 41000 #define F2 10000 #define F1 5925 #define PH 5000 #define PB 15000 #define MOD 2000 ad boşluğunu istifadə edərək; const long SAMPLE_RATE = 12500000; // Yaratma və konfiqurasiya və s (t) və S (f) const kiss_fft_cfg config = kiss_fft_alloc (NFFT, 0, NULL, NULL); const kiss_fft_cfg config_inv = kiss_fft_alloc (NFFT, 1, NULL, NULL); kiss_fft_cpx*in = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)); kiss_fft_cpx*out = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)); kiss_fft_cpx*inv = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)); queueoutBuf; int global = 0; int i = 0; qısa məlumat, data2;

Modulyasiya ilə əlaqəli bütün funksiyalar:

Modulyasiyaya imkan verən funksiyalarımızdan biri:

boş modulyasiya (int freq)

{if (i <NFFT) {data = data*cos (2*PI*freq*i/FE); .r = məlumatlarında; i ++; } başqa i = "0"; }

Voici notre fonction əsas:

Bunlar bizim əsas funksiyamızdır:

int əsas (int argc, char ** argv)

{uçucu işarəsiz uzun *h2p_lw_spi_addr = NULL; uçucu işarəsiz uzun *h2p_lw_led_addr = NULL; uçucu işarəsiz uzun *h2p_lw_adc_addr = NULL; uçucu işarəsiz uzun *h2p_lw_blue_addr = NULL; uçucu işarəsiz uzun *h2p_lw_red_addr = NULL; uçucu işarəsiz uzun *h2p_lw_black_addr = NULL; void *virtual_base; int fd; printf ("1 / n"); // spi qeydlərinin ünvan sahəsini istifadəçi məkanına daxil edin ki, onlarla əlaqə saxlaya bilək. // biz əslində HPS -in bütün KSM aralığını xəritəyə daxil edəcəyik, çünki bu müddət ərzində müxtəlif qeydlərə daxil olmaq istəyirik ((fd = open ("/dev/mem", (O_RDWR | O_SYNC)) == -1) {printf ("ERROR: / dev/mem \"… / n "açıla bilmədi); qayıt (1); } printf ("2 / n"); virtual_base = mmap (NULL, HW_REGS_SPAN, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, HW_REGS_BASE); printf ("3 / n"); if (virtual_base == MAP_FAILED) {printf ("ERROR: mmap () uğursuz oldu… / n"); yaxın (fd); qayıt (1); } printf ("4 / n"); printf ("5 / n"); h2p_lw_spi_addr = virtual_base + ((işarəsiz uzun) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (imzasız uzun) (HW_REGS_MASK)); h2p_lw_led_addr = virtual_base + ((işarəsiz uzun) (ALT_LWFPGASLVS_OFST + PIO_LED_BASE) & (imzasız uzun) (HW_REGS_MASK)); h2p_lw_adc_addr = virtual_base + ((işarəsiz uzun) (ALT_LWFPGASLVS_OFST + ADC_0_BASE) & (imzasız uzun) (HW_REGS_MASK)); h2p_lw_blue_addr = virtual_base + ((işarəsiz uzun) (ALT_LWFPGASLVS_OFST + PIO_BLUE_BASE) & (imzasız uzun) (HW_REGS_MASK)); h2p_lw_black_addr = virtual_base + ((işarəsiz uzun) (ALT_LWFPGASLVS_OFST + PIO_BLACK_BASE) & (işarəsiz uzun) (HW_REGS_MASK)); h2p_lw_red_addr = virtual_base + ((işarəsiz uzun) (ALT_LWFPGASLVS_OFST + PIO_RED_BASE) & (imzasız uzun) (HW_REGS_MASK)); // int i = 0; int məlumatları; int i = 0, j; // Yaratma və konfiqurasiya və s (t) və S (f) const kiss_fft_cfg config = kiss_fft_alloc (NFFT, 0, NULL, NULL); kiss_fft_cpx*in = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)); kiss_fft_cpx*out = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)); isə (1) {data = *(h2p_lw_adc_addr+2); əgər (*h2p_lw_blue_addr == 1) data = echo (data, 20); əgər (*h2p_lw_black_addr == 1) alt_write_word (h2p_lw_led_addr, 0x0F); əgər (*h2p_lw_red_addr == 0) alt_write_word (h2p_lw_led_addr, 0xF0); alt_write_word (h2p_lw_spi_addr+1, data | 0b111000000000000); } pulsuz (konfiqurasiya); pulsuz (daxilində); pulsuz (xaricdə); qaytarma 0; }

Addım 7: Le Final / Final

Le Final / Final
Le Final / Final

Fransızlar:

Cactus 2000 -in son versiyası.

PCB -dən istifadə etmək üçün bir çox şey DE0 Nano Soc.

Ən çox bəstələnənlər çox böyük bir yerdir.

Bu xidmətlərin həcmi, həcmi və qabiliyyəti, onların potensialı və fəaliyyəti ilə bağlı olan məlumatların, FFT -in ən yüksək keyfiyyətini təsdiqləyir.

Bu yaxınlarda bir mövqedə bir mövqe tutacaq. Əlaqələr və ya əlaqələr haqqında ən çox məlumat əldə edin.

Auchourd'hui tökmək.

Təlimat verilə bilər.

İngilis dili:

Budur (nəhayət) Cactus 2000 -in son görüntüsü.

DE0 Nano Soc lövhəsinə qoşulmuş giriş və çıxış PCB -lərini qoyduq.

Sonra komponentləri sarı bir qutunun içinə qoyulur.

Qutuda səsin həcmini, bəzi effektləri işə salacaq düymələri və düymələri idarə edə bilən slayd potensiometr və FFT -ni əks etdirən bir ekran var.

Dinamik düymələrə dik olaraq yerləşdirilir. Mikrofon, dinamikə nisbətən qutunun digər tərəfində yerləşir.

Bu gün üçün hamısı budur.

Bu Təlimatın sizin üçün faydalı olacağına ümid edirik.

Tövsiyə: