Sisällysluettelo:

Kaktus 2000: 7 vaihetta
Kaktus 2000: 7 vaihetta

Video: Kaktus 2000: 7 vaihetta

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

HANKKEEN MIDI-CONTROLEUR 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
  • Oskilloskoopit, multimittarit
  • Eri tyyppisten säveltäjien (vahvistin, vastus, kapasiteetti …)
  • Mikro- ja haut-parleur
  • Pieni ekologinen

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

Kaada aloittaja, le dessin du circuit de base était nécessaire afin de récupérer le son du micro et le rendre au haut-parleur. Yksinkertainen piirin jälkiruoka, PCB -käyttö, joka on 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'occupa de faire fonctionner la carte DE0 Nano Soc afin que la carte puisse récupérer les echantillons du micro et redonner un signal pour le haut-parleur. Finallement, il nous a fallu créer des effets sonores pour modifier le son.

Englanti:

Neljännen kouluvuoden aikana toteutimme midi-ohjaimen. Tätä varten meillä oli käytettävissään:

  • Kartta DE0 Nano Soc
  • Oskilloskoopit, yleismittarit
  • Eri tyyppiset komponentit (vahvistin, vastus, kapasiteetti …)
  • Mikrofoni ja kaiutin
  • Pieni näyttö

Meidän oli käytävä läpi useita vaarallisia vaiheita projektin onnistumiseksi. Esittelemme sinulle tämän ohjeen.

Ensinnäkin peruspiirin suunnittelu, joka tarvitaan mikrofonin pojan palauttamiseen ja kaiuttimen valmistamiseen. Piirin piirustuksen jälkeen piirilevy oli tehtävä Altium -ohjelmistolla. Kun kaksi opiskelijaa oli kiireinen tulo- ja lähtöpiirilevyjen hallinnassa, kaksi muuta työskentelivät DE0 Nano Soc -kortin suorittamiseksi, jotta kortti voisi poimia mikrofoninäytteet ja antaa signaalin kaiuttimelle. Lopuksi meidän piti luoda äänitehosteita äänen muuttamiseksi.

Vaihe 1: Conception Du Circuit En Entrée / Sisääntulopiirin suunnittelu

Conception Du Circuit En Entrée / Sisäänkäyntipiirin suunnittelu
Conception Du Circuit En Entrée / Sisäänkäyntipiirin suunnittelu

Français:

Première étape consiste à mettre en place un circuit 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 va permettre 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 formule suivante:

Vs = Ve (1 + Z1/Z2)

Valitulla vahvistuksella de 101 fi mettant R1 = 100 kOhm et R2 = 1 kOhm.

Cet -vahvistin va servir a vahvistin le son du micro.

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

(4) Mikrofonivahvistin vahvistimelle.

(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 -vaihtoehtoa ei tarvita - 40 dB / vuosikymmen. Valittavana on 20 kHz taajuus.

Englanti:

Ensimmäinen askel on luoda piiri, joka voi vastaanottaa mikrofonin lähettämän signaalin ja lähettää sen DE0 Nano Soc -kortille. Tuloksemme kaavion yläpuolella.

(1) Invertteri ottaa talteen 5 voltin ja muuntaa sen - 5 V. V. - 5 V toimii vahvistimessa, jonka näemme alla.

(2) Tässä meillä on invertoimaton vahvistin. Seuraavan kaavan mukaan:

Vs = Ve (1 + Z1 / Z2)

Vahvistus 101 valittiin asettamalla R1 = 100 kOhm ja R2 = 1 kOhm.

Tätä vahvistinta käytetään vahvistamaan mikrofonin ääntä.

(3) Molemmat vastukset muodostavat offsetin siten, että lähtöjännite on 0 ja 4 V.

(4) Mikrofoni, jota vahvistin vahvistaa.

(5) AGC (automaattinen vahvistuksen säätö)

(6) Lopuksi loimme toisen asteen alipäästösuodattimen, jossa oli kaksi RC: tä. Tilaus 2 vaati vaimennuksen -40 dB / vuosikymmen. Valittu rajataajuus on 20 kHz.

Vaihe 2: Conception Du Circuit En Sortie / Lähtöpiirin suunnittelu

Konsepti Du Circuit En Sortie / Lähtöpiirin suunnittelu
Konsepti Du Circuit En Sortie / Lähtöpiirin suunnittelu

Français:

Dans un second tempps, nous avons penser à 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 signaal numberérique envoyer par la carte DE0 Nano Soc et le convertir en signal analogique (necessaire pour le haut parleur)

(2) Lapacité va servir a virer la composante jatkuu de notre signal.

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

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

sivu 10

Se on permet d'avoir un gain de 200 qui est nécessaire car notre signal est estrament faible.

Englanti:

Tuloksemme kaavion yläpuolella.

(1) DAC (Digital to Analog Converter), jonka avulla voidaan palauttaa DE0 Nano Soc -kortin lähettämä digitaalinen signaali ja muuntaa se analogiseksi signaaliksi (välttämätön kaiuttimelle).

(2) Kapasiteettia käytetään signaalimme jatkuvan komponentin siirtämiseen.

(3) Asennus, joka vahvistaa signaalimme tehoa. Otimme kaavan:

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

sivu 10

Tämä järjestelmä mahdollistaa 200 vahvistuksen, joka on tarpeen, koska signaalimme on todella heikko.

Vaihe 3: Piirilevyn suunnittelu / piirilevyn suunnittelu

PCB: n idea / piirilevyn suunnittelu
PCB: n idea / piirilevyn suunnittelu

Français:

Une fois que nos circuits on été instanciés il nous and fallu les mettre sur des PCB.

Kaada reilusti, nous avons utiliser le logiciel Altium. Il faut que tout soit correctement connecter puis cliquer sur:

Valikon suunnittelu -> Päivitä piirilevyasiakirja.

Oma kylpyhuone, klikkaa "Vahvista muutokset". Kaada chaque changement validé, virkkaa vert apparaît dans la colonne: «Tarkista».

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" -> "Fabrication Output" -> "Gerber Files"

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

  • Valikossa "Kerrokset" on valinnainen valintamenetelmä, jossa on kerrosvahvistimia, joissa on piirilevy.
  • Valikossa "Porauspiirustus" on lequel il faut que tout soit décocher.
  • "Aukot" -valikossa on teksti "Upotetut ulkoasut".

Toute ses étapes sont complétées?

Revenons ylläpitää à la fenêtre avec les composants sur celle-ci vous cliquez sur

Tiedosto-> Valmistuslähtö -> NC -poratiedostot

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.

Englanti:

Kun piirimme olivat hetkellisiä, meidän piti laittaa ne piirilevyille.

Käytämme tätä varten Altium -ohjelmistoa. Kaikki on liitettävä oikein ja napsauta sitten:

Valikon suunnittelu -> Päivitä piirilevyasiakirja.

Napsauta sitten "Vahvista muutokset". Jokaisen vahvistetun muutoksen kohdalla Check -sarakkeessa näkyy vihreä valintamerkki.

Tämän jälkeen sinulla on uusi välilehti, joka avautuu, ja sinun on sijoitettava komponentit tähän ikkunaan.

Sitten sinun on siirryttävä "Tiedosto" -> "Lähdön lähtö" -> "Gerber -tiedostot" -valikkoon

Ikkuna avautuu, josta löydät;

"Tasot" -valikon avulla voit valita, mitkä kerrokset tukevat piirilevyäsi. "Porauspiirustus" -valikko, jossa kaikki on poistettava. Valikko "Aukot", jossa sinun on valittava "Upotetut asetukset".

Onko kaikki hänen vaiheensa suoritettu?

Palataan nyt ikkunaan, jossa on komponentit, joita napsautat

Tiedosto-> Valmistusteho -> NC -poratiedostot

Se on vihdoin ohi, sinun tarvitsee vain antaa 3D -tulostimelle tiedostot.

Liitteenä on kuvia kahdesta piirilevystämme.

Vaihe 4: Périphériques Pour La Carte DE0 Nano Soc / Oheislaitteet DE0 Nano Soc -kortille

Périphériques Pour La Carte DE0 Nano Soc / Oheislaitteet DE0 Nano Soc -kortille
Périphériques Pour La Carte DE0 Nano Soc / Oheislaitteet DE0 Nano Soc -kortille

Francais:

Pieniä IP -optimointeja Intel FPGA -tekniikan optimoimiseksi ja peuvent être implémentés pour réduire la conception et le tempps 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:

  • Tiedonsiirto SPI DAC: lle
  • ADC kaataa muistiinpanot signaalista ja muunnoksesta digitaalisessa muodossa
  • HPS (prosessori) kaataa koodit
  • GPIO pour les boutons qui vont servir à exécuter certains effets
  • Mémoire (sirumuistissa)

Englanti:

IP -ytimet on optimoitu Intel FPGA -laitteille, ja ne voidaan helposti toteuttaa suunnittelun ja testiajan lyhentämiseksi.

Qsys -ohjelmiston ansiosta pystyimme luomaan kartallemme upotettuja oheislaitteita. Tässä on luettelo lisäämistämme laitteista:

  • SPI -tiedonsiirto DAC: lle
  • ADC hakee analogiset arvot signaalistamme ja muuntaa ne digitaaliseen dataan
  • HPS (prosessori) kaikkien koodien hallintaan
  • GPIO painikkeille, joita käytetään tiettyjen tehosteiden käsittelyyn
  • Muisti (sirun muistissa)

Vaihe 5: L'écran LT24

L'écran LT24
L'écran LT24

Français:

Il nous a fallu comprendre et gérer l'écran LT24 celui-ci sera opas par unurseur simulé NIOS.

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

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

Englanti:

Meidän oli ymmärrettävä ja hallittava näyttö LT24, jota ohjaa simuloitu NIOS -prosessori. Aloittaaksemme sen luimme paljon asiakirjoja.

Lopulta näyttöä käytetään FFT: n näyttämiseen halutulla tavalla.

Vaihe 6: Koodit Utiles En C ++ / Hyödyllisiä koodeja C ++: ssa

Koodit Utiles En C ++ / Hyödyllisiä koodeja C ++: ssa
Koodit Utiles En C ++ / Hyödyllisiä koodeja C ++: ssa

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

Voici d'abord toutes nos dlacrations (oui un peu exploustif…):

Aion näyttää sinulle koodit C ++: ssa, joista oli hyötyä äänitehosteiden luomiseen.

Ensinnäkin kaikki lausumamme (kyllä hieman tyhjentävät …):

#sisältää

#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 (0x04F00 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 using namespace std; const pitkä SAMPLE_RATE = 12500000; // Création de la configuration et des buffers in 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 globaali = 0; int i = 0; lyhyt data, data2;

Ci-dessous une de nos fonctions permettant la modulation:

Alla yksi toiminnoista, jotka mahdollistavat moduloinnin:

mitätön modulaatio (taajuus)

{if (i <NFFT) {data = data*cos (2*PI*taajuus*i/FE); .r = tiedot; i ++; } muu i = "0"; }

Voici notre fonction main:

Nämä ovat päätehtävämme:

int main (int argc, char ** argv)

{haihtuva allekirjoittamaton pitkä *h2p_lw_spi_addr = NULL; haihtuva allekirjoittamaton pitkä *h2p_lw_led_addr = NULL; haihtuva allekirjoittamaton pitkä *h2p_lw_adc_addr = NULL; haihtuva allekirjoittamaton pitkä *h2p_lw_blue_addr = NULL; haihtuva allekirjoittamaton pitkä *h2p_lw_red_addr = NULL; haihtuva allekirjoittamaton pitkä *h2p_lw_black_addr = NULL; void *virtual_base; int fd; printf ("1 / n"); // kartoittaa spi -rekisterien osoitetila käyttäjätilaan, jotta voimme olla vuorovaikutuksessa niiden kanssa. // kartoitamme itse asiassa HPS: n koko CSR -alueen, koska haluamme käyttää eri rekisteriä tällä aikavälillä, jos ((fd = open ("/dev/mem", (O_RDWR | O_SYNC))) == -1) {printf ("VIRHE: ei voitu avata \"/dev/mem / "… / n"); paluu (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 ("VIRHE: mmap () epäonnistui… / n"); sulje (fd); paluu (1); } printf ("4 / n"); printf ("5 / n"); h2p_lw_spi_addr = virtual_base + ((pitkä allekirjoittamaton) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (allekirjoittamaton pitkä) (HW_REGS_MASK)); h2p_lw_led_addr = virtual_base + ((pitkä allekirjoittamaton) (ALT_LWFPGASLVS_OFST + PIO_LED_BASE) & (allekirjoittamaton pitkä) (HW_REGS_MASK)); h2p_lw_adc_addr = virtual_base + ((pitkä allekirjoittamaton) (ALT_LWFPGASLVS_OFST + ADC_0_BASE) & (allekirjoittamaton pitkä) (HW_REGS_MASK)); h2p_lw_blue_addr = virtual_base + ((pitkä allekirjoittamaton) (ALT_LWFPGASLVS_OFST + PIO_BLUE_BASE) & (allekirjoittamaton pitkä) (HW_REGS_MASK)); h2p_lw_black_addr = virtual_base + ((allekirjoittamaton pitkä) (ALT_LWFPGASLVS_OFST + PIO_BLACK_BASE) & (allekirjoittamaton pitkä) (HW_REGS_MASK)); h2p_lw_red_addr = virtual_base + ((pitkä allekirjoittamaton) (ALT_LWFPGASLVS_OFST + PIO_RED_BASE) & (allekirjoittamaton pitkä) (HW_REGS_MASK)); // int i = 0; int -tiedot; int i = 0, j; // Création de la configuration et des buffers in 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)); kun taas (1) {data = *(h2p_lw_adc_addr+2); if (*h2p_lw_blue_addr == 1) data = kaiku (data, 20); jos (*h2p_lw_black_addr == 1) alt_write_word (h2p_lw_led_addr, 0x0F); jos (*h2p_lw_red_addr == 0) alt_write_word (h2p_lw_led_addr, 0xF0); alt_write_word (h2p_lw_spi_addr+1, data | 0b111000000000000); } ilmainen (kokoonpano); ilmainen (sisään); ilmainen (ulos); palauta 0; }

Vaihe 7: Le Final / Final

Finaali / finaali
Finaali / finaali

Français:

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

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

Ensuite, ses säveltäjät sont 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 certains effets, ainsi que un ecran qui permettra d'afficher la FFT.

Le haut-parleur Estpendné perpendiculairement par rapport aux boutons. Tässä mikro-asemassa on l'autre coté de la boîte par rapport au haut-parleur.

Cuest pour aujourd'hui.

En esperant que set Instructable vous soit utile.

Englanti:

Tässä olemme (vihdoin) Cactus 2000: n viimeinen renderöinti.

Laitamme tulo- ja lähtöpiirilevyt, jotka on liitetty DE0 Nano Soc -korttiin.

Sen jälkeen sen komponentit sijoitetaan keltaiseen laatikkoon.

Laatikossa on diapotentiometri, joka voi hallita äänenvoimakkuutta, nupit ja painikkeet, jotka käynnistävät joitain tehosteita, ja näyttö, jossa näkyy FFT.

Kaiutin on sijoitettu kohtisuoraan painikkeisiin nähden. Mikrofoni on kotelon toisella puolella kaiuttimen suhteen.

Siinä kaikki tältä päivältä.

Toivottavasti tästä ohjeesta on sinulle hyötyä.

Suositeltava: