Daftar Isi:
- Langkah 1: Komposan Utilisés
- Langkah 2: Arsitektur
- Langkah 3: Analogi Partie
- Langkah 4: Impression Des PCBs
- Langkah 5: Partie Numérique
- Langkah 6: Kode Le
Video: Autotune: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:58
Bienvenue dan 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).
Notre projet terdiri émettre un son capter par un micro, émit par un haut parleur et afficher la FFT sur un écran PC. Il sera mungkin de modifier le son audio comme le volume et créer un écho.
C'est parti pour les explications!!
Langkah 1: Komposan Utilisés
- Carte DEO-Nano-SoC
- Baterai 2 keluaran 5V2A
- Mikro
- Haut Parleur 8 Ohm
- Pengatur: MAX660
- Tangkap IR: GP2Y0E02A
- Ampli Audio: LM386N-1/NOPB
- DAC: MCP4821-E/P
- Dioda: 1N4148
- Transitor: LND150N3-G / N-FET
- 2 AP: TL081C
- Perlawanan
- Kondensat
- Wi-Fi: ESP8266EX
- 4 sakelar
- 3 Led de couleurs
Langkah 2: Arsitektur
Voici ci-dessus notre schéma bloc mewakili l'architecture de notre projet Autotune.
Comme vous pouvez le voir, notre projet va pouvoir capter un son l'aide du micro jangan le sinyal analogi capté sera converti en un sinyal numérique jangan 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 switch. Enfin, le signal modifié depuis la carte sera reconverti en un signal analogique et sera transmise travers le haut parleur.
Langkah 3: Analogi Partie
Notre partie analogie est composée de 2 sirkuit:
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.
Langkah 4: Impression Des PCBs
Pemeliharaan, 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. Suara koresponden situs dan tutor Altium qui peut kepastian vous aider !
Langkah 5: Partie Numérique
Après avoir imprimer vos 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 et on l'envoie vers le DAC en spi. D'un deuxième côté, pada kalkulasi la fft et pada envoie le résultat par wifi. Permet d'éviter les ralentissements sur la première partie.
Pada penggunaan Qsys et quartus pour brancher le HPS avec les différents composants. Pada penggunaan notamment une IP SPI tuangkan komuniquer avec le dac et une IP UART tuangkan komuniquer avec la carte wifi.
Langkah 6: Kode Le
Voici le lien où nous avons récuperé le code pour faire la fft.
Pada penggunaan kode se tuangkan kalkulator la fft:
// Membuat konfigurasi de la dan buffer di et out tuangkan 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++){Nilai = *h2p_lw_adc_addr; //recupère la valeur provenant du pcb du microin[j].r = Nilai-20000.0; //pada saat pensiun l'offset de cette valeurfor(i = 0; i < 2100; i++) {} //attend un temps bien précis pour avoir une fréquence d'échantillonnage connue}
// Perhitungan depuis FFT di 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++) { //tuangkan limiter la taille du buffer pada limite la sortie de la fft des valeurs entre 0 dan 9 tmp_log=20*(log(abs(out[t].r/100.0)))*9;
tmp_log=tmp_log/50; if(tmp_log<0){ tmp_log=0; } jika(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); //pada envoi le buffer par wifi
fonction mengirim 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]; } }
Tuangkan penginisialisasi la carte wifi menggunakan kode le yang sesuai:
send_wifi("AT+RST\r\n"); //meminta reset la cartesleep(3); //attend qu'elle resetsend_wifi("AT+CWMODE=3\n\r"); //pilih mode de la cartesend_wifi("AT+CWJAP=\"wifiNom\", \"MotDePasse\"\r\n"); //pada lui demande de se connecter atau wifisleep(15); //on menghadiri 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 server ouvert sur un autre ordinateursleep(3); //attend la connexionsend_wifi("AT+CIPMODE=1\r\n"); //on se met en mode envoie en continueleep(3);send_wifi("AT+CIPSEND\r\n"); //saat memulai transmisi
fonction mengirim 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]; untuk(z=0;z<2500000;z++) {} } }
Kode du server:
affichage de la fft:
int i, j, Nilai=0; sistem("hapus");
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(RED "|" RESET); else if(tabel[j]*4 > 28) printf(L_RED "|" RESET); else if(tabel[j]*4 > 21) printf(YEL "|" RESET); else if(tabel[j]*4 > 14) printf(L_YEL "|" RESET); else if(tabel[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"); /*untuk(j = 0; j < (BUFSIZE/2); j++)
Direkomendasikan:
Sistem Peringatan Parkir Terbalik Mobil Arduino - Langkah demi Langkah: 4 Langkah
Sistem Peringatan Parkir Mundur Mobil Arduino | Langkah demi Langkah: Pada proyek kali ini, saya akan merancang Rangkaian Sensor Parkir Mundur Mobil Arduino sederhana menggunakan Sensor Ultrasonik Arduino UNO dan HC-SR04. Sistem peringatan mundur mobil berbasis Arduino ini dapat digunakan untuk Navigasi Otonom, Jarak Robot, dan r
Langkah demi Langkah Membangun PC: 9 Langkah
Langkah demi Langkah Membangun PC: Perlengkapan: Perangkat Keras: MotherboardCPU & Pendingin CPUPSU (Unit catu daya)Penyimpanan (HDD/SSD)RAMGPU (tidak diperlukan)Kasing Alat: Obeng Gelang ESD/pasta matstermal dengan aplikator
Tiga Sirkuit Loudspeaker -- Tutorial Langkah-demi-Langkah: 3 Langkah
Tiga Sirkuit Loudspeaker || Tutorial Langkah-demi-Langkah: Sirkuit Loudspeaker memperkuat sinyal audio yang diterima dari lingkungan ke MIC dan mengirimkannya ke Speaker dari mana audio yang diperkuat diproduksi. Di sini, saya akan menunjukkan kepada Anda tiga cara berbeda untuk membuat Sirkuit Loudspeaker ini menggunakan:
Levitasi Akustik Dengan Arduino Uno Langkah-demi-Langkah (8-langkah): 8 Langkah
Akustik Levitation Dengan Arduino Uno Langkah-demi-Langkah (8-langkah): transduser suara ultrasonik L298N Dc female adapter power supply dengan pin dc laki-laki Arduino UNOBreadboardCara kerjanya: Pertama, Anda mengunggah kode ke Arduino Uno (ini adalah mikrokontroler yang dilengkapi dengan digital dan port analog untuk mengonversi kode (C++)
Cara Melakukan Autotune (Gratis!): 4 Langkah
Cara Melakukan Autotune (Gratis!): Menggunakan garageband, pelajari cara mudah membuat efek autotune yang sering Anda dengar.**EDIT** Tautan ke contoh: http://limelinx.com/files/e7b32e25dda5c5a22ab1bfc8c0eb3acd