Orodha ya maudhui:
- Hatua ya 1: Watunzi Matumizi
- Hatua ya 2: Usanifu
- Hatua ya 3: Partie Analogique
- Hatua ya 4: Maonyesho ya PCB za Des
- Hatua ya 5: Partie Numérique
- Hatua ya 6: Le Code
Video: Autotune: Hatua 7
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
Bienvenue haijashughulikiwa na Autotune
Notre équipe va vous présenter la réalisation de ce projet. Noté équipe is composée de 3 élèves ingénieurs de Polytech Sorbonne en EISE4 (4ème année du cycle ingénieur en électronique informatique systèmes embarqués).
Maelezo zaidi ni pamoja na kuwa na habari zaidi juu ya habari ndogo ndogo, tafadhali wasiliana na washirika wa FFT kwenye PC. Na uwezekano wa kubadilisha muundo wa sauti na sauti na sauti zaidi.
C'est parti pour les explications !!
Hatua ya 1: Watunzi Matumizi
- Carte DEO-Nano-SoC
- Pato la Batterie 2 kwa 5V2A
- Ndogo
- Haut Parleur 8 Ohm
- Msajili: MAX660
- Capteur IR: GP2Y0E02A
- Sauti ya Ampli: LM386N-1 / NOPB
- DAC: MCP4821-E / P
- Diode: 1N4148
- Transitor: LND150N3-G / N-FET
- 2 AOP: TL081C
- Kujiunga tena
- Wafanyabiashara
- Wifi: ESP8266EX
- 4 mabadiliko
- 3 Leds de couleurs
Hatua ya 2: Usanifu
Voici ci-dessus notre schéma bloc représentant kwa muundo wa ujenzi wa Autotune.
Comme vous pouvez le voir, notre projet va pouvoir capter un son à l'aide du micro dont le signal analogique capté sera converti en un sign numérique dont l'ADC is intégré dans la carte FPGA. Kuweka ishara ya mabadiliko ya sheria na huduma za siku moja kwa moja kwa wahusika kutoka kwa swichi. Enfin, le signal modifié depuis la carte sera reconverti en un signal analogique and sera transmise to travers le haut parleur.
Hatua ya 3: Partie Analogique
Notre partie analogie est composée de 2 nyaya:
Waziri Mkuu anazunguka kwa sehemu ndogo, ikiwa ni pamoja na tawi la FPGA, inaweza kutunzwa kwa kupata faida na kutoa maoni juu ya ishara.
Un deuxieme circuit quésentera la partie haut parleur, qui sera branché to la sortie de la carte FPGA, composé du DAC, d'un diviseur de tension and d'un amplificationur audio.
Le troisième schéma est celui du régulateur productisant du -5V pour alimenter tous les composants.
Hatua ya 4: Maonyesho ya PCB za Des
Kudumisha, nous allons créer nos PCB kwa sababu ya imprimer na de les relier!
L'aide du logiciel Alitum, nous avons pu creer deux PCBs, c'est à dire la partie micro et haut parleur. Mtangazaji wa tovuti hii au mwalimu wa Altium ni nani anayeweza kusaidia!
Hatua ya 5: Partie Numérique
Après avoir imprimer vos PCBs, wewe pouvez enfin brancher na tout à la carte FPGA!
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é, juu ya kumbukumbu na ishara juu ya modifie et on lenvoie vers le DAC en spi. D'un deuxième côté, kwenye hesabu ya fft et kwenye envoie le résultat par wifi. Cette separation permet d'éviter les ralentissements sur la première partie.
Kwenye matumizi ya Qsys na quartus pour brancher na HPS inajumuisha watunzi tofauti. Katika kutumia notamment une IP SPI pour communiquer avec le dac et une IP UART pour communiquer avec la carte wifi.
Hatua ya 6: Le Code
Voici le lien où nous avons récuperé le code pour faire la fft.
Tumia se code ya kumwaga calculer la 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 * nje = (kiss_fft_cpx *) malloc (ukubwa wa NFFT * (kiss_fft_cpx));
kwa (j = 0; j <NFFT; j ++) {Thamani = * h2p_lw_adc_addr; // recupère la valeur provenant du pcb du microin [j].r = Thamani-2000.0; // kwa kustaafu l'offset de cette valeurfor (i = 0; i <2100; i ++) {} // kuhudhuria kwa muda mfupi hatua ya kumwaga kwa sababu ya hali ya juu}
// Calcul de la FFT depuis in vers outkiss_fft (usanidi, ndani, nje); 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 * (logi (abs (nje [t].r / 1000.0))) * 9;
tmp_log = tmp_log / 50; ikiwa (tmp_log <0) {tmp_log = 0; } ikiwa (tmp_log> 9) {tmp_log = 9; } sprintf (tmp_val, "% d", tmp_log); strcat (C_val, tmp_val); // ajoute au buffer ya mpya ya valeur
} tuma_wifir (C_val); // kwenye envoi le buffer par wifi
fonction tuma wifir:
batili send_wifir (char * com_AT) {int num, z; kwa (z = 0; z <22000000; z ++) {} kwa (num = 0; num <(int) strlen (com_AT); num ++) {* (h2p_lw_rs232_addr) = com_AT [num]; }}
Mimina kitambulisho cha kwanza cha wifi kwenye matumizi ya nambari inayofaa:
tuma_wifi ("AT + RST / r / n"); // demande de reset à la cartesleep (3); // kuhudhuria qu'elle resetsend_wifi ("AT + CWMODE = 3 / n / r"); // chagua le mode de la cartesend_wifi ("AT + CWJAP = \" wifiNom / ", \" MotDePasse / "\ r / n"); // kwenye kiunganishi cha lui demande de se au kulala (15); // kwa kuhudhuria qu'elle se connectesend_wifi ("AT + CIPSTART = \" UDP / ", \" 192.168.43.110 / ", 32003 / r / n"); // Kwenye kiunganishi cha kiungo kwenye udp avec le serviceur tovert sur un autre ordinateurs sleep (3); // kuhudhuria la connexionsend_wifi ("AT + CIPMODE = 1 / r / n"); // juu ya kukutana na hali ya mjumbe en anaendelea kulala (3); send_wifi ("AT + CIPSEND / r / n"); // kwa kuanza kwa maambukizi
fonction tuma wifi:
batili send_wifi (char * com_AT) {int num, z; for (num = 0; num <(int) strlen (com_AT); num ++) {* (h2p_lw_rs232_addr) = com_AT [num]; ya (z = 0; z <2500000; z ++) {}}}
Kanuni za kumtumikia:
ushirika wa la fft:
int i, j, Thamani = 0; mfumo ("wazi");
kwa (i = 0; i <41; i ++) {if (i <40) {for (j = 0; j <BUFSIZE; j ++) {if (meza [j] * 4> (40 - i)) {if ((jedwali [j] * 4> 35) printf (RED "|" RESET); vinginevyo ikiwa (jedwali [j] * 4> 28) printf (L_RED "|" RESET); vinginevyo ikiwa (jedwali [j] * 4> 21) printf (YEL "|" Rudisha upya); vinginevyo ikiwa (jedwali [j] * 4> 14) printf (L_YEL "|" RESET); vinginevyo ikiwa (jedwali [j] * 4> 7) printf (L_GRN "|" RESET); kingine printf (GRN "|" Rudisha upya); } mwingine printf (""); } chapa ("\ n"); } mwingine {printf ("0Hz 2.5Hz 5Hz 7.5kHz 10kHz / n"); / * kwa (j = 0; j <(BUFSIZE / 2); j ++)
Ilipendekeza:
Mfumo wa Tahadhari ya Kuegesha Magari ya Arduino - Hatua kwa Hatua: 4 Hatua
Mfumo wa Tahadhari ya Kuegesha Magari ya Arduino | Hatua kwa Hatua: Katika mradi huu, nitatengeneza Mzunguko rahisi wa Sura ya Maegesho ya Arduino kwa kutumia Arduino UNO na Sense ya Ultrasonic ya HC-SR04. Mfumo wa tahadhari ya Gari ya Arduino ya msingi inaweza kutumika kwa Urambazaji wa Kujitegemea, Kuanzia Robot na anuwai zingine
Hatua kwa hatua Ujenzi wa PC: Hatua 9
Hatua kwa hatua Jengo la PC: Ugavi: Vifaa: MotherboardCPU & Baridi ya CPU
Mizunguko mitatu ya kipaza sauti -- Mafunzo ya hatua kwa hatua: Hatua 3
Mizunguko mitatu ya kipaza sauti || Mafunzo ya hatua kwa hatua: Mzunguko wa kipaza sauti huimarisha ishara za sauti zinazopokelewa kutoka kwa mazingira kwenda kwenye MIC na kuipeleka kwa Spika kutoka mahali ambapo sauti ya sauti imetengenezwa. Hapa, nitakuonyesha njia tatu tofauti za kutengeneza Mzunguko wa Spika kwa kutumia:
Ufuatiliaji wa Acoustic Na Arduino Uno Hatua kwa Hatua (hatua 8): Hatua 8
Ufuatiliaji wa Acoustic Na Arduino Uno Hatua kwa hatua (hatua-8): transducers za sauti za ultrasonic L298N Dc umeme wa umeme wa adapta na pini ya kiume ya dc Arduino UNOBreadboard Jinsi hii inavyofanya kazi: Kwanza, unapakia nambari kwa Arduino Uno (ni mdhibiti mdogo aliye na dijiti na bandari za analog kubadilisha msimbo (C ++)
Jinsi ya Kufanya Autotune (kwa Bure!): Hatua 4
Jinsi ya Kufanya Autotune (Bure!): Kutumia garage, jifunze jinsi ya kuunda athari hiyo ya autotune unayosikia sana. ** BONYEZA ** Unganisha na mfano: