Cuprins:
- Pasul 1: Cerințe 1/3 - Hardware
- Pasul 2: Cerințe 2/3 - Componente pentru circuitul dvs
- Pasul 3: Cerințe 3/3 - Software
- Pasul 4: Circuit de intrare
- Pasul 5: Circuit de ieșire
- Pasul 6: [OPȚIONAL] Crearea circuitelor tipărite Borad și componente de lipit
- Pasul 7: Configurare SoC
- Pasul 8: Programarea C HPS
- Pasul 9: Achiziționarea digitală a ADC de pe card
- Pasul 10: Calcul FFT
- Pasul 11: Afișarea FFT
- Pasul 12: Asamblare
- Pasul 13: Efecte sonore
- Pasul 14: [OPȚIONAL] Realizarea coifului
Video: Cască Spartan Voice Changer: 14 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Buna! Suntem o echipă de 4 studenți de la școala politehnică a Universității Sorbona:
- Louis Buchert
- Bilal Melehi
- Bao Tinh Piot
- Marco Longépé
Acest proiect este realizat ca parte a studiilor noastre și își propune să ia în mână o serie de instrumente, precum și să demonstreze realizările noastre teoretice.
Celebrul obiect capătă aspectul unei căști asemănătoare cu cea a eroului unui anumit joc video al cărui nume se va pierde. Pentru partea de proiectare avem și un ecran care afișează transformata Fourier a semnalului audio care iese din difuzor. Scopul acestei căști este de a schimba vocea operatorului în timp real folosind o serie de efecte selectabile.
Obiective educaționale:
- Captează sunetul de la un microfon
- Amplificați, filtrați, digitalizați semnalul
- Realizați FFT-ul unui semnal
- Afișați acest FFT pe un ecran
- Sinteza semnalului
- Scoateți un sunet dintr-un difuzor
- Realizați efecte asupra sunetului audio (reverberație, ecou etc …)
Acum că am pus fundalul și am prezentat proiectul, este timpul să punem mâna pe el!
Pasul 1: Cerințe 1/3 - Hardware
Pentru a vă construi casca cu succes, vom avea nevoie de hardware pentru a rula dispozitivul.
- Placă de dezvoltare DE0-Nano-SoC de Terasic + ecran LCD TFT Adafruit (Arduino)
- Acces la o imprimantă 3D pentru a face casca (Dacă sunteți un student universitar să vă apropiați de universitate, unii au laboratoare accesibile studenților)
- Un computer cu conexiune la internet și un minim de conectivitate (USB, Ethernet). De asemenea, computerul dvs. trebuie să aibă un procesor puternic, deoarece compilarea programelor pe Qsys necesită mult timp.
- (Nu este necesar) O imprimantă care realizează plăci de circuite imprimate (PCB) din fișiere Gerber pentru a micșora dimensiunea circuitului + un fier de lipit pentru a pune componentele pe PCB.
- (Recomandat puternic): O cafea bună pentru a vă bucura de munca dvs. cu instructabilul nostru:)
Pasul 2: Cerințe 2/3 - Componente pentru circuitul dvs
Iată componentele necesare circuitului dvs.:
- Amplificator audio Texas Instrument LM386 clasa AB
- BreadBoard
- Set de cabluri Tată-Tată, Tată-Tată
- LM358P Convertor digital-la-Analoh (DAC)
- Speaker
- Microfon mic utilizat în circuit analogic
- Un set de rezistențe de la 1kOhm la 220kOhm
- Condensator 1.5nF
- Condensator 50nF
- Condensator 100nF
- Condensator 100uF
- Condensator 220uF
- x4 Condensatoare 10uF
Pasul 3: Cerințe 3/3 - Software
Nu în ultimul rând, veți avea nevoie de software:
- Quartus 15.1: versiunea Lite
- Un compilator C (gcc de exemplu)
- Altium pentru proiectarea PCB
-
Suita încorporată SoC de la Altera pentru a comunica cu harta SoC
- Chit
Pasul 4: Circuit de intrare
Să construim circuitul. Utilizați imaginea de mai sus a circuitului pentru a o asambla pe panoul dvs. Veți vedea, de asemenea, imaginea BreadBoard și circuitul din interior pentru a vedea cum sunt conectați pinii. Întregul circuit este alimentat cu un curent continuu (DC) de 5V. Pentru aceasta, puteți utiliza o baterie de 5V cu un convertor USB-B sau un generator de funcții.
Câteva reamintiri:
- Sursa de alimentare de 5V și pământul sunt conectate pe linii orizontale separate ale panoului
- Dacă doriți să conectați 2 componente în paralel, puneți-le într-o linie comună a panoului
- Dacă doriți să conectați 2 componente seriale, componentele trebuie să aibă un singur pin într-o linie comună a panoului.
Nu ezitați să urmăriți un tutorial dedicat despre cum să utilizați o placă de calcul și să creați un circuit pe ea. De asemenea, nu uitați să citiți cu atenție poziția pinului amplificatorului audio LM358P (a se vedea imaginea de mai sus)
Pasul 5: Circuit de ieșire
Aproape aceleași instrucțiuni ca la Pasul 4. Cele patru intrări: SDI, nu CS, SCK, nu LDAC provin de la placa dvs. DE0-Nano-Soc. Vom vedea mai târziu cum să le generăm.
Nu uitați să citiți cu atenție pozițiile pinului amplificatorului audio LM386 (a se vedea imaginea de mai sus)
Pasul 6: [OPȚIONAL] Crearea circuitelor tipărite Borad și componente de lipit
Dacă aveți norocul să dețineți o imprimantă pentru circuite sau puteți să o utilizați, vom crea propria noastră placă de circuite imprimate (PCB). Rețineți că acest pas este opțional. Acest pas constă doar pentru a vă deplasa circuitul de la o placă de calcul la un PCB.
Veți avea nevoie de aceste 2 fișiere GERBER.
Aceste fișiere au fost făcute pe Altium. Folosiți-le pe software-ul imprimantei PCB pentru a imprima PCB-ul. Odată ce ați obținut PCB-ul, asigurați-vă că PCB-ul este curat și că piesele sunt imprimate corect.
Acum vine adevărata afacere: lipirea. Cele 2 imagini de mai sus sunt harta circuitului de pe PCB. Fiecare componentă are nume (R6, C4, MK1 etc.). Imaginile din Pasul 4 și 5 prezintă parametrii componentelor (Rezistență, conductanță..). Așezați fiecare componentă de pe placa dvs. de calcul pe PCB în funcție de numele lor.
După ce ați lipit totul cu lipitorul, testați toate componentele cu un voltmetru pentru a verifica dacă există scurtcircuit.
Pasul 7: Configurare SoC
În ceea ce privește configurarea SoC, va trebui să rulați câteva comenzi și scripturi incluse în suita încorporată SoC într-un terminal. Pentru a face acest lucru, va trebui să adăugați niște $ PATH. PATH sunt folosite într-un terminal pentru a spune căutarea unui fișier în directoarele date de cale atunci când executați o comandă. Pentru aceasta, tastați următoarea linie de comandă:
export PATH = / cygdrive / c / altera_lite / 15.1 / quartus / sopc_builder / bin: $ PATH
Apoi tastați linia de comandă pentru a genera anteturi dintr-un fișier sof. Obțineți fișierul sof prin compilarea proiectului dvs. pe Quartus. Pentru aceasta, tastați:./generate_header.
Pasul 8: Programarea C HPS
Trebuie să realizăm 2 lucruri în această parte, și anume citiți citiți valoarea ADC și scrieți-o în SPI.
1. Citiți valoarea ADC
Adresa memoriei în care este conținut ADC nu este direct accesibilă, de fapt sistemul Linux prezent pe card configurează o abstractizare a memoriei. Pentru a accesa cu adevărat adresa ADC vom folosi funcția mmap.
"h2p_lw_spi_addr = virtual_base + ((nesemnat lung) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (nesemnat lung) (HW_REGS_MASK));"
Această instrucțiune permite adăugarea unui offset la începutul adresei de bază pentru a ajunge la adresa memoriei alocate pentru ADC și pentru a efectua pe adresa rezultată o logică ȘI pentru a ține cont de mascare.
După aceea, va fi necesar doar să derecați indicatorul din program pentru a obține valoarea acestuia.
2. Scrieți valoarea ADC în SPI
Manipularea este identică, de data aceasta acordăm offset-ului mmap pentru a ateriza pe adresa alocată de SPI. În timp ce scrieți în SPI, documentația tehnică specifică faptul că trebuie să scrieți la adresa + 1 valoarea adc.
"* (h2p_lw_spi_addr + 1) = ((0x1 << 12) | * h2p_lw_adc_addr);"
Această instrucțiune vă permite să scrieți în SPI. Într-adevăr bitul 4, deci 1 << 12, este bitul care permite activarea SPI. Prin urmare, cu un OR logic, dăm atât bitul de activare, cât și valoarea ADC către SPI.
Pasul 9: Achiziționarea digitală a ADC de pe card
În primul rând, va trebui să setați adresa IP Ethernet a computerului dvs. prin Panoul de control -> Rețea -> Card Parmesals. Selectați interfața Ethernet a cardului, proprietății, adresa ipv4 și introduceți un IP fix, o mască etc …
Apoi, conectați cardul din partea mufei de alimentare cu cablul micro USB. Deschideți programatorul Quartus și lansați exportul. Această manipulare va fi refăcută după fiecare oprire a cardului.
Schimbați cablul de conectare micro USB pentru a vă conecta de data aceasta lângă mufa Ethernet. Acum, cu Putty va fi necesar să vă conectați la card prin link serial. Configurația este vizibilă în fotografii, ideea fiind înlocuirea COM5 cu COM urmată de numărul pe care îl puteți găsi în managerul de dispozitive (faceți clic dreapta pe sigla Windows pentru ao deschide).
Apăsați Enter, sunteți conectat.
Informații pentru a reporni proiectul: - Reparați ethernet ip corespunzător cardului - Porniți cardul, de fiecare dată când porniți alimentarea, este necesar să puneți cu „program” sub quartus proiectul compilat în card. Acest lucru se face prin portul micro-USB - Pentru a putea afișa rezultatul programului folosim mai multe micro USB dar UART - Cu chit configurat pentru serial COM5 (sau 6 ceasuri gestinnaire perif) Conectați-vă la card. - Setați o parolă (passwd) - Setați adresa IP ifconfig ethxx IPchoice (IP nu departe de cea pentru ethul computerului) - Generați antetul conform Qsys cu terminalul încorporat (export PATH) - faceți - scp l exec în harta - executa sub chit prog
Pasul 10: Calcul FFT
Pentru a obține Transformarea Fourier rapidă în programul nostru C, vom folosi o bibliotecă scrisă de Mark Borgerding: Kiss FFT. Puteți descărca biblioteca de aici: https://kissfft.sourceforge.net/. Aplicarea unui FFT pe un semnal este necesară pentru a modifica și aplica efectele semnalului. Poate servi și pentru afișarea spectrului unui semnal.
Primul pas din programul dvs. C constă în alocarea memoriei pentru a stoca rezultatul FFT. Dimensiunea memoriei depinde de numărul de puncte utilizate pentru calcularea FFT. Cu cât aveți mai multe puncte, cu atât FFT va avea mai multe detalii. Cu toate acestea, programul va rula mai lent și va folosi mai multă memorie. Rețineți că veți obține două matrice din funcția kiss_fft: intrarea și ieșirea funcției (cx_in și cx_out)
Odată ce matricea noastră este umplută cu noi valori FFT, adică când r = Win - 1, procesăm FFT. În ceea ce privește afișajul, afișăm doar partea pozitivă a spectrului, deoarece există o simetrie între partea negativă și partea pozitivă.
În ceea ce privește axa orizontală, reducem valorile de vârf cu 100 * înălțime / (înălțime²) pentru a distinge vârfurile frecvențelor principale.
Folosim folosirea apelului de sistem usleep pentru a defini o frecvență de citire pentru valorile ADC. Această frecvență este setată în prezent la 1, 5 Hz.
Pasul 11: Afișarea FFT
Pe baza unui exemplu oferit pe ecranul TFT LCD Adafruit disponibil aici: https://www.terasic.com/downloads/cd-rom/de0-nano-s… am programat NIOS-ul consiliului nostru de administrație, astfel încât acesta să poată citi valoarea ADC.
Deci, registrul ADC este partajat între NIOS și HPS, deoarece valorile ADC vor fi utilizate pentru a afișa FFT pe ecranul NIOS, iar aceleași valori vor fi scrise pe SPI pentru a fi scoase din placă și în cele din urmă convertite de către DAC pentru a obține un semnal analogic.
Pasul 12: Asamblare
Aproape am terminat! Va trebui să asamblați fiecare parte a proiectului (circuit de intrare, circuit de ieșire și placă). Asigurați-vă că conectați piesele pentru a corecta pinii conform proiectului Quartus.
- Circuitul de intrare va trimite semnalul audio captat de microfon, amplificat, filtrat și offset.
- Programul C prezent pe card va citi valorile ADC așa cum am văzut anterior și îl va scrie pe SPI, astfel încât să putem recupera valoarea pe GPIO a cardului.
- Apoi, ieșirea GPIO a SPI va transmite informațiile care vor fi decodificate de DAC-ul nostru și amplificate prin rularea pentru a ajunge la difuzor.
Pasul 13: Efecte sonore
Singurul pas rămas sunt efectele sonore.
Efectele disponibile sunt:
- Filtru de înaltă frecvență
- Filtru de joasă frecvență
- …
Puteți comuta între efecte datorită unui buton. Acest buton va schimba o variabilă în programul nostru C, astfel încât să poată aplica efectul potrivit.
Pasul 14: [OPȚIONAL] Realizarea coifului
Iată-ne în cea mai manuală etapă a proiectului:
- Mai întâi am lipit diferitele părți imprimate 3D ale căștii.
- Pentru a umple golurile dintre piesele lipite am adăugat un finisaj folosind un stilou 3D.
- Am lustruit interstițiile umplute cu stiloul și casca mai general, astfel încât pictura să țină bine după aceea.
- Am vopsit casca cu 2 straturi: primul în negru antracit, de aproape și un al doilea de verde primar de la mai departe pentru a da nuanțe de verde mai închis.
- În cele din urmă, am imprimat sigla școlii noastre pe partea laterală a Căștii
Recomandat:
Casca de siguranță Covid Partea 1: o introducere în circuitele Tinkercad !: 20 de pași (cu imagini)
Casca de siguranță Covid Partea 1: o introducere în circuitele Tinkercad !: Bună, prietene! În această serie din două părți, vom învăța cum să folosim circuitele Tinkercad - un instrument distractiv, puternic și educațional pentru a afla cum funcționează circuitele! Una dintre cele mai bune modalități de a învăța este să faci. Deci, mai întâi vom proiecta propriul nostru proiect: th
Cască discotecă imprimabilă 3D: 11 pași (cu imagini)
Cască de disc 3D imprimabilă !: Inspirată de clasica cască Daft Punk „Thomas”. Iluminează camera și fii invidia tuturor prietenilor tăi cu această uimitoare cască disco alimentată de Arduino! Veți avea nevoie de acces la o imprimantă 3D și un fier de lipit pentru a finaliza acest proiect. Dacă doriți să
CASCĂ VR VR PENTRU 80 USD: 10 pași (cu imagini)
CASCĂ VR VR PENTRU 80 USD: Scopul meu inițial era să fac acest lucru cu mai puțin de 150 USD (USD), cu toate acestea, după ce am făcut cumpărături și am schimbat unele piese pentru alternative, am reușit să reduc acest lucru la aproximativ 80 USD. Deci, haideți să începem. Piesele necesare sunt: Comutator Flick 2x LED1x resisto
Voice Changer Hack pentru DIY Synths: 9 pași (cu imagini)
Voice Changer Hack pentru DIY Synths: Pentru cei care au urmărit ultimele mele „ibles” - veți ști că am construit câteva 555 de sintetizatoare cu temporizator în ultima vreme. Recent, în timpul unei călătorii la depozitul meu local de reciclare, am găsit un schimbător de voce pentru copii. Este genul în care vorbești într-un microfon
TECHNO VIKING! Coarne LED pe o cască spațială Viking: Indicator de volum + Cască Viking Transucent: 6 pași
TECHNO VIKING! Claxoane LED pe o cască spațială Viking: Indicator de volum + Cască Viking Transucent: Da! Aceasta este o cască pentru Space Vikings. *** Actualizare, aceasta ar trebui redenumită Casca Techno Viking *** Dar este octombrie 2010 și tocmai am aflat despre Techno Viking doar astăzi. Bine în spatele curbei meme. Whateva 'Iată-l cu o producție mai mare