Mundarija:
- 1 -qadam: Kompozitorlardan foydalanish
- 2 -qadam: Arxitektura
- 3 -qadam: Analogiya partiyasi
- 4 -qadam: PCB taassurotlari
- 5 -qadam: Partie Numérique
- 6 -qadam: Le Code
Video: Avtomatik sozlash: 7 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Avtoto'natish loyihasi yo'q
Notre équipe va vous présenter la réalisation de ce projet. Polytech Sorbonne va EISE4 (4 elektron anjomlar uchun elektron axborot tizimlari embarqués) ni yaratish.
Notre proje compute à émettre un son capter un micro, émit par un haut parleur va afficher la FFT sur un écran PC. Mumkin bo'lgan ovozni o'zgartirish va ovozni o'zgartirish mumkin.
Clicest part pour les explications !!
1 -qadam: Kompozitorlardan foydalanish
- Karta DEO-Nano-SoC
- Batareya 2 chiqishi 5V2A
- Mikro
- Haut Parleur 8 Ohm
- Tartibga soluvchi: MAX660
- Ijrochi kapitali: GP2Y0E02A
- Ampli audio: LM386N-1/NOPB
- DAC: MCP4821-E/P
- Diyot: 1N4148
- Transitor: LND150N3-G / N-FET
- 2 ta AOP: TL081C
- Qarshiliklar
- Kondensatorlar
- Wi -Fi: ESP8266EX
- 4 ta kalit
- 3 Led de couleurs
2 -qadam: Arxitektura
Voici ci-dessus notre schéma bloc représentant l'architecture de notre projet Autotune.
Quvvatni kuchaytirish, notre projet va pouvoir capter un son aà làide du micro dont le signal analoge capture sera converti en un signal numérique dont l'ADC est intégré dans la carte FPGA. O'zgartirishlar va signallarni o'zgartirish mumkin emas. Shunday qilib, signalni modifikatsiya qilish, signalni taqqoslash va transmise à travers le haut parleur.
3 -qadam: Analogiya partiyasi
Notre partie analogie by compesee 2 circuits:
Boshlang'ich elektron tarmoqqa ulangan bo'lsa, u holda FPGA CAN de la carte filiallari, shuningdek, signalni kuchaytirish va filtrni uzatish orqali signallarni uzatish mumkin.
O'chirib tashlanmagan bo'lsa, FPGA, DAC va boshqa bo'limlar, shuningdek, kuchlanish va boshqalarning ovozini kuchaytiradi.
-5V uchun kompozitsiyalarni yig'ib oling.
4 -qadam: PCB taassurotlari
Ta'kidlash joizki, tenglikni tenglashtirish uchun hech narsa kerak emas!
A'lo logicel Alitum, PCB -lar, kompyuterlar, kompyuterlar va boshqa mikrofonlar. Voici saytining muxbiri yoki o'qituvchisi Altium qui peut certainement vous aider!
5 -qadam: Partie Numérique
Bu tenglikni tenglashtirish kartalari, shuningdek, FPGA alakart kartochkalari orqali amalga oshiriladi!
Partial numérique, no code avone créer un code C qui est séparé en deux en utilisant un thread. Qachonki, signalni o'chirish va o'zgartirish haqida DAC en spi. Difi deuxième côté, wifi hisobini ochish uchun. Bosh sahifa partiya déviter les ralentissements.
Qsys et quartus dan foydalaning, kompozitsionlar HPS avec les différents. IP -spi -ni ishlatishdan keyin IP -UART -ga Wi -Fi orqali xabar yuboring.
6 -qadam: Le Code
Voici le lien où nous avons récuperé le code pour faire la fft.
Kodni ishlatganda, la fft hisoblagichi quyiladi:
// Konfiguratsiya va buferlarni ajratish s (t) va 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));
uchun (j = 0; j <NFFT; j ++) {Qiymat = *h2p_lw_adc_addr; // recupère la valeur provenant du pcb du microin [j].r = Qiymat-2000.0; // pensiya l'offset de cette valeurfor (i = 0; i <2100; i ++) {} // attend un temps bien précis pour avoir une fréquence d’échantillonnage connue}
// Hisob 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 ++) {// limiter la taille du buffer on limite la sortie de la fft à des valeurs 0 va 9 tmp_log = 20*(log (abs (tashqarida [t].r/1000.0)))*9;
tmp_log = tmp_log/50; agar (tmp_log <0) {tmp_log = 0; } agar (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); // Wi -Fi tarmog'ida
wifir yuborish funktsiyasi:
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]; }}
Kodni ishlatish uchun la carte Wi -Fi -ni boshlang:
send_wifi ("AT+RST / r / n"); // demande de reset a la cartesleep (3); // ishtirok etish resetsend_wifi ("AT+CWMODE = 3 / n / r"); // rejimni tanlash la cartesend_wifi ("AT+CWJAP = \" wifiNom / ", \" MotDePasse / "\ r / n"); // on lui demande de se connecter au wifisleep (15); // ishtirok etish uchun 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); // ishtirok la connexionsend_wifi ("AT+CIPMODE = 1 / r / n"); // on se met en rejimida envoie davom etmoqda (3); send_wifi ("AT+CIPSEND / r / n"); // uzatishni boshlash haqida
wifi yuborish funktsiyasi:
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]; uchun (z = 0; z <2500000; z ++) {}}}
Xizmat kodi:
affichage de la fft:
int i, j, Qiymat = 0; tizim ("aniq");
for (i = 0; i <41; i ++) {if (i <40) {for (j = 0; j <BUFSIZE; j ++) {if (table [j]*4> (40 - i)) {if (jadval [j]*4> 35) printf (RED "|" RESET); else if (jadval [j]*4> 28) printf (L_RED "|" RESET); else if (jadval [j]*4> 21) printf (YEL "|" RESET); else if (jadval [j]*4> 14) printf (L_YEL "|" RESET); else if (jadval [j]*4> 7) printf (L_GRN "|" RESET); else printf (GRN "|" RESET); } else printf (""); } printf ("\ n"); } boshqa {printf ("0Hz 2.5Hz 5Hz 7.5kHz 10kHz / n"); /*uchun (j = 0; j <(BUFSIZE/2); j ++)
Tavsiya:
DIY avtomatik sozlash Arduino ohmmetr: 3 qadam
DIY Autorange Arduino Ohmmetr: Bu arduino yordamida oddiy avtomatik o'lchash ohmmetridir. O'lchangan qarshilik 16 × 2 LCD displey yordamida ko'rsatiladi. Qurilma etarlicha aniq va minimal miqdordagi tashqi komponentlardan foydalanadi
Java (+-1s) yordamida DS3231 RTC (real vaqt soati) ni aniq, tez va avtomatik sozlash: 3 qadam
Java (+-1s) yordamida DS3231 RTC (real vaqt soati) ni aniq, tez va avtomatlashtirilgan tarzda sozlash: Bu ko'rsatma sizga Arduino va kichik Java dasturidan foydalangan holda DS3231 real vaqtda soatni qanday sozlash kerakligini ko'rsatib beradi. Arduino -ning ketma -ket ulanishi. Ushbu dasturning asosiy mantig'i: 1. Arduino ketma -ket so'rov yuboradi
Suv omborli WiFi avtomatik o'simlik oziqlantiruvchi - yopiq/ochiq havoda etishtirishni sozlash - suv o'simliklari avtomatik ravishda masofadan turib kuzatiladi: 21 qadam
Suv omborli WiFi avtomatik o'simliklarni oziqlantiruvchi - yopiq/ochiq havoda etishtirishni sozlash - suv o'simliklari avtomatik ravishda masofadan turib kuzatiladi: bu qo'llanmada biz o'simliklarni avtomatik ravishda sug'oradigan va Adosia platformasi yordamida masofadan turib kuzatiladigan maxsus yopiq/ochiq o'simliklarni oziqlantirish tizimini qanday o'rnatishni ko'rsatamiz
John Deere avtomatik boshqarishni qanday sozlash kerak: 5 qadam (rasmlar bilan)
John Deere Auto-Steer-ni qanday sozlash kerak: John Deere yonilg'i tejash, vaqtni tejash, asbob-uskunalarning eskirishini tejash, xarajatlarni tejash va fermer xo'jaliklarining samaradorligini ta'minlash uchun ishlatilishi mumkin bo'lgan texnologiya tizimini yaratdi. Bu video odamlarga ushbu texnologiyani traktorga qanday o'rnatishni o'rgatadi va
Yon yoritgichli avtomatik oynani qanday sozlash kerak: 8 qadam (rasmlar bilan)
Yon yoritgichli avtomatik oynani qanday yaratish kerak: bu mening birinchi ko'rsatmam va bundan faxrlanaman! Men bu saytda juda ko'p vaqt o'tkazdim, men ham ajoyib loyihani taqdim etish adolatli bo'lardi deb o'yladim. yaxshilashga imkon beradigan qismlar