Tartalomjegyzék:

Kaktusz 2000: 7 lépés
Kaktusz 2000: 7 lépés

Videó: Kaktusz 2000: 7 lépés

Videó: Kaktusz 2000: 7 lépés
Videó: РУССКОЕ РАДИО 2000-Х ✬ ЛЮБИМЫЕ ХИТЫ ДЕСЯТИЛЕТИЯ ✬ СБОРНИК ЛУЧШИХ ПЕСЕН ✬ 2024, Július
Anonim
Kaktusz 2000
Kaktusz 2000

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:

  • Uné carte DE0 Nano Soc
  • Oszcilloszkópok, multiméterek
  • Különböző típusú kompozíciók (erősítő, rezisztencia, kapacitás …)
  • 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. Pendant que deux élèves s'occupaient de gérer les PCB de l'entrée et de la sortie, les deux autres s'occupa 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.

Angol:

Negyedik tanévünk során megvalósítottunk egy midi-kontrollert. Ennek érdekében rendelkezésünkre állt:

  • A DE0 Nano Soc
  • Oszcilloszkóp, multiméter
  • Különböző típusú alkatrészek (erősítő, ellenállás, kapacitás …)
  • Mikrofon és hangszóró
  • Egy kis képernyő

Különféle veszélyes lépéseket kellett végrehajtanunk, hogy a projekt sikeres legyen. Bemutatjuk Önnek ezt az utasítást.

Először is, az alapvető áramkör kialakítása szükséges a mikrofon fia helyreállításához és a hangszóró elkészítéséhez. Az áramkör húzása után a PCB -t az Altium szoftverrel kellett elvégezni. Míg két diák a be- és kimeneti PCB -k kezelésével volt elfoglalva, a másik kettő a DE0 Nano Soc kártya futtatásán dolgozott, hogy a kártya felvehesse a mikrofonmintákat, és jelet adjon a hangszórónak. Végül hanghatásokat kellett létrehoznunk a hang megváltoztatásához.

1. lépés: Koncepció Du Circuit En Entrée / Bejárati áramkör tervezése

Conception Du Circuit En Entrée / Bejárati áramkör tervezése
Conception Du Circuit En Entrée / Bejárati áramkör tervezése

Français:

La premier é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)

Egy választott nyereségnél 101 en mettant R1 = 100 kOhm et R2 = 1 kOhm.

Cet erősítő va szervir egy erősítő le son du micro.

(3) Les deux résistances vont créer un offset afin que la feszültség de sortie soit tartalmazza entre 0 et 4 V.

(4) A mikro -qui va être erősítő az erősítőhöz.

(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 / évtized. A választott frekvencia 20 kHz.

Angol:

Az első lépés egy olyan áramkör beállítása, amely képes fogadni a mikrofonon küldött jelet, hogy továbbítsa azt a DE0 Nano Soc kártyára. Bejegyzésünk diagramja felett.

(1) Az inverter visszanyeri az 5 voltos feszültséget, és átalakítja - 5 V -ra. Az - 5 V az erősítőhöz fog szolgálni, amelyet alább látunk.

(2) Itt van egy nem invertáló erősítőnk. A következő képlet szerint:

Vs = Ve (1 + Z1 / Z2)

101 erősítést választottunk R1 = 100 kOhm és R2 = 1 kOhm beállításával.

Ez az erősítő a mikrofon hangjának felerősítésére szolgál.

(3) A két ellenállás eltolást hoz létre úgy, hogy a kimeneti feszültség 0 és 4 V között legyen.

(4) Az erősítő által felerősített mikrofon.

(5) AGC (automatikus erősítés -szabályozás)

(6) Végül létrehoztunk egy másodrendű aluláteresztő szűrőt két RC-vel. A 2. sorrendhez szükség volt a -40db / évtized csillapításra. A választott határfrekvencia 20 kHz.

2. lépés: Koncepció Du Circuit En Sortie / A kimeneti áramkör tervezése

Fogalom Du Circuit En Sortie / A kimeneti áramkör kialakítása
Fogalom Du Circuit En Sortie / A kimeneti áramkör kialakítása

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) Lapacité va servir a virer la composante folyamatos 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

10. oldal

Ce schéma permet d'avoir un gain de 200 qui est nécessaire car notre signal est vraiment faible.

Angol:

A kimenet diagramja felett.

(1) A DAC (Digital to Analog Converter), amely lehetővé teszi a DE0 Nano Soc kártya által küldött digitális jel helyreállítását és analóg jellé alakítását (a hangszóróhoz szükséges).

(2) A kapacitás a jelünk folyamatos komponensének átvitelére szolgál.

(3) Szerelés, amely felerősíti jelünk erejét. Elvettük a sémát:

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

10. oldal

Ez a séma lehetővé teszi 200 erősítés elérését, ami azért szükséges, mert a jelünk valóban gyenge.

3. lépés: A PCB koncepciója / A NYÁK tervezése

A PCB koncepciója / A NYÁK kialakítása
A PCB koncepciója / A NYÁK kialakítása

Français:

Une fois que nos circuits ont é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:

Menütervezés -> NYÁK -dokumentum frissítése.

Fürdőszoba, kattintson a "Változások érvényesítése" gombra. 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.

A "File" -> "Fabrication Output" -> "Gerber Files" menüben

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

  • A "Rétegek" menüből választhat a choisir sur quel rétegekben, valamint a PCB -n.
  • A "Drill Drawing" menüben lequel il faut que tout soit décocher.
  • A "Apertures" menü tartalmazza a "Embedded apertures" folytatást.

Toute ses étapes sont complétées?

Revenons karbantartás à la fenêtre avec les composants sur celle-ci vous cliquez sur

Fájl-> Gyártási kimenet -> NC fúró fájlok

Ez a végleges, il ne reste plus qu'à donner à l'imprimante 3D les fichiers.

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

Angol:

Miután áramköreink példányosak lettek, PCB -re kellett őket helyeznünk.

Ehhez az Altium szoftvert használjuk. Mindent megfelelően kell csatlakoztatni, majd kattintson:

Menütervezés -> NYÁK -dokumentum frissítése.

Ezután kattintson a "Változások érvényesítése" gombra. Minden ellenőrzött módosításnál zöld pipa jelenik meg az "Ellenőrzés" oszlopban.

Ezután megjelenik egy új lap, amely megnyílik, és ebbe az ablakba kell helyeznie az összetevőket.

Ezután menjen a "Fájl" -> "Kimeneti kimenet" -> "Gerber fájlok" menübe

Megnyílik egy ablak, ebben talál;

A "Rétegek" menüben kiválaszthatja, hogy mely rétegek támogatják a PCB -t. A "Fúrási rajz" menü, ahol mindent ki kell jelölni. A "Rekeszek" menü, amelyben ellenőriznie kell a "Beágyazott megjelenítések" lehetőséget.

Minden lépése befejeződött?

Térjünk vissza most az ablakhoz, amelyen a komponensek kattintanak

Fájl-> Gyártási kimenet -> NC fúró fájlok

Végre vége, mindössze annyit kell tennie, hogy átadja a fájlokat a 3D nyomtatónak.

Mellékelten találja a két nyomtatott áramköri lapunk fényképeit.

4. lépés: Périphériques Pour La Carte DE0 Nano Soc / Perifériák a DE0 Nano Soc kártyához

Périphériques Pour La Carte DE0 Nano Soc / Perifériák a DE0 Nano Soc kártyához
Périphériques Pour La Carte DE0 Nano Soc / Perifériák a DE0 Nano Soc kártyához

Francais:

Az IP -k optimális optimalizálása az Intel FPGA et peuvent être implémentés pour réduire la conception et le temps de test segítségével.

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:

  • Kommunikációs SPI a DAC -hoz
  • ADC töltse recupérer les valeurs analogique notre signal and les convertir and donnée digitales
  • HPS (processzor) öntsön gérer tout les kódokat
  • GPIO pour les boutons qui vont servir exacuter certains effets
  • Mémoire (chipmemórián)

Angol:

Az IP -magok Intel FPGA eszközökre vannak optimalizálva, és könnyen megvalósíthatók a tervezés és a tesztidő csökkentése érdekében.

A Qsys szoftvernek köszönhetően beágyazott perifériákat tudtunk létrehozni a térképünkön. Itt található a hozzáadott eszközök listája:

  • SPI kommunikáció a DAC számára
  • ADC, hogy lekérje az analóg értékeket a jelünkből, és konvertálja azokat digitális adatokká
  • HPS (processzor) az összes kód kezelésére
  • GPIO azokhoz a gombokhoz, amelyeket bizonyos hatások kezelésére használnak
  • Memória (a chip memóriájában)

5. lépés: L'écran LT24

L'écran LT24
L'écran LT24

Français:

Ingyenes Ez a kritika az őszi számításhoz és az LT24 LT24 celui-ci sera útmutatója a NIOS processzor szimulátorához.

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

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

Angol:

Meg kellett értenünk és kezelnünk kell az LT24 képernyőt, amelyet egy szimulált NIOS processzor vezérel. A kezdeményezéshez sok dokumentációt olvasunk róla.

Végül a képernyőnk az FFT megjelenítésére szolgál, a kívánt hatás elérése érdekében.

6. lépés: Utiles kódok En C ++ / Hasznos kódok C ++ nyelven

Kódok Utiles En C ++ / Hasznos kódok C ++ nyelven
Kódok Utiles En C ++ / Hasznos kódok C ++ nyelven

Je vais vous montrer les code en C ++ qui nous ont utiles afin de réaliser des effets sonores.

Voici d'abord toutes nos deklarációk (oui un peu exploustif …):

Megmutatom azokat a kódokat C ++ nyelven, amelyek hasznosak voltak a hanghatások létrehozásához.

Először is, minden kijelentésünk (igen, egy kicsit kimerítő …):

#befoglalni

#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 (0x0de400) 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; const hosszú 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*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 globális = 0; int i = 0; rövid adatok, adatok2;

Ci-dessous une de nos fonctions permettant la moduláció:

Az alábbiakban felsoroljuk a modulációt lehetővé tevő egyik funkciónkat:

void moduláció (gyakori)

{if (i <NFFT) {data = data*cos (2*PI*freq*i/FE); .r = adatok; i ++; } else i = "0"; }

Voici notre fonction fő:

Ezek a fő funkcióink:

int main (int argc, char ** argv)

{volatile unsigned long *h2p_lw_spi_addr = NULL; illékony előjel nélküli hosszú *h2p_lw_led_addr = NULL; volatile unsigned long *h2p_lw_adc_addr = NULL; illékony előjel nélküli hosszú *h2p_lw_blue_addr = NULL; illékony előjel nélküli hosszú *h2p_lw_red_addr = NULL; illékony előjel nélküli hosszú *h2p_lw_black_addr = NULL; void *virtual_base; int fd; printf ("1 / n"); // leképezzük a spi regiszterek címterét a felhasználói térbe, hogy kölcsönhatásba léphessünk velük. // valójában a HPS teljes CSR -tartományában térképezünk fel, mivel ezen a tartományon belül különféle nyilvántartásokhoz szeretnénk hozzáférni, ha ((fd = open ("/dev/mem", (O_RDWR | O_SYNC))) == -1) {printf ("HIBA: nem sikerült megnyitni \"/dev/mem / "… / n"); visszatérés (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 ("HIBA: mmap () nem sikerült… / n"); bezár (fd); visszatérés (1); } printf ("4 / n"); printf ("5 / n"); h2p_lw_spi_addr = virtual_base + ((előjel nélküli hosszú) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (előjel nélküli hosszú) (HW_REGS_MASK)); h2p_lw_led_addr = virtual_base + ((előjel nélküli hosszú) (ALT_LWFPGASLVS_OFST + PIO_LED_BASE) & (előjel nélküli hosszú) (HW_REGS_MASK)); h2p_lw_adc_addr = virtual_base + ((hosszú előjel nélküli) (ALT_LWFPGASLVS_OFST + ADC_0_BASE) & (előjel nélküli hosszú) (HW_REGS_MASK)); h2p_lw_blue_addr = virtual_base + ((előjel nélküli hosszú) (ALT_LWFPGASLVS_OFST + PIO_BLUE_BASE) & (előjel nélküli hosszú) (HW_REGS_MASK)); h2p_lw_black_addr = virtual_base + ((előjel nélküli hosszú) (ALT_LWFPGASLVS_OFST + PIO_BLACK_BASE) & (előjel nélküli hosszú) (HW_REGS_MASK)); h2p_lw_red_addr = virtual_base + ((előjel nélküli hosszú) (ALT_LWFPGASLVS_OFST + PIO_RED_BASE) & (előjel nélküli hosszú) (HW_REGS_MASK)); // int i = 0; int adatok; 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*out = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)); míg (1) {adatok = *(h2p_lw_adc_addr+2); if (*h2p_lw_blue_addr == 1) data = echo (adatok, 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, adatok | 0b111000000000000); } ingyenes (konfiguráció); ingyenes (in); ingyenes (kint); visszatérés 0; }

7. lépés: Le finálé / döntő

Le Döntő / döntő
Le Döntő / döntő

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.

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.

Angol:

Itt vagyunk (végre) a Cactus 2000 végső renderelésében.

A DE0 Nano Soc kártyához csatlakoztatott bemeneti és kimeneti PCB -ket helyezzük el.

Ezután az alkatrészeket egy sárga dobozba helyezik.

A dobozon található egy csúsztatható potenciométer, amely szabályozhatja a hang hangerejét, gombok és gombok, amelyek elindítanak bizonyos effektusokat, valamint egy képernyő, amely megjeleníti az FFT -t.

A hangszóró merőleges a gombokra. A mikrofon a doboz másik oldalán van elhelyezve a hangszóróhoz képest.

Ez minden mára.

Remélve, hogy ez az utasítás hasznos lesz az Ön számára.

Ajánlott: