Cuprins:

Cască Spartan Voice Changer: 14 pași (cu imagini)
Cască Spartan Voice Changer: 14 pași (cu imagini)

Video: Cască Spartan Voice Changer: 14 pași (cu imagini)

Video: Cască Spartan Voice Changer: 14 pași (cu imagini)
Video: Andreea Bostanică dezbrăcată pe scenă (dovada) 2024, Noiembrie
Anonim
Cască Spartan Voice Changer
Cască Spartan Voice Changer
Cască Spartan Voice Changer
Cască Spartan Voice Changer

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

Cerințe 1/3 - Hardware
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

Cerințe 2/3 - Componente pentru circuitul dvs
Cerințe 2/3 - Componente pentru circuitul dvs
Cerințe 2/3 - Componente pentru circuitul dvs
Cerințe 2/3 - Componente pentru circuitul dvs
Cerințe 2/3 - Componente pentru circuitul dvs
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

Cerințe 3/3 - Software
Cerințe 3/3 - Software
Cerințe 3/3 - Software
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

Circuit de intrare
Circuit de intrare
Circuit de intrare
Circuit de intrare
Circuit de intrare
Circuit de intrare
Circuit de intrare
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

Circuit de ieșire
Circuit de ieșire
Circuit de ieșire
Circuit de ieșire
Circuit de ieșire
Circuit de ieșire
Circuit de ieșire
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

[OPȚIONAL] Crearea circuitelor tipărite Borad și componente de lipit
[OPȚIONAL] Crearea circuitelor tipărite Borad și componente de lipit
[OPȚIONAL] Crearea de circuite imprimate Borad și componente de lipit
[OPȚIONAL] Crearea de circuite imprimate Borad și componente de lipit
[OPȚIONAL] Crearea circuitelor tipărite Borad și componente de lipit
[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

Configurare SoC
Configurare SoC
Configurare SoC
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

Programarea C HPS
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

Achiziționarea digitală a ADC de pe card
Achiziționarea digitală a ADC de pe card
Achiziționarea digitală a ADC de pe card
Achiziționarea digitală a ADC de pe card
Achiziționarea digitală a ADC de pe card
Achiziționarea digitală a ADC de pe card
Achiziționarea digitală a ADC de pe card
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

Calcul FFT
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

Afișarea FFT
Afișarea FFT
Afișarea FFT
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

Asamblare
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.

  1. Circuitul de intrare va trimite semnalul audio captat de microfon, amplificat, filtrat și offset.
  2. 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.
  3. 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

Efecte sonore
Efecte sonore
Efecte sonore
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

[OPȚIONAL] Realizarea coifului
[OPȚIONAL] Realizarea coifului
[OPȚIONAL] Realizarea coifului
[OPȚIONAL] Realizarea coifului
[OPȚIONAL] Realizarea coifului
[OPȚIONAL] Realizarea coifului

Iată-ne în cea mai manuală etapă a proiectului:

  1. Mai întâi am lipit diferitele părți imprimate 3D ale căștii.
  2. Pentru a umple golurile dintre piesele lipite am adăugat un finisaj folosind un stilou 3D.
  3. Am lustruit interstițiile umplute cu stiloul și casca mai general, astfel încât pictura să țină bine după aceea.
  4. 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.
  5. În cele din urmă, am imprimat sigla școlii noastre pe partea laterală a Căștii

Recomandat: