Indholdsfortegnelse:
- Trin 1: Composants Utilisés
- Trin 2: Arkitektur
- Trin 3: Partie Analogique
- Trin 4: Impression Des PCB'er
- Trin 5: Partie Numérique
- Trin 6: Le Code
Video: Autotune: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
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).
Det er muligt at købe en ny computer til en mikro, der kan bruges til at levere en FFT til en pc. Det er muligt at ændre lydstyrken til lydstyrke og lydstyrke.
C'est parti pour les explications !!
Trin 1: Composants Utilisés
- Carte DEO-Nano-SoC
- Batteri 2 output à 5V2A
- Micro
- Haut Parleur 8 Ohm
- Regulering: MAX660
- Capteur IR: GP2Y0E02A
- Ampli Audio: LM386N-1/NOPB
- DAC: MCP4821-E/P
- Diode: 1N4148
- Transitor: LND150N3-G / N-FET
- 2 AOP: TL081C
- Modstande
- Kondensater
- Wifi: ESP8266EX
- 4 kontakter
- 3 Leds de couleurs
Trin 2: Arkitektur
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 analogique capté sera converti en un signal numérique dont l'ADC est intégré dans la carte FPGA. Puis le signal sera modifié selon nos effets choisis à l'aide d'un capteur de proximité et des switchs. Enfin, le signal modifié depuis la carte sera reconverti en un signal analogique and sera transmise à travers le haut parleur.
Trin 3: Partie Analogique
Notre partie analogie est composée de 2 kredsløb:
Un premier circuit qui représentera la partie micro, qui sera branché au CAN de la carte FPGA, composé d'un amplificateur 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 et d'un amplificateur audio.
Le troisième schéma est celui du régulateur produisant du -5V pour alimenter tous les composants.
Trin 4: Impression Des PCB'er
Maintenant, nous allons créer nos PCB afin de les imprimer et de les relier!
A l'aide du logiciel Alitum, nous avons pu creer deux PCBs, c'est à dire la partie micro et haut parleur. Voici le site correspondant au tutoriel Altium qui peut sureement vous aider!
Trin 5: Partie Numérique
Après avoir imprimer vos PCBs, vous pouvez enfin brancher le 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é, om récupère le signal on le modifie et on l'envoie vers le DAC en spi. D'un deuxième côté, på beregning la fft et on envoie le résultat par wifi. Cette séparation permet d'éviter les ralentissements sur la première partie.
På udnytte Qsys et quartus pour brancher le HPS avec les différents composants. På brug notamment une IP SPI for communiquer avec le dac et une IP UART for communiquer avec la carte wifi.
Trin 6: Le Code
Voici le lien où nous avons récuperé le code pour faire la fft.
Ved brug se kode til regnemaskine 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*out = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx));
for (j = 0; j <NFFT; j ++) {Value = *h2p_lw_adc_addr; // recupère la valeur provenant du pcb du microin [j].r = Value-2000.0; // på pension l'offset de cette valeurfor (i = 0; i <2100; i ++) {} // deltage i tem tem 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; hvis (tmp_log <0) {tmp_log = 0; } hvis (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); // på envoi le buffer af wifi
fonction send wifir:
void send_wifir (char* com_AT) {int num, z; for (z = 0; z <22000000; z ++) {} for (num = 0; num <(int) strlen (com_AT); num ++) { *(h2p_lw_rs232_addr) = com_AT [num]; }}
Hæld initialiser la carte wifi på udnyt le code suivant:
send_wifi ("AT+RST / r / n"); // demande de reset à la cartesleep (3); // deltage i 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 connecter en udp avec le serveur ouvert sur un autre ordinateursleep (3); // deltage i la connexionsend_wifi ("AT+CIPMODE = 1 / r / n"); // on se met en mode envoie en continueleep (3); send_wifi ("AT+CIPSEND / r / n"); // påbegyndt la transmission
funktion send wifi:
void send_wifi (char * com_AT) {int num, z; for (num = 0; num <(int) strlen (com_AT); num ++) { * (h2p_lw_rs232_addr) = com_AT [num]; for (z = 0; z <2500000; z ++) {}}}
Code du serveur:
affichage de la fft:
int i, j, Værdi = 0; system ("klart");
for (i = 0; i <41; i ++) {if (i <40) {for (j = 0; j <BUFSIZE; j ++) {if (tabel [j]*4> (40 - i)) {if (tabel [j]*4> 35) printf (RØD "|" NULSTIL); ellers hvis (tabel [j]*4> 28) printf (L_RED "|" RESET); ellers hvis (tabel [j]*4> 21) printf (YEL "|" RESET); ellers hvis (tabel [j]*4> 14) printf (L_YEL "|" RESET); ellers hvis (tabel [j]*4> 7) printf (L_GRN "|" RESET); ellers printf (GRN "|" RESET); } ellers printf (""); } printf ("\ n"); } ellers {printf ("0Hz 2.5Hz 5Hz 7.5kHz 10kHz / n"); /*for (j = 0; j <(BUFSIZE/2); j ++)
Anbefalede:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Tre højttalerkredsløb -- Trin-for-trin vejledning: 3 trin
Tre højttalerkredsløb || Trin-for-trin vejledning: Højttalerkredsløb styrker lydsignalerne, der modtages fra miljøet til MIC og sender det til højttaleren, hvorfra forstærket lyd produceres. Her vil jeg vise dig tre forskellige måder at lave dette højttalerkredsløb på:
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
Sådan gør du Autotune (gratis!): 4 trin
Sådan laver du autotune (gratis!): Brug garagebånd til at lære, hvordan du nemt opretter den autotune -effekt, du hører så meget. ** EDIT ** Link til et eksempel: http://limelinx.com/files/e7b32e25dda5c5a22ab1bfc8c0eb3acd