Taula de continguts:

Cactus 2000: 7 passos
Cactus 2000: 7 passos

Vídeo: Cactus 2000: 7 passos

Vídeo: Cactus 2000: 7 passos
Vídeo: ЗАКРИЧАЛ – ПОТЕРЯЛ ₽200.000 / ТРЭШКЭШ: Тишина 2024, De novembre
Anonim
Cactus 2000
Cactus 2000

PROJECTE MIDI-CONTROLEUR EISE4

Francès:

Quan de la nostra quarta any d’escola tècnica, hem aconseguit un controlador mitjà. Pour ce faire, nous avions à notre disposition:

  • Une carte DE0 Nano Soc
  • Des oscil·loscopis, des multimètres
  • Des de components diferents (amplificador, resistència, capacitat …)
  • Un micro et un haut-parleur
  • Un petit pantalla

Il nous a fallu passer per diferents étapes périlleuses afin de réussir le projet. Nous allons vous les presenter en cet Instructable.

Pour commencer, le dessin du circuit de base era necessari 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'ocupaient de gérer les PCB de l'entrée et de la sortie, les deux autres s'ocupa de faire fonctionner la carte DE0 Nano Soc afin que la carta puisse récupérer les echantillons du micro et redonner un signal pour le haut-parleur. Finalment, il nous a fallu create des effets sonores pour modifier le son.

Anglès:

Durant el quart any d’escola, ens vam adonar d’un controlador midi. Per fer-ho, teníem a la nostra disposició:

  • Un mapa DE0 Nano Soc
  • Oscil·loscopis, multímetres
  • Components de diferents tipus (amplificador, resistència, capacitat …)
  • Un micròfon i un altaveu
  • Una petita pantalla

Vam haver de fer diversos passos perillosos perquè el projecte fos un èxit. Us presentarem aquest instructiu.

En primer lloc, el disseny del circuit bàsic necessari per recuperar el fill del micròfon i fer l’altaveu. Un cop sortit el circuit, el PCB s’havia de fer al programari Altium. Mentre dos estudiants estaven ocupats en la gestió dels PCB d’entrada i sortida, els altres dos treballaven per executar la targeta DE0 Nano Soc perquè la targeta pogués recollir les mostres de micròfon i donar un senyal per l’altaveu. Finalment, vam haver de crear efectes de so per canviar el so.

Pas 1: Concepció del circuit en entrada / disseny del circuit d’entrada

Conception Du Circuit En Entrée / Entrance Circuit Design
Conception Du Circuit En Entrée / Entrance Circuit Design

Francès:

La première étape consisteix a posar en un lloc que pot prendre el senyal enviat al micro per transmetre-ho a la carta DE0 Nano Soc.

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

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

(2) Ici, nous avons un amplificateur non-inverseur. D'après la fórmula següent:

Vs = Ve (1 + Z1 / Z2)

On a choisit un gain de 101 en mettant R1 = 100 kOhm et R2 = 1 kOhm.

Cet amplificateur va servir a amplifier le son du micro.

(3) Les deux résistances vont create un offset afin que la tension de sortie soit comprises entre 0 et 4 V.

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

(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 era necessari per tenir una atenuació de - 40db / decade. La freqüència de coupure choisit és de 20 kHz.

Anglès:

El primer pas és configurar un circuit que pugui transmetre el senyal enviat al micròfon per transmetre’l a la targeta DE0 Nano Soc. A sobre del diagrama de la nostra entrada.

(1) L'inversor recuperarà el 5 volts i el transformarà en - 5 V. El - 5 V servirà per a l'amplificador que veurem a continuació.

(2) Aquí tenim un amplificador sense inversió. Segons la fórmula següent:

Vs = Ve (1 + Z1 / Z2)

Es va escollir un guany de 101 establint R1 = 100 kOhm i R2 = 1 kOhm.

Aquest amplificador s’utilitzarà per amplificar el so del micròfon.

(3) Les dues resistències crearan un desplaçament de manera que la tensió de sortida estigui entre 0 i 4 V.

(4) El micròfon que l'amplificador amplificarà.

(5) AGC (control automàtic del guany)

(6) Finalment, vam crear un filtre de pas baix de segon ordre amb dos RC. Calia l’ordre 2 per tenir una atenuació de -40db / dècada. La freqüència de tall escollida és de 20 kHz.

Pas 2: Concepció del circuit en sortie / Disseny del circuit de sortida

Conception Du Circuit En Sortie / Disseny del circuit de sortida
Conception Du Circuit En Sortie / Disseny del circuit de sortida

Francès:

En un segon temps, hem pensat a la creació del circuit en sortida.

Ci-dessus le schéma de notre sortie.

(1) Le DAC (Digital to Analog Converter) qui permetrà recuperar el senyal numèric enviat a la carta DE0 Nano Soc i convertir-lo en un senyal analògic (necessari per al més alt)

(2) La capacité va servir a virer la composante continue de notre signal.

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

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

pàgina 10

Ce schéma permet d'avoir a gain of 200 qui is required car notre signal is vraiment faible.

Anglès:

A sobre del diagrama de la nostra sortida.

(1) El DAC (convertidor digital a analògic) que permetrà recuperar el senyal digital enviat per la targeta DE0 Nano Soc i convertir-lo en un senyal analògic (necessari per a l'altaveu).

(2) La capacitat s'utilitzarà per transferir el component continu del nostre senyal.

(3) Muntatge que amplificarà la potència del nostre senyal. Vam prendre l'esquema:

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

pàgina 10

Aquest esquema permet obtenir un guany de 200 que és necessari perquè el nostre senyal és realment feble.

Pas 3: Concepció Des PCB / Disseny del PCB

Conception Des PCB / Disseny del PCB
Conception Des PCB / Disseny del PCB

Francès:

Une fois que nos circuits have been instanciés il nous a fallu les mettre sur des PCB.

Pour ce faire, nous avons use le logiciel Altium. Il faut que tout soit correctement connecter then cliquer sur:

Disseny de menús -> Actualitza el document PCB.

Ensuite, feu clic a «Validar canvis». Pour chaque changement validé, un crochet vert apparaît dans la colonne: «Check».

Après cela, vous auréz un nouvel onglet qui va obrir i il faudra placer les composants dans this fenêtre.

Puis, il faut aller in the menu "File" -> "Fabrication Output" -> "Gerber Files"

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

  • El menú "Capes" que us permetrà escollir sobre quines capes us deixarà el vostre PCB.
  • El menú "Drill Drawing" en el que cal que tot sigui descocher.
  • Al menú "Apertures" en el qual calia "Aplicacions incrustades".

Toute ses étapes are complétées?

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

Fitxer-> Fabricació de sortida -> NC Drill Files

C'est enfin finit, il ne reste plus qu'à donner a l'imprimant 3D dels fitxers.

Vostè trobarà ci-joint les fotos de dos PCB.

Anglès:

Un cop instanciats els nostres circuits, els vam haver de posar als PCB.

Per fer-ho, fem servir el programari Altium. Tot ha d'estar correctament connectat i feu clic a:

Disseny de menús -> Actualitza el document PCB.

A continuació, feu clic a "Valida els canvis". Per a cada canvi validat, apareix una marca de verificació verda a la columna "Comprova".

Després d'això, tindreu una nova pestanya que s'obrirà i haureu de col·locar els components en aquesta finestra.

Després heu d'anar al menú "Fitxer" -> "Sortida de sortida" -> "Fitxers Gerber"

S'obre una finestra, en aquesta hi trobareu;

El menú "Capes" que us permetrà escollir quines capes donaran suport al vostre PCB. El menú "Dibuix de perforació" on s'ha de desmarcar tot. El menú "Obertures" en què heu de marcar "Obertures incrustades".

Tots els seus passos estan completats?

Tornem ara a la finestra amb els components en què feu clic

Fitxer-> Sortida de fabricació -> Fitxers de perforació NC

Per fi s’ha acabat, tot el que heu de fer és donar els fitxers a la impressora 3D.

Trobareu adjuntes les fotos dels nostres dos PCB.

Pas 4: Périphériques Pour La Carte DE0 Nano Soc / Perifèrics per a la targeta DE0 Nano Soc

Périphériques Pour La Carte DE0 Nano Soc / Perifèrics per a la targeta DE0 Nano Soc
Périphériques Pour La Carte DE0 Nano Soc / Perifèrics per a la targeta DE0 Nano Soc

Francès:

Les claus IP estan optimitzades per a les perifèriques Intel FPGA i poden ser implementades per reduir la concepció i el temps de prova.

Grâce au logiciel Qsys nous avons pu create des périphériques embarqués in our carte.

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

  • Comunicació SPI pour le DAC
  • ADC per recuperar els valors analògics del nostre senyal i convertir-los en dades digitals
  • HPS (processeur) per gestionar tots els codis
  • GPIO pour les boutons qui vont servir à executer certain effets
  • Mémoire (en memòria xip)

Anglès:

Els nuclis IP estan optimitzats per a dispositius Intel FPGA i es poden implementar fàcilment per reduir el disseny i el temps de prova.

Gràcies al programari Qsys vam poder crear perifèrics incrustats al nostre mapa. Aquí teniu una llista del dispositiu que hem afegit:

  • Comunicació SPI per al DAC
  • ADC per recuperar els valors analògics del nostre senyal i convertir-los en dades digitals
  • HPS (processador) per gestionar tots els codis
  • GPIO per als botons que s’utilitzaran per fer front a determinats efectes
  • Memòria (a la memòria del xip)

Pas 5: L'écran LT24

L'écran LT24
L'écran LT24

Francès:

Il nous a fallu comprendre et gérer l'écran LT24 celui-ci sera guidé per un processador simulat NIOS.

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

Al final, el nostre ecran s'afereix a la FFT, a l'hora de seleccionar-lo.

Anglès:

Vam haver d'entendre i gestionar la pantalla LT24, que serà guiada per un processador NIOS simulat. Per iniciar-lo, hi llegim molta documentació.

Al final, la nostra pantalla s'utilitza per mostrar el FFT, amb l'efecte desitjat.

Pas 6: els codis utilitzen En C ++ / Codis útils a C ++

Codes Utilitza En C ++ / Codis útils a C ++
Codes Utilitza En C ++ / Codis útils a C ++

Je vais vous montrer les codes en C ++ qui nous ont utiles afin de réaliser des effets sonores.

Voici d'abord totes nos declarations (oui un peu exhaustif …):

Us mostraré els codis en C ++ que ens van ser útils per crear efectes de so.

En primer lloc, totes les nostres afirmacions (sí una mica exhaustives …):

#incloure

#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) 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 utilitzant namespace std; const long SAMPLE_RATE = 12500000; // Creació de la configuració i des de les memòries intermèdies en 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; dades curtes, dades2;

Ci-dessous una de nos funcions permetent la modulació:

A sota d’una de les nostres funcions que permet la modulació:

modulació buida (freq int)

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

La nostra funció principal:

Aquestes són la nostra funció principal:

int main (int argc, char ** argv)

{volatile unsigned long * h2p_lw_spi_addr = NULL; volàtil sense signar llarg * h2p_lw_led_addr = NULL; volàtil sense signar llarg * h2p_lw_adc_addr = NULL; volàtil sense signar llarg * h2p_lw_blue_addr = NULL; volàtil sense signar llarg * h2p_lw_red_addr = NULL; volàtil sense signar llarg * h2p_lw_black_addr = NULL; void * virtual_base; int fd; printf ("1 / n"); // mapeu l'espai d'adreces dels registres spi a l'espai de l'usuari perquè puguem interactuar amb ells. // realment maparem tot el període de RSC de l'HPS, ja que volem accedir a diversos registres dins d'aquest interval si ((fd = open ("/ dev / mem", (O_RDWR | O_SYNC))) == -1) {printf ("ERROR: no s'ha pogut obrir \" / dev / mem / "… / n"); retorn (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 () ha fallat … / n"); tancar (fd); tornar (1); } printf ("4 / n"); printf ("5 / n"); h2p_lw_spi_addr = virtual_base + ((sense signar llarg) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (sense signar per llarg) (HW_REGS_MASK)); h2p_lw_led_addr = virtual_base + ((sense signar llarg) (ALT_LWFPGASLVS_OFST + PIO_LED_BASE) i (sense signar per llarg) (HW_REGS_MASK)); h2p_lw_adc_addr = virtual_base + ((sense signar llarg) (ALT_LWFPGASLVS_OFST + ADC_0_BASE) & (sense signar per llarg) (HW_REGS_MASK)); h2p_lw_blue_addr = virtual_base + ((sense signar llarg) (ALT_LWFPGASLVS_OFST + PIO_BLUE_BASE) & (sense signar llarg) (HW_REGS_MASK)); h2p_lw_black_addr = virtual_base + ((sense signar llarg) (ALT_LWFPGASLVS_OFST + PIO_BLACK_BASE) & (sense signar llarg) (HW_REGS_MASK)); h2p_lw_red_addr = virtual_base + ((sense signar llarg) (ALT_LWFPGASLVS_OFST + PIO_RED_BASE) & (sense signar llarg) (HW_REGS_MASK)); // int i = 0; dades int; int i = 0, j; // Creació de la configuració i des de memòria intermèdia per a fora (s) 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 * sizeof (kiss_fft_cpx)); while (1) {data = * (h2p_lw_adc_addr + 2); if (* h2p_lw_blue_addr == 1) data = eco (dades, 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, dades | 0b111000000000000); } gratuït (configuració); gratuït (in); gratuït (fora); retorn 0; }

Pas 7: La final / la final

Le Final / the Final
Le Final / the Final

Francès:

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, ses composants are placés à 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 certain effectets, ainsi que un screen qui permetra 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.

Anglès:

Aquí tenim (finalment) la versió final del nostre Cactus 2000.

Posem els PCB d’entrada i sortida que estan connectats a la placa DE0 Nano Soc.

Després, els seus components es col·loquen dins d’una caixa groga.

A la caixa hi ha un potenciòmetre de diapositives, que pot gestionar el volum del so, els botons i els botons que llançaran alguns efectes, i una pantalla que mostrarà el FFT.

L'altaveu es col·loca perpendicularment als botons. El micròfon es situa a l’altre costat de la caixa en relació amb l’altaveu.

Això és tot per avui.

Amb l'esperança que aquest instructable us sigui útil.

Recomanat: