সুচিপত্র:
- ধাপ 1: কম্পোজেন্ট ইউটিলিস
- ধাপ 2: স্থাপত্য
- ধাপ 3: পার্টি অ্যানালগিক
- ধাপ 4: ইমপ্রেশন ডেস পিসিবি
- ধাপ 5: পার্টি নুমারিক
- ধাপ 6: লে কোড
ভিডিও: অটোটুন: 7 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:02
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 électronique informatique systèmes embrués)।
Notre projet consiste à émettre un son capter par un micro, émit par un haut parleur et 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: কম্পোজেন্ট ইউটিলিস
- কার্ট ডিইও-ন্যানো-এসওসি
- ব্যাটারি 2 আউটপুট à 5V2A
- মাইক্রো
- Haut Parleur 8 Ohm
- নিয়ন্ত্রক: MAX660
- ক্যাপ্টুর আইআর: GP2Y0E02A
- আম্পলি অডিও: 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 analogique capté sera converti en un 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 সুইচ। Enfin, le signal modifié depuis la carte sera reconverti en un signal analogique et sera transmise à travers le haut parleur।
ধাপ 3: পার্টি অ্যানালগিক
Notre partie analogie est composée de 2 circuits:
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।
ধাপ 4: ইমপ্রেশন ডেস পিসিবি
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 et haut parleur। Voici le সাইট সংবাদদাতা au tutoriel Altium qui peut certainement vous aider!
ধাপ 5: পার্টি নুমারিক
Après avoir imprimer vos PCBs, 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é, récupère le signal on le modifie et on l'envoie vers le DAC en spi। D'un deuxième côté, 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 ব্যবহারে ব্রাঞ্চার লে HPS avec les différents composants। নোটামেন্ট ইউএন আইপি এসপিআই ব্যবহার করার জন্য কমিউনিকার এভেক লে ড্যাক এট ইউএন আইপি ইউএআরটি কমিউনিকার এভেক লা কার্ট ওয়াইফাই pourালুন।
ধাপ 6: লে কোড
Voici le lien où nous avons récuperé le code pour faire 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 proventant du pcb du microin [j].r = Value-2000.0; // অবসর নেওয়ার পর l'offset de cette valeurfor (i = 0; i <2100; i ++) {} // attend 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); // রেমেট à জিরো লে টেবালু কুই নুস সার্ট ডি বাফার কিউ এল এন ওএ এনভায়ার পার ওয়াইফাইফোর (টি = 0; টি <(এনএফএফটি/4); টি ++) {// limitালা লিমিটারে লা টেইল ডু বাফার fft à des valeurs entre 0 et 9 tmp_log = 20*(log (abs (out [t].r/1000.0)))*9;
tmp_log = tmp_log/50; যদি (tmp_log <0) {tmp_log = 0; } যদি (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 পাঠান:
অকার্যকর 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]; }}
লে কোড সুইভেন্ট ব্যবহার করার জন্য ইনিশিয়ালাইজার লা কার্ট ওয়াইফাই ালাও:
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"); // lui demande de se connecter au wifisleep (15); // at 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"); // শুরুতে লা ট্রান্সমিশন
ফাংশন পাঠান ওয়াইফাই:
অকার্যকর 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 ++) {}}}
কোড ডু সার্ভার:
affichage de la fft:
int i, j, মান = 0; সিস্টেম ("পরিষ্কার");
for (i = 0; i <41; i ++) {if (i <40) {for (j = 0; j <BUFSIZE; j ++) {if (table [j]*4> (40 - i)) {if (টেবিল [j]*4> 35) printf (RED "|" RESET); অন্যথায় যদি (টেবিল [j]*4> 28) printf (L_RED "|" RESET); অন্যথায় যদি (টেবিল [j]*4> 21) printf (YEL "|" RESET); অন্যথায় যদি (টেবিল [j]*4> 14) printf (L_YEL "|" RESET); অন্যথায় যদি (টেবিল [j]*4> 7) printf (L_GRN "|" RESET); অন্যথায় printf (GRN "|" RESET); } অন্যথায় printf (""); } printf ("\ n"); } অন্যথায় {printf ("0Hz 2.5Hz 5Hz 7.5kHz 10kHz / n"); /*এর জন্য (j = 0; j <(BUFSIZE/2); j ++)
প্রস্তাবিত:
কিভাবে 4G LTE ডাবল BiQuade অ্যান্টেনা সহজ ধাপ: 3 ধাপ
কিভাবে 4G LTE ডাবল BiQuade অ্যান্টেনা সহজ ধাপ তৈরি করতে হয়: বেশিরভাগ সময় আমি মুখোমুখি হয়েছি, আমার প্রতিদিনের কাজের জন্য আমার ভাল সংকেত শক্তি নেই। তাই। আমি বিভিন্ন ধরণের অ্যান্টেনা অনুসন্ধান করি এবং চেষ্টা করি কিন্তু কাজ করি না। নষ্ট সময়ের পরে আমি একটি অ্যান্টেনা খুঁজে পেয়েছি যা আমি তৈরি এবং পরীক্ষা করার আশা করি, কারণ এটি নির্মাণের নীতি নয়
Arduino Halloween Edition - Zombies Pop -out Screen (ছবি সহ ধাপ): 6 টি ধাপ
আরডুইনো হ্যালোইন সংস্করণ - জম্বি পপ -আউট স্ক্রিন (ছবি সহ ধাপ): আপনার বন্ধুদের ভয় দেখাতে চান এবং হ্যালোইনে কিছু চিৎকারের শব্দ করতে চান? অথবা শুধু কিছু ভাল কৌতুক করতে চান? এই Zombies পপ আউট পর্দা যে করতে পারেন! এই নির্দেশনায় আমি আপনাকে শেখাবো কিভাবে সহজেই আরডুইনো ব্যবহার করে লাফ দিয়ে জম্বি তৈরি করতে হয়। HC-SR0
Arduino Uno ধাপে ধাপে ধাপে ধাপে (8-ধাপ): 8 টি ধাপ
Arduino Uno ধাপে ধাপে ধাপে ধাপে (8-ধাপ): অতিস্বনক শব্দ ট্রান্সডুসার L298N Dc মহিলা অ্যাডাপ্টার একটি পুরুষ ডিসি পিন Arduino UNO ব্রেডবোর্ড দিয়ে কিভাবে এটি কাজ করে: প্রথমে, আপনি Arduino Uno এ কোড আপলোড করুন (এটি ডিজিটাল সজ্জিত একটি মাইক্রোকন্ট্রোলার এবং এনালগ পোর্ট কোড রূপান্তর করতে (C ++)
11 ধাপ রুবে গোল্ডবার্গ মেশিন: 8 টি ধাপ
11 স্টেপ রুবে গোল্ডবার্গ মেশিন: এই প্রজেক্টটি একটি 11 স্টেপ রুবে গোল্ডবার্গ মেশিন, যা একটি জটিল পদ্ধতিতে একটি সহজ কাজ তৈরি করার জন্য ডিজাইন করা হয়েছে। এই প্রকল্পের কাজ হল সাবানের বার ধরা
কিভাবে অটোটুন করবেন (বিনামূল্যে!): 4 টি ধাপ
কিভাবে অটোটুন করবেন (বিনামূল্যে!): গ্যারেজব্যান্ড ব্যবহার করে, আপনি যে অটোটুন এফেক্টটি এত বেশি শুনতে পান তা সহজেই তৈরি করতে শিখুন।