Innehållsförteckning:
- Steg 1: Conception Du Circuit En Entrée / Entrance Circuit Design
- Steg 2: Conception Du Circuit En Sortie / Design of the Output Circuit
- Steg 3: Conception Des PCB / Design av kretskortet
- Steg 4: Périphériques Pour La Carte DE0 Nano Soc / kringutrustning för DE0 Nano Soc -kortet
- Steg 5: L'écran LT24
- Steg 6: Codes Utiles En C ++ / Användbara koder i C ++
- Steg 7: Le Final / Finalen
Video: Cactus 2000: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
PROJEKT 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
- Des oscilloskop, des multimetrar
- Det finns olika typer av kompositörer (amplifierare, motstånd, kapacitet …)
- 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 Instruerbar.
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. Une fois le circuit dessiner, le 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.
Engelsk:
Under vårt fjärde skolår fick vi fram en midi-controller. För att göra detta hade vi till vårt förfogande:
- En karta DE0 Nano Soc
- Oscilloskop, multimetrar
- Komponenter av olika slag (förstärkare, motstånd, kapacitet …)
- En mikrofon och en högtalare
- En liten skärm
Vi var tvungna att gå igenom olika farliga steg för att få projektet att lyckas. Vi kommer att presentera dig för denna instruerbara.
För det första designen av den grundläggande kretsen som krävs för att återställa mikrofonens son och göra högtalaren. När kretsen dragits skulle kretskortet göras på programvaran Altium. Medan två studenter var upptagna med att hantera in- och utdatakort, arbetade de andra två med att köra DE0 Nano Soc -kortet så att kortet kunde plocka upp mikrofonproverna och ge en signal för högtalaren. Slutligen var vi tvungna att skapa ljudeffekter för att ändra ljudet.
Steg 1: Conception Du Circuit En Entrée / Entrance 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. D'après la formule suivante:
Vs = Ve (1 + Z1/Z2)
Om du väljer en vinst de 101 en mettant R1 = 100 kOhm et R2 = 1 kOhm.
Cet förstärkare kan hjälpa dig att förstärka din son.
(3) Les deux résistances vont créer un offset afin que la spanning de sortie soit includes entre 0 et 4 V.
(4) Le micro qui va être förstärkare par l'amplificateur.
(5) CAG (Controle Automatique de Gain)
(6) Häll 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 / decennium. La fréquence de coupure choisit är 20 kHz.
Engelsk:
Det första steget är att skapa en krets som kan ta signalen som sänds på mikrofonen för att överföra den till DE0 Nano Soc -kortet. Ovanför diagrammet över vår post.
(1) Växelriktaren återställer 5 volt och omvandlar den till - 5 V. - - 5 V fungerar för förstärkaren som vi kommer att se nedan.
(2) Här har vi en icke-inverterande förstärkare. Enligt följande formel:
Vs = Ve (1 + Z1 / Z2)
En förstärkning på 101 valdes genom att sätta R1 = 100 kOhm och R2 = 1 kOhm.
Denna förstärkare kommer att användas för att förstärka mikrofonens ljud.
(3) De två motstånden skapar en förskjutning så att utspänningen ligger mellan 0 och 4 V.
(4) Mikrofonen som förstärks av förstärkaren.
(5) AGC (automatisk förstärkningskontroll)
(6) Slutligen skapade vi ett andra ordnings lågpassfilter med två RC: er. Order 2 behövdes för att ha en dämpning på -40db / decennium. Den valda gränsfrekvensen är 20 kHz.
Steg 2: Conception Du Circuit En Sortie / Design of the Output Circuit
Français:
Dans un second 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) La capacité va servir a virer la composante continue de 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
sidan 10
Ce schéma permet d'avoir un gain de 200 qui est nécessaire car notre signal est vraiment faible.
Engelsk:
Över diagrammet över vår produktion.
(1) DAC (Digital to Analog Converter) som gör det möjligt att återställa den digitala signalen som skickas av DE0 Nano Soc -kortet och konvertera den till en analog signal (nödvändig för högtalaren).
(2) Kapaciteten kommer att användas för att överföra den kontinuerliga komponenten i vår signal.
(3) Montering som förstärker kraften i vår signal. Vi tog schemat:
www.ti.com/lit/ds/symlink/lm386.pdf
sidan 10
Detta schema gör det möjligt att få en vinst på 200 vilket är nödvändigt eftersom vår signal är riktigt svag.
Steg 3: Conception Des PCB / Design av kretskortet
Français:
Vi kan inte använda några kretsar för att få en instans för att kunna göra mer om PCB.
Häll ce faire, nous avons utiliser le logiciel Altium. Il faut que tout soit correction connecter puis cliquer sur:
Menydesign -> Uppdatera PCB -dokument.
Ensuite, klicka på «Validera ändringar». Häll chaque changement validé, un crochet vert 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.
Puis, il faut aller dans le menu "File" -> "Fabrication Output" -> "Gerber Files"
Une fenêtre s'ouvre, dans celle-ci vous trouverez;
- På menyn "Lager" kan du välja om du vill ha ett lager med PCB.
- På menyn "Drill Drawing" kan du läsa mer om vad du vill göra.
- Menyn "Apertures" dans lequel il faut cocher "Embedded appertures".
Toute ses étapes sont complétées?
Revenons maintenant à la fenêtre avec les composants sur celle-ci vous cliquez sur
File-> Fabrication Output -> NC Drill Files
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.
Engelsk:
När våra kretsar var instanserade var vi tvungna att sätta dem på PCB.
För att göra detta använder vi Altium -programvaran. Allt måste vara korrekt anslutet och klicka sedan på:
Menydesign -> Uppdatera PCB -dokument.
Klicka sedan på "Validera ändringar". För varje validerad ändring visas en grön bock i kolumnen "Kontrollera".
Efter det kommer du att ha en ny flik som öppnas och du måste placera komponenterna i det här fönstret.
Sedan måste du gå till menyn "File" -> "Output Output" -> "Gerber Files"
Ett fönster öppnas, i det här hittar du;
Menyn "Lager" som låter dig välja vilka lager som ska stödja ditt kretskort. Menyn "Drillritning" där allt måste avmarkeras. Menyn "Apertures" där du måste markera "Embedded appertures".
Alla hans steg är klara?
Låt oss gå tillbaka till fönstret med komponenterna på den här du klickar på
File-> Manufacturing Output -> NC Drill Files
Det är äntligen över, allt du behöver göra är att ge 3D -skrivaren filerna.
Du hittar bifogade bilder på våra två kretskort.
Steg 4: Périphériques Pour La Carte DE0 Nano Soc / kringutrustning för DE0 Nano Soc -kortet
Francais:
Les cœurs IP sont optimisés pour les périphériques Intel FPGA och peuvent être implémentés pour réduire la conception et le temps de test.
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:
- Kommunikation SPI pour le DAC
- ADC pour recupérer les valeurs analogique de notre signal et les convertir och donnée digitales
- HPS (processör) för alla koder
- GPIO pour les boutons qui vont servir à exécuter certains effets
- Mémoire (på chipminne)
Engelsk:
IP -kärnorna är optimerade för Intel FPGA -enheter och kan enkelt implementeras för att minska design och testtid.
Tack vare Qsys -programvaran kunde vi skapa inbäddade kringutrustning på vår karta. Här är en lista över den enhet vi har lagt till:
- SPI -kommunikation för DAC
- ADC för att hämta de analoga värdena från vår signal och konvertera dem till digital data
- HPS (processor) för att hantera alla koder
- GPIO för knapparna som kommer att användas för att klara vissa effekter
- Minne (på chipets minne)
Steg 5: 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.
Häll l'initaliser, nous avons lu beaucoup de documentations sur celui-ci.
Au final, notre écran sert à afficher la FFT, à sélectionner l'effet voulu.
Engelsk:
Vi var tvungna att förstå och hantera skärmen LT24, den styrs av en simulerad NIOS -processor. För att starta det läser vi mycket dokumentation om det.
I slutändan används vår skärm för att visa FFT, till önskad effekt.
Steg 6: Codes Utiles En C ++ / Användbara koder i C ++
Je vais vous montrer les codes en C ++ qui nous ont utiles afin de réaliser des effets sonores.
Voici d'abord tillämpar nos déclarations (oui un peu exhaustif …):
Jag ska visa dig koder i C ++ som var användbara för oss att skapa ljudeffekter.
Först alla våra uttalanden (ja lite uttömmande …):
#omfatta
#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_de) 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 med namnrymd std; konstant lång 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*ut = (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; korta data, data2;
Ci-dessous une de nos fonctions permettant la modulation:
Nedanför en av våra funktioner som möjliggör modulering:
tomrumsmodulering (int frekv.)
{if (i <NFFT) {data = data*cos (2*PI*freq*i/FE); i .r = data; i ++; } annars i = "0"; }
Voici notre fonction main:
Dessa är vår huvudsakliga funktion:
int main (int argc, char ** argv)
{flyktig osignerad lång *h2p_lw_spi_addr = NULL; flyktig osignerad lång *h2p_lw_led_addr = NULL; flyktig osignerad lång *h2p_lw_adc_addr = NULL; flyktig osignerad lång *h2p_lw_blue_addr = NULL; flyktig osignerad lång *h2p_lw_red_addr = NULL; flyktig osignerad lång *h2p_lw_black_addr = NULL; void *virtual_base; int fd; printf ("1 / n"); // kartlägga adressutrymmet för spi -registren till användarutrymme så att vi kan interagera med dem. // vi kommer faktiskt att kartlägga hela CSR -intervallet för HPS eftersom vi vill komma åt olika register inom det intervallet om ((fd = open ("/dev/mem", (O_RDWR | O_SYNC))) == -1) {printf ("ERROR: kunde inte öppna \"/dev/mem / "… / n"); retur (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 () misslyckades … / n"); nära (fd); retur (1); } printf ("4 / n"); printf ("5 / n"); h2p_lw_spi_addr = virtual_base + ((osignerad lång) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (osignerad lång) (HW_REGS_MASK)); h2p_lw_led_addr = virtual_base + ((osignerad lång) (ALT_LWFPGASLVS_OFST + PIO_LED_BASE) & (osignerad lång) (HW_REGS_MASK)); h2p_lw_adc_addr = virtual_base + ((osignerad lång) (ALT_LWFPGASLVS_OFST + ADC_0_BASE) & (osignerad lång) (HW_REGS_MASK)); h2p_lw_blue_addr = virtual_base + ((osignerad lång) (ALT_LWFPGASLVS_OFST + PIO_BLUE_BASE) & (osignerad lång) (HW_REGS_MASK)); h2p_lw_black_addr = virtual_base + ((osignerad lång) (ALT_LWFPGASLVS_OFST + PIO_BLACK_BASE) & (osignerad lång) (HW_REGS_MASK)); h2p_lw_red_addr = virtual_base + ((osignerad lång) (ALT_LWFPGASLVS_OFST + PIO_RED_BASE) & (osignerad lång) (HW_REGS_MASK)); // int i = 0; int -data; 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*ut = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)); medan (1) {data = *(h2p_lw_adc_addr+2); om (*h2p_lw_blue_addr == 1) data = echo (data, 20); om (*h2p_lw_black_addr == 1) alt_write_word (h2p_lw_led_addr, 0x0F); om (*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 (ut); returnera 0; }
Steg 7: Le Final / Finalen
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 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.
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.
Engelsk:
Här är vi (äntligen) den sista återgivningen av vår Cactus 2000.
Vi lägger in och utgående PCB som är anslutna till DE0 Nano Soc -kortet.
Därefter placeras dess komponenter i en gul låda.
På lådan finns en glidpotentiometer som kan hantera ljudvolymen, knapparna och knapparna som startar några effekter och en skärm som visar FFT.
Högtalaren är placerad vinkelrätt mot knapparna. Mikrofonen är placerad på andra sidan av lådan i förhållande till högtalaren.
Det är allt för idag.
Hoppas att denna instruerbara är användbar för dig.
Rekommenderad:
2000 watts induktionsvärmare: 9 steg (med bilder)
2000 watts induktionsvärmare: induktionsvärmare är ett bra verktyg för uppvärmning av metallföremål som kan vara till nytta i en DIYers -arbetsyta när du behöver få saker att glöda utan att förstöra hela utrymmet. Så idag ska vi skapa en extremt kraftfull induktion
Hur man gör en spänningsregulator 2000 watt: 7 steg
Hur man gör en spänningsregulator 2000 watt: Dimmare - elektroniska belastningsregulatorer används i stor utsträckning i industrin och vardagen för att smidigt styra rotationshastigheten för elmotorer, fläkthastighet, värmeelement för värmeelement, intensiteten i belysning av rum med elektriska lam
DIY 2000 Watt PWM -hastighetsregulator: 8 steg (med bilder)
DIY 2000 Watts PWM Speed Controller: Jag har arbetat med att konvertera min cykel till en elektrisk med hjälp av en likströmsmotor för automatisk dörrmekanism och för det har jag också gjort ett batteri som är märkt 84v DC. Nu behöver vi en hastighetsregulator som kan begränsa mängden energi
€ 12 Led Cactus (neon Room Decoration): 4 steg
€ 12 Led Cactus (neon Room Decoration): Hej, I denna instruerbara ska jag visa dig hur jag gjorde denna fantastiska Led Cactus Room DecorationLåt oss börja ska vi
Få kalender från Microsoft Outlook 2000 till iPod utan programvara: 3 steg
Skaffa kalender från Microsoft Outlook 2000 till iPod utan programvara: I den här instruktionsboken kommer jag att visa dig hur du får kalendrar från Microsoft Outlook 2000 (eller vilken version som inte stöds av itunes) till din iPod (endast en som stöder diskanvändning) utan att ladda ner programvara. Det finns några saker jag skulle vilja göra