جدول المحتويات:
- الخطوة 1: المواد المركبة Utilisés
- الخطوة الثانية: الهندسة المعمارية
- الخطوة 3: Partie Analogique
- الخطوة 4: الانطباع Des PCBs
- الخطوة 5: Partie Numérique
- الخطوة 6: لو كود
فيديو: اللحن التلقائي: 7 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
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 embqués).
نوتر بروجيت يتألف من émettre un son capter par un micro، émit par un haut parleur et afficher la FFT sur un écran PC. من الممكن تعديل الصوت إلى الحجم والصوت والصورة.
C'est parti pour les explications !!
الخطوة 1: المواد المركبة Utilisés
- كارت DEO-Nano-SoC
- خرج البطارية 2 à 5V2A
- مجهري
- أوت بارلور 8 أوم
- ريجولاتور: MAX660
- Capteur IR: GP2Y0E02A
- Ampli Audio: LM386N-1 / NOPB
- DAC: MCP4821-E / P.
- الصمام الثنائي: 1N4148
- ترانزيتور: LND150N3-G / N-FET
- 2 AOP: TL081C
- المقاومات
- المكثفات
- واي فاي: ESP8266EX
- 4 مفاتيح
- 3 المصابيح دي couleurs
الخطوة الثانية: الهندسة المعمارية
Voici ci-dessus notre schéma block 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 un signal numérique dont l'ADC est intégré dans la carte FPGA. تعديل إشارة المرور بشكل سلبي يؤدي إلى الاختيار على مستوى الكابتن بالقرب من المفاتيح والمفاتيح. Enfin ، تعديل الإشارات ، إعادة تحويل الإشارات الانتقائية في إشارة إلى تناظرية وسلسلة تنقل عبر الإنترنت.
الخطوة 3: Partie Analogique
Notre partie analogie est Composée de 2 Circles:
إن الدائرة الأولى التي يتم عرضها على الأطراف الجزئية ، ذات الجودة المتفرعة في CAN de la carte FPGA ، مؤلفة من تضخيم تضخيم الكسب وتثبيت إشارة المرور.
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 التوتر وتضخيم الصوت.
Le troisième schéma est celui du régulateur produisant du -5V pour alimenter tous les composants.
الخطوة 4: الانطباع Des PCBs
صيانة ، غير موجودة في الكلور.
A l'aide du logiciel Alitum، nous avons pu creer deux PCBs، c'est à dire la partie micro et haut parleur. مراسل موقع Voici au tutoriel Altium qui peut المؤكد vous aider!
الخطوة 5: Partie Numérique
Après تجنب طباعة ثنائي الفينيل متعدد الكلور ، vous pouvez enfin متفرعة من قائمة طعام انتقائية 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 modifie et on l'envoie vers le DAC en spi. D'un deuxième côté ، على حساب 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 لتركيبات مختلفة. عند استخدام بطاقة IP SPI للحصول على اتصال مع خدمة الاتصال اللاسلكي بالإنترنت عبر بروتوكول الإنترنت (IP UART) من أجل الاتصال بشبكة wifi انتقائية.
الخطوة 6: لو كود
Voici le lien où nous avons récuperé le code pour faire la fft.
عند استخدام رمز se 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 proofant du pcb du microin [j].r = Value-2000.0 ؛ // on retire l'offset de cette valeurfor (i = 0؛ i <2100؛ i ++) {} // حضور un temps bien précis pour تجنب une fréquence d’échantillonnage connue}
// Calcul de la FFT depuis in verskiss_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 ؛ إذا (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 ؛ لـ (z = 0؛ z <22000000؛ z ++) {} لـ (num = 0؛ num <(int) strlen (com_AT)؛ num ++) {* (h2p_lw_rs232_addr) = com_AT [num] ؛ }}
قم بتهيئة شبكة wifi حسب الطلب عند استخدام رمز le suivant:
send_wifi ("AT + RST / r / n") ؛ // requeste 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) ؛ // عند الحضور qu'elle se connectesend_wifi ("AT + CIPSTART = \" UDP / "، \" 192.168.43.110 / "، 32003 / r / n")؛ // On lui requeste 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:
إرسال باطل (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 ++) {}}}
كود 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 (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) ؛ } else printf ("")؛ } printf ("\ n")؛ } else {printf ("0Hz 2.5Hz 5Hz 7.5kHz 10kHz / n")؛ / * لـ (j = 0 ؛ j <(BUFSIZE / 2) ؛ j ++)
موصى به:
المغذي التلقائي: 3 خطوات
المغذي الأوتوماتيكي: ما هو مشروعنا؟ مشروعنا عبارة عن وحدة تغذية تلقائية للكلاب. إنها طريقة بسيطة لإطعام كلبك. على سبيل المثال ، عندما تسافر ولا تعرف أي شخص يمكنه إطعام كلبك لك. ستكون وحدة التغذية التلقائية مسؤولة
كيفية تعطيل التصحيح التلقائي لكلمة واحدة فقط (iOS): 3 خطوات
كيفية تعطيل التصحيح التلقائي لكلمة واحدة فقط (iOS): في بعض الأحيان قد يصحح التصحيح التلقائي شيئًا لا تريد تصحيحه ، على سبيل المثال. تبدأ اختصارات النص في جعل نفسها كلها أحرف استهلالية (تصحيح imo إلى IMO ، على سبيل المثال). وإليك كيفية إجبارها على التوقف عن تصحيح كلمة أو عبارة واحدة ، دون تعطيل aut
فرن إعادة التدفق التلقائي SMD من فرن محمصة رخيص: 8 خطوات (بالصور)
فرن إعادة التدفق التلقائي SMD من فرن محمصة رخيص: أصبح صنع ثنائي الفينيل متعدد الكلور من الهواة أكثر سهولة. من السهل لحام لوحات الدوائر التي تحتوي على مكونات من خلال الفتحات فقط ولكن حجم اللوحة محدود في النهاية بحجم المكون. على هذا النحو ، فإن استخدام مكونات تثبيت السطح ena
اللحن: 8 خطوات (بالصور)
اللحن: إلى جانب المزايا العديدة والحلول التكنولوجية التي تسمح بالعمل من المنزل ، تظل صعوبة صياغة وخلق دعم الحياة بين زملاء العمل. MELODY هو جهاز رقمي فيزيائي يتيح إنشاء مشروع تعاوني
صندوق اللحن: 4 خطوات (بالصور)
ميلودي بوكس: مرحبًا ، لقد صنعت صندوقًا به 3 أزرار مع كل لحن مختلف ، كل لحن له لون LED مختلف ويستمر عند عزف نغمة ، كلما ضغطت على & quot؛ forward & quot؛ زر اللحن يسير بشكل أسرع الأشياء التي تحتاجها: