Obsah:

Automatické ladenie: 7 krokov
Automatické ladenie: 7 krokov

Video: Automatické ladenie: 7 krokov

Video: Automatické ladenie: 7 krokov
Video: 7 лекция MIT - технические испытания, блокчейн и деньги - Гари Генслер - русская озвучка | Cryptus 2024, November
Anonim
Autotune
Autotune

Bienvenue dans notre projet Autotune

Notre équipe va vous présenter la réalisation de ce projet. Skladá sa z troch polytechnických polykarbonátových dosiek EISE4.

Väčšina projektov obsahuje jeden súbor mikrofónov, ktorý obsahuje veľké množstvo súborov a súborov FFT na počítačoch. Možné modifikátory zvukového komprimovania hlasitosti a vytvárania zvuku.

Vysvetlite niektoré vysvetlenia !!

Krok 1: Pomôcky na skladanie kompozícií

  • Karta DEO-Nano-SoC
  • Batéria 2 s výstupom 5V2A
  • Mikro
  • Vysoká vzdialenosť 8 ohmov
  • Regulácia: MAX660
  • Kapitán IR: GP2Y0E02A
  • Zosilňovač zvuku: LM386N-1/NOPB
  • DAC: MCP4821-E/P
  • Dióda: 1N4148
  • Transitor: LND150N3-G / N-FET
  • 2 AOP: TL081C
  • Rezistencie
  • Kondenzátori
  • Wifi: ESP8266EX
  • 4 spínače
  • 3 LED diódy

Krok 2: Architektúra

Architektúra
Architektúra

Voci ci-dessus notre schéma bloc représentant l'architecture de notre projet Autotune.

Viac informácií nájdete v hlavnom článku, ako to môžete urobiť, aby ste získali podrobnejšie informácie o zvukových signáloch, ako sú analógové a digitálne signály FPGA. Väčšina signálov, ktoré môžu byť vybrané, prepína. Definujte, modifikujte signál z jednej série sériových signálov a prekonvertujte ich analógové a sériové prenosy na veľkú úroveň.

Krok 3: Partie Analogique

Partia Analogique
Partia Analogique
Partia Analogique
Partia Analogique
Partia Analogique
Partia Analogique

Naše analógové partie majú 2 obvody:

Jeden z prvých obvodov, ktoré môžu obsahovať mikro, alebo sériové vetvy CAN de la carte FPGA, zosilňovače zosilňovača a filtre prechádzajú cez zosilňovače a zachytávajú signál.

Jeden deuxieme obvod môže mať jednu alebo druhú hlavnú časť, jednu sériu FPGA, dve DAC, dve divízie napätia a zosilňovača zvuku.

Schéma zostavenia celui du regulárnej produkcie -5 V na sklade.

Krok 4: Dosky plošných spojov Impression Des

Dosky plošných spojov Impression Des
Dosky plošných spojov Impression Des
Dosky plošných spojov Impression Des
Dosky plošných spojov Impression Des
Dosky plošných spojov Impression Des
Dosky plošných spojov Impression Des

Údržba, množstvo hliníkových zliatin obsahuje PCB, ako je to možné, a spoľahlivé!

A l'aide du logiciel Alitum, nous avons pu creer deux PCBs, c'est à direct la partie micro et haut parleur. Hovoríte o všetkom, čo vás zaujíma?

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!

Naliať časť partie, nous avons vytvoriť kód 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. Percent d'éterum ralentissements sur la première partie.

Pri použití Qsys et quartus pour brancher le HPS avec les différents composants. Pri používaní zaznamenávajte IP SPI a zdieľajte svoje IP adresy UART a komunikujte podľa výberu wifi.

Krok 6: Le Code

Vaše hlasy sa budú líšiť od toho, aby ste získali kód.

Pri použití kódu nalejte kalkulačku nižšie:

// Konfigurácia a vytváranie vyrovnávacích pamätí pre vylievanie s (t) a 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));

pre (j = 0; j <NFFT; j ++) {hodnota = *h2p_lw_adc_addr; // rekuperácia valeur provenant du pcb du microin [j].r = hodnota-2000,0; // on dôchodok l'offset de cette valeurfor (i = 0; i <2100; i ++) {} // visit un temps bien précis pour avoir une fréquence d’échantillonnage connue}

// Výpočet FFT v závislosti od outkiss_fft (konfigurácia, vstup, výstup); 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

odoslanie písma wifir:

neplatné 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]; }}

Nalejte inicializátor la carte wifi na použitie vhodného kódu:

send_wifi ("AT+RST / r / n"); // požiadavka na reset à la cartesleep (3); // zúčastnite sa 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"); // Ďalšie informácie o pripojení k serveru, ktoré bude slúžiť na obnovenie automatického režimu (3); // účasť na Connexionsend_wifi ("AT+CIPMODE = 1 / r / n"); // on met met en envoie en nepřetržitý spánok (3); send_wifi ("AT+CIPSEND / r / n"); // na začiatku prenosu

odosielanie písma wifi:

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]; pre (z = 0; z <2500000; z ++) {}}}

Kód služby:

affichage de la fft:

int i, j, hodnota = 0; systém („čistý“);

for (i = 0; i <41; i ++) {if (i <40) {for (j = 0; j <BUFSIZE; j ++) {if (table [j]*4> (40 - i)) {if (tabuľka [j]*4> 35) printf (ČERVENÉ "|" RESET); else if (tabuľka [j]*4> 28) printf (L_RED "|" RESET); else if (tabuľka [j]*4> 21) printf (YEL "|" RESET); else if (tabuľka [j]*4> 14) printf (L_YEL "|" RESET); else if (tabuľka [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"); /*pre (j = 0; j <(BUFSIZE/2); j ++)

Odporúča: