فهرست مطالب:
- مرحله 1: استفاده از ترکیبات
- مرحله 2: معماری
- مرحله 3: Partie Analogique
- مرحله 4: PCB های Impression Des
- مرحله 5: Partie Numérique
- مرحله 6: Le Code
تصویری: Autotune: 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
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 électronicque informatique systèmes embarkés).
Notre projet شامل sonmettre un son capter par un micro، parmit par un haut parleur و afficher la FFT sur un écran PC است. Il sera possible de modifier le son audio comme le volume et créer un écho.
C'est parti pour les explications !!
مرحله 1: استفاده از ترکیبات
- Carte DEO-Nano-SoC
- خروجی باتری 2 à 5V2A
- کوچک
- Haut Parleur 8 اهم
- تنظیم کننده: MAX660
- IR Capteur IR: GP2Y0E02A
- صدا Ampli: LM386N-1/NOPB
- DAC: MCP4821-E/P
- دیود: 1N4148
- انتقال دهنده: LND150N3-G / N-FET
- 2 AOP: TL081C
- مقاومت ها
- میعان کننده ها
- فای: ESP8266EX
- 4 سوئیچ
- 3 Leds de couleurs
مرحله 2: معماری
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 analogical capté sera converti en un signal numérique dont l'ADC is intégré dans la carte FPGA. Puis le signal sera modifié selon nos effets choisis à l'aide d'un capteur de proximité et des switch. Enfin، le signal modifié depuis la carte sera reconverti en un signal analogical and sera transmise à travers le haut parleur.
مرحله 3: Partie Analogique
Notre partie analogie est composée de 2 circuits:
Un Prime circuit qui représentera la partie micro، qui sera branché au CAN de la carte FPGA، composé d'un amplificateur de gain and d'un filtre passif après avoir récupérer le signal.
Unux 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 amplificateur audio.
Le troisième schéma est celui du régulateur produisant du -5V pour alimenter tous les composants.
مرحله 4: PCB های Impression Des
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 à hor la partie micro et haut parleur. Voici le خبرنگار سایت au tutoriel Altium qui peut sureement vous aider!
مرحله 5: Partie Numérique
Après avoir imprimer با PCB ها ، 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é، on récupère le signal on le modifie و 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. Cette séparation permet d'éviter les ralentissements sur la première partie.
در استفاده از ترکیبات Qsys et quartus pour brancher le HPS avec les différents. On use notamment une IP SPI pour communiquer avec le dac et une IP UART pour communiquer avec la carte wifi.
مرحله 6: Le Code
Voici le lien où nous avons récuperé le code pour faire la fft.
در مورد use se code pour 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*out = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)) ؛
برای (j = 0 ؛ j <NFFT ؛ j ++) {ارزش = *h2p_lw_adc_addr ؛ // recupère la valeur provenant du pcb du microin [j].r = Value-2000.0؛ // در بازنشستگی l'offset de cette valeurfor (i = 0؛ i <2100؛ i ++) {} // حضور در زمان مناسب برای پیشگیری از وقوع این بیماری}
// 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) ؛ // در envoi le buffer par wifi
fonction ارسال wifir:
void send_wifir (char* com_AT) {int num، z؛ برای (z = 0؛ z <22000000؛ z ++) {} برای (num = 0؛ num <(int) strlen (com_AT)؛ num ++) { *(h2p_lw_rs232_addr) = com_AT [num]؛ }}
پاور اولیه را از طریق wifi بر روی use le suivant بریزید:
send_wifi ("AT+RST / r / n") ؛ // demande de reset à la cartesleep (3)؛ // شرکت در 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)؛ // در حضور 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)؛ // حضور در la connexionsend_wifi ("AT+CIPMODE = 1 / r / n") ؛ // on se met en mode envoie en continueleep (3) ؛ send_wifi ("AT+CIPSEND / r / n") ؛ // در شروع انتقال
fonction ارسال 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]؛ برای (z = 0؛ z <2500000؛ z ++) {}}}
Code du serveur:
affichage de la fft:
int i، j، مقدار = 0؛ سیستم ("روشن") ؛
برای (i = 0؛ i <41؛ i ++) {if (i <40) {for (j = 0؛ j <BUFSIZE؛ j ++) {if (جدول [j]*4> (40 - i)) {if (جدول [j]*4> 35) printf (RED "|" بازنشانی)؛ else if (جدول [j]*4> 28) printf (L_RED "|" بازنشانی)؛ else if (جدول [j]*4> 21) printf (YEL "|" بازنشانی)؛ else if (جدول [j]*4> 14) printf (L_YEL "|" بازنشانی)؛ else if (جدول [j]*4> 7) printf (L_GRN "|" بازنشانی)؛ else printf (GRN "|" بازنشانی)؛ } else printf ("")؛ } printf ("\ n")؛ } else {printf ("0Hz 2.5Hz 5Hz 7.5kHz 10kHz / n")؛ /*برای (j = 0 ؛ j <(BUFSIZE/2) ؛ j ++)
توصیه شده:
مرحله به مرحله ساخت کامپیوتر: 9 مرحله
گام به گام ساخت کامپیوتر: لوازم: سخت افزار: مادربرد CPU & amp؛ CPU coolerPSU (منبع تغذیه) ذخیره سازی (HDD/SSD) RAMGPU (لازم نیست) مورد ابزار: پیچ گوشتی دستبند ESD/خمیر ماتریسمی با اپلیکاتور
سه مدار بلندگو -- آموزش مرحله به مرحله: 3 مرحله
سه مدار بلندگو || آموزش گام به گام: مدار بلندگو سیگنال های صوتی دریافت شده از محیط را بر روی MIC تقویت می کند و از محل تولید صدای تقویت شده به بلندگو ارسال می کند. در اینجا ، من سه روش مختلف برای ساخت این مدار بلندگو با استفاده از موارد زیر را به شما نشان خواهم داد
مرحله به مرحله اتوماسیون خانگی با استفاده از Wemos D1 Mini با طراحی PCB: 4 مرحله
گام به گام اتوماسیون خانگی با استفاده از Wemos D1 Mini با طراحی PCB: اتوماسیون خانگی گام به گام با استفاده از Wemos D1 Mini با طراحی PCB چند هفته قبل ما آموزش "اتوماسیون خانگی با استفاده از تمشک پای" را در rootaid.com منتشر کردیم که مورد استقبال علاقه مندان و علاقه مندان قرار گرفت. دانشجو. سپس یکی از اعضای ما آمد
نصب Smapler V0002 مرحله به مرحله: 5 مرحله
نصب Smapler V0002 گام به گام: Smapler یک مدار است که به تولید صدای مولد توسط David Cuartielles و Ino Schlaucher از BlushingBoy.org اختصاص داده شده است. Smapler v0002 - نسخه آاکا سنگاپور - چیزی نیست جز سپر آردوینو که برای بازی استری بد بو استفاده می شود
نصب Smapler V0001r2 مرحله به مرحله: 3 مرحله
نصب Smapler V0001r2 مرحله به مرحله: این یک راهنمای عکاسی برای نصب Smapler v0001r2 است. این یک مدار مستقل سازگار با آردوینو با اتصال کارت SD داخلی ، اتصال PS2 برای ماوس/صفحه کلید ، تقویت کننده صدا و تعدادی پین I/O برای سنسورها است. با آن شما