Orodha ya maudhui:

Cactus 2000: Hatua 7
Cactus 2000: Hatua 7

Video: Cactus 2000: Hatua 7

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

MRADI WA MIDI-CONTROLEUR EISE4

Kifaransa:

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:

  • Kadi ya DE0 Nano Soc
  • Des oscilloscopes, des multimètres
  • Aina ya watunzi wa aina tofauti (amplificationur, msaada, uwezo…)
  • Un micro na un haut-parleur
  • Ecran ndogo

Il nous a fallu passer par différentes étapes périlleuses afin de réussir na projet. Sisi wote tunataka kufundishwa.

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. Una mpango wa mzunguko, na PCB itatolewa katika orodha ya Altium. Pendant que deux élèves is decécee de de gérer les PCB de l'entrée et de la sortie, les deux autres síccupaient 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.

Kiingereza:

Wakati wa mwaka wetu wa nne wa shule, tuligundua mdhibiti wa midi. Ili kufanya hivyo, tulikuwa nayo:

  • Ramani DE0 Nano Soc
  • Oscilloscopes, multimeter
  • Vipengele vya aina tofauti (amplifier, upinzani, uwezo…)
  • Kipaza sauti na spika
  • Skrini kidogo

Tulilazimika kupitia hatua kadhaa hatari ili kufanikisha mradi huo. Tutakutambulisha kwa hii inayoweza kufundishwa.

Kwanza, muundo wa mzunguko wa msingi unahitajika kupona mtoto wa kipaza sauti na kutengeneza spika. Mara tu mzunguko wa mzunguko, PCB ilipaswa kufanywa kwenye programu ya Altium. Wakati wanafunzi wawili walikuwa na shughuli za kusimamia PCB za pembejeo na pato, wengine wawili walikuwa wakifanya kazi kuendesha kadi ya DE0 Nano Soc ili kadi iweze kuchukua sampuli za mic na kutoa ishara kwa spika. Mwishowe, tulilazimika kuunda athari za sauti kubadilisha sauti.

Hatua ya 1: Dhana ya Mzunguko wa Kuingia / Ubunifu wa Mzunguko wa Kuingia

Dhana ya Mzunguko wa Kuingia / Ubunifu wa Mzunguko wa Kuingia
Dhana ya Mzunguko wa Kuingia / Ubunifu wa Mzunguko wa Kuingia

Kifaransa:

La première étape linajumuisha mitaa katika mahali un mzunguko wa qui puisse prendre le signal envoyer sur le micro pour le transmettre à la carte DE0 Nano Soc.

Ci-dessus le schéma de notre kiingilio.

(1) Watangazaji wanaoruhusu vifaa 5 Volt et transformer en - 5 V. Le - 5 V servira pour verification of que nous verrons ci-dessous.

(2) Ici, nons avons un amplificationur isiyo ya inverseur. D'après la formule suivante:

Vs = Ve (1 + Z1 / Z2)

Kwenye ununuzi utapata faida ya 101 kwa mettant R1 = 100 kOhm et R2 = 1 kOhm.

Cet amplificationur va servir a amplifier le son du micro.

(3) Misaada ya wafanyikazi haifanyi kazi kwa sababu ya mvutano wa aina yoyote inayowezekana kwa 0 na 4 V.

(4) Vipengele vidogo vya kuongeza nguvu kwa kiwango cha juu.

(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 était nécessaire pour avoir une atténuation de - 40db / muongo. La fréquence de coupure choisit ni 20 kHz.

Kiingereza:

Hatua ya kwanza ni kuanzisha mzunguko ambao unaweza kuchukua ishara kutuma kwenye kipaza sauti ili kuipeleka kwenye kadi ya DE0 Nano Soc. Juu ya mchoro wa kuingia kwetu.

(1) Inverter itarejesha Volt 5 na kuibadilisha kuwa - 5 V. The - 5 V itatumika kwa kipaza sauti ambacho tutaona hapo chini.

(2) Hapa tuna kipaza sauti kisichobadilisha. Kulingana na fomula ifuatayo:

Vs = Ve (1 + Z1 / Z2)

Faida ya 101 ilichaguliwa kwa kuweka R1 = 100 kOhm na R2 = 1 kOhm.

Kikuzaji hiki kitatumika kukuza sauti ya kipaza sauti.

(3) Vipinga viwili vitaunda kukabiliana ili voltage ya pato iwe kati ya 0 na 4 V.

(4) Maikrofoni itakayokuzwa na kipaza sauti.

(5) AGC (Udhibiti wa Kupata Moja kwa Moja)

(6) Mwishowe, tuliunda kichujio cha kupitisha cha chini cha mpangilio wa pili na RC mbili. Agizo 2 lilihitajika kuwa na upungufu wa -40db / muongo. Mzunguko wa cutoff uliochaguliwa ni 20 kHz.

Hatua ya 2: Dhana ya Mzunguko wa Enortie / Ubunifu wa Mzunguko wa Pato

Dhana ya Mzunguko Katika Aina / Ubunifu wa Mzunguko wa Pato
Dhana ya Mzunguko Katika Aina / Ubunifu wa Mzunguko wa Pato

Kifaransa:

Katika kipindi cha pili, sisi ni wachunguzi wa à la création du circuit en sortie.

Ci-dessus le schéma de notre kutoka.

(1) Le DAC (Ubadilishaji wa Dijiti kwenda kwa Analog) inaweza kutumika kama ishara na idadi ya wahusika kwa kadi ya DE0 Nano Soc na mabadiliko ya ishara ya ishara (tafadhali jaribu na mjumbe).

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

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

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

ukurasa wa 10

Idara hii itasaidia kupata zaidi ya 200 ya gari ambazo zinaashiria kuwa gari linafaa.

Kiingereza:

Juu ya mchoro wa pato letu.

(1) DAC (Digital to Analog Converter) ambayo itaruhusu kupata ishara ya dijiti iliyotumwa na kadi ya DE0 Nano Soc na kuibadilisha kuwa ishara ya analog (muhimu kwa spika).

(2) Uwezo utatumika kuhamisha sehemu inayoendelea ya ishara yetu.

(3) Kuweka ambayo itaongeza nguvu ya ishara yetu. Tulichukua mpango huo:

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

ukurasa wa 10

Mpango huu unafanya uwezekano wa kupata faida ya 200 ambayo ni muhimu kwa sababu ishara yetu ni dhaifu sana.

Hatua ya 3: Dhana ya PCB / Ubunifu wa PCB

Dhana ya PCB / Ubunifu wa PCB
Dhana ya PCB / Ubunifu wa PCB

Kifaransa:

Tunazunguka kwa mizunguko ya kila kitu ikiwa ni mara moja tu ya ukweli kwamba ni PCB.

Pour ce faire, nous avons utiliser le logiciel Altium. Je! Unataka kujua nini kiunganishi cha kurekebisha marekebisho:

Kubuni Menyu -> Sasisha Hati ya PCB.

Ensuite, bonyeza juu ya «Thibitisha Mabadiliko». Mimina mabadiliko ya machafuko yaliyotekelezwa, un crochet vert apparîans kwa colonne: «Angalia».

Kwa mfano, wewe ni mtu mpya unouvel onglet qui va s'ouvrir et il faudra placer les composants dans cette fenêtre.

Puis, il faut aller dans le menu "Faili" -> "Pato la Upotoshaji" -> "Faili za Gerber"

Une fenêtre s'ouvre, bila kusema;

  • Orodha ya "Tabaka" ambazo zinaweza kutolewa kwenye orodha ya matabaka ya PC yako.
  • Menyu "Kuchora kuchora" inahusiana na orodha ya watu wote wanaotafuta.
  • Orodha ya menyu "Apertures" inatajwa kwenye orodha ya cocher "Appertures Embedded".

Je! Toute ses étapes sont complétées?

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

Faili-> Pato la Uzushi -> Faili za NC Drill

Tunaweza kumaliza, ikiwa ni pamoja na kutoa pamoja na wafadhili kwa 3D fichiers.

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

Kiingereza:

Mara tu mizunguko yetu ilipothibitishwa tulilazimika kuziweka kwenye PCB.

Ili kufanya hivyo, tunatumia programu ya Altium. Kila kitu lazima kiunganishwe kwa usahihi kisha bonyeza:

Kubuni Menyu -> Sasisha Hati ya PCB.

Kisha bonyeza "Thibitisha Mabadiliko". Kwa kila mabadiliko yaliyothibitishwa, alama ya kijani kibichi inaonekana kwenye safu ya "Angalia".

Baada ya hapo, utakuwa na kichupo kipya ambacho kitafunguliwa na itabidi uweke vifaa kwenye dirisha hili.

Kisha lazima uende kwenye "Faili" -> "Pato la Pato" -> Menyu ya "Faili za Gerber"

Dirisha linafunguka, katika hili utapata;

Menyu ya "Tabaka" ambayo itakuruhusu kuchagua ni tabaka zipi zitasaidia PCB yako. Menyu ya "Kuchora Kuchora" ambapo kila kitu kinapaswa kuzuiliwa. Menyu "Vifungashio" ambayo unapaswa kuangalia "Viboreshaji vilivyopachikwa".

Hatua zake zote zimekamilika?

Hebu turudi sasa kwenye dirisha na vifaa kwenye hii unayobofya

Faili-> Pato la Viwanda -> Faili za NC Drill

Mwishowe imekwisha, unachotakiwa kufanya ni kupeana printa ya 3D faili.

Utapata picha zilizoambatanishwa na PCB zetu mbili.

Hatua ya 4: Périphériques Pour La Carte DE0 Nano Soc / Peripherals kwa DE0 Nano Soc Card

Périphériques Pour La Carte DE0 Nano Soc / Peripherals kwa DE0 Nano Soc Card
Périphériques Pour La Carte DE0 Nano Soc / Peripherals kwa DE0 Nano Soc Card

Francais:

Les IP inafanya kazi kwa urahisi zaidi ili kutoa leseni za Intel FPGA na kutoa maoni juu ya utaftaji wa ujauzito na wakati wa mtihani.

Grâce au logiciel Qsys nous avons pu créer des périphériques vikwazo havijapatikana.

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

  • Mawasiliano SPI pour le DAC
  • ADC pour recupérer les valeurs analogique de notre signal na les kubadilika na kutoa pesa
  • HPS (processeur) mimina kanuni zote
  • GPIO pour les boutons qui vont servir à exécuter certains athari
  • Memo (kwenye kumbukumbu ya chip)

Kiingereza:

Cores za IP zimeboreshwa kwa vifaa vya Intel FPGA na zinaweza kutekelezwa kwa urahisi kupunguza muundo na wakati wa kujaribu.

Shukrani kwa programu ya Qsys tuliweza kuunda vifaa vya kuingizwa vilivyo kwenye ramani yetu. Hapa kuna orodha ya kifaa tulichoongeza:

  • Mawasiliano ya SPI kwa DAC
  • ADC kupata maadili ya analog kutoka kwa ishara yetu na kuibadilisha kuwa data ya dijiti
  • HPS (processor) ya kusimamia nambari zote
  • GPIO kwa vifungo ambavyo vitatumika kukabiliana na athari fulani
  • Kumbukumbu (kwenye kumbukumbu ya chip)

Hatua ya 5: L'cran LT24

L'cran LT24
L'cran LT24

Kifaransa:

Il nous a fallu comprendre et gérer l'écran LT24 celui-ci sera Guére un unseres simuré NIOS.

Pour l'initaliser, nous avons lu beaucoup de hati juu ya celui-ci.

Au final, notre écran sert à afficher la FFT, au uchaguzi wa watendaji.

Kiingereza:

Tulilazimika kuelewa na kudhibiti skrini LT24 itaongozwa na processor ya NIOS iliyoiga. Kuianzisha, tulisoma nyaraka nyingi juu yake.

Mwishowe, skrini yetu hutumiwa kuonyesha FFT, kwa athari inayotaka.

Hatua ya 6: Nambari za Kutumia En C ++ / Nambari muhimu katika C ++

Codes Utiles En C ++ / Nambari muhimu katika C ++
Codes Utiles En C ++ / Nambari muhimu katika C ++

Je! Unashughulikia misimbo mingine ya C ++ ikiwa ni pamoja na utumiaji wa huduma za maonyesho.

Voici d'abord inataja upeo wa maandishi (unaweza kumaliza…):

Nitawaonyesha nambari zilizo kwenye C ++ ambazo zilikuwa muhimu kwetu kuunda athari za sauti.

Kwanza, taarifa zetu zote (ndio kamili kabisa…):

# pamoja

#jumuisha # pamoja na # pamoja #pamoja # pamoja # #jumlisha #jumlisha #jumlisha # pamoja na "WavUtils.cpp" # pamoja na "Biquad.cpp" # pamoja na #jumlisha # pamoja na # pamoja na "hps_0.h" # pamoja na "hps.h". HW_REGS_SPAN - 1) #fafanua PI 3.1415926535 #fafanua NFFT 80 #fasili FE 41000 #fafanua F2 10000 #fasili F1 5925 #fafanua PH 5000 #fafanua PB 15000 #fafanua MOD 2000 ukitumia nafasi ya jina std; muda mrefu 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 * katika = (kiss_fft_cpx *) malloc (NFFT * saizi ya (kiss_fft_cpx)); kiss_fft_cpx * nje = (kiss_fft_cpx *) malloc (NFFT * sizeof (kiss_fft_cpx)); kiss_fft_cpx * inv = (kiss_fft_cpx *) malloc (NFFT * saizi ya (kiss_fft_cpx)); foleni ya njeBuf; int kimataifa = 0; int i = 0; data fupi, data2;

Vipindi vya sauti vya kupitisha moduli:

Chini ya moja ya kazi zetu kuruhusu moduli:

moduli batili (int freq)

{ikiwa (i <NFFT) {data = data * cos (2 * PI * freq * i / FE); katika .r = data; i ++; } mwingine i = "0"; }

Mkusanyiko wa sauti kuu ya Voici:

Hizi ni kazi yetu kuu:

int kuu (int argc, char ** argv)

{tete isiyo na saini ndefu * h2p_lw_spi_addr = NULL; tete isiyo sainiwa ndefu * h2p_lw_led_addr = NULL; tete isiyo sainiwa ndefu * h2p_lw_adc_addr = NULL; tete isiyo sainiwa ndefu * h2p_lw_blue_addr = NULL; tete isiyo sainiwa ndefu * h2p_lw_red_addr = NULL; tete isiyo sainiwa ndefu * h2p_lw_black_addr = NULL; batili * virtual_base; int fd; printf ("1 / n"); // ramani nafasi ya anwani ya sajili za spi katika nafasi ya mtumiaji ili tuweze kushirikiana nao. // tutaweka ramani katika kipindi chote cha CSR cha HPS kwani tunataka kupata rejista anuwai ndani ya kipindi hicho ikiwa ((fd = open ("/ dev / mem", (O_RDWR | O_SYNC)) == -1 {printf ("KOSA: haikuweza kufungua \" / dev / mem / "… / n"); kurudi (1); } chapa ("2 / n"); virtual_base = mmap (NULL, HW_REGS_SPAN, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, HW_REGS_BASE); printf ("3 / n"); ikiwa (virtual_base == MAP_FAILED) {printf ("ERROR: mmap () imeshindwa… / n"); funga (fd); kurudi (1); } chapa ("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; data ya ndani; 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 * katika = (kiss_fft_cpx *) malloc (NFFT * saizi ya (kiss_fft_cpx)); kiss_fft_cpx * nje = (kiss_fft_cpx *) malloc (NFFT * sizeof (kiss_fft_cpx)); wakati (1) {data = * (h2p_lw_adc_addr + 2); ikiwa (* h2p_lw_blue_addr == 1) data = echo (data, 20); ikiwa (* h2p_lw_black_addr == 1) alt_write_word (h2p_lw_led_addr, 0x0F); ikiwa (* h2p_lw_red_addr == 0) alt_write_word (h2p_lw_led_addr, 0xF0); neno la kuandika_liyoandikwa (h2p_lw_spi_addr + 1, data | 0b111000000000000); } bure (usanidi); bure (ndani); bure (nje); kurudi 0; }

Hatua ya 7: Le Fainali / Fainali

Mwisho / Mwisho
Mwisho / Mwisho

Kifaransa:

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

Nous avons mis les PCB kuingia na kuchagua orodha ya vifaa kwa DE0 Nano Soc.

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

Upelelezi juu ya utaftaji wa huduma, ambayo inaweza kutekelezwa kwa kiwango cha juu kwa watoto, kwa sababu ya uwezo wa kufanya kazi kwa sababu ya vibali vya wataalam wa kazi, ikiwa ni pamoja na sheria ya FFT.

Hii ni nafasi ya kutafakari juu ya ripoti ya habari juu ya boutons. Le micro est positionné de l'autre coté de la boîte par rapport au haut-parleur.

Inaweza kumwaga aujourd'hui.

Kwa kweli, tunaweza kusoma kwa urahisi.

Kiingereza:

Hapa ndio (mwishowe) utoaji wa mwisho wa Cactus 2000 yetu.

Tunaweka PCB za pembejeo na pato ambazo zimeunganishwa na bodi ya DE0 Nano Soc.

Kisha, vifaa vyake vimewekwa ndani ya sanduku la manjano.

Kwenye sanduku kuna potentiometer ya slaidi, ambayo inaweza kudhibiti sauti, vifungo na vifungo ambavyo vitazindua athari kadhaa, na skrini ambayo itaonyesha FFT.

Msemaji amewekwa sawa kwa vifungo. Kipaza sauti imewekwa upande wa pili wa sanduku inayohusiana na spika.

Hiyo ni yote kwa leo.

Kutumaini kuwa hii ya Kufundisha ni muhimu kwako.

Ilipendekeza: