Inhaltsverzeichnis:
- Schritt 1: Composants Utilisés
- Schritt 2: Architektur
- Schritt 3: Party Analogique
- Schritt 4: Impression Des PCBs
- Schritt 5: Party Numérique
- Schritt 6: Le-Code
Video: Autotune: 7 Schritte
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Bienvenue dans notre project 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 besteht aus einem émettre ein son capter von einem micro, einem émit von einem haut parleur und einem afficher la FFT auf einem écran PC. Il sera possible de modifier le son audio comme le volume et créer un écho.
C'est parti pour les explications !!
Schritt 1: Composants Utilisés
- Karte DEO-Nano-SoC
- Batterie 2 Ausgang à 5V2A
- Mikro
- Hautparleur 8 Ohm
- Regler: MAX660
- Erfassungs-IR: GP2Y0E02A
- Verstärker-Audio: LM386N-1/NOPB
- DAC: MCP4821-E/P
- Diode: 1N4148
- Übertrager: LND150N3-G / N-FET
- 2 AOP: TL081C
- Widerstände
- Kondensatoren
- WLAN: ESP8266EX
- 4 Schalter
- 3 LED-Farben
Schritt 2: Architektur
Voici ci-dessus notre schema bloc représentant l'architecture de notre projet Autotune.
Comme vous pouvez le voir, notre projet va pouvoir capter ein son à l'aide du micro Dont le signal analogique capté sera converti en a 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 switch. Enfin, le signal modifié depuis la carte sera reconverti en a signal analogique und sera transmise à travers le haut parleur.
Schritt 3: Party Analogique
Notre partie analogie est composée de 2 Circuits:
Eine erstklassige Schaltung, die ein Mikropartie repräsentiert, eine Branche mit einer CAN-Karte FPGA, eine Zusammenstellung eines Verstärkungsverstärkers und eine passive Filterung des Signals.
Ein 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 Spannung und d'un amplificateur audio.
Le troisième schema est celui du régulateur produisant du -5V pour alimenter tous les composants.
Schritt 4: Impression Des PCBs
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 und haut parleur. Voici le site Correspondant au tutoriel Altium qui peut sureement vous aider !
Schritt 5: Party Numérique
Après avoir imprimer vos PCBs, vous pouvez enfin brancher à 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é, auf Rechnung von fft und auf envoie le résultat par wifi. Cette séparation permet d'éviter les ralentissements sur la première partie.
Bei Verwendung von Qsys und Quartus für HPS-Verzweiger mit verschiedenen Komponenten. Bei Verwendung einer IP-SPI für eine Verbindung mit einem DAC und einer IP-UART für eine Verbindung mit einer WLAN-Karte.
Schritt 6: Le-Code
Voici le lien où nous avons recuperé le code pour faire la fft.
Bei Verwendung des Se code pour Calculator la fft:
// Erstellung der Konfiguration und des Puffers in et out pour s(t) und 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++){Wert = *h2p_lw_adc_addr; //recupère la valeur provenant du PCB du microin[j].r = Value-2000.0; //im Ruhestand l'offset de cette valeurfor(i = 0; i < 2100; i++) {} //atend un temps bien précis pour avoir une fréquence d'échantillonnage connue}
// Berechnung der 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 und 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
}sende_wifir(C_val); //auf Envoi le Puffer für WLAN
Funktion WLAN senden:
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]; } }
Pour initialiser la carte wifi on use le code suivant:
send_wifi("AT+RST\r\n"); // Zurücksetzen à la cartesleep (3) verlangen; // an qu'elle teilnehmen resetsend_wifi("AT+CWMODE=3\n\r"); // wähle den Modus de la cartesend_wifi("AT+CWJAP=\"wifiNom\", \"MotDePasse\"\r\n"); // auf lui demande de se connecter au wifisleep (15); //auf 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 unautre ordinateursleep(3); // an der Verbindung teilnehmenend_wifi("AT+CIPMODE=1\r\n"); //on se met en mode envoie en continueleep(3);send_wifi("AT+CIPSEND\r\n"); // am Beginn der Übertragung
Funktion WLAN senden:
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 des Servers:
affichage de la fft:
int i, j, Wert = 0; system("klar");
for(i =0; i < 41; i++) { if(i < 40) { for(j = 0; j < BUFSIZE; j++) { if(table[j]*4 > (40 - i)) { if (Tabelle[j]*4 > 35) printf(ROT "|" ZURÜCKSETZEN); else if(table[j]*4 > 28) printf(L_RED "|" RESET); else if(table[j]*4 > 21) printf(YEL "|" RESET); else if(table[j]*4 > 14) printf(L_YEL "|" RESET); else if(table[j]*4 > 7) printf(L_GRN "|" RESET); sonst printf(GRN "|" ZURÜCKSETZEN); } sonst printf(" "); } printf("\n"); } else { printf("0Hz 2.5Hz 5Hz 7.5kHz 10kHz\n"); /*for(j = 0; j < (BUFSIZE/2); j++)
Empfohlen:
Erste Schritte mit Amara: 7 Schritte
Erste Schritte mit Amara: Amara ist ein kostenloser Untertitel-Editor, mit dem Sie ganz einfach Untertitel zu Videos hinzufügen können – vom Unterricht bis zum persönlichen Gebrauch. Diese Anweisungen helfen Ihnen, ein Amara-Konto einzurichten, damit Sie schnell und einfach Untertitel hinzufügen können
Erste Schritte mit der Heimautomatisierung: Home Assistant installieren: 3 Schritte
Erste Schritte mit der Hausautomation: Home Assistant installieren: Wir starten jetzt die Hausautomationsserie, in der wir ein Smart Home erstellen, das es uns ermöglicht, Dinge wie Licht, Lautsprecher, Sensoren usw. über einen zentralen Hub zusammen mit einem Sprachassistent. In diesem Beitrag erfahren Sie, wie Sie in
Erste Schritte mit dem SkiiiD-Editor: 11 Schritte
Erste Schritte mit dem SkiiiD-Editor: skiiiD-Editor, Entwicklungsboard-Firmware IDEskiiiD-Editor basiert auf skiiiD (Firmware Development Engine). Jetzt ist es mit Arduino UNO, MEGA und NANO mit 70+ Komponenten kompatibel.BetriebssystemmacOS / WindowsInstallierenBesuchen Sie die Website https:
Erste Schritte mit Python: 7 Schritte (mit Bildern)
Erste Schritte mit Python: Programmieren ist großartig! Es ist kreativ, macht Spaß und gibt Ihrem Gehirn ein mentales Training. Viele von uns wollen etwas über Programmieren lernen, aber überzeugen sich selbst davon, dass wir es nicht können. Vielleicht hat es zu viel Mathematik, vielleicht der Jargon, der erschreckend herumgeworfen wird
So machen Sie Autotune (kostenlos!): 4 Schritte
So machen Sie Autotune (kostenlos!): Lernen Sie mit Garageband, wie Sie auf einfache Weise den Autotune-Effekt erzeugen, den Sie so oft hören. ** BEARBEITEN ** Link zu einem Beispiel: http://limelinx.com/files/e7b32e25dda5c5a22ab1bfc8c0eb3acd