Talaan ng mga Nilalaman:

Cactus 2000: 7 Mga Hakbang
Cactus 2000: 7 Mga Hakbang

Video: Cactus 2000: 7 Mga Hakbang

Video: Cactus 2000: 7 Mga Hakbang
Video: ARRIBA TAU GAMMA (ISANG KAPATIRAN) - RHAMBO x ELBIZ x REVILO x KHAIZER x TARGET x BRIAN ALFIE 2024, Hulyo
Anonim
Cactus 2000
Cactus 2000

PROJECT MIDI-CONTROLEUR EISE4

Français:

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

  • Une carte DE0 Nano Soc
  • Des oscilloscope, des multimètres
  • Des mga uri ng de différents na uri (amplifiur, résidence, capacité…)
  • 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 Maaaring turuan.

Ibuhos ang commencer, ang dessin du circuit ng base na nagtapos sa pag-aari ng anak na micro at ang rendre au haut-parleur. Sa pamamagitan ng circuit dessiner, ang PCB ay ang 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 signal pour le haut-parleur. Finallement, il nous a fallu créer des effets sonores pour modifier le son.

Ingles:

Sa aming ika-apat na taon ng pag-aaral, napagtanto namin ang isang midi-controller. Upang magawa ito, mayroon kami:

  • Isang mapa DE0 Nano Soc
  • Oscilloscope, multimeter
  • Mga bahagi ng iba't ibang uri (amplifier, paglaban, kapasidad …)
  • Isang mikropono at isang speaker
  • Isang maliit na screen

Kailangan naming dumaan sa iba't ibang mga mapanganib na hakbang upang maging matagumpay ang proyekto. Ipapakilala namin sa iyo ang Maituturo na ito.

Una, ang disenyo ng pangunahing circuit na kinakailangan upang mabawi ang anak ng mikropono at gawin ang speaker. Kapag ang pagguhit ng circuit, ang PCB ay dapat gawin sa software Altium. Habang ang dalawang mag-aaral ay abala sa pamamahala ng mga input at output PCB, ang dalawa ay nagtatrabaho upang patakbuhin ang DE0 Nano Soc card upang ang card ay maaaring kunin ang mga sample ng mic at magbigay ng isang senyas para sa nagsasalita. Panghuli, kailangan naming lumikha ng mga sound effects upang mabago ang tunog.

Hakbang 1: Conception Du Circuit En Entrée / Entrance Circuit Design

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

Français:

Ang première étape ay binubuo ng 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'ampliditur que nous verrons ci-masarap.

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

Vs = Ve (1 + Z1 / Z2)

Sa isang choisit un gain de 101 en mettant R1 = 100 kOhm et R2 = 1 kOhm.

Cet amplifiur va servir a amplifier le son du micro.

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

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

(5) CAG (Controle Automatique de Gain)

(6) Ibuhos ang finir, nous avons créé un filtre passe-bas du second ordre avec deux RC. L'ordre 2 était nécessaire pour avoir une atténuation de - 40db / dekada. Sa simula ng koponan ay pipiliin ang 20 kHz.

Ingles:

Ang unang hakbang ay upang mag-set up ng isang circuit na maaaring kumuha ng signal send sa mikropono upang maipadala ito sa DE0 Nano Soc card. Sa itaas ng diagram ng aming pagpasok.

(1) Bawiin ng inverter ang 5 Volt at ibahin ito sa - 5 V. Ang - 5 V ay magsisilbi para sa amplifier na makikita natin sa ibaba.

(2) Narito mayroon kaming isang non-inverting amplifier. Ayon sa sumusunod na pormula:

Vs = Ve (1 + Z1 / Z2)

Ang isang nakuha na 101 ay pinili sa pamamagitan ng pagtatakda ng R1 = 100 kOhm at R2 = 1 kOhm.

Gagamitin ang amplifier na ito upang palakasin ang tunog ng mikropono.

(3) Ang dalawang resistors ay lilikha ng isang offset upang ang output boltahe ay nasa pagitan ng 0 at 4 V.

(4) Ang mikropono na mapalalakas ng amplifier.

(5) AGC (Awtomatikong Pagkontrol ng Gain)

(6) Panghuli, gumawa kami ng pangalawang order na low-pass filter na may dalawang RC. Ang order 2 ay kinakailangan upang magkaroon ng pagpapalambing ng -40db / dekada. Ang napiling dalas ng cutoff ay 20 kHz.

Hakbang 2: Conception Du Circuit En Sortie / Disenyo ng Output Circuit

Conception Du Circuit En Sortie / Disenyo ng Output Circuit
Conception Du Circuit En Sortie / Disenyo ng Output Circuit

Français:

Hindi sa ikalawang temps, 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 signal numérique envoyer par la carte DE0 Nano Soc et le convertir en signal analogique (nécessaire pour le haut parleur)

(2) Ang capacité va servir ng isang virer la composante ay magpapatuloy sa notre signal.

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

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

pahina 10

Hindi na ito makakakuha ng 200 qui est nécessaire car notre signal para sa vraiment faible.

Ingles:

Sa itaas ng diagram ng aming output.

(1) Ang DAC (Digital to Analog Converter) na magpapahintulot sa mabawi ang digital signal na ipinadala ng DE0 Nano Soc card at i-convert ito sa isang analog signal (kinakailangan para sa loudspeaker).

(2) Ang kapasidad ay gagamitin upang ilipat ang tuluy-tuloy na bahagi ng aming signal.

(3) Pag-mount na magpapalakas ng lakas ng aming signal. Kinuha namin ang pamamaraan:

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

pahina 10

Ginagawa ng pamamaraan na ito na posible na magkaroon ng isang makakuha ng 200 na kinakailangan sapagkat talagang mahina ang aming signal.

Hakbang 3: Conception Des PCB / Disenyo ng PCB

Conception Des PCB / Disenyo ng PCB
Conception Des PCB / Disenyo ng PCB

Français:

Ang mga circuit na ito ay hindi na agad na nai-install ng PCB.

Ibuhos ang ce faire, nous avons utiliser le logiciel Altium. Idinagdag ko ang iyong pag-aayos sa pag-aayos ng koneksyon sa pamamagitan ng:

Disenyo ng Menu -> I-update ang Dokumento ng PCB.

Ensuite, cliquez sur «Patunayan ang Mga Pagbabago». Ibuhos ang chaque changement validé, un crochet vert apparaît dans la colonne: «Suriin».

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

Sa pamamagitan ng menu na "File" -> "Fabrication Output" -> "Gerber Files"

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

  • Ang menu na "Mga Layer" para sa permettra de choisir sur quel layer ng iyong PCB.
  • Ang menu na "Drill Drawing" ay nagsusulit sa mga ito sa pamamagitan ng décocher.
  • Ang menu na "Apertures" ats lequel il faut cocher "Mga naka-embed na apperture".

Toute ses étapes sont complétées?

Ang mga Revenon ay nagpapanatili ng mga komposisyon sa celle-ci vous cliquez sur

File-> Fabrication Output -> Mga File ng NC Drill

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.

Ingles:

Sa sandaling ang aming mga circuit ay instantiated kailangan namin upang ilagay ang mga ito sa PCBs.

Upang magawa ito, ginagamit namin ang Altium software. Ang lahat ay dapat na konektado nang tama pagkatapos ay mag-click sa:

Disenyo ng Menu -> I-update ang Dokumento ng PCB.

Pagkatapos mag-click sa "Patunayan ang Mga Pagbabago". Para sa bawat napatunayan na pagbabago, lilitaw ang isang berdeng checkmark sa haligi na "Suriin".

Pagkatapos nito, magkakaroon ka ng isang bagong tab na magbubukas at ilalagay mo ang mga bahagi sa window na ito.

Pagkatapos ay kailangan mong pumunta sa "File" -> "Output Output" -> menu na "Gerber Files"

Magbubukas ang isang window, sa isang ito makikita mo;

Ang menu ng "Mga Layer" na magpapahintulot sa iyo na pumili kung aling mga layer ang susuporta sa iyong PCB. Ang menu na "Drill Drawing" kung saan dapat ma-check ang lahat. Ang menu na "Apertures" kung saan kailangan mong suriin ang "Mga naka-embed na apperture".

Lahat ng kanyang mga hakbang ay nakumpleto?

Bumalik tayo ngayon sa window na may mga bahagi sa isang ito na na-click mo

File-> Paggawa ng Output -> Mga NC Drill File

Sa wakas natapos na ito, ang kailangan mo lang gawin ay ibigay sa 3D printer ang mga file.

Mahahanap mo ang nakakabit na mga larawan ng aming dalawang PCB.

Hakbang 4: Ibigay ng Périphériques ang La Carte DE0 Nano Soc / Peripherals para sa DE0 Nano Soc Card

Périphériques Ibuhos La Carte DE0 Nano Soc / Peripherals para sa DE0 Nano Soc Card
Périphériques Ibuhos La Carte DE0 Nano Soc / Peripherals para sa DE0 Nano Soc Card

Francais:

Para sa mga IP, hindi rin maaasahan ang ibubuhos ng mga ito sa Intel FPGA at kaugalian na magawa ang mga ito sa pagbuo ng konsepto at pagsubok sa pagsubok.

Grace 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:

  • Komunikasyon SPI ibuhos le DAC
  • Ang ADC ay nagbubuhos ng recupérer les valeurs analogique de notre signal at les convertir en donnée digitales
  • HPS (processeur) ibuhos ang mga code ng code
  • Ibuhos ng GPIO ang mga boutons qui vont servir à exécuter certains effets
  • Mémoire (nasa memorya ng maliit na tilad)

Ingles:

Ang mga IP core ay na-optimize para sa mga aparatong Intel FPGA at madaling maipatupad ang disenyo ng toreduce at oras ng pagsubok.

Salamat sa software ng Qsys nagawa naming lumikha ng mga naka-embed na peripheral sa aming mapa. Narito ang isang listahan ng aparato na idinagdag namin:

  • Komunikasyon sa SPI para sa DAC
  • ADC upang makuha ang mga halagang analog mula sa aming signal at i-convert ang mga ito sa digital data
  • HPS (processor) upang pamahalaan ang lahat ng mga code
  • GPIO para sa mga pindutan na gagamitin upang makayanan ang ilang mga epekto
  • Memorya (sa memorya ng maliit na tilad)

Hakbang 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 guidé par un processeur simulé NIOS.

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

Sa wakas, napakahusay na pagsasaalang-alang sa FFT, at isang pagpipilian para sa vouluyan.

Ingles:

Kinailangan naming maunawaan at pamahalaan ang screen ng LT24 na gagabayan ito ng isang kunwa na prosesong NIOS. Upang simulan ito, nabasa namin ang maraming dokumentasyon dito.

Sa huli, ang aming screen ay ginagamit upang ipakita ang FFT, sa nais na epekto.

Hakbang 6: Ang Mga Code ay Gumagamit ng En C ++ / Mga Kapaki-pakinabang na Code sa C ++

Mga Code Gumagamit En C ++ / Mga Kapaki-pakinabang na Code sa C ++
Mga Code Gumagamit En C ++ / Mga Kapaki-pakinabang na Code sa C ++

Maaring magbigay ng montrer les code en C ++ qui nous ont utiles afin de réaliser des effets sonores.

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

Ipapakita ko sa iyo ang mga code sa C ++ na kapaki-pakinabang para sa amin upang lumikha ng mga sound effects.

Una, lahat ng aming mga pahayag (oo medyo maubos …):

# isama

#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_00 (0x04ine) 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; haba ng SAMPLE_RATE = 12500000; // Création de la configure 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 global = 0; int i = 0; maikling data, data2;

Ci-dessous une de nos fontctions permettant la modulation:

Sa ibaba ng isa sa aming mga pag-andar na nagpapahintulot sa modulasyon:

walang bisa modulation (int freq)

{if (i <NFFT) {data = data * cos (2 * PI * freq * i / FE); sa .r = data; ako ++; } iba pa i = "0"; }

Pangunahing font ng Voici notre fonction:

Ito ang aming pangunahing tungkulin:

int main (int argc, char ** argv)

{pabagu-bago ng unsigned mahaba * h2p_lw_spi_addr = NULL; pabagu-bago ng unsigned mahaba * h2p_lw_led_addr = NULL; pabagu-bago ng unsigned mahaba * h2p_lw_adc_addr = NULL; pabagu-bago ng unsigned mahaba * h2p_lw_blue_addr = NULL; pabagu-bago ng unsigned mahaba * h2p_lw_red_addr = NULL; pabagu-bago ng unsigned mahaba * h2p_lw_black_addr = NULL; walang bisa * virtual_base; int tot; printf ("1 / n"); // mapa ang address space para sa spi registro sa puwang ng gumagamit upang maaari kaming makipag-ugnay sa kanila. // magpapapa-mapa talaga kami sa buong saklaw ng CSR ng HPS dahil nais naming ma-access ang iba't ibang mga pagrehistro sa loob ng span na iyon kung ((fd = bukas ("/ dev / mem", (O_RDWR | O_SYNC))) == -1) {printf ("ERROR: hindi mabuksan ang \" / dev / mem / "… / n"); bumalik (1); } printf ("2 / n"); virtual_base = mmap (NULL, HW_REGS_SPAN, (PROT_READ | PROT_WRITE), MAP_SHARED, taut, HW_REGS_BASE); printf ("3 / n"); kung (virtual_base == MAP_FAILED) {printf ("ERROR: mmap () failed… / n"); malapit (taut); bumalik (1); } printf ("4 / n"); printf ("5 / n"); h2p_lw_spi_addr = virtual_base + ((unsigned long) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (unsigned long) (HW_REGS_MASK)); h2p_lw_led_addr = virtual_base + ((unsigned long) (ALT_LWFPGASLVS_OFST + PIO_LED_BASE) & (unsigned long) (HW_REGS_MASK)); h2p_lw_adc_addr = virtual_base + ((unsigned long) (ALT_LWFPGASLVS_OFST + ADC_0_BASE) & (unsigned long) (HW_REGS_MASK)); h2p_lw_blue_addr = virtual_base + ((unsigned long) (ALT_LWFPGASLVS_OFST + PIO_BLUE_BASE) & (unsigned long) (HW_REGS_MASK)); h2p_lw_black_addr = virtual_base + ((unsigned long) (ALT_LWFPGASLVS_OFST + PIO_BLACK_BASE) & (unsigned long) (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 data; int i = 0, j; // Création de la configure 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)); habang (1) {data = * (h2p_lw_adc_addr + 2); kung (* h2p_lw_blue_addr == 1) data = echo (data, 20); kung (* h2p_lw_black_addr == 1) alt_write_word (h2p_lw_led_addr, 0x0F); kung (* h2p_lw_red_addr == 0) alt_write_word (h2p_lw_led_addr, 0xF0); alt_write_word (h2p_lw_spi_addr + 1, data | 0b111000000000000); } libre (config); libre (sa); libre (palabas); ibalik ang 0; }

Hakbang 7: Le Final / ang Pangwakas

Le Final / ang Pangwakas
Le Final / ang Pangwakas

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, ses composants 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.

Maaring i-post ang posisyon sa perpendicula retirement par rapport aux boutons. Ang micro est posisyonné de l'autre coté de la boîte par rapport au haut-parleur.

C'est tout pour aujourd'hui.

En esperant que cet Maaaring turuan ng vous soit utile.

Ingles:

Narito kami (sa wakas) ang pangwakas na pag-render ng aming Cactus 2000.

Inilalagay namin ang mga input at output na PCB na nakakonekta sa DE0 Nano Soc board.

Pagkatapos, ang mga sangkap nito ay inilalagay sa loob ng isang dilaw na kahon.

Sa kahon ay isang slide potentiometer, na maaaring pamahalaan ang dami ng tunog, mga knobs at pindutan na maglulunsad ng ilang mga epekto, at isang screen na magpapakita ng FFT.

Ang nagsasalita ay nakaposisyon patayo sa mga pindutan. Ang mikropono ay nakaposisyon sa kabilang panig ng kahon na may kaugnayan sa nagsasalita.

Yan lamang para sa araw na ito.

Umaasa na ang Instructable na ito ay kapaki-pakinabang sa iyo.

Inirerekumendang: