Obsah:

Automatické ladění: 7 kroků
Automatické ladění: 7 kroků

Video: Automatické ladění: 7 kroků

Video: Automatické ladění: 7 kroků
Video: Jak na to? Automatická převodovka 2024, Listopad
Anonim
Automatické ladění
Automatické ladění

Bienvenue dans notre projet Autotune

Nejnovější informace o projektu. Obsahuje 3 skladeb z Polytechnologie Sorbonne v EISE4 (4číslo année du cycle ingénieur en électronique informatique systèmes embarqués).

Nejčastěji se jedná o sesterské a mikroprocesorové mikrofony, které jsou k dispozici na velké ploše a přidružené FFT na pevném PC. Možné modifikátory zvukového doprovodu svazku a jeho vytvoření.

Všechny části vysvětlíme !!

Krok 1: Nástroje pro složení

  • Karta DEO-Nano-SoC
  • Baterie 2 s výstupem 5V2A
  • Mikro
  • Haut Parleur 8 Ohm
  • Regulace: MAX660
  • Capteur IR: GP2Y0E02A
  • Zesílení zvuku: LM386N-1/NOPB
  • DAC: MCP4821-E/P
  • Dioda: 1N4148
  • Transitor: LND150N3-G / N-FET
  • 2 AOP: TL081C
  • Rezistence
  • Kondenzátoři
  • Wifi: ESP8266EX
  • 4 spínače
  • 3 LED diody

Krok 2: Architektura

Architektura
Architektura

Zastupující zástupci schématu bloku zastupují architekturu architektury pro automatické ladění.

Získejte více zvuků, projděte si více kapitol a sledujte jejich analogové signály, analogové signály a převádějte více signálů do jednoho FPGA. Sériový signál může měnit počet přepínačů. Slouží k úpravě signálu na základě různých sériových signálů, které převádějí analogový signál a přenášejí sériový signál.

Krok 3: Partie Analogique

Partie Analogique
Partie Analogique
Partie Analogique
Partie Analogique
Partie Analogique
Partie Analogique

Analogové partie a 2 obvody:

Jeden hlavní obvod, který představuje část mikro, více větví nebo CAN de la carte FPGA, zesilovač zesílení a zesílení a filtrování pasivního signálu, který zachycuje signál.

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 napätie et d'un zesilovač zvuku.

Le Troisième diagram est celui du régulateur produisant du -5V pour alimenter tous les composants.

Krok 4: Desky plošných spojů Impression Des

Desky plošných spojů Impression Des
Desky plošných spojů Impression Des
Desky plošných spojů Impression Des
Desky plošných spojů Impression Des
Desky plošných spojů Impression Des
Desky plošných spojů Impression Des

Údržba, všechny slitiny získávají nosné desky plošných spojů po potvrzení a pořízení!

A l'aide du logiciel Alitum, nous avons pu creer deux PCBs, c'est à dire la partie micro et haut parleur. Hlasující korespondent stránek Altium qui peut jistota vous aider!

Krok 5: Partie Numérique

Partie Numérique
Partie Numérique

Après avoir imprimer vos PCBs, vous pouvez enfin brancher le tout à la carte FPGA!

Nalévejte 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 calcule la fft et on envoie le résultat par wifi. Dokončete séparation permet d'éviter les ralentissements sur la première partie.

Při použití Qsys et quartus pour brancher le HPS avec les different kompozitors. Při použití upozornění na IP SPI nainstalujte komunikátor a připojte IP UART nainstalujte komunikátor na základě wifi mapy.

Krok 6: Le Code

Vaše hlasy se budou zobrazovat po kliknutí na kód.

Při použití se kód nalijte kalkulačku la fft:

// Konfigurace vytvoření a uložení vyrovnávacích pamětí pro nalít 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));

pro (j = 0; j <NFFT; j ++) {hodnota = *h2p_lw_adc_addr; // rekuperace valeur provenant du pcb du microin [j].r = Value-2000.0; // při odchodu do důchodu l'offset de cette valeurfor (i = 0; i <2100; i ++) {} // navštěvovat 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; if (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 buffer la nouvelle valeur

} send_wifir (C_val); // na envoi le buffer par wifi

odeslání fontu 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]; }}

Nalijte inicializátor la carte wifi na použití le kód suivant:

send_wifi ("AT+RST / r / n"); // požadavek na reset à la cartesleep (3); // zúčastněte se qu'elle resetsend_wifi ("AT+CWMODE = 3 / n / r"); // vyberte režim de la cartesend_wifi ("AT+CWJAP = \" wifiNom / ", \" MotDePasse / "\ r / n"); // on lui demande de se connecter au wifisleep (15); // on visit qu'elle se connectesend_wifi ("AT+CIPSTART = \" UDP / ", \" 192.168.43.110 / ", 32003 / r / n"); // Na vyžádání se připojte a zadejte svou službu, která se bude zobrazovat v autre ordinateursleep (3); // navštěvovat la Connexionsend_wifi ("AT+CIPMODE = 1 / r / n"); // on se setkal v režimu envoie en continueleep (3); send_wifi ("AT+CIPSEND / r / n"); // Zahájení přenosu

odeslání wifi fontu:

neplatné send_wifi (char * com_AT) {int num, z; for (num = 0; num <(int) strlen (com_AT); num ++) { * (h2p_lw_rs232_addr) = com_AT [num]; pro (z = 0; z <2500000; z ++) {}}}

Kód služby:

affichage de la fft:

int i, j, hodnota = 0; systém („clear“);

pro (i = 0; i <41; i ++) {if (i <40) {for (j = 0; j <BUFSIZE; j ++) {if (tabulka [j]*4> (40 - i)) {if (tabulka [j]*4> 35) printf (ČERVENÉ "|" RESET); else if (tabulka [j]*4> 28) printf (L_RED "|" RESET); else if (tabulka [j]*4> 21) printf (YEL "|" RESET); else if (tabulka [j]*4> 14) printf (L_YEL "|" RESET); else if (tabulka [j]*4> 7) printf (L_GRN "|" RESET); else printf (GRN "|" RESET); } else printf (""); } printf ("\ n"); } else {printf ("0Hz 2,5Hz 5Hz 7,5kHz 10kHz / n"); /*pro (j = 0; j <(BUFSIZE/2); j ++)

Doporučuje: