Talaan ng mga Nilalaman:
- Hakbang 1: Mga Utilisés ng Composant
- Hakbang 2: Arkitektura
- Hakbang 3: Partie Analogique
- Hakbang 4: Impresyon Des PCBs
- Hakbang 5: Partie Numérique
- Hakbang 6: Le Code
Video: Autotune: 7 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
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 électronique informatique systèmes embarqués).
Ang projet ay binubuo ng isang anak na capter par na micro, upang hindi masuri ang mga ito at mag-apekto sa FFT sa isang PC. Maaari kong baguhin ang anak na audio mula sa dami ng mga tao at mag-uncho.
C'est parti pour les explications !!
Hakbang 1: Mga Utilisés ng Composant
- Carte DEO-Nano-SoC
- Batterie 2 output à 5V2A
- Micro
- Haut Parleur 8 Ohm
- Régulateur: MAX660
- Capteur IR: GP2Y0E02A
- Ampli Audio: LM386N-1 / NOPB
- DAC: MCP4821-E / P
- Diode: 1N4148
- Transitor: LND150N3-G / N-FET
- 2 AOP: TL081C
- Mga Résistance
- Mga Condensateur
- Wifi: ESP8266EX
- 4 switch
- 3 Leds de couleurs
Hakbang 2: Arkitektura
Voici ci-dessus notre schéma bloc représentant l'architecture de notre projet Autotune.
Magagawa natin ang mga ito, walang projet ng pouvoir capter na un son a l'aide du micro dont le signal analogique capté sera convertti en un signal numérique dont l'ADC est intégré dans la carte FPGA. Ang signal ng sera modifié selon nos effets ay pipiliin upang maipalabas ang proximité at des switch. Enfin, ang signal modifié depuis la carte sera reconverti en un signal analogique et sera transmise à travers le haut parleur.
Hakbang 3: Partie Analogique
Notre partie analogie est composée de 2 circuit:
Un premier circuit qui représentera la partie micro, qui sera branché au CAN de la carte FPGA, composé d'un ampl Certificateur de gain et d'un filtre passif après avoir récupérer le signal.
Un deuxieme circuit qui repésentera la partie haut parleur, qui sera branché à la sortie de la carte FPGA, composé du DAC, d'un diviseur de tension and d'un amplisurur audio.
Le troisième schéma est celui du régulateur produisant du -5V pour alimenter tous les composants.
Hakbang 4: Impresyon Des PCBs
Maintenant, nous allons créer nos PCB pagkatapos ng les imprimer et de les relier!
Isang l'aide du logiciel Alitum, nous avons pu creer deux PCBs, c'est à dire la partie micro et haut parleur. Ang ulat ng site ay tumutukoy sa Altium qui peut sureement vous aider!
Hakbang 5: Partie Numérique
Sa pamamagitan ng pag-iwas sa mga PCB, maaari kang mag-post ng brancher at to à la carte FPGA!
Ibuhos ang partie numérique, nous avons créer un code C qui est séparé en deux en utilisant un thread. D'un coté, on récupère le signal on le modifie et on l'envoie vers le DAC en spi. D'un deuxième côté, on calculule la fft et on envoie le résultat par wifi. Cette séparation permet d'éviter les ralentissements sur la première partie.
Sa paggamit ng Qsys et quartus pour brancher le HPS avec les différents composants. Sa paggamit ng notamment sa IP SPI ay ibubuhos ang komunikasyon tungkol sa dac at hindi IP UART ibuhos ang komunikasyon sa isang cart wifi.
Hakbang 6: Le Code
Mag-sign in sa loob ng isang code upang ibigay ang faire la fft.
Sa paggamit ng se code pour calculer la fft:
// Création de la configure 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));
para sa (j = 0; j <NFFT; j ++) {Halaga = * h2p_lw_adc_addr; // recupère la valeur provenant du pcb du microin [j].r = Value-2000.0; // on retire l'offset de cette valeurfor (i = 0; i <2100; i ++) {} // attend un 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 (out [t].r / 1000.0))) * 9;
tmp_log = tmp_log / 50; kung (tmp_log <0) {tmp_log = 0; } kung (tmp_log> 9) {tmp_log = 9; } sprintf (tmp_val, "% d", tmp_log); strcat (C_val, tmp_val); // ajoute au buffer la nouvelle valeur
} send_wifir (C_val); // on envoi le buffer par wifi
pagpapadala ng font sa wifir:
walang bisa ang send_wifir (char * com_AT) {int num, z; para sa (z = 0; z <22000000; z ++) {} para sa (num = 0; num <(int) strlen (com_AT); num ++) {* (h2p_lw_rs232_addr) = com_AT [num]; }}
Ibuhos ang initialiser la carte wifi sa paggamit ng le code suivant:
send_wifi ("AT + RST / r / n"); // demande de reset à la cartesleep (3); // dumalo sa qu'elle resetsend_wifi ("AT + CWMODE = 3 / n / r"); // choisit le mode de la cartesend_wifi ("AT + CWJAP = \" wifiNom / ", \" MotDePasse / "\ r / n"); // on lui demande de se connecter au wifisleep (15); // on attend qu'elle se connectesend_wifi ("AT + CIPSTART = \" UDP / ", \" 192.168.43.110 / ", 32003 / r / n"); // On lui demande de se konecter en udp avec le servur ouvert sur un autre ordinateursleep (3); // attend la connexionsend_wifi ("AT + CIPMODE = 1 / r / n"); // on se met en mode envoie en patuloy na natutulog (3); send_wifi ("AT + CIPSEND / r / n"); // on commence la transmission
pagpapadala ng font sa wifi:
walang bisa ang send_wifi (char * com_AT) {int num, z; para sa (num = 0; num <(int) strlen (com_AT); num ++) {* (h2p_lw_rs232_addr) = com_AT [num]; para sa (z = 0; z <2500000; z ++) {}}}
Code du servur:
affichage de la fft:
int i, j, Halaga = 0; system ("malinaw");
para sa (i = 0; i <41; i ++) {if (i <40) {para (j = 0; j <BUFSIZE; j ++) {if (table [j] * 4> (40 - i)) {if (talahanayan [j] * 4> 35) printf (PULA "|" RESET); kung hindi man (talahanayan [j] * 4> 28) printf (L_RED "|" RESET); kung hindi man (talahanayan [j] * 4> 21) printf (YEL "|" RESET); kung hindi man (talahanayan [j] * 4> 14) printf (L_YEL "|" RESET); kung hindi man (talahanayan [j] * 4> 7) printf (L_GRN "|" RESET); kung hindi man printf (GRN "|" RESET); } ibang printf (""); } printf ("\ n"); } iba pa {printf ("0Hz 2.5Hz 5Hz 7.5kHz 10kHz / n"); / * para sa (j = 0; j <(BUFSIZE / 2); j ++)
Inirerekumendang:
Arduino Car Reverse Parking Alert System - Hakbang sa Hakbang: 4 na Hakbang
Arduino Car Reverse Parking Alert System | Hakbang sa Hakbang: Sa proyektong ito, magdidisenyo ako ng isang simpleng Arduino Car Reverse Parking Sensor Circuit gamit ang Arduino UNO at HC-SR04 Ultrasonic Sensor. Ang Arduino based Car Reverse alert system na ito ay maaaring magamit para sa isang Autonomous Navigation, Robot Ranging at iba pang range r
Hakbang sa Hakbang Pagbubuo ng PC: 9 Mga Hakbang
Hakbang sa Hakbang ng PC Building: Mga Pantustos: Hardware: MotherboardCPU & CPU coolerPSU (Power supply unit) Storage (HDD / SSD) RAMGPU (hindi kinakailangan) CaseTools: ScrewdriverESD bracelet / matsthermal paste w / applicator
Tatlong Loudspeaker Circuits -- Hakbang-hakbang na Tutorial: 3 Mga Hakbang
Tatlong Loudspeaker Circuits || Hakbang-hakbang na Tutorial: Ang Loudspeaker Circuit ay nagpapalakas ng mga audio signal na natanggap mula sa kapaligiran papunta sa MIC at ipinapadala ito sa Speaker mula sa kung saan ginawa ang pinalakas na audio. Dito, ipapakita ko sa iyo ang tatlong magkakaibang paraan upang magawa ang Loudspeaker Circuit na ito gamit ang:
Hakbang-hakbang na Edukasyon sa Robotics Na May Kit: 6 Mga Hakbang
Hakbang-hakbang na Edukasyon sa Robotics Gamit ang isang Kit: Matapos ang ilang buwan ng pagbuo ng aking sariling robot (mangyaring sumangguni sa lahat ng mga ito), at pagkatapos ng dalawang beses na pagkabigo ng mga bahagi, nagpasya akong bumalik at muling isipin ang aking diskarte at direksyon. Ang karanasan ng ilang buwan ay kung minsan ay lubos na nagbibigay-pakinabang, at
Paano Gawin ang Autotune (nang Libre!): 4 na Hakbang
Paano Gawin ang Autotune (nang Libre!): Gamit ang garageband, alamin kung paano madaling likhain ang awtomatikong epekto na naririnig mo. ** EDIT ** Mag-link sa isang halimbawa: http://limelinx.com/files/e7b32e25dda5c5a22ab1bfc8c0eb3acd