Isi kandungan:

Cactus 2000: 7 Langkah
Cactus 2000: 7 Langkah

Video: Cactus 2000: 7 Langkah

Video: Cactus 2000: 7 Langkah
Video: ЗАКРИЧАЛ – ПОТЕРЯЛ ₽200.000 / ТРЭШКЭШ: Тишина 2024, Julai
Anonim
Kaktus 2000
Kaktus 2000

PROJEK MIDI-CONTROLEUR EISE4

Français:

Lors de notre quatrième année d'école ingénieur, nous avons réalisé un midi-contrôleur. Tuangkan ce faire, avous avions à notre disposisi:

  • Une carte DE0 Nano Soc
  • Des osiloskop, des multimètres
  • Jenis komposen de différents (amplificateur, résistance, capacité…)
  • Un micro et un haut-parleur
  • Un petit ecran

Ilous a fallu passer par différentes étapes périlleuses afin de réussir le projet. Nous allons vous les présenter dans cet Diajar.

Tuangkan pemula, le dessin du circuit de base était nécessaire afin de récupérer le son du micro et le rendre au haut-parleur. Une fois le circuit dessiner, le PCB était à faire sur le logiciel Altium. Pendant que deux élèves s'occupaient de gérer les PCB de l'entrée et de la sortie, les deux autres s'occupaient de faire fonctionner la carte DE0 Nano Soc afin que la carte puisse récupérer les echantillons du micro et redonner un isyarat tuangkan haut-parleur. Penyelesaian, semestinya fallu créer des effets sonores pour the modifier le son.

Bahasa Inggeris:

Semasa tahun keempat sekolah, kami menyedari pengawal pertengahan. Untuk melakukan ini, kami dapat:

  • Peta DE0 Nano Soc
  • Osiloskop, multimeter
  • Komponen pelbagai jenis (penguat, rintangan, kapasiti…)
  • Mikrofon dan pembesar suara
  • Skrin kecil

Kami harus melalui pelbagai langkah berbahaya untuk menjayakan projek ini. Kami akan memperkenalkan anda kepada Instructable ini.

Pertama, reka bentuk litar asas diperlukan untuk memulihkan anak mikrofon dan menjadikan pembesar suara. Setelah undian litar, PCB dilakukan pada perisian Altium. Semasa dua pelajar sibuk menguruskan input dan output PCB, dua yang lain sedang berusaha untuk menjalankan kad DE0 Nano Soc supaya kad tersebut dapat mengambil sampel mikrofon dan memberi isyarat kepada pembesar suara. Akhirnya, kami terpaksa mencipta kesan bunyi untuk menukar suara.

Langkah 1: Reka Bentuk Litar Conception Du Entrée / Entrance Circuit

Reka Bentuk Litar Conception Du Entrée / Entrance Circuit
Reka Bentuk Litar Conception Du Entrée / Entrance Circuit

Français:

La première étape terdiri dari satu tempat dan litar un qui puisse prendre le signal envoyer sur le micro pour le transmettre à la carte DE0 Nano Soc.

Ci-dessus le schéma de notre entrée.

(1) L'inverseur v permettre de récupérer le 5 Volt et le transformer en - 5 V. Le - 5 V servira tuangkan l'amplificateur que nous verrons ci-dessous.

(2) Ici, nous avons un amplificateur bukan inverseur. D'après la formule suivante:

Vs = Ve (1 + Z1 / Z2)

Dengan penambahan untung pilih 101 de mettant R1 = 100 kOhm et R2 = 1 kOhm.

Cet amplificateur va servir a amplifier le son du micro.

(3) Les deux résistances vont créer tidak mengimbangi afin que la tension de sortie soit terdiri daripada entre 0 et 4 V.

(4) Le micro qui va être amplifier par l'amplificateur.

(5) CAG (Controle Automatique de Gain)

(6) Tuang finir, nous avons créé un filtre passe-bas du second ordre avec deux RC. L'ordre 2 était nécessaire menuangkan avoir une atténuation de - 40db / dekad. La fréquence de coupure choisit est 20 kHz.

Bahasa Inggeris:

Langkah pertama ialah menyiapkan litar yang dapat mengambil isyarat menghantar pada mikrofon untuk menghantarnya ke kad DE0 Nano Soc. Di atas rajah entri kami.

(1) Inverter akan memulihkan 5 Volt dan mengubahnya menjadi - 5 V. The - 5 V akan berfungsi untuk penguat yang akan kita lihat di bawah.

(2) Di sini kita mempunyai penguat bukan pembalik. Mengikut formula berikut:

Vs = Ve (1 + Z1 / Z2)

Keuntungan 101 dipilih dengan menetapkan R1 = 100 kOhm dan R2 = 1 kOhm.

Penguat ini akan digunakan untuk menguatkan suara mikrofon.

(3) Kedua-dua perintang akan membuat ofset sehingga voltan output antara 0 dan 4 V.

(4) Mikrofon yang akan diperkuat oleh penguat.

(5) AGC (Kawalan Keuntungan Automatik)

(6) Akhirnya, kami membuat penapis lorong rendah pesanan kedua dengan dua RC. Pesanan 2 diperlukan untuk melemahkan -40db / dekad. Frekuensi pemotongan yang dipilih ialah 20 kHz.

Langkah 2: Conception Du Circuit En Sortie / Design of Output Circuit

Conception Du Circuit En Sortie / Design of Output Circuit
Conception Du Circuit En Sortie / Design of Output Circuit

Français:

Dans un temps second, nous avons pener à la création du circuit en sortie.

Ci-dessus le schéma de notre sortie.

(1) Le DAC (Digital to Analog Converter) qui va permettre de récupérer le signal numérique envoyer par la carte DE0 Nano Soc et le converir en signal analogique (nécessaire pour le haut parleur)

(2) La capacité va servir a virer la composante meneruskan isyarat de notre.

(3) Isyarat Montage qui va permettre d'amplifier la puissance de notre. Nous avons prit le schéma:

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

halaman 10

Ce schéma permet d'avoir un gain de 200 qui est nécessaire kereta notre signal est vraiment faible.

Bahasa Inggeris:

Di atas rajah output kami.

(1) DAC (Digital to Analog Converter) yang memungkinkan untuk memulihkan isyarat digital yang dihantar oleh kad DE0 Nano Soc dan mengubahnya menjadi isyarat analog (diperlukan untuk pembesar suara).

(2) Kapasiti akan digunakan untuk memindahkan komponen berterusan isyarat kami.

(3) Pemasangan yang akan memperkuat kekuatan isyarat kita. Kami mengambil skim:

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

halaman 10

Skim ini memungkinkan untuk memperoleh keuntungan 200 yang diperlukan kerana isyarat kita benar-benar lemah.

Langkah 3: Persepsi PCB / Reka Bentuk PCB

Konsep Des PCB / Reka Bentuk PCB
Konsep Des PCB / Reka Bentuk PCB

Français:

Litar une fois que nos pada masa yang akan datang untuk menjadi kejatuhan di PCB.

Tuangkan ce faire, nous avons utiliser le logiciel Altium. Il faut que tout soit correctement connecter puis cliquer sur:

Reka Bentuk Menu -> Kemas kini Dokumen PCB.

Ensuite, cliquez sur «Mengesahkan Perubahan». Tuang chaque changement validé, un crochet vert apparaît dans la colonne: «Semak».

Après cela, vous aurez un nouvel onglet qui va s'ouvrir et il faudra placer les composants dans cette fenêtre.

Puis, il faut aller dans le menu "File" -> "Fabrikasi Output" -> "Gerber Files"

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

  • Le menu "Layers" qui vous permettra de choisir sur quel layer va s'appuyer votre PCB.
  • Menu Le "Drill Drawing" dan lequel il faut que tout soit décocher.
  • Le menu "Apertures" dans lequel il faut cocher "Embedded appertures".

Toute ses étapes sont complétées?

Revenons maintenant à la fenêtre avec les komposer sur celle-ci vous cliquez sur

Fail-> Output Fabrikasi -> Fail Bor NC

C'est enfin finit, il ne reste plus qu'à donner à l'imprimante 3D les fichiers.

Vous trouverez ci-joint les photos de nos deux PCB.

Bahasa Inggeris:

Setelah rangkaian kami dibuat, kami harus meletakkannya di PCB.

Untuk melakukan ini, kami menggunakan perisian Altium. Semua mesti dihubungkan dengan betul kemudian klik:

Reka Bentuk Menu -> Kemas kini Dokumen PCB.

Kemudian klik pada "Validate Changes". Untuk setiap perubahan yang disahkan, tanda semak hijau muncul di lajur "Periksa".

Selepas itu, anda akan mempunyai tab baru yang akan dibuka dan anda perlu meletakkan komponen di tetingkap ini.

Kemudian anda harus pergi ke menu "File" -> "Output Output" -> "Gerber Files"

Tetingkap terbuka, di sini anda akan dapati;

Menu "Lapisan" yang membolehkan anda memilih lapisan mana yang akan menyokong PCB anda. Menu "Drill Drawing" di mana semuanya mesti dicentang. Menu "Apertures" di mana anda harus menyemak "Embedded appertures".

Semua langkahnya selesai?

Mari kembali ke tetingkap dengan komponen yang anda klik ini

Fail-> Output Pembuatan -> Fail Bor NC

Ia akhirnya selesai, yang harus anda lakukan ialah memberikan fail pada pencetak 3D.

Anda akan mendapat gambar-gambar kedua-dua PCB kami.

Langkah 4: Périphériques Pour La Carte DE0 Nano Soc / Peripherals untuk DE0 Nano Soc Card

Périphériques Pour La Carte DE0 Nano Soc / Periferal untuk DE0 Nano Soc Card
Périphériques Pour La Carte DE0 Nano Soc / Periferal untuk DE0 Nano Soc Card

Francais:

Les cœurs IP sont optimis menuangkan périphériques Intel FPGA et peuvent être implémentés pour réduire la conception et le temps de test.

Grâce au logiciel Qsys nous avons pu créer des périphériques embarqués dans notre carte.

Voici une liste des périphériques que nous avons ajouter:

  • Komunikasi SPI tuangkan le DAC
  • ADC pour recupérer les valeurs analogique de notre signal et les convertir en donnée digitales
  • HPS (prosesor) tuangkan kod les
  • GPIO menuangkan les boutons qui vont servir à exécuter mengesahkan efet
  • Mémoire (pada memori cip)

Bahasa Inggeris:

Inti IP dioptimumkan untuk peranti Intel FPGA dan dapat dilaksanakan dengan mudah reka bentuk dan masa ujian.

Terima kasih kepada perisian Qsys, kami dapat membuat periferal tertanam di peta kami. Berikut adalah senarai peranti yang kami tambahkan:

  • Komunikasi SPI untuk DAC
  • ADC untuk mengambil nilai analog dari isyarat kami dan menukarnya menjadi data digital
  • HPS (pemproses) untuk menguruskan semua kod
  • GPIO untuk butang yang akan digunakan untuk mengatasi kesan tertentu
  • Memori (pada memori cip)

Langkah 5: L'écran LT24

L'écran LT24
L'écran LT24

Français:

Nous a fallu includeendre et gérer l'écran LT24 celui-ci sera guideé par un processeur simulé NIOS.

Tuangkan l'initaliser, dokumentasi dan maklumat lanjut sur celui-ci.

Au final, notre écran sert à afficher la FFT, à sélectionner l'effet voulu.

Bahasa Inggeris:

Kami harus memahami dan mengurus layar LT24, ia akan dipandu oleh pemproses NIOS yang disimulasikan. Untuk memulakannya, kami membaca banyak dokumentasi di atasnya.

Pada akhirnya, skrin kami digunakan untuk menampilkan FFT, dengan kesan yang diinginkan.

Langkah 6: Kod Menggunakan En C ++ / Kod Berguna dalam C ++

Kod Utiliti En C ++ / Kod Berguna dalam C ++
Kod Utiliti En C ++ / Kod Berguna dalam C ++

Je vais vous montrer les code en C ++ quious ont utiles afin de réaliser des effets sonores.

Voici d'abord memberi maklumat mengenai deklarasi (oui un peu exhaustif…):

Saya akan menunjukkan kepada anda kod dalam C ++ yang berguna untuk membuat kesan bunyi.

Pertama, semua pernyataan kami (ya sedikit lengkap …):

#sertakan

#include #include #include #include #include #include #include #include #include "WavUtils.cpp" #include "Biquad.cpp" #include #include #include #include "hps_0.h" #include "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_REGS_SPAN (0x04000000) # 0x040000 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 menggunakan namespace std; SAMPLE_RATE = 12500000; // Création de la konfigurasi et des buffer dalam et out pour s (t) et 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; data pendek, data2;

Ci-dessous une de nos fonctions permettant la modulation:

Di bawah salah satu fungsi kami yang membolehkan modulasi:

modulasi kekosongan (int freq)

{if (i <NFFT) {data = data * cos (2 * PI * freq * i / FE); dalam .r = data; saya ++; } lain i = "0"; }

Fungsi nota utama:

Ini adalah fungsi utama kami:

int utama (int argc, char ** argv)

{volatile unsigned long * h2p_lw_spi_addr = NULL; tidak bertanda panjang yang tidak stabil * h2p_lw_led_addr = NULL; panjang tidak bertanda tidak stabil * h2p_lw_adc_addr = NULL; tidak bertanda panjang yang tidak stabil * h2p_lw_blue_addr = NULL; panjang tidak bertanda tidak stabil * h2p_lw_red_addr = NULL; tidak bertanda panjang yang tidak stabil * h2p_lw_black_addr = NULL; batal * virtual_base; int fd; printf ("1 / n"); // memetakan ruang alamat untuk spi mendaftar ke ruang pengguna supaya kami dapat berinteraksi dengan mereka. // kami sebenarnya akan memetakan seluruh rentang CSR HPS kerana kami ingin mengakses pelbagai daftar dalam jangka masa tersebut jika ((fd = open ("/ dev / mem", (O_RDWR | O_SYNC))) == -1) {printf ("RALAT: tidak dapat membuka \" / dev / mem / "… / n"); pulangan (1); } printf ("2 / n"); virtual_base = mmap (NULL, HW_REGS_SPAN, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, HW_REGS_BASE); printf ("3 / n"); jika (virtual_base == MAP_FAILED) {printf ("RALAT: mmap () gagal… / n"); tutup (fd); pulangan (1); } printf ("4 / n"); printf ("5 / n"); h2p_lw_spi_addr = virtual_base + ((lama tidak ditandatangani) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (panjang tidak ditandatangani) (HW_REGS_MASK)); h2p_lw_led_addr = virtual_base + ((lama tidak ditandatangani) (ALT_LWFPGASLVS_OFST + PIO_LED_BASE) & (panjang tidak ditandatangani) (HW_REGS_MASK)); h2p_lw_adc_addr = virtual_base + ((lama tidak ditandatangani) (ALT_LWFPGASLVS_OFST + ADC_0_BASE) & (panjang tidak ditandatangani) (HW_REGS_MASK)); h2p_lw_blue_addr = virtual_base + ((lama tidak ditandatangani) (ALT_LWFPGASLVS_OFST + PIO_BLUE_BASE) & (panjang tidak ditandatangani) (HW_REGS_MASK)); h2p_lw_black_addr = virtual_base + ((lama tidak ditandatangani) (ALT_LWFPGASLVS_OFST + PIO_BLACK_BASE) & (lama tidak ditandatangani) (HW_REGS_MASK)); h2p_lw_red_addr = virtual_base + ((lama tidak ditandatangani) (ALT_LWFPGASLVS_OFST + PIO_RED_BASE) & (panjang tidak ditandatangani) (HW_REGS_MASK)); // int i = 0; data int; int i = 0, j; // Création de la konfigurasi et des buffer dalam et out pour s (t) et 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)); sementara (1) {data = * (h2p_lw_adc_addr + 2); jika (* h2p_lw_blue_addr == 1) data = gema (data, 20); jika (* h2p_lw_black_addr == 1) alt_write_word (h2p_lw_led_addr, 0x0F); jika (* h2p_lw_red_addr == 0) alt_write_word (h2p_lw_led_addr, 0xF0); alt_write_word (h2p_lw_spi_addr + 1, data | 0b11100000000000000); } percuma (konfigurasi); percuma (dalam); percuma (keluar); pulangan 0; }

Langkah 7: Le Final / Final

Le Final / Akhir
Le Final / Akhir

Français:

Eh voilà (enfin) le rendu final de notre Cactus 2000.

Nous avons mis les PCB entrée et sortie qui sont reliés à la carte DE0 Nano Soc.

Ensuite, komposer ses tidak boleh ditempatkan di l'interieur d'une boite jaune.

Sur la boîte on trouve un potentiomètre glissière, qui permet de gérer le volume du son, des potentiomètres et des boutons qui permettrons de lancer mengesahkan efet, ainsi que un ecran qui permettra d'afficher la FFT.

Le haut-parleur est positionné perpendiculairement par rapport aux bouton. Le micro est positionné de l'autre coté de la boîte par rapport au haut-parleur.

Jangan mencurahkan aujourd'hui.

En esperant que cet Instructable vous soit utile.

Bahasa Inggeris:

Di sini kita (akhirnya) rendering terakhir Cactus 2000 kita.

Kami meletakkan PCB input dan output yang disambungkan ke papan DE0 Nano Soc.

Kemudian, komponennya diletakkan di dalam kotak kuning.

Pada kotak terdapat potensiometer slaid, yang dapat mengatur kelantangan suara, tombol dan butang yang akan melancarkan beberapa kesan, dan layar yang akan memaparkan FFT.

Pembesar suara diletakkan tegak lurus dengan butang. Mikrofon diletakkan di sisi lain kotak berbanding dengan pembesar suara.

Itu sahaja untuk hari ini.

Berharap agar Instruksional ini berguna untuk anda.

Disyorkan: