Kazalo:
- Korak: Oblikovanje koncepta Du Circuit En Entrée / Entrance Circuit
- Korak: Koncept Du Circuit En Sortie / Oblikovanje izhodnega vezja
- Korak 3: Zasnova deske PCB / Oblikovanje tiskane plošče
- 4. korak: Périphériques Pour La Carte DE0 Nano Soc / periferne enote za kartico DE0 Nano Soc
- 5. korak: L'écran LT24
- 6. korak: Kode Utiles En C ++ / Uporabne kode v C ++
- Korak 7: Le finale / finale
Video: Kaktus 2000: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
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 osciloskopi, des multimètres
- Sestavki različnih vrst (ojačevalnik, odpornost, kapacitivnost …)
- 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 Instructable.
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. Obesek 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 haut-parleur. Finallement, il nous a fallu créer des effets sonores pour modifier le son.
Angleščina:
V četrtem letniku šole smo uresničili midi-kontroler. Za to smo imeli na voljo:
- Zemljevid DE0 Nano Soc
- Osciloskopi, multimetri
- Komponente različnih vrst (ojačevalnik, upor, zmogljivost …)
- Mikrofon in zvočnik
- Majhen zaslon
Za uspeh projekta smo morali iti skozi različne nevarne korake. Predstavili vam bomo to navodilo.
Prvič, zasnova osnovnega vezja, ki je potrebna za obnovitev sina mikrofona in izdelavo zvočnika. Ko je bilo vezje sestavljeno, je bilo treba tiskano vezje narediti s programsko opremo Altium. Medtem ko sta bila dva študenta zaposlena z upravljanjem vhodnih in izhodnih tiskanih vezij, sta druga dva delala na zagonu kartice DE0 Nano Soc, da bi lahko kartica pobrala vzorce mikrofona in dala signal zvočniku. Nazadnje smo morali za spremembo zvoka ustvariti zvočne učinke.
Korak: Oblikovanje koncepta Du Circuit En Entrée / Entrance Circuit
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 transformator 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)
Na izbranem un dobičku de 101 en mettant R1 = 100 kOhm et R2 = 1 kOhm.
Cet amplificateur va servir in ojačevalnik le son du micro.
(3) Les deux résistances vont créer un offset afin que la voltage de sortie soit entre 0 et 4 V.
(4) Le mikro qui va être ojačevalnik po ojačitvi.
(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 / desetletje. Izbrana frekvenca pri izbiri 20 kHz.
Angleščina:
Prvi korak je vzpostavitev vezja, ki lahko sprejme signal, ki ga pošlje mikrofon, za prenos na kartico DE0 Nano Soc. Nad diagramom našega vnosa.
(1) Pretvornik bo obnovil 5 voltov in jih pretvoril v - 5 V. - 5 V bo služil za ojačevalnik, ki ga bomo videli spodaj.
(2) Tu imamo neinvertirni ojačevalnik. Po naslednji formuli:
Vs = Ve (1 + Z1 / Z2)
Z nastavitvijo R1 = 100 kOhm in R2 = 1 kOhm smo izbrali dobiček 101.
Ta ojačevalnik bo uporabljen za ojačanje zvoka mikrofona.
(3) Oba upora bosta ustvarila odmik, tako da bo izhodna napetost med 0 in 4 V.
(4) Mikrofon, ki ga bo ojačevalnik ojačal.
(5) AGC (samodejni nadzor ojačanja)
(6) Nazadnje smo ustvarili nizkoprepustni filter drugega reda z dvema RC. Naročilo 2 je bilo potrebno za slabljenje -40db / desetletje. Izbrana mejna frekvenca je 20 kHz.
Korak: Koncept Du Circuit En Sortie / Oblikovanje izhodnega vezja
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 (digitalno -analogni pretvornik) qui va permettre de recupé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) Lapacité va servir a virer la composante nadaljevalni signal.
(3) Montaža qui va permettre d'amplifier la puissance de notre signal. Nous avons prit le schéma:
www.ti.com/lit/ds/symlink/lm386.pdf
stran 10
Ce schéma permet d'avoir un gain de 200 qui est nécessaire car notre signal est vraiment faible.
Angleščina:
Nad diagramom našega izhoda.
(1) DAC (digitalno -analogni pretvornik), ki bo omogočil obnovitev digitalnega signala, poslanega s kartico DE0 Nano Soc, in ga pretvoril v analogni signal (potreben za zvočnik).
(2) Zmogljivost bo uporabljena za prenos neprekinjene komponente našega signala.
(3) Montaža, ki bo povečala moč našega signala. Vzeli smo shemo:
www.ti.com/lit/ds/symlink/lm386.pdf
stran 10
Ta shema omogoča pridobitev 200, kar je potrebno, ker je naš signal res šibek.
Korak 3: Zasnova deske PCB / Oblikovanje tiskane plošče
Français:
Une fois que nos circuits on été instanciés il nous a fallu les mettre sur des PCB.
Pour ce faire, nous avons utiliser le logiciel Altium. Il faut que tout soit correctement connecter puis cliquer sur:
Oblikovanje menija -> Posodobi dokument PCB.
Zasebna stran, kliknite na "Preverjanje sprememb". Pour 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.
V meniju "Datoteka" -> "Izhod izdelave" -> "Gerberjeve datoteke"
Une fenêtre s'ouvre, dans celle-ci vous trouverez;
- Le menu "Layers" qui vous permettra de choisir sur quel plasti va s'appuyer votre PCB.
- Le meni "Drill Drawing" ni na voljo, če želite to narediti.
- V meniju "Odprtine" ali "Fant cocher" "Vgrajene zaslonke".
Toute ses étapes sont complétées?
Revenons maintenant à la fenêtre avec les composants sur celle-ci vous cliquez sur
Datoteka-> Izhod izdelave -> NC vrtalne datoteke
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.
Angleščina:
Ko so naša vezja nastala, smo jih morali postaviti na tiskane vezje.
Za to uporabljamo programsko opremo Altium. Vse mora biti pravilno povezano, nato kliknite na:
Oblikovanje menija -> Posodobi dokument PCB.
Nato kliknite na "Preveri spremembe". Za vsako potrjeno spremembo se v stolpcu »Preveri« pojavi zelena kljukica.
Po tem se vam bo odprl nov zavihek in komponente boste morali postaviti v to okno.
Nato morate iti v meni »Datoteka« -> »Izhodni izhod« -> »Gerberjeve datoteke«
Odpre se okno, v tem boste našli;
Meni "Plasti", ki vam omogoča, da izberete, katere plasti bodo podpirale vaše tiskano vezje. Meni "Risanje risbe", kjer je treba vse počistiti. Meni "Odprtine", v katerem morate preveriti "Vgrajene odprtine".
Ali so vsi njegovi koraki dokončani?
Vrnimo se zdaj k oknu s komponentami, na katerih kliknete
Datoteka -> Proizvodnja -> NC vrtalne datoteke
Končno je konec, vse kar morate storiti je, da 3D -tiskalniku podarite datoteke.
V priponki boste našli fotografije naših dveh tiskanih vezij.
4. korak: Périphériques Pour La Carte DE0 Nano Soc / periferne enote za kartico DE0 Nano Soc
Francais:
Prilagodite optimizacijo IP -jev za vse boljše Intel FPGA -je in druge škodljive učinke za preprečevanje spočetja in preizkušanje.
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:
- Komunikacija SPI za le DAC
- ADC pour recupérer les valeurs analogique de notre signal et les convertir en donnée digitales
- HPS (procesor) vnesite vse kode
- GPIO pour les boutons qui vont servir à exécuter določene učinke
- Memoire (na pomnilniku čipov)
Angleščina:
Jedra IP so optimizirana za naprave Intel FPGA in jih je mogoče enostavno implementirati, da skrajšajo čas načrtovanja in preskusa.
Zahvaljujoč programski opremi Qsys smo lahko na zemljevidu ustvarili vgrajene zunanje naprave. Tu je seznam naprav, ki smo jih dodali:
- SPI komunikacija za DAC
- ADC za pridobivanje analognih vrednosti iz našega signala in njihovo pretvorbo v digitalne podatke
- HPS (procesor) za upravljanje vseh kod
- GPIO za gumbe, ki bodo uporabljeni za obvladovanje določenih učinkov
- Pomnilnik (v pomnilniku čipa)
5. korak: L'écran LT24
Français:
Ne glede na to, ali je fallu comprendre et gérer l'écran LT24 celui-ci sera guideé v primeru procesorja simultano NIOS.
Pour l'initaliser, nous avons lu beaucoup de documentations sur celui-ci.
Končno, notre écran sert à afficher la FFT, à sélectionner l'effet voulu.
Angleščina:
Morali smo razumeti in upravljati zaslon LT24, ki ga bo vodil simulirani procesor NIOS. Za začetek smo prebrali veliko dokumentacije o tem.
Na koncu se naš zaslon uporablja za prikaz FFT do želenega učinka.
6. korak: Kode Utiles En C ++ / Uporabne kode v C ++
Je vais vous montrer les codes en C ++ qui nous ont utiles afin de réaliser des effets sonores.
Voici d'abord toutes nos déclarations (oui un peu excustif …):
Pokazal vam bom kode v C ++, ki so nam bile v pomoč pri ustvarjanju zvočnih učinkov.
Najprej vse naše izjave (da, malo izčrpno …):
#vključi
#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_00x (0def HW_REGS_00x 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 z imenskim prostorom std; const long SAMPLE_RATE = 12500000; // Création de la configuration et des puffers 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*velikostof (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; kratki podatki, podatki2;
Ci-dessous une de nos fonctions permettant la modulacija:
Spodaj ena od naših funkcij, ki omogočajo modulacijo:
modulacija praznine (int freq)
{if (i <NFFT) {data = data*cos (2*PI*freq*i/FE); v .r = podatki; i ++; } else i = "0"; }
Glavne funkcije glasov:
To so naše glavne funkcije:
int main (int argc, char ** argv)
{volatile unsigned long *h2p_lw_spi_addr = NULL; hlapno brez podpisa dolgo *h2p_lw_led_addr = NULL; hlapno brez podpisa dolgo *h2p_lw_adc_addr = NULL; hlapno brez podpisa dolgo *h2p_lw_blue_addr = NULL; hlapno brez podpisa dolgo *h2p_lw_red_addr = NULL; hlapno brez podpisa dolgo *h2p_lw_black_addr = NULL; void *virtualna baza; int fd; printf ("1 / n"); // preslikamo naslovni prostor za registre spi v uporabniški prostor, da lahko z njimi komuniciramo. // dejansko bomo preslikali v celotnem razponu CSR HPS, saj želimo dostopati do različnih registrov znotraj tega razpona, če ((fd = open ("/dev/mem", (O_RDWR | O_SYNC))) == -1) {printf ("NAPAKA: ni mogoče odpreti \"/dev/mem / "… / n"); vrnitev (1); } printf ("2 / n"); virtualna_baza = mmap (NULL, HW_REGS_SPAN, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, HW_REGS_BASE); printf ("3 / n"); if (virtual_base == MAP_FAILED) {printf ("NAPAKA: mmap () ni uspela … / n"); close (fd); vrnitev (1); } printf ("4 / n"); printf ("5 / n"); h2p_lw_spi_addr = virtual_base + ((brez podpisa dolga) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (brez podpisa dolga) (HW_REGS_MASK)); h2p_lw_led_addr = virtual_base + ((brez podpisa dolgo) (ALT_LWFPGASLVS_OFST + PIO_LED_BASE) & (brez podpisa dolgo) (HW_REGS_MASK)); h2p_lw_adc_addr = virtual_base + ((brez podpisa dolgo) (ALT_LWFPGASLVS_OFST + ADC_0_BASE) & (brez podpisa dolgo) (HW_REGS_MASK)); h2p_lw_blue_addr = virtual_base + ((brez podpisa dolgo) (ALT_LWFPGASLVS_OFST + PIO_BLUE_BASE) & (brez podpisa dolgo) (HW_REGS_MASK)); h2p_lw_black_addr = virtual_base + ((brez podpisa dolgo) (ALT_LWFPGASLVS_OFST + PIO_BLACK_BASE) & (brez podpisa dolgo) (HW_REGS_MASK)); h2p_lw_red_addr = virtual_base + ((brez podpisa dolgo) (ALT_LWFPGASLVS_OFST + PIO_RED_BASE) & (brez podpisa dolgo) (HW_REGS_MASK)); // int i = 0; int podatki; int i = 0, j; // Création de la configuration et des puffers 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*velikostof (kiss_fft_cpx)); kiss_fft_cpx*out = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)); medtem ko (1) {podatki = *(h2p_lw_adc_addr+2); če (*h2p_lw_blue_addr == 1) podatki = odmev (podatki, 20); if (*h2p_lw_black_addr == 1) alt_write_word (h2p_lw_led_addr, 0x0F); if (*h2p_lw_red_addr == 0) alt_write_word (h2p_lw_led_addr, 0xF0); alt_write_word (h2p_lw_spi_addr+1, podatki | 0b111000000000000); } brezplačno (konfiguracija); prost (v); brezplačno (ven); vrnitev 0; }
Korak 7: Le finale / finale
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 določeni učinki, 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.
Angleščina:
Tu smo (končno) končna upodobitev našega Cactus 2000.
Vstavimo vhodne in izhodne tiskane plošče, ki so priključene na ploščo DE0 Nano Soc.
Nato se njegove komponente vstavijo v rumeno škatlo.
Na škatli je drsni potenciometer, ki lahko upravlja glasnost zvoka, gumbi in gumbi, ki sprožijo nekatere učinke, in zaslon, ki prikazuje FFT.
Zvočnik je nameščen pravokotno na gumbe. Mikrofon je nameščen na drugi strani škatle glede na zvočnik.
To je vse za danes.
Upam, da vam bo ta Instructable koristen.
Priporočena:
Kaktus z laserskim kazalcem: 3 koraki
Laser Pointing Cactus: Za projekt v šoli sem moral narediti nekaj z Arduinom, želel sem narediti nekaj za mačko, ki jo lahko sprožiš in se bo sama igrala z mačko. Najprej sem pomislil na miško, vendar je bilo težko narediti nekaj tako majhnega s to
Indukcijski grelec 2000 W: 9 korakov (s slikami)
Indukcijski grelec 2000 W: Indukcijski grelniki so odličen pripomoček za segrevanje kovinskih predmetov, ki vam lahko pridejo prav v delovnem prostoru DIYers, ko morate stvari segreti, ne da bi pri tem pokvarili ves prostor. Tako bomo danes ustvarili izjemno močno indukcijo
Kako narediti regulator napetosti 2000 vatov: 7 korakov
Kako narediti regulator napetosti 2000 W: Zatemnilniki - elektronski regulatorji obremenitve se pogosto uporabljajo v industriji in vsakdanjem življenju za nemoten nadzor hitrosti vrtenja elektromotorjev, hitrosti ventilatorjev, grelnih elementov grelnih elementov, intenzivnosti osvetlitve prostorov z električno energijo lam
Krmilnik hitrosti PWM DIY 2000 W: 8 korakov (s slikami)
DIY 2000 WWW krmilnik hitrosti PWM: Delal sem pri pretvorbi svojega kolesa v električno z uporabo enosmernega motorja za avtomatski mehanizem vrat in za to sem naredil tudi baterijo, ki je ocenjena na 84v DC. Zdaj potrebujemo regulator hitrosti, ki lahko omeji količino energije del
12 € Led kaktus (neonska dekoracija sobe): 4 koraki
12 € Led Cactus (neonska dekoracija sobe): Pozdravljeni, v tem navodilu vam bom pokazal, kako sem naredil to čudovito dekoracijo sobe Led Cactus. Začnimo, kajne