INHOUDSOPGAWE:

Cactus 2000: 7 stappe
Cactus 2000: 7 stappe

Video: Cactus 2000: 7 stappe

Video: Cactus 2000: 7 stappe
Video: Германский веломотор MAW 1955 года! Разборка, обзор конструкции 2024, Julie
Anonim
Kaktus 2000
Kaktus 2000

PROJEK 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
  • Oscilloskope, multimetre
  • Verskeie komponente van tipes (amplificateur, weerstand, kapasiteit …)
  • Un mikro et un haut-parleur
  • 'N Klein petisie

Dit is 'n goeie idee om verskillende funksies te bekom. Nous allons vous les présenter dans cet Instrueerbaar.

Giet in die begin, as u 'n basiese kring van die eerste keer wil hê dat u 'n mikro-en 'n lewende weergawe kan kry. Une fois le circuit dessiner, the PCB était à 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.

Engels:

Gedurende ons vierde skooljaar het ons 'n midi-kontroleerder besef. Om dit te doen, het ons tot ons beskikking:

  • 'N Kaart DE0 Nano Soc
  • Oscilloskope, multimeters
  • Komponente van verskillende tipes (versterker, weerstand, kapasiteit …)
  • 'N Mikrofoon en 'n luidspreker
  • 'N Klein skerm

Ons moes verskillende gevaarlike stappe ondergaan om van die projek 'n sukses te maak. Ons sal u voorstel aan hierdie Instructable.

Eerstens, die ontwerp van die basiese stroombaan wat nodig is om die seun van die mikrofoon te herstel en die luidspreker te maak. Nadat die stroombaan getrek is, moes die PCB op die sagteware Altium gedoen word. Terwyl twee studente besig was met die bestuur van die invoer- en afvoer -PCB's, was die ander twee besig om die DE0 Nano Soc -kaart uit te voer sodat die kaart die mikrofoonmonsters kon opneem en 'n sein vir die luidspreker kon gee. Uiteindelik moes ons byklanke skep om die klank te verander.

Stap 1: Conception Du Circuit En Entrée / Entree Circuit Design

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

Français:

La 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. Die formule suivante:

Vs = Ve (1 + Z1/Z2)

Op 'n keuse kan die wins van 101 en R1 = 100 kOhm en R2 = 1 kOhm verkry word.

Die versterker kan u 'n versterker gebruik om 'n son te versterk.

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

(4) Le micro qui va être versterker by amplificateur.

(5) CAG (Controle Automatique de Gain)

(6) Giet nog meer, ons kan 'n ander filtreer vir 'n tweede volgorde van RC. L'ordre 2 était nécessaire pour avoir une atténuation de - 40db / dekade. Die frekwensie van die keuse is 20 kHz.

Engels:

Die eerste stap is om 'n stroombaan op te stel wat die sein op die mikrofoon kan stuur om dit na die DE0 Nano Soc -kaart te stuur. Bo die diagram van ons inskrywing.

(1) Die omskakelaar herstel die 5 Volt en verander dit in - 5 V. Die - 5 V dien vir die versterker wat ons hieronder sal sien.

(2) Hier het ons 'n nie-omkeerversterker. Volgens die volgende formule:

Vs = Ve (1 + Z1 / Z2)

'N Versterking van 101 is gekies deur R1 = 100 kOhm en R2 = 1 kOhm in te stel.

Hierdie versterker word gebruik om die klank van die mikrofoon te versterk.

(3) Die twee weerstande sal 'n afwyking skep sodat die uitgangsspanning tussen 0 en 4 V.

(4) Die mikrofoon wat deur die versterker versterk sal word.

(5) AGC (outomatiese winsbeheer)

(6) Laastens het ons 'n tweede-orde laagdeurlaatfilter met twee RC's geskep. Bestelling 2 was nodig om 'n verswakking van -40db / dekade te hê. Die gekose afsnyfrekwensie is 20 kHz.

Stap 2: Opvatting van die kring en afwyking / Ontwerp van die uitgangskring

Opvatting Du Circuit En Sortie / Ontwerp van die Output Circuit
Opvatting Du Circuit En Sortie / Ontwerp van die Output Circuit

Français:

Ons kan ook nie 'n tweede tydsberekening gebruik nie.

Ci-dessus le schéma de notre sortie.

(1) Le DAC (digitaal na analoog omskakelaar) wat 'n gesamentlike gesant vir 'n geskenk kan stuur DE0 Nano Soc et le analise analise (nécessaire pour le haut parleur)

(2) La capacité va servir a virer la composante continue the notre sein.

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

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

bladsy 10

Die skema kan 'n maksimum van 200 in 'n noodsaaklike motor se signaal verkry.

Engels:

Bo die diagram van ons uitset.

(1) Die DAC (digitaal na analoog omskakelaar) waarmee u die digitale sein wat deur die DE0 Nano Soc -kaart gestuur word, kan herwin en dit omskakel in 'n analoog sein (nodig vir die luidspreker).

(2) Die kapasiteit word gebruik om die deurlopende komponent van ons sein oor te dra.

(3) Montering wat die krag van ons sein sal versterk. Ons het die skema aanvaar:

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

bladsy 10

Hierdie skema maak dit moontlik om 'n wins van 200 te kry, wat nodig is omdat ons sein regtig swak is.

Stap 3: Conception Des PCB / Ontwerp van die PCB

Conception Des PCB / Ontwerp van die PCB
Conception Des PCB / Ontwerp van die PCB

Français:

U kan ook 'n stroombaan op ons rekenaar installeer.

Pour ce faire, nous avons utiliser le logiciel Altium. Dit is moontlik om die korreksie hiervan aan te pas:

Spyskaartontwerp -> Werk PCB -dokument op.

En suite, klik op «Verander veranderinge». Gee 'n chaque changement validé, en hekel die apparaît dans la colonne: "Check".

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

U kan die menu "File" -> "Fabrication Output" -> "Gerber Files" kies

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

  • Die spyskaart "Lêers" bevat 'n aantal permettra vir die keuse van lae plakkers.
  • Die spyskaart "Drill Drawing" in die boek kan u ook toelaat om dit te sien.
  • Die spyskaart "Apertures" in die boek "Ingebedde appertures".

Toute ses étapes sont complétées?

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

Lêer-> Vervaardigingsuitvoer -> NC -boorlêers

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

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

Engels:

Nadat ons stroombane geïnstalleer is, moes ons dit op PCB's plaas.

Om dit te doen, gebruik ons die Altium -sagteware. Alles moet korrek gekoppel wees, klik dan op:

Spyskaartontwerp -> Werk PCB -dokument op.

Klik dan op "Verander veranderinge". Vir elke gevalideerde verandering verskyn 'n groen vinkje in die kolom 'Check'.

Daarna sal u 'n nuwe oortjie oopmaak en die komponente in hierdie venster moet plaas.

Dan moet u na die "File" -> "Output Output" -> "Gerber Files" -kieslys gaan

'N Venster gaan oop; in hierdie een vind u;

Die menu "lae" waarmee u kan kies watter lae u PCB sal ondersteun. Die spyskaart "Boortekening" waar alles nie gemerk moet word nie. Die spyskaart "Apertures" waarin u 'Embedded appertures' moet kyk.

Is al sy stappe voltooi?

Kom ons gaan nou terug na die venster met die komponente op hierdie een waarop u klik

Lêer-> Vervaardigingsuitsette -> NC -boorlêers

Dit is uiteindelik verby, al wat u hoef te doen is om die lêers aan die 3D -drukker te gee.

U vind die foto's van ons twee PCB's hierby aangeheg.

Stap 4: Périphériques Pour La Carte DE0 Nano Soc / randapparatuur vir die DE0 Nano Soc -kaart

Périphériques Pour La Carte DE0 Nano Soc / randapparatuur vir die DE0 Nano Soc kaart
Périphériques Pour La Carte DE0 Nano Soc / randapparatuur vir die DE0 Nano Soc kaart

Francais:

Die IP kan nie optimaal geskep word vir Intel FPGA en die implementering van die konsepte en die temps van die toets nie.

Grâce au logiciel Qsys nous avons pu créer des périphériques embarqués dans notre carte.

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

  • Kommunikasie SPI pour le DAC
  • ADC pour recupérer les valeurs analogique de notre signal et les convertir en donnée digitales
  • HPS (verwerker) vir meer kodes
  • GPIO pour les boutons qui vont servir à exécuter verseker effets
  • Mémoire (op chipgeheue)

Engels:

Die IP -kerne is geoptimaliseer vir Intel FPGA -toestelle en kan maklik geïmplementeer word om die ontwerp- en testtyd te verminder.

Danksy die Qsys -sagteware kon ons ingeboude randapparatuur op ons kaart skep. Hier is 'n lys van die toestel wat ons bygevoeg het:

  • SPI -kommunikasie vir die DAC
  • ADC om die analoogwaardes van ons sein op te haal en om te skakel na digitale data
  • HPS (verwerker) om alle kodes te bestuur
  • GPIO vir die knoppies wat gebruik sal word om sekere effekte die hoof te bied
  • Geheue (op die geheue van die skyfie)

Stap 5: L'écran LT24

L'écran LT24
L'écran LT24

Français:

Ons kan 'n volledige versameling en versameling van LT24-tegnologieë vir 'n verwerkersimulasie van NIOS gee.

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

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

Engels:

Ons moes die LT24 -skerm verstaan en bestuur; dit word gelei deur 'n gesimuleerde NIOS -verwerker. Om dit te begin, lees ons baie dokumentasie daaroor.

Uiteindelik word ons skerm gebruik om die FFT met die gewenste effek te vertoon.

Stap 6: Codes Utiles En C ++ / Nuttige kodes in C ++

Codes Utiles En C ++ / Nuttige kodes in C ++
Codes Utiles En C ++ / Nuttige kodes in C ++

U kan ook die kodes en die C ++ -notas gebruik om die effek van sonore te verbeter.

Voici d'abord het geen verklarings nie (oui un peu exhaustif …):

Ek gaan u die kodes in C ++ wys wat vir ons nuttig was om byklanke te skep.

Eerstens al ons stellings (ja 'n bietjie uitputtend …):

#insluit

#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 #definieer HW_REGS_BASE (ALT_STM_OFST) #definieer HW_REGS_SPAN (0x04000000_de) HW_REGS_SPAN - 1) #definieer PI 3.1415926535 #definieer NFFT 80 #definieer FE 41000 #definieer F2 10000 #definieer F1 5925 #definieer PH 5000 #definieer PB 15000 #definieer MOD 2000 met behulp van naamruimte std; konst lank SAMPLE_RATE = 12500000; // Création de la configuration en 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; kort data, data2;

Die belangrikste eienskappe wat deurlopende modulasie kan veroorsaak:

Onder een van ons funksies wat modulasie moontlik maak:

leemte modulasie (int frekwensie)

{if (i <NFFT) {data = data*cos (2*PI*frek*i/FE); in .r = data; ek ++; } anders i = "0"; }

Voici notre fonction main:

Dit is ons hooffunksie:

int main (int argc, char ** argv)

{vlugtige ongetekende lang *h2p_lw_spi_addr = NULL; vlugtige ongetekende lang *h2p_lw_led_addr = NULL; vlugtige ongetekende lang *h2p_lw_adc_addr = NULL; vlugtige ongetekende lang *h2p_lw_blue_addr = NULL; vlugtige ongetekende lang *h2p_lw_red_addr = NULL; vlugtige ongetekende lang *h2p_lw_black_addr = NULL; leegte *virtuele_basis; int fd; printf ("1 / n"); // karteer die adresruimte vir die spi -registers in gebruikersruimte, sodat ons daarmee kan kommunikeer. // ons sal eintlik die hele MVO -omvang van die HPS in kaart bring, aangesien ons toegang tot verskillende registers binne die bestek wil kry as ((fd = open ("/dev/mem", (O_RDWR | O_SYNC))) == -1) {printf ("FOUT: kon nie \"/dev/mem / "… / n" oopmaak nie); opgawe (1); } printf ("2 / n"); virtual_base = mmap (NULL, HW_REGS_SPAN, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, HW_REGS_BASE); printf ("3 / n"); as (virtual_base == MAP_FAILED) {printf ("FOUT: mmap () misluk … / n"); sluit (fd); opgawe (1); } printf ("4 / n"); printf ("5 / n"); h2p_lw_spi_addr = virtual_base + ((ongeteken lank) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (ongeteken lank) (HW_REGS_MASK)); h2p_lw_led_addr = virtual_base + ((ongeteken lank) (ALT_LWFPGASLVS_OFST + PIO_LED_BASE) & (ongeteken lank) (HW_REGS_MASK)); h2p_lw_adc_addr = virtual_base + ((ongeteken lank) (ALT_LWFPGASLVS_OFST + ADC_0_BASE) & (ongeteken lank) (HW_REGS_MASK)); h2p_lw_blue_addr = virtual_base + ((ongeteken lank) (ALT_LWFPGASLVS_OFST + PIO_BLUE_BASE) & (ongeteken lank) (HW_REGS_MASK)); h2p_lw_black_addr = virtual_base + ((ongeteken lank) (ALT_LWFPGASLVS_OFST + PIO_BLACK_BASE) & (ongeteken lank) (HW_REGS_MASK)); h2p_lw_red_addr = virtual_base + ((ongeteken lank) (ALT_LWFPGASLVS_OFST + PIO_RED_BASE) & (ongeteken lank) (HW_REGS_MASK)); // int i = 0; int data; int i = 0, j; // Création de la configuration en 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)); terwyl (1) {data = *(h2p_lw_adc_addr+2); as (*h2p_lw_blue_addr == 1) data = eggo (data, 20); as (*h2p_lw_black_addr == 1) alt_write_word (h2p_lw_led_addr, 0x0F); as (*h2p_lw_red_addr == 0) alt_write_word (h2p_lw_led_addr, 0xF0); alt_write_word (h2p_lw_spi_addr+1, data | 0b111000000000000); } gratis (config); gratis (in); gratis (uit); terugkeer 0; }

Stap 7: Le Final / die Final

Le Finale / die Finale
Le Finale / die Finale

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 komponiste sont placés à l'interieur d'une boite jaune.

Ons bied u 'n groot potensiaal vir glissière, wat die volume van u seun, die potensiometers en die boutons van permettrons de lancer effektief kan bevorder, maar ook dat ons 'n permanente permettra d'afficher la FFT kan hê.

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.

Dit is ook lekker om aujourd'hui te gebruik.

En esperant que cet Instrueerbare en soet nut.

Engels:

Hier is ons (uiteindelik) die finale weergawe van ons Cactus 2000.

Ons plaas die invoer en uitvoer PCB's wat gekoppel is aan die DE0 Nano Soc -bord.

Die komponente word dan in 'n geel boks geplaas.

Op die kassie is 'n skyfpotensiometer wat die volume van die klank, knoppies en knoppies wat 'n paar effekte begin, kan beheer, en 'n skerm wat die FFT vertoon.

Die luidspreker is loodreg op die knoppies geplaas. Die mikrofoon is aan die ander kant van die boks geplaas relatief tot die luidspreker.

Dit is alles vir vandag.

Hoop dat hierdie instruksies vir u nuttig is.

Aanbeveel: