Sadržaj:

Kaktus 2000: 7 koraka
Kaktus 2000: 7 koraka

Video: Kaktus 2000: 7 koraka

Video: Kaktus 2000: 7 koraka
Video: Американский математик: "После чтения Корана у меня не осталось сомнений!" Профессор Джеффри Лэнг 2024, Juli
Anonim
Kaktus 2000
Kaktus 2000

MIDI-KONTROLEUR PROJEKTA EISE4

Français:

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

  • Une carte DE0 Nano Soc
  • Osciloskopi, multimetri
  • Sastavi različitih tipova (pojačalo, otpor, kapacitet …)
  • Un micro et un haut-parleur
  • Un petit ecran

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

Pour commencer, 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. Privjesak que deux élèves s PCB de l'entrée et de la sortire, les deux autres s'occupaient de faire fonctionner la carte DE0 Nano Soc afin que la carte puisse recupérer les echantillons du micro et le redonner un signal haut-parleur. Finallement, il nous a fallu créer des effets sonores pour modifier le son.

Engleski:

Tokom naše četvrte godine škole, realizovali smo midi kontroler. Da bismo to učinili, na raspolaganju smo imali:

  • Karta DE0 Nano Soc
  • Osciloskopi, multimetri
  • Komponente različitih vrsta (pojačalo, otpor, kapacitet …)
  • Mikrofon i zvučnik
  • Mali ekran

Morali smo proći kroz razne opasne korake da bi projekt uspio. Upoznaćemo vas sa ovim uputstvom.

Prvo, dizajn osnovnog kola potreban je za oporavak sina mikrofona i stvaranje zvučnika. Nakon crtanja kola, PCB je trebao biti izveden na softveru Altium. Dok su dva učenika bila zauzeta upravljanjem ulaznim i izlaznim PCB -ovima, druga dvojica su radila na pokretanju kartice DE0 Nano Soc kako bi kartica mogla pokupiti uzorke mikrofona i dati signal zvučniku. Konačno, morali smo stvoriti zvučne efekte da bismo promijenili zvuk.

Korak 1: Koncepcija Du Circuit En Entrée / Dizajn ulaznog kola

Conception Du Circuit En Entrée / Dizajn ulaznog kola
Conception Du Circuit En Entrée / Dizajn ulaznog kola

Français:

La première étape sastoji se od metrea i mjesta u krugu 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) Pretvarač napona za napajanje od 5 volti i transformator s naponom - 5 V. Le - 5 V servera za pojačalo s odgovarajućim pojačanjima.

(2) Ici, nous avons un amplificateur non-inverseur. D'après la formulale suivante:

Vs = Ve (1 + Z1/Z2)

Na odabranom un dobitak od 101 en mettant R1 = 100 kOhm et R2 = 1 kOhm.

Cet pojačalo sa servirom i pojačalom le son du mikro.

(3) Les deux résistances vont créer un offset afin que la voltage de sortie soit entre 0 et 4 V.

(4) Pojačalo sa mikro mikro pojačalom za pojačalo.

(5) CAG (Controle Automatique de Gain)

(6) Pour finir, nous avons créé un filtre passe-bas du second ordre avec deux RC. L'ordre 2 je neophodna za izbjegavanje smanjenja od - 40db / deceniju. Frekventna frekvencija izabrana na 20 kHz.

Engleski:

Prvi korak je postavljanje kola koje može prihvatiti signal koji šalje mikrofon za prijenos na DE0 Nano Soc karticu. Iznad dijagrama našeg unosa.

(1) Pretvarač će obnoviti 5 V i pretvoriti ga u - 5 V. - 5 V će poslužiti za pojačalo koje ćemo vidjeti u nastavku.

(2) Ovdje imamo neinvertirajuće pojačalo. Prema sljedećoj formuli:

Vs = Ve (1 + Z1 / Z2)

Dobit od 101 odabrana je postavljanjem R1 = 100 kOhm i R2 = 1 kOhm.

Ovo pojačalo će se koristiti za pojačavanje zvuka mikrofona.

(3) Dva otpornika će stvoriti pomak tako da je izlazni napon između 0 i 4 V.

(4) Mikrofon koji će se pojačati pojačalom.

(5) AGC (automatska kontrola pojačanja)

(6) Konačno, stvorili smo niskopropusni filter drugog reda s dva RC-a. Narudžba 2 je bila potrebna za smanjenje od -40db / deceniju. Odabrana granična frekvencija je 20 kHz.

Korak 2: Koncepcija Du Circuit En Sortie / Dizajn izlaznog kola

Conception Du Circuit En Sortie / Dizajn izlaznog kola
Conception Du Circuit En Sortie / Dizajn izlaznog kola

Français:

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

Ci-dessus le schéma de notre sortiranje.

(1) Le DAC (digitalno -analogni pretvarač) qui va permettre dostavljača prijemnika signala numérique izaslanik par la carte DE0 Nano Soc i konverzija signala u analogu (potrebna za le haut parleur)

(2) Lapacité va servir a virer la Composante nastavlja signal.

(3) Montirajte qui va permettre pojačala pojačanog signala. Nous avons prit le schéma:

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

strana 10

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

Engleski:

Iznad dijagrama našeg izlaza.

(1) DAC (digitalno -analogni pretvarač) koji će omogućiti oporavak digitalnog signala koji šalje kartica DE0 Nano Soc i pretvoriti ga u analogni signal (neophodan za zvučnik).

(2) Kapacitet će se koristiti za prijenos kontinuirane komponente našeg signala.

(3) Montaža koja će pojačati snagu našeg signala. Uzeli smo shemu:

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

strana 10

Ova shema omogućuje dobitak od 200 koji je neophodan jer je naš signal zaista slab.

Korak 3: Koncepcija Deska PCB / Dizajn PCB -a

Koncepcija PCB -a / Dizajn PCB -a
Koncepcija PCB -a / Dizajn PCB -a

Français:

Une fois que no circuits on the été instancesés il nous a fallu les mettre sur des PCB.

Pour ce faire, nous avons utiliser le logiciel Altium. Da biste to učinili, morate ispraviti vezu za povezivanje klikom na:

Dizajn menija -> Ažuriraj PCB dokument.

Vlastita kupaonica, kliknite na «Provjeri promjene». Nalijte promjenu chaque validé, un crochet vert apparaît dans la colonne: «Ček».

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

U meniju "File" -> "Fabrication Output" -> "Gerber Files" možete izabrati neki problem.

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

  • Na izborniku "Slojevi" nalazi se optimalan odabir slojeva koji se nalaze na PCB -u.
  • Na izborniku "Crtanje bušilice" možete vidjeti ikonu koja se ne može otvoriti.
  • Na izborniku "Otvori" kliknite na "Ugrađeni otvori".

Toute ses étapes sont complétées?

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

Datoteka-> Izlaz proizvodnje -> NC datoteke za bušenje

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

Na ovom mjestu možete pronaći fotografije sa tiskanih pločica.

Engleski:

Nakon što su se naša kola pojavila, morali smo ih staviti na štampane ploče.

Da bismo to učinili, koristimo softver Altium. Sve mora biti ispravno povezano, a zatim kliknite na:

Dizajn menija -> Ažuriraj PCB dokument.

Zatim kliknite na "Provjeri promjene". Za svaku provjerenu promjenu, u koloni "Provjeri" pojavljuje se zelena kvačica.

Nakon toga imat ćete novu karticu koja će se otvoriti i komponente ćete morati postaviti u ovaj prozor.

Zatim morate otići na izbornik "Datoteka" -> "Izlazni izlaz" -> "Gerber datoteke"

Otvara se prozor u kojem ćete pronaći;

Izbornik "Slojevi" koji će vam omogućiti da odaberete koji će slojevi podržavati vašu PCB. Izbornik "Drill Drawing" (Crtanje bušilice) u kojem se sve ne mora provjeravati. Izbornik "Otvori" u kojem morate provjeriti "Ugrađeni otvori".

Svi njegovi koraci su završeni?

Vratimo se sada prozoru sa komponentama na koje kliknete

Datoteka-> Proizvodni izlaz -> NC datoteke za bušenje

Konačno je gotovo, sve što trebate učiniti je dati 3D štampaču datoteke.

U prilogu ćete pronaći fotografije naša dva PCB -a.

Korak 4: Périphériques Pour La Carte DE0 Nano Soc / periferija za DE0 Nano Soc karticu

Périphériques Pour La Carte DE0 Nano Soc / Periferija za DE0 Nano Soc karticu
Périphériques Pour La Carte DE0 Nano Soc / Periferija za DE0 Nano Soc karticu

Francais:

Zahvaljujući optimizaciji IP -a za poboljšanje Intel FPGA -e i zastrašujućim dodatnim optimizacijama za vrijeme začeća i testiranja.

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:

  • Komunikacija SPI za DAC
  • ADC za recupérer analogne analogne signale i konverziju digitalnih signala
  • HPS (procesor) sipajte sve kodove
  • GPIO za sve boutons qui vont servir à exécuter određene efekte
  • Memorija (na memoriji čipa)

Engleski:

IP jezgre optimizirane su za Intel FPGA uređaje i mogu se lako implementirati kako bi se smanjilo vrijeme projektiranja i testiranja.

Zahvaljujući softveru Qsys uspjeli smo stvoriti ugrađene periferne uređaje na našoj karti. Evo popisa uređaja koje smo dodali:

  • SPI komunikacija za DAC
  • ADC za preuzimanje analognih vrijednosti iz našeg signala i njihovo pretvaranje u digitalne podatke
  • HPS (procesor) za upravljanje svim kodovima
  • GPIO za dugmad koja će se koristiti za suočavanje s određenim efektima
  • Memorija (u memoriji čipa)

Korak 5: L'écran LT24

L'écran LT24
L'écran LT24

Français:

Ovo je pogrešan komprender i uređaj za prijenos LT24 celuloznih čipova koji se vode prema procesoru simultanom NIOS-u.

Pour l'initaliser, nous avons lu beaucoup de documentations sur celui-ci.

U konačnici, ne morate biti sigurni da je službenik FFT -a izabran za efekt voulu.

Engleski:

Morali smo razumjeti i upravljati ekranom LT24 kojim će upravljati simulirani NIOS procesor. Da bismo ga pokrenuli, pročitali smo dosta dokumentacije o tome.

Na kraju, naš ekran se koristi za prikaz FFT -a, do željenog efekta.

Korak 6: Kodovi Utiles En C ++ / Korisni kodovi u C ++

Kodovi Utiles En C ++ / Korisni kodovi u C ++
Kodovi Utiles En C ++ / Korisni kodovi u C ++

Vais vous montrer les codes in C ++ qui nous ont uses afin de réaliser des effets sonores.

Voici d'abord toutes nos déclarations (oui un peu excluustif …):

Pokazat ću vam kodove u C ++ koji su nam bili korisni za stvaranje zvučnih efekata.

Prvo, sve naše izjave (da, malo iscrpne …):

#include

#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_00x (0def HW_REGS_00x 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 koristeći imenski prostor std; const long SAMPLE_RATE = 12500000; // Kreiranje de la konfiguracije i međuspremnika u izlazu s (t) i 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*veličinaof (kiss_fft_cpx)); kiss_fft_cpx*inv = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)); queueoutBuf; int global = 0; int i = 0; kratki podaci, data2;

Ci-desous une de nos fonctions permettant la modulacija:

Ispod jedne od naših funkcija koja omogućuje modulaciju:

modulacija void (int freq)

{if (i <NFFT) {data = data*cos (2*PI*freq*i/FE); u .r = podaci; i ++; } else i = "0"; }

Voici notre fonction main:

Ovo su naše glavne funkcije:

int main (int argc, char ** argv)

{volatile unsigned long *h2p_lw_spi_addr = NULL; isparljivo bez potpisa dugo *h2p_lw_led_addr = NULL; hlapljivo bez potpisa dugo *h2p_lw_adc_addr = NULL; isparljivo nepotpisano dugo *h2p_lw_blue_addr = NULL; isparljivo bez potpisa dugo *h2p_lw_red_addr = NULL; isparljivo nepotpisano dugo *h2p_lw_black_addr = NULL; void *virtualna baza; int fd; printf ("1 / n"); // preslikavamo adresni prostor za spi registre u korisnički prostor kako bismo mogli s njima komunicirati. // mi ćemo zapravo mapirati cijeli CSR raspon HPS -a budući da želimo pristupiti različitim registrima unutar tog raspona if ((fd = open ("/dev/mem", (O_RDWR | O_SYNC))) == -1) {printf ("GREŠKA: nije moguće otvoriti \"/dev/mem / "… / n"); return (1); } printf ("2 / n"); virtualna_baza = mmapa (NULL, HW_REGS_SPAN, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, HW_REGS_BASE); printf ("3 / n"); if (virtual_base == MAP_FAILED) {printf ("GREŠKA: mmap () nije uspjela … / n"); zatvori (fd); return (1); } printf ("4 / n"); printf ("5 / n"); h2p_lw_spi_addr = virtual_base + ((bez potpisa dugo) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (bez potpisa bez duga) (HW_REGS_MASK)); h2p_lw_led_addr = virtual_base + ((bez potpisa dugo) (ALT_LWFPGASLVS_OFST + PIO_LED_BASE) & (bez potpisa bez duga) (HW_REGS_MASK)); h2p_lw_adc_addr = virtual_base + ((bez potpisa dugo) (ALT_LWFPGASLVS_OFST + ADC_0_BASE) & (bez potpisa bez duga) (HW_REGS_MASK)); h2p_lw_blue_addr = virtual_base + ((bez potpisa dugo) (ALT_LWFPGASLVS_OFST + PIO_BLUE_BASE) & (bez potpisa bez duga) (HW_REGS_MASK)); h2p_lw_black_addr = virtual_base + ((bez potpisa dugo) (ALT_LWFPGASLVS_OFST + PIO_BLACK_BASE) & (bez potpisa bez duga) (HW_REGS_MASK)); h2p_lw_red_addr = virtual_base + ((unsigned long) (ALT_LWFPGASLVS_OFST + PIO_RED_BASE) & (unsigned long) (HW_REGS_MASK)); // int i = 0; int podaci; int i = 0, j; // Kreiranje de la konfiguracije i međuspremnika u izlazu s (t) i 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*veličinaof (kiss_fft_cpx)); while (1) {data = *(h2p_lw_adc_addr+2); if (*h2p_lw_blue_addr == 1) data = echo (podaci, 20); if (*h2p_lw_black_addr == 1) alt_write_word (h2p_lw_led_addr, 0x0F); if (*h2p_lw_red_addr == 0) alt_write_word (h2p_lw_led_addr, 0xF0); alt_write_word (h2p_lw_spi_addr+1, podatak | 0b111000000000000); } besplatno (konfiguracija); besplatno (u); free (out); return 0; }

Korak 7: Završni / završni

Le Final / The Final
Le Final / The Final

Français:

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

Niti izbjegavajte unos PCB -a i razvrstavanje Qui Sont reliéa po narudžbi DE0 Nano Soc.

Ensuite, ses composants sont placés à l'interieur d'une boite jaune.

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

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

C'est tout pour aujourd'hui.

En esperant que cet Instructable vous soit utile.

Engleski:

Ovdje smo (konačno) konačni prikaz našeg Cactus 2000.

Stavili smo ulazne i izlazne PCB -ove koji su spojeni na ploču DE0 Nano Soc.

Zatim se njegove komponente stavljaju u žutu kutiju.

Na kutiji se nalazi klizni potenciometar koji može upravljati jačinom zvuka, gumbi i tipke koji će pokrenuti neke efekte te zaslon koji će prikazati FFT.

Zvučnik je postavljen okomito na dugmad. Mikrofon se nalazi s druge strane kutije u odnosu na zvučnik.

To je sve za danas.

Nadajući se da vam je ovaj Instructable koristan.

Preporučuje se: