Sparta häälmuutja kiiver: 14 sammu (piltidega)
Sparta häälmuutja kiiver: 14 sammu (piltidega)
Anonim
Spartani häälmuutja kiiver
Spartani häälmuutja kiiver
Spartani häälmuutja kiiver
Spartani häälmuutja kiiver

Tere! Oleme neljast õpilasest koosnev meeskond Sorbonne'i ülikooli polütehnilisest koolist:

  • Louis Buchert
  • Bilal Melehi
  • Bao Tinh Piot
  • Marco Longépé

See projekt realiseerub osana meie uuringutest ja selle eesmärk on võtta käsile mitmeid tööriistu ja demonstreerida meie teoreetilisi saavutusi.

Kuulus objekt omandab kiivri, mis sarnaneb teatud videomängu kangelase omaga, kelle nimi kaotatakse. Ka disaini poolel on meil ekraan, mis kuvab kõlarist väljuva helisignaali Fourier 'teisenduse. Selle peakomplekti eesmärk on muuta operaatori häält reaalajas, kasutades mitmeid valikulisi efekte.

Hariduslikud eesmärgid:

  • Jäädvustage heli mikrofonist
  • Signaali võimendamine, filtreerimine ja digiteerimine
  • Mõistke signaali FFT
  • Kuva see FFT ekraanil
  • Signaali süntees
  • Võtke kõlarist heli välja
  • Tehke mõju heli helile (kaja, kaja jne …)

Nüüd, kui oleme tausta pannud ja projekti esitlenud, on aeg oma käed külge panna!

Samm: nõuded 1/3 - riistvara

Nõuded 1/3 - riistvara
Nõuded 1/3 - riistvara

Kiivri edukaks ehitamiseks vajame seadme käitamiseks riistvara.

  • DE0-Nano-SoC arendusnõukogu, Terasic + Adafruit TFT LCD-ekraan (Arduino)
  • Juurdepääs kiivri valmistamiseks 3D -printerile (kui olete üliõpilane, kolige oma ülikoolile lähemale, on mõnel laboril õpilastele juurdepääs)
  • Arvuti, millel on Interneti -ühendus ja minimaalne ühenduvus (USB, Ethernet). Samuti peab teie arvutil olema tugev protsessor, kuna programmide koostamine Qsysis võtab palju aega.
  • (Pole vajalik) Printer, mis valmistab trükkplaate (PCB) Gerberi failidest, et vähendada vooluahela suurust, + jootekolb, et komponendid PCB -le panna.
  • (Tugevalt soovitatav): Hea kohv, et nautida oma tööd meie juhendatavaga:)

2. etapp: nõuded 2/3 - teie vooluahela komponendid

Nõuded 2/3 - Teie vooluahela komponendid
Nõuded 2/3 - Teie vooluahela komponendid
Nõuded 2/3 - Teie vooluahela komponendid
Nõuded 2/3 - Teie vooluahela komponendid
Nõuded 2/3 - Teie vooluahela komponendid
Nõuded 2/3 - Teie vooluahela komponendid

Siin on teie vooluringi jaoks vajalikud komponendid:

  • Texas Instrument LM386 AB klassi helivõimendi
  • BreadBoard
  • Meeste-isaste ja isaste kaablite komplekt
  • LM358P digitaal-analoogmuundur (DAC)
  • Kõlar
  • Analoogiahelas kasutatav väike mikrofon
  • Mängukomplekt takistid vahemikus 1kOhm kuni 220kOhm
  • Kondensaator 1,5 nF
  • Kondensaator 50 nF
  • Kondensaator 100 nF
  • Kondensaator 100uF
  • Kondensaator 220uF
  • x4 kondensaatorid 10uF

3. samm: nõuded 3/3 - Tarkvara

Nõuded 3/3 - Tarkvara
Nõuded 3/3 - Tarkvara
Nõuded 3/3 - Tarkvara
Nõuded 3/3 - Tarkvara

Lõpuks vajate tarkvara:

  • Kvartar 15.1: lihtsustatud versioon
  • C -kompilaator (näiteks gcc)
  • Altium PCB disaini jaoks
  • Altera SoC sisseehitatud komplekt, et suhelda SoC kaardiga
  • Pahtel

4. samm: sisendahel

Sisendahel
Sisendahel
Sisendahel
Sisendahel
Sisendahel
Sisendahel
Sisendahel
Sisendahel

Ehitame vooluringi. Kasutage vooluringi ülaltoodud pilti, et see oma leivaplaadile kokku panna. Näete ka BreadBoardi pilti ja selle sees olevat vooluringi, et näha, kuidas tihvtid on ühendatud. Kogu vooluahel töötab 5 V alalisvooluga (DC). Selleks võite kasutada 5V akut koos USB-B muunduri või funktsioonigeneraatoriga.

Mõned meeldetuletused:

  • 5V toide ja maandus on ühendatud leivalaua eraldi horisontaaljoontega
  • Kui soovite ühendada 2 komponenti paralleelselt, pange need leivalaua ühisele reale
  • Kui soovite ühendada 2 jadakomponenti, peavad komponendid sisaldama ainult ühte tihvti leivaplaadi ühisel real.

Ärge kartke vaadata spetsiaalset leivalaua kasutamise õpetust ja selle külge vooluringi ehitada. Samuti ärge unustage hoolikalt lugeda LM358P helivõimendi tihvti asendit (vt ülaltoodud pilti)

Samm: väljundahel

Väljundahel
Väljundahel
Väljundahel
Väljundahel
Väljundahel
Väljundahel
Väljundahel
Väljundahel

Täpselt samad juhised, mis 4. sammus. Neli sisendit: SDI, mitte CS, SCK, mitte LDAC, pärinevad teie DE0-Nano-Soc plaadilt. Kuidas neid luua, näeme hiljem.

Ärge unustage hoolikalt lugeda LM386 helivõimendi tihvtide asukohti (vt ülaltoodud pilti)

6. samm: [VALIKULINE] Trükitud vooluringi Boradi ja jootekomponentide loomine

[VALIKULINE] Trükitud vooluringi ja jootekomponentide loomine
[VALIKULINE] Trükitud vooluringi ja jootekomponentide loomine
[VALIKULINE] Trükitud vooluringi ja jootekomponentide loomine
[VALIKULINE] Trükitud vooluringi ja jootekomponentide loomine
[VALIKULINE] Trükitud vooluringi ja jootekomponentide loomine
[VALIKULINE] Trükitud vooluringi ja jootekomponentide loomine

Kui teil on õnn omada trükkplaadiprinterit või saate seda kasutada, loome oma trükiplaadi (PCB). Pange tähele, et see samm on valikuline. See samm seisneb ainult ahela teisaldamises leivaplaadilt trükkplaadile.

Te vajate neid 2 GERBERi faili.

Need failid tehti Altiumis. Kasutage neid oma PCB printimiseks oma PCB printeritarkvaras. Kui olete oma PCB kätte saanud, veenduge, et teie PCB on puhas ja rajad on õigesti prinditud.

Nüüd tuleb tõeline asi: jootmine. Ülaltoodud 2 pilti on trükkplaadi vooluahela kaart. Igal komponendil on nimed (R6, C4, MK1 jne). Sammude 4 ja 5 pildid näitavad komponentide parameetreid (takistus, juhtivus..). Asetage iga komponent oma leivaplaadilt trükkplaadile vastavalt nende nimedele.

Kui olete jootekolviga kõik jootnud, katsetage voltmeetriga kõiki komponente, et kontrollida, kas neil on lühis.

Samm 7: SoC seadistamine

SoC seadistamine
SoC seadistamine
SoC seadistamine
SoC seadistamine

Seoses SoC seadistusega peate terminalis käivitama mõned SoC manustatud komplekti kuuluvad käsud ja skriptid. Selleks peate lisama mõned $ PATH. PATH -i kasutatakse terminalis käsu käivitamiseks faili otsimiseks kataloogidest, mis on määratud tee järgi. Selleks tippige järgmine käsurida:

eksport PATH =/cygdrive/c/altera_lite/15.1/quartus/sopc_builder/bin: $ PATH

Seejärel tippige sof -failist päiste genereerimiseks käsurida. Sof -faili saate, kui koostate oma projekti Quartus'is. Selleks tippige:./generate_header.

8. samm: C HPS programmeerimine

C HPS programmeerimine
C HPS programmeerimine

Peame selles osas aru saama 2 asja, nimelt lugege lugege ADC väärtust ja kirjutage see SPI -sse.

1. Lugege ADC väärtust

Selle mälu aadress, kuhu ADC on paigutatud, ei ole otseselt juurdepääsetav, tegelikult määrab kaardil olev Linuxi süsteem mälu abstraktsiooni. ADC -aadressile juurdepääsu saamiseks kasutame funktsiooni mmap.

"h2p_lw_spi_addr = virtual_base + ((allkirjastamata pikk) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (allkirjata pikk) (HW_REGS_MASK));"

See käsk võimaldab baasaadressi algusesse lisada nihke, et jõuda ADC -le eraldatud mälu aadressini, ja teostada saadud aadressil loogika JA maskeerimist arvesse võtta.

Pärast seda on programmi väärtuse määramiseks vaja ainult kursorit muuta.

2. Kirjutage SPI -sse ADC väärtus

Manipulatsioon on identne, seekord anname mmap -le nihke SPI määratud aadressile maandumiseks. SPI -sse kirjutades täpsustab tehniline dokumentatsioon, et peate kirjutama aadressile + 1 väärtuse adc.

"*(h2p_lw_spi_addr+1) = ((0x1 << 12) | *h2p_lw_adc_addr);"

See juhis võimaldab teil SPI -sse kirjutada. Tõepoolest, bit 4, seega 1 << 12, on bit, mis võimaldab SPI aktiveerida. Loogilise VÕI puhul anname seega SPI -le nii aktiveerimisbiti kui ka ADC väärtuse.

9. samm: ADC digitaalne omandamine kaardilt

ADC digitaalne omandamine kaardilt
ADC digitaalne omandamine kaardilt
ADC digitaalne omandamine kaardilt
ADC digitaalne omandamine kaardilt
ADC digitaalne omandamine kaardilt
ADC digitaalne omandamine kaardilt
ADC digitaalne omandamine kaardilt
ADC digitaalne omandamine kaardilt

Kõigepealt peate määrama oma arvuti Etherneti IP -aadressi juhtpaneeli kaudu -> Võrk -> Kaardi parmesaalid. Valige kaardi Ethernet -liides, atribuut, ipv4 -aadress ja sisestage fikseeritud IP, mask jne …

Seejärel ühendage kaart mikro -USB -kaabli abil pistikupesast. Avage programmeerija Quartus ja käivitage eksport. See manipuleerimine tehakse pärast iga kaardi väljalülitamist uuesti.

Vahetage mikro -USB -pistikukaabel, et seekord ühendada Etherneti pesa kõrval. Nüüd on Putty abil vaja ühendada kaardiga jadalingi kaudu. Konfiguratsioon on fotodel nähtav, idee on asendada COM5 COM -ga, millele järgneb number, mille leiate seadmehaldurist (selle avamiseks paremklõpsake Windowsi logol).

Vajutage sisestusklahvi, olete ühendatud.

Info projekti taaskäivitamiseks: - Parandage kaardile vastav Ethernet ip - Lülitage kaart sisse, iga kord, kui toite sisse lülitate, on vaja panna "programm" kaardile koostatud projekti kvartsi alla. Seda tehakse mikro -USB -pordi kaudu - Programmi tulemuste kuvamiseks kasutame rohkem mikro -USB -d, kuid UART -d. - Pahtliga, mis on konfigureeritud jadakomponendi COM5 jaoks (või 6 kella gestinnaire perifeeri) Ühendage kaardiga. - Seadistage parool (passwd) - Määrake IP -aadress ifconfig ethxx IPchoice (IP pole kaugel arvuti eetilisest omast) - Looge päis vastavalt Qsys -ile koos sisseehitatud terminaliga (ekspordi PATH) - tehke - scp l exec kaart - käivita pahtli all prog

10. samm: FFT arvutamine

FFT arvutamine
FFT arvutamine

Kiire Fourier 'teisenduse saamiseks meie C -programmis kasutame raamatukogu, mille on kirjutanud Mark Borgerding: Kiss FFT. Teeki saate alla laadida siit: https://kissfft.sourceforge.net/. FFT rakendamine signaalile on vajalik signaaliefektide muutmiseks ja rakendamiseks. Seda saab kasutada ka signaali spektri kuvamiseks.

C -programmi esimene samm on mälu eraldamine FFT tulemuse salvestamiseks. Mälu suurus sõltub FFT arvutamiseks kasutatud punktide arvust. Mida rohkem punkte on, seda täpsem on FFT. Programm töötab aga aeglasemalt ja kasutab rohkem mälu. Pange tähele, et funktsioonist kiss_fft saate kaks massiivi: funktsiooni sisendi ja väljundi (cx_in ja cx_out)

Kui meie massiiv on täidetud uute FFT väärtustega, st kui r = Win - 1, töötleme FFT. Ekraani osas kuvame ainult spektri positiivset osa, kuna negatiivse ja positiivse osa vahel on sümmeetria.

Horisontaaltelje osas vähendame tippväärtusi 100*kõrguse/(kõrgus²) võrra, et eristada peamisi sagedusi.

Kasutame usleep süsteemi kõnet, et määrata ADC väärtuste lugemissagedus. See sagedus on praegu seadistatud 1, 5 Hz.

11. samm: FFT kuvamine

FFT kuvamine
FFT kuvamine
FFT kuvamine
FFT kuvamine

Tuginedes näitele, mis on toodud Adafruit TFT LCD-ekraanil, mis on saadaval siin: https://www.terasic.com/downloads/cd-rom/de0-nano-s… oleme programmeerinud oma juhatuse NIOS-i, et ta saaks lugeda ADC väärtus.

Seega jagatakse ADC -registrit NIOS -i ja HPS -i vahel, kuna ADC -väärtusi kasutatakse FFT kuvamiseks NIOS -ekraanil ning samad väärtused kirjutatakse SPI -le, et need tahvlilt välja saata ja lõpuks teisendada DAC -i poolt analoogsignaali saamiseks.

12. samm: kokkupanek

Kokkupanek
Kokkupanek

Oleme peaaegu valmis! Peate kokku panema kõik projektori osad (sisenemisahel, väljundahel ja plaat). Veenduge, et ühendate osad vastavalt Quartuse projektile õigete tihvtidega.

  1. Sisendahel saadab mikrofoni poolt salvestatud helisignaali, võimendatuna, filtreerituna ja nihutades.
  2. Kaardil olev programm C loeb ADC väärtused, nagu me varem nägime, ja kirjutab need SPI -le, et saaksime kaardi GPIO väärtuse taastada.
  3. Seejärel edastab SPI väljund GPIO teabe, mille meie DAC dekodeerib ja võimendab kõlari juurde jõudmisega.

13. samm: heliefektid

Heliefektid
Heliefektid
Heliefektid
Heliefektid

Ainus samm on heliefektid.

Saadaval on järgmised efektid:

  • Kõrgsagedusfilter
  • Madala sagedusega filter

Tänu nupule saate efekte vahetada. See nupp muudab meie C -programmi muutujat, nii et see saab rakendada õiget efekti.

14. samm: [VALIKULINE] Kiivri valmistamine

[VALIKULINE] Kiivri valmistamine
[VALIKULINE] Kiivri valmistamine
[VALIKULINE] Kiivri valmistamine
[VALIKULINE] Kiivri valmistamine
[VALIKULINE] Kiivri valmistamine
[VALIKULINE] Kiivri valmistamine

Siin oleme projekti kõige käsitsi sammus:

  1. Kõigepealt liimisime kiivri erinevad 3D trükitud osad.
  2. Liimitükkide vaheliste lünkade täitmiseks lisasime 3D -pliiatsi abil viimistluse.
  3. Poleerisime pliiatsi ja kiivriga täidetud vaheseinu üldisemalt, et maal hiljem hästi püsiks.
  4. Värvisime kiivri kahe kihiga: esimene antratsiitmust, lähedalt ja teine primaarroheline kaugemalt, et anda tumedama rohelise tooni.
  5. Lõpuks printisime kiivri küljele oma kooli logo