Përmbajtje:
- Hapi 1: Konceptimi i Qarkut Du Hyrja / Hartimi i Qarkut Hyrës
- Hapi 2: Koncepti i Qarkut në Renditje / Projektimi i Qarkut të Daljes
- Hapi 3: Konceptimi i PCB / Dizajni i PCB
- Hapi 4: Périphériques Pour La Carte DE0 Nano Soc / Periferikësh për Kartën DE0 Nano Soc
- Hapi 5: L'écran LT24
- Hapi 6: Kodet Utiles En C ++ / Kodet e dobishme në C ++
- Hapi 7: Le Final / Final
Video: Kaktus 2000: 7 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:26
PROJEKT MIDI-KONTROLLUES EISE4
Français:
Lors de notre quatrième année d'école ingénieur, nous avons réalisé un midi-contrôleur. Derdhni prirje të mira, nous avions à notre:
- Une carte DE0 Nano Soc
- Des oscilloscopes, des multimètres
- Përbërësit e llojeve të ndryshme (amplifikatori, rezistenca, kapaciteti …)
- 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 qark dessiner, në PCB është était à faire sur le logiciel Altium. Varëse që ka të bëjë me zgjedhjen e PCB de l'entrée et de la sortie, des 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. Përfundimisht, il nous a fallu créer des effets sonores pour modifier le son.
Anglisht:
Gjatë vitit të katërt të shkollës, ne kuptuam një kontrollues midi. Për ta bërë këtë, ne kishim në dispozicion:
- Një hartë DE0 Nano Soc
- Osciloskopë, multimetra
- Përbërësit e llojeve të ndryshme (amplifikatori, rezistenca, kapaciteti …)
- Një mikrofon dhe një altoparlant
- Pak ekran
Na u desh të kalonim nëpër hapa të ndryshëm të rrezikshëm për ta bërë projektin një sukses. Ne do t'ju prezantojmë me këtë udhëzues.
Së pari, dizajni i qarkut bazë kërkohet për të rimarrë djalin e mikrofonit dhe për të bërë altoparlantin. Pasi të tërhiqej qarku, PCB do të bëhej në softuerin Altium. Ndërsa dy studentë ishin të zënë me menaxhimin e PCB -ve hyrëse dhe dalëse, dy të tjerët po punonin për të drejtuar kartën DE0 Nano Soc në mënyrë që karta të merrte mostrat e mikrofonit dhe të jepte një sinjal për altoparlantin. Më në fund, na u desh të krijonim efekte zanore për të ndryshuar tingullin.
Hapi 1: Konceptimi i Qarkut Du Hyrja / Hartimi i Qarkut Hyrës
Français:
La première étape konsistonte në metër në një vend ku qarku mund të paraprihej nga i dërguari i sinjalit në mikro derë transmetimin à la carte DE0 Nano Soc.
Ci-dessus le schéma de notre entrée.
(1) L'inverseur per 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 jo-inverseur. D'après la formula suivante:
Vs = Ve (1 + Z1/Z2)
Për një fitim të zgjedhur prej 101 en metant R1 = 100 kOhm dhe R2 = 1 kOhm.
Cet amplificateur va servir a amplifier le son du micro.
(3) Les deux résistances vont créer un offset afin que la tension de sortie soit compris entre 0 dhe 4 V.
(4) Lehtësia e amplifikatorit është shumë më e lartë.
(5) CAG (Kontrolli Automatik i Fitimit)
(6) Derdhni përfundime, nous avons créé un filtre passe-bas du ordre avec deux RC. L'ordre 2 duhet të shkruani një informacion në lidhje me zbritjen - 40db / dekadë. Frekuenca e përzgjedhjes së procesit është 20 kHz.
Anglisht:
Hapi i parë është krijimi i një qarku që mund të marrë sinjalin e dërguar në mikrofon për ta transmetuar atë në kartën DE0 Nano Soc. Mbi diagramin e hyrjes sonë.
(1) Inverteri do të rimarrë 5 Volt dhe do ta shndërrojë në - 5 V. The - 5 V do të shërbejë për amplifikatorin që do të shohim më poshtë.
(2) Këtu kemi një përforcues jo përmbysës. Sipas formulës së mëposhtme:
Vs = Ve (1 + Z1 / Z2)
Një fitim prej 101 u zgjodh duke vendosur R1 = 100 kOhm dhe R2 = 1 kOhm.
Ky përforcues do të përdoret për të përforcuar tingullin e mikrofonit.
(3) Dy rezistorët do të krijojnë një kompensim në mënyrë që voltazhi i daljes të jetë midis 0 dhe 4 V.
(4) Mikrofoni që do të amplifikohet nga përforcuesi.
(5) AGC (Kontrolli Automatik i Fitimit)
(6) Së fundi, ne krijuam një filtër të rendit të dytë me kalim të ulët me dy RC. Urdhri 2 ishte i nevojshëm për të pasur një zbutje prej -40db / dekadë. Frekuenca e ndërprerjes e zgjedhur është 20 kHz.
Hapi 2: Koncepti i Qarkut në Renditje / Projektimi i Qarkut të Daljes
Français:
Dans un temps dytë, 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 signal numérique embailer par la carte DE0 Nano Soc dhe le convertir en signal analogique (nécessaire pour le haut parleur)
(2) Kapaciteti dhe shërbimi i një komandimi të vazhdueshëm të sinjalit të vazhdueshëm.
(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
faqe 10
Kjo kërkesë për përfitimin e avionit nuk është më shumë se 200 është një sinjal i nevojshëm i makinës, i cili nuk është i mundur.
Anglisht:
Mbi diagramin e prodhimit tonë.
(1) DAC (Konvertuesi dixhital në analog) i cili do të lejojë të rikuperojë sinjalin dixhital të dërguar nga karta DE0 Nano Soc dhe ta shndërrojë atë në një sinjal analog (i nevojshëm për altoparlantin).
(2) Kapaciteti do të përdoret për të transferuar përbërësin e vazhdueshëm të sinjalit tonë.
(3) Montimi që do të përforcojë fuqinë e sinjalit tonë. Ne morëm skemën:
www.ti.com/lit/ds/symlink/lm386.pdf
faqe 10
Kjo skemë bën të mundur që të kemi një fitim prej 200 i cili është i nevojshëm sepse sinjali ynë është vërtet i dobët.
Hapi 3: Konceptimi i PCB / Dizajni i PCB
Français:
Nuk mund të përdorni qarqe në instanciés il nous a fallu les mettre sur des PCB.
Hidh ce faire, nous avons utiliser le logiciel Altium. Il faut que tout soit korrigjim lidhës puis cliquer sur:
Dizajni i menysë -> Përditësoni dokumentin PCB.
Ensuite, klikoni në "Validate Changes". Derdhni chaque changement validé, un thur me grep vert apparaît dans la colonne: «Kontrolloni».
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;
- Le menu "Layers" qui vous permettra de choisir sur quel layer on s'appuyer votre PCB.
- Le menu "Vizatimi i stërvitjes" dans lequel il faut que tout soit decocher.
- Le menu "Apertures" dans lequel il faut cocher "Appertures të integruara".
Toute ses étapes sont complétées?
Revenons maintenanceenant à la fenêtre avec les composants sur celle-ci vous cliquez sur
Skedar-> Prodhimi i fabrikimit -> Skedarët e stërvitjes NC
C'est enfin finit, il ne reste plus qu'à donner à l'imprimante 3D les fichiers.
Ju mund të gjeni fotografi të përbashkëta në PCB të reja.
Anglisht:
Pasi qarqet tona u vërtetuan, na duhej t'i vendosnim në PCB.
Për ta bërë këtë, ne përdorim programin Altium. Çdo gjë duhet të jetë e lidhur saktë dhe pastaj klikoni mbi:
Dizajni i menysë -> Përditësoni dokumentin PCB.
Pastaj klikoni në "Validate Changes". Për çdo ndryshim të vërtetuar, një shenjë jeshile shfaqet në kolonën "Kontrollo".
Pas kësaj, do të keni një skedë të re që do të hapet dhe do t'ju duhet të vendosni përbërësit në këtë dritare.
Pastaj ju duhet të shkoni te menyja "File" -> "Output Output" -> "Gerber Files"
Hapet një dritare, në këtë do të gjeni;
Menyja "Shtresat" që do t'ju lejojë të zgjidhni se cilat shtresa do të mbështesin PCB -në tuaj. Menyja "Vizatimi i stërvitjes" ku gjithçka duhet të jetë e pakontrolluar. Menyja "Hapet" në të cilën duhet të kontrolloni "Hapësira të integruara".
A janë përfunduar të gjitha hapat e tij?
Le të kthehemi tani në dritare me përbërësit në këtë ku klikoni
Skedari-> Prodhimi i Prodhimit -> Skedarët NC të Stërvitjes
Më në fund ka mbaruar, gjithçka që duhet të bëni është t'i jepni skedarëve printerit 3D.
Bashkangjitur do të gjeni fotot e dy PCB -ve tona.
Hapi 4: Périphériques Pour La Carte DE0 Nano Soc / Periferikësh për Kartën DE0 Nano Soc
Francais:
Les cœurs IP sont optimisés pour les périphériques Intel FPGA dhe 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 liste des périphériques que nous avons ajouter:
- Komunikimi SPI pour le DAC
- ADC pour recupérer les valeurs analogique de notre signal dhe les convertir en donnée digitales
- HPS (processeur) pour gérer tout les kodet
- GPIO pour les boutons qui vont servir à exécuter sigurts effets
- Mémoire (në kujtesën e çipit)
Anglisht:
Bërthamat IP janë optimizuar për pajisjet Intel FPGA dhe mund të zbatohen lehtësisht për të zvogëluar kohën e projektimit dhe testimit.
Falë softuerit Qsys ne ishim në gjendje të krijonim pajisje periferike të ngulitura në hartën tonë. Këtu është një listë e pajisjes që kemi shtuar:
- Komunikimi SPI për DAC
- ADC për të tërhequr vlerat analoge nga sinjali ynë dhe për t'i kthyer ato në të dhëna dixhitale
- HPS (procesor) për të menaxhuar të gjitha kodet
- GPIO për butonat që do të përdoren për të përballuar efekte të caktuara
- Kujtesa (në kujtesën e çipit)
Hapi 5: L'écran LT24
Français:
Il nous a fallu comprendre et gérer l'écran LT24 celui-ci sera udhëzojnë par un processeur simulé NIOS.
Pour l'initaliser, nous avons lu beaucoup de documentations sur celui-ci.
Përfundimisht, notre écran sert à afficher la FFT, à sélectionner l'effet voulu.
Anglisht:
Ne duhej të kuptonim dhe menaxhonim ekranin LT24 ai do të udhëhiqet nga një procesor i simuluar NIOS. Për ta filluar atë, ne lexojmë shumë dokumentacion mbi të.
Në fund, ekrani ynë përdoret për të shfaqur FFT, në efektin e dëshiruar.
Hapi 6: Kodet Utiles En C ++ / Kodet e dobishme në C ++
Je vais vous montrer les kodet en C ++ qui nous ont utines de réaliser des effets sonores.
Voici d'abord nuk ka deklarata (oui un peu exhaustif…):
Unë do t'ju tregoj kodet në C ++ që ishin të dobishëm për ne për të krijuar efekte zanore.
Së pari, të gjitha deklaratat tona (po pak shteruese …):
#përfshi
#include #include #includ #include #include #includ #include #include #include "WavUtils.cpp" #include "Biquad.cpp" #include #include #include #include "hps_0.h" #Include "hps.h" #përfshi "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 HW_REGS_SPAN - 1) #përcakto PI 3.1415926535 #përcakto NFFT 80 #define FE 41000 #define F2 10000 #define F1 5925 #define PH 5000 #define PB 15000 #define MOD 2000 duke përdorur hapësirën e emrit std; konstant i gjatë 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 globale = 0; int i = 0; të dhëna të shkurtra, të dhëna2;
Fonksione të çrregullta jo de nos modulimi permettant:
Më poshtë një nga funksionet tona që lejon modulimin:
modulim i pavlefshëm (frekuenca int)
{nëse (i <NFFT) {të dhëna = të dhëna*cos (2*PI*frekuenca*i/FE); në .r = të dhëna; i ++; } tjetër i = "0"; }
Voici notre fonction kryesore:
Këto janë funksionet tona kryesore:
int kryesore (int argc, char ** argv)
{i paqëndrueshëm i panënshkruar gjatë *h2p_lw_spi_addr = NULL; i paqëndrueshëm i panënshkruar gjatë *h2p_lw_led_addr = NULL; i paqëndrueshëm i panënshkruar gjatë *h2p_lw_adc_addr = NULL; i paqëndrueshëm i panënshkruar gjatë *h2p_lw_blue_addr = NULL; i paqëndrueshëm i panënshkruar gjatë *h2p_lw_red_addr = NULL; i paqëndrueshëm i panënshkruar gjatë *h2p_lw_black_addr = NULL; void *baza virtuale; int fd; printf ("1 / n"); // hartoni hapësirën e adresave për regjistrat spi në hapësirën e përdoruesit në mënyrë që të ndërveprojmë me ta. // ne do të hartojmë në të gjithë hapësirën CSR të HPS pasi duam të hyjmë në regjistra të ndryshëm brenda atij hapësira nëse ((fd = hapur ("/dev/mem", (O_RDWR | O_SYNC))) == -1) {printf ("ERROR: nuk mund të hapet \"/dev/mem / "… / n"); kthimi (1); } printf ("2 / n"); baza virtuale = 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 () dështoi… / n"); mbyll (fd); kthimi (1); } printf ("4 / n"); printf ("5 / n"); h2p_lw_spi_addr = baza virtuale + ((pa shenjë e gjatë) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (e gjatë e panënshkruar) (HW_REGS_MASK)); h2p_lw_led_addr = baza virtuale + ((pa shenjë e gjatë) (ALT_LWFPGASLVS_OFST + PIO_LED_BASE) & (e panënshkruar gjatë) (HW_REGS_MASK)); h2p_lw_adc_addr = baza virtuale + ((pa shenjë e gjatë) (ALT_LWFPGASLVS_OFST + ADC_0_BASE) & (e panënshkruar gjatë) (HW_REGS_MASK)); h2p_lw_blue_addr = baza virtuale + ((pa shenjë e gjatë) (ALT_LWFPGASLVS_OFST + PIO_BLUE_BASE) & (pa shenjë e gjatë) (HW_REGS_MASK)); h2p_lw_black_addr = baza virtuale + ((e panënshkruar gjatë) (ALT_LWFPGASLVS_OFST + PIO_BLACK_BASE) & (e panënshkruar gjatë) (HW_REGS_MASK)); h2p_lw_red_addr = baza virtuale + ((pa shenjë e gjatë) (ALT_LWFPGASLVS_OFST + PIO_RED_BASE) & (e panënshkruar gjatë) (HW_REGS_MASK)); // int i = 0; int të dhënat; 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)); ndërsa (1) {të dhëna = *(h2p_lw_adc_addr+2); nëse (*h2p_lw_blue_addr == 1) të dhëna = jehonë (të dhëna, 20); nëse (*h2p_lw_black_addr == 1) alt_write_word (h2p_lw_led_addr, 0x0F); nëse (*h2p_lw_red_addr == 0) alt_write_word (h2p_lw_led_addr, 0xF0); alt_write_word (h2p_lw_spi_addr+1, të dhëna | 0b11100000000000000); } falas (konfiguro); falas (në); falas (jashtë); kthimi 0; }
Hapi 7: Le Final / Final
Français:
Eh voilà (enfin) le rendu final de notre Cactus 2000.
Nous avons mis les PCB entrée dhe sortie qui sont reliés à la carte DE0 Nano Soc.
Ensuite, ses compositors 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 dhe des boutons qui permettrons de lancer sures effets, ainsi que un ecran qui permettra d'afficher la FFT.
Le haut-parleur est positionné perpendiculairement par raportin aux boutons. Le mikro est positionné de l'autre coté de la boîte par Raport au haut-parleur.
C'est tout pour aujourd'hui.
Esperant que cet Instructable vous soit utile.
Anglisht:
Këtu jemi (më në fund) interpretimi përfundimtar i Kaktusit tonë 2000.
Ne vendosim PCB -të hyrëse dhe dalëse që janë të lidhura me bordin DE0 Nano Soc.
Pastaj, përbërësit e tij vendosen brenda një kutie të verdhë.
Në kuti është një potenciometër rrëshqitës, i cili mund të menaxhojë volumin e zërit, çelësat dhe butonat që do të lëshojnë disa efekte, dhe një ekran që do të shfaqë FFT.
Altoparlanti është i vendosur pingul me butonat. Mikrofoni është i vendosur në anën tjetër të kutisë në lidhje me altoparlantin.
Kjo është e gjitha për sot.
Duke shpresuar që ky udhëzues të jetë i dobishëm për ju.
Recommended:
Kaktus Laser Pointing: 3 Hapa
Kaktus Laser Pointing: Për një projekt në shkollë, më duhej të bëja diçka me Arduino, doja të bëja diçka për një mace, të cilën ju mund ta nxisni dhe do të luani me macen në vetvete. Fillimisht mendova për një mi, por ishte pak e vështirë të bëje diçka kaq të vogël me
Ngrohës me induksion 2000 Watts: 9 hapa (me fotografi)
Ngrohës me induksion 2000 Watts: Ngrohësit me induksion janë një mjet i shkëlqyeshëm për ngrohjen e objekteve metalike që mund të vijnë në ndihmë në një hapësirë pune DIYers kur keni nevojë t'i ngrohni gjërat pa prishur të gjithë hapësirën. Kështu që sot ne do të krijojmë një induktivitet jashtëzakonisht të fuqishëm
Si të bëni një rregullator të tensionit 2000 Watts: 7 hapa
Si të bëni një rregullator të tensionit 2000 Watt: Dimmers - rregullatorët elektronikë të fuqisë së ngarkesës përdoren gjerësisht në industri dhe në jetën e përditshme për të kontrolluar pa probleme shpejtësinë e rrotullimit të motorëve elektrikë, shpejtësinë e ventilatorit, elementët e ngrohjes të elementeve të ngrohjes, intensitetin e ndriçimit të dhomave me energji elektrike lam
DIY 2000 Watts PWM Speed Controller: 8 hapa (me fotografi)
DIY 2000 Watts PWM Speed Controller: Unë kam punuar në konvertimin e biçikletës sime në atë elektrike duke përdorur një motor DC për mekanizmin automatik të derës dhe për këtë kam bërë edhe një paketë baterie të vlerësuar në 84v DC. Tani ne kemi nevojë për një kontrollues shpejtësie që mund të kufizojë sasinë e energjisë del
12 € Led Kaktus (Dekorimi i dhomës neoni): 4 hapa
12 € Led Kaktus (Dekorimi i dhomës neoni): Përshëndetje, Në këtë udhëzues, unë do t'ju tregoj se si e kam bërë këtë dekorim të mrekullueshëm të Led Cactus Room Decoration. Le të fillojmë ne