Përmbajtje:
- Hapi 1: Përdoruesit e përbërësve
- Hapi 2: Arkitektura
- Hapi 3: Analogy Partie
- Hapi 4: Impression Des PCB -të
- Hapi 5: Partie Numérique
- Hapi 6: Le Code
Video: Autotune: 7 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Bienvenue dans notre projet Autotune
Notre équipe va vous présenter la réalisation de ce projet. Notre équipe est composée de 3 élèves ingénieurs de Polytech Sorbonne en EISE4 (4ème année du cycle ingénieur en électronic informatique systèmes embargés).
Notre projet përbëhet nga një djalë që ka kapur një mikro, emri i të cilit është parleur dhe lidhja me FFT në një PC të jashtëm. Në mënyrë të mundshme mund të modifikoni le son audio comme le volume dhe créer un écho.
C'est parti pour les explications !!
Hapi 1: Përdoruesit e përbërësve
- Carte DEO-Nano-SoC
- Bateria 2 dalje à 5V2A
- Mikro
- Haut Parleur 8 Ohm
- Rregullatori: MAX660
- Capteur IR: GP2Y0E02A
- Audio Ampli: LM386N-1/NOPB
- DAC: MCP4821-E/F
- Dioda: 1N4148
- Transitor: LND150N3-G / N-FET
- 2 AOP: TL081C
- Rezistencat
- Kondensatorët
- Wi -Fi: ESP8266EX
- 4 ndërprerës
- 3 Leds de couleurs
Hapi 2: Arkitektura
Voici ci-dessus notre schéma bloc représentant l'architecture de notre projet Autotune.
Comme vous pouvez le voir, notre projet va pouvoir capter un son à l'aide du micro dont le signal analogical capté sera converti en un signal numérique dont l'ADC është i integruar në la carte FPGA. Puis le signal sera modifié selon nos effets choisis à l'aide d'un capteur de proximité et des switchs. Përfundimisht, modifikimi i sinjalit mund të bëhet për rikthimin e një sinjali analogjik dhe transmetimin e traumave nga traktet e tjera.
Hapi 3: Analogy Partie
Analogjia e partisë është e përbërë nga 2 qarqe:
Qarku kryesor që përfaqëson mikro, si një degë ose CAN de la carte FPGA, kompozon një përforcim të shtuar të fitimit dhe filtrit të kalimit duke përdorur avoir récupérer le sinjal.
Qarku deuxieme qui repesenta la partie haut parleur, se si degë sort la sortie de la carte FPGA, kompozim i DAC, ndarje tensioni dhe dëbim audio përforcuese.
Le troisième schéma est celui du régulateur produisant du -5V pour alimenter tous les compositors.
Hapi 4: Impression Des PCB -të
Maintenant, nous allons créer nos PCB afin de les imprimer et de les relier!
A l'aide du logiciel Alitum, nuk ka avons për të krijuar PCB të dyfishta, ju nuk mund të shqetësoheni për mikro dhe për parleur. Voici le korrespondent i faqes au tutoriel Altium qui peut sureement vous aider!
Hapi 5: Partie Numérique
Prill avoir imprimer me PCB, ju mund të gjeni një degëzim të shpejtë në FPGA cart la carte!
Pour la partie numérique, nous avons créer un code C qui est séparé en deux en utilisant un thread. D'un coté, në récupère le signal në le modifie et on l'envoie vers vers DAC en spi. D'un deuxième côté, në llogaritjen e fft dhe në envoie le résultat par wifi. Cette séparation permet d'éviter les ralentissements sur la première partie.
Në përdorimin e përbërësve Qsys et quartus pour brancher le HPS avec les différents. Në përdorimin e notamment une IP SPI pour communiquer avec le dac et une IP UART pour communiquer avec la carte wifi.
Hapi 6: Le Code
Voici le lien où nous avons récuperé le code pour faire la fft.
Në përdorimin e kodit, përdorni llogaritësin në fft:
// 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));
për (j = 0; j <NFFT; j ++) {Vlera = *h2p_lw_adc_addr; // recupère la valeur provenant du pcb du microin [j].r = Vlera-2000.0; // në pension l'offset de cette valeurfor (i = 0; i <2100; i ++) {} // merrni pjesë në temps bien précis pour avoir une fréquence d’échantillonnage connue}
// Calcul de la FFT depuis in vers outkiss_fft (config, in, out); bzero (C_val, 110); // remet à zero le tableau qui nous sert de buffer que l'on va envoyer par wififor (t = 0; t <(NFFT/4); t ++) {// pour limiter la taille du buffer on limite la sortie de la fft à des valeurs entre 0 et 9 tmp_log = 20*(log (abs (jashtë [t].r/1000.0))))*9;
tmp_log = tmp_log/50; nëse (tmp_log <0) {tmp_log = 0; } if (tmp_log> 9) {tmp_log = 9; } sprintf (tmp_val, "%d", tmp_log); strcat (C_val, tmp_val); // ajoute au tampon la nouvelle valeur
} send_wifir (C_val); // on envoi le buffer par wifi
fonction send wifir:
void send_wifir (char* com_AT) {int num, z; për (z = 0; z <22000000; z ++) {} për (num = 0; num <(int) strlen (com_AT); num ++) { *(h2p_lw_rs232_addr) = com_AT [num]; }}
Hidhni inicializuesin la carte wifi në përdorimin e kodit suivant:
send_wifi ("AT+RST / r / n"); // kërko rivendosjen e leep la cartesleep (3); // merrni pjesë në qu'elle resetsend_wifi ("AT+CWMODE = 3 / n / r"); // zgjidhni mënyrën e kartesend_wifi ("AT+CWJAP = \" wifiNom / ", \" MotDePasse / "\ r / n"); // on lui demande de se lidhës ose wifisleep (15); // në frekuentimin e queelle se connectesend_wifi ("AT+CIPSTART = \" UDP / ", \" 192.168.43.110 / ", 32003 / r / n"); // On lui demande de se connecter en udp avec le serveur ouvert sur un autre ordinateursleep (3); // merrni pjesë në la connexionsend_wifi ("AT+CIPMODE = 1 / r / n"); // në mënyrën se si i dërguari vazhdon të flejë (3); send_wifi ("AT+CIPSEND / r / n"); // në fillimin e transmetimit
fonction send wifi:
i pavlefshëm send_wifi (char * com_AT) {int num, z; për (num = 0; num <(int) strlen (com_AT); num ++) { * (h2p_lw_rs232_addr) = com_AT [num]; për (z = 0; z <2500000; z ++) {}}}
Kodi i shërbimit:
afichage de la fft:
int i, j, Vlera = 0; sistemi ("i qartë");
për (i = 0; i <41; i ++) {nëse (i <40) {për (j = 0; j <BUFSIZE; j ++) {if (tabela [j]*4> (40 - i)) {nëse (tabela [j]*4> 35) printf (KUQ "|" RESETO); përndryshe nëse (tabela [j]*4> 28) printf (L_RED "|" RESETO); përndryshe nëse (tabela [j]*4> 21) printf (YEL "|" RESETO); përndryshe nëse (tabela [j]*4> 14) printf (L_YEL "|" RESETO); përndryshe nëse (tabela [j]*4> 7) printf (L_GRN "|" RESETO); tjetër printf (GRN "|" RESETO); } else printf (""); } printf ("\ n"); } else {printf ("0Hz 2.5Hz 5Hz 7.5kHz 10kHz / n"); /*për (j = 0; j <(BUFSIZE/2); j ++)
Recommended:
Si të bëni 4G LTE Antenë të BiQuade të Dyfishtë Hapa të Lehtë: 3 Hapa
Si të bëni 4G LTE Antenë BiQuade të Dyfishtë Hapa të Lehtë: Shumicën e kohës me të cilën jam përballur, nuk kam forcë të mirë të sinjalit në punët e mia të përditshme. Kështu që. Kërkoj dhe provoj lloje të ndryshme antenash por nuk funksionoj. Pas humbjes së kohës gjeta një antenë që shpresoj ta bëj dhe ta provoj, sepse është parimi i ndërtimit jo
Dizajni i lojës në lëvizje në 5 hapa: 5 hapa
Dizajni i lojës në Flick në 5 hapa: Flick është një mënyrë vërtet e thjeshtë për të bërë një lojë, veçanërisht diçka si një enigmë, roman vizual ose lojë aventure
Zbulimi i fytyrës në Raspberry Pi 4B në 3 hapa: 3 hapa
Zbulimi i fytyrës në Raspberry Pi 4B në 3 hapa: Në këtë Instructable ne do të bëjmë zbulimin e fytyrës në Raspberry Pi 4 me Shunya O/S duke përdorur Bibliotekën Shunyaface. Shunyaface është një bibliotekë për njohjen/zbulimin e fytyrës. Projekti synon të arrijë shpejtësinë më të shpejtë të zbulimit dhe njohjes me
Qëndrim për laptopë me 3 hapa dhe 3 hapa (me syze leximi dhe tabaka me stilolaps): 5 hapa
Qëndrim për laptopë me hapa 3 & 3 hapa (me syze leximi dhe tabaka për stilolapsa): Kjo $ 3 & Qëndrimi i laptopit me 3 hapa mund të bëhet brenda 5 minutave. It'sshtë shumë e fortë, me peshë të lehtë dhe mund të paloset për ta marrë kudo që të shkoni
Si të bëni Autotune (Falas!): 4 hapa
Si të bëni Autotune (Falas!): Duke përdorur garazh, mësoni se si ta krijoni me lehtësi atë efekt autotune që dëgjoni aq shumë. ** EDIT ** Lidhje me një shembull: http://limelinx.com/files/e7b32e25dda5c5a22ab1bfc8c0eb3acd