Kazalo:

Čelada Spartan Voice Changer: 14 korakov (s slikami)
Čelada Spartan Voice Changer: 14 korakov (s slikami)

Video: Čelada Spartan Voice Changer: 14 korakov (s slikami)

Video: Čelada Spartan Voice Changer: 14 korakov (s slikami)
Video: She Gets A SURPRISE! 😱 2024, Julij
Anonim
Čelada Spartan Voice Changer
Čelada Spartan Voice Changer
Čelada Spartan Voice Changer
Čelada Spartan Voice Changer

Zdravo! Smo ekipa štirih študentov Politehnične šole Univerze Sorbonne:

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

Ta projekt je realiziran kot del našega študija in ima za cilj prevzeti številna orodja ter prikazati naše teoretske dosežke.

Slavni predmet dobi videz čelade, ki spominja na junaka določene video igre, katere ime bo izgubljeno. Za oblikovalsko stran imamo tudi zaslon, ki prikazuje Fourierjevo transformacijo zvočnega signala, ki prihaja iz zvočnika. Namen teh slušalk je spremeniti glas operaterja v realnem času z uporabo številnih izbirnih učinkov.

Izobraževalni cilji:

  • Ujemite zvok iz mikrofona
  • Ojačajte, filtrirajte, digitalizirajte signal
  • Uresničite FFT signala
  • Pokažite ta FFT na zaslonu
  • Sinteza signalov
  • Iz zvočnika vzemite zvok
  • Uresničite učinke na zvok zvoka (odmev, odmev itd.)

Zdaj, ko smo dali ozadje in predstavili projekt, je čas, da ga dobite v roke!

1. korak: Zahteve 1/3 - Strojna oprema

Zahteve 1/3 - Strojna oprema
Zahteve 1/3 - Strojna oprema

Za uspešno izdelavo čelade potrebujemo nekaj strojne opreme za zagon naprave.

  • DE0-Nano-SoC razvojna plošča Terasic + Adafruit TFT LCD zaslon (Arduino)
  • Dostop do 3D tiskalnika za izdelavo čelade (če ste študent, ki se približa vaši univerzi, imajo nekateri laboratorije dostopne študentom)
  • Računalnik z internetno povezavo in minimalno povezljivostjo (USB, Ethernet). Tudi vaš računalnik mora imeti močan procesor, saj sestavljanje programov na Qsys traja veliko časa.
  • (Ni potrebno) Tiskalnik, ki izdeluje tiskana vezja (PCB) iz datotek Gerber za zmanjšanje velikosti vezja + spajkalnik za namestitev komponent na tiskano vezje.
  • (Močno priporočljivo): Dobra kava za uživanje v vašem delu z našim Instructable:)

2. korak: Zahteve 2/3 - Komponente za vaše vezje

Zahteve 2/3 - Komponente za vaše vezje
Zahteve 2/3 - Komponente za vaše vezje
Zahteve 2/3 - Komponente za vaše vezje
Zahteve 2/3 - Komponente za vaše vezje
Zahteve 2/3 - Komponente za vaše vezje
Zahteve 2/3 - Komponente za vaše vezje

Tu so komponente, potrebne za vaše vezje:

  • Zvočni ojačevalnik razreda Texas Instrument LM386 AB
  • BreadBoard
  • Komplet moško-moški, moško-ženski kabli
  • LM358P digitalno-analogni pretvornik (DAC)
  • Zvočnik
  • Majhen mikrofon, ki se uporablja v analognem vezju
  • Igralni upori od 1 kOhm do 220 kOhm
  • Kondenzator 1,5 nF
  • Kondenzator 50nF
  • Kondenzator 100nF
  • Kondenzator 100uF
  • Kondenzator 220uF
  • x4 Kondenzatorji 10uF

3. korak: Zahteve 3/3 - Programska oprema

Zahteve 3/3 - Programska oprema
Zahteve 3/3 - Programska oprema
Zahteve 3/3 - Programska oprema
Zahteve 3/3 - Programska oprema

Nenazadnje boste potrebovali programsko opremo:

  • Quartus 15.1: Lite različica
  • Prevajalnik C (na primer gcc)
  • Altium za načrtovanje PCB
  • Alterin vgrajen paket SoC za komunikacijo z zemljevidom SoC

  • Kiti

4. korak: Vhodno vezje

Vhodno vezje
Vhodno vezje
Vhodno vezje
Vhodno vezje
Vhodno vezje
Vhodno vezje
Vhodno vezje
Vhodno vezje

Zgradimo vezje. Uporabite zgornjo sliko vezja, da jo sestavite na vašo mizo. Videli boste tudi sliko plošče BreadBoard in vezje v njej, da vidite, kako so priključeni zatiči. Celotno vezje se napaja s 5V enosmernim tokom (DC). V ta namen lahko uporabite 5V baterijo s pretvornikom USB-B ali generatorjem funkcij.

Nekaj opomnikov:

  • Napajanje 5V in ozemljitev sta povezana na ločenih vodoravnih linijah plošče
  • Če želite dve komponenti povezati vzporedno, ju postavite v skupno vrstico plošče
  • Če želite povezati 2 serijski komponenti, morajo sestavni deli samo en pin v skupni vrstici plošče.

Ne oklevajte in si oglejte namensko vadnico o tem, kako uporabljati ploščico in nanjo utrditi vezje. Prav tako ne pozabite pozorno prebrati položaja zatiča avdio ojačevalnika LM358P (glejte sliko zgoraj)

5. korak: Izhodno vezje

Izhodno vezje
Izhodno vezje
Izhodno vezje
Izhodno vezje
Izhodno vezje
Izhodno vezje
Izhodno vezje
Izhodno vezje

Čisto enaka navodila kot korak 4. Štirje vhodi: SDI, ne CS, SCK, ne LDAC, so iz vaše plošče DE0-Nano-Soc. Kasneje bomo videli, kako jih ustvariti.

Ne pozabite pozorno prebrati položaja zatičev avdio ojačevalnika LM386 (glejte sliko zgoraj)

6. korak: [NEOBVEZNO] Ustvarjanje tiskanega vezja in komponent za spajkanje

[NEOBVEZNO] Ustvarjanje tiskanega vezja in komponent za spajkanje
[NEOBVEZNO] Ustvarjanje tiskanega vezja in komponent za spajkanje
[NEOBVEZNO] Ustvarjanje tiskanega vezja in komponent za spajkanje
[NEOBVEZNO] Ustvarjanje tiskanega vezja in komponent za spajkanje
[NEOBVEZNO] Ustvarjanje tiskanega vezja in komponent za spajkanje
[NEOBVEZNO] Ustvarjanje tiskanega vezja in komponent za spajkanje

Če imate srečo, da imate tiskalnik na vezju ali ga lahko uporabljate, bomo ustvarili lastno tiskano vezje (PCB). Upoštevajte, da ta korak ni obvezen. Ta korak je sestavljen samo iz premikanja vezja z matične plošče na tiskano vezje.

Potrebovali boste ti dve datoteki GERBER.

Te datoteke so bile narejene na Altiumu. Za tiskanje tiskanega vezja jih uporabite v programski opremi tiskalnika PCB. Ko dobite tiskano vezje, se prepričajte, da je tiskano vezje čisto in da so skladbe pravilno natisnjene.

Zdaj prihaja prava stvar: spajkanje. Zgornji 2 sliki je zemljevid vezja na tiskanem vezju. Vsaka komponenta ima imena (R6, C4, MK1 itd.). Slike v korakih 4 in 5 prikazujejo parametre komponent (upor, prevodnost..). Vsako komponento z matične plošče postavite na tiskano vezje v skladu z njihovimi imeni.

Ko vse spajkate s spajkalnikom, vse komponente preizkusite z voltmetrom, da preverite, ali obstaja kratek stik.

7. korak: Nastavitev SoC

Nastavitev SoC
Nastavitev SoC
Nastavitev SoC
Nastavitev SoC

Kar zadeva nastavitev SoC, boste morali v terminalu zagnati nekaj ukazov in skriptov, vključenih v vdelan paket SoC. Če želite to narediti, morate dodati nekaj $ PATH. PATH se v terminalu uporablja za iskanje datoteke v imenikih, ki jih poda pot, ko izvajate ukaz. Če želite to narediti, vnesite naslednjo ukazno vrstico:

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

Nato vnesite ukazno vrstico, da ustvarite glave iz datoteke sof. Datoteko sof dobite tako, da svoj projekt sestavite v Quartusu. Če želite to narediti, vnesite:./generate_header.

8. korak: Programiranje C HPS

Programiranje C HPS
Programiranje C HPS

V tem delu se moramo zavedati 2 stvari, in sicer prebrati, prebrati vrednost ADC -ja in jo zapisati v SPI.

1. Preberite vrednost ADC -ja

Naslov pomnilnika, v katerem je ADC, ni neposredno dostopen, pravzaprav sistem Linux, ki je prisoten na kartici, določa abstrakcijo pomnilnika. Za resni dostop do naslova ADC bomo uporabili funkcijo mmap.

"h2p_lw_spi_addr = virtual_base + ((brez podpisa dolgo) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (brez podpisa dolgo) (HW_REGS_MASK));"

To navodilo omogoča, da se na začetku osnovnega naslova doda odmik, da doseže naslov pomnilnika, dodeljenega ADC -ju, in na nastalem naslovu izvede logiko IN, da se upošteva maskiranje.

Po tem boste morali le razmakniti kazalec v programu, da dobite njegovo vrednost.

2. Vnesite vrednost ADC v SPI

Manipulacija je enaka, tokrat podajamo odmik mmap na naslov, ki ga dodeli SPI. Med pisanjem v SPI tehnična dokumentacija določa, da morate na naslov + 1 zapisati vrednost adc.

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

To navodilo vam omogoča pisanje v SPI. Dejansko je bit 4, torej 1 << 12, bit, ki omogoča aktiviranje SPI. Z logičnim OR torej podamo tako aktivacijski bit kot vrednost ADC -ja SPI.

9. korak: Digitalni prevzem ADC -ja s kartice

Digitalni prevzem ADC -ja s kartice
Digitalni prevzem ADC -ja s kartice
Digitalni prevzem ADC -ja s kartice
Digitalni prevzem ADC -ja s kartice
Digitalni prevzem ADC -ja s kartice
Digitalni prevzem ADC -ja s kartice
Digitalni prevzem ADC -ja s kartice
Digitalni prevzem ADC -ja s kartice

Najprej boste morali na nadzorni plošči -> Omrežje -> Parmesals Card -nastaviti e -poštni naslov IP vašega računalnika. Izberite ethernetni vmesnik kartice, lastnosti, naslova ipv4 in vnesite fiksni IP, masko itd.

Nato priključite kartico s strani priključka za napajanje s kablom mikro USB. Odprite programer Quartus in zaženite izvoz. Ta manipulacija se ponovi po vsakem izklopu kartice.

Zamenjajte vtični kabel mikro USB, da se tokrat povežete z vtičnico Ethernet. Zdaj se bo s Puttyjem treba povezati s kartico po serijski povezavi. Konfiguracija je vidna na fotografijah, ideja pa je, da zamenjate COM5 s COM, čemur sledi številka, ki jo najdete v upravitelju naprav (z desno miškino tipko kliknite logotip Windows, da ga odprete).

Pritisnite enter, povezani ste.

Podatki za ponovni zagon projekta: - Popravite ethernetni ip, ki ustreza kartici - Vklopite kartico, vsakič, ko vklopite napajanje, morate s "programom" pod četrtino postaviti projekt, sestavljen na kartici. To se naredi prek vrat micro -USB - Za prikaz rezultatov programa uporabljamo več mikro USB, vendar UART - S kitom, konfiguriranim za serijski COM5 (ali 6 urnih gestinarijev) Povežite se s kartico. - Nastavite geslo (passwd) - Nastavite naslov IP ifconfig ethxx IPchoice (IP nedaleč od tistega za eth računalnika) - Ustvarite glavo glede na Qsys z vgrajenim terminalom (izvoz PATH) - make - scp l exec v map - izvedite prog pod kitom

10. korak: Izračun FFT

Izračun FFT
Izračun FFT

Za hitro Fourierjevo preoblikovanje v našem programu C bomo uporabili knjižnico, ki jo je napisal Mark Borgerding: Kiss FFT. Knjižnico lahko prenesete tukaj: https://kissfft.sourceforge.net/. Uporaba FFT na signalu je potrebna za spreminjanje in uporabo signalnih učinkov. Lahko služi tudi za prikaz spektra signala.

Prvi korak v vašem programu C je dodelitev pomnilnika za shranjevanje rezultata FFT. Velikost pomnilnika je odvisna od števila točk, uporabljenih za izračun FFT. Bolj ko imate točk, bolj natančen bo FFT. Vendar bo program deloval počasneje in porabil bo več pomnilnika. Upoštevajte, da boste iz funkcije kiss_fft dobili dva niza: vhod in izhod funkcije (cx_in in cx_out)

Ko je naša matrika napolnjena z novimi vrednostmi FFT, tj. Ko je r = Win - 1, obdelujemo FFT. Kar zadeva prikaz, prikazujemo le pozitivni del spektra, saj obstaja simetrija med negativnim in pozitivnim delom.

Kar zadeva vodoravno os, zmanjšujemo najvišje vrednosti za 100*višino/(višino²), da ločimo vrhove glavnih frekvenc.

S sistemskim klicem uspavanja uporabljamo določitev frekvence branja vrednosti ADC. Ta frekvenca je trenutno nastavljena na 1,5 Hz.

11. korak: Prikaz FFT

Prikaz FFT
Prikaz FFT
Prikaz FFT
Prikaz FFT

Na podlagi primera na Adafruit TFT LCD zaslonu, ki je na voljo tukaj: https://www.terasic.com/downloads/cd-rom/de0-nano-s… smo programirali NIOS našega odbora, tako da lahko bere vrednost ADC.

Tako je register ADC v skupni rabi med NIOS in HPS, ker bodo vrednosti ADC uporabljene za prikaz FFT na zaslonu NIOS, te iste vrednosti pa bodo zapisane na SPI, da se bodo izšle iz plošče in na koncu pretvorile prek DAC -a, da dobi analogni signal.

12. korak: Montaža

Montaža
Montaža

Skoraj smo končali! Sestaviti boste morali vsak del projekta (vhodno vezje, izhodno vezje in ploščo). Deli v skladu s projektom Quartus priključite na pravilne zatiče.

  1. Vhodno vezje bo poslalo zvočni signal, ki ga zajame mikrofon, ojačan, filtriran in izravnan.
  2. Program C, ki je prisoten na kartici, bo prebral vrednosti ADC -ja, kot smo jih videli prej, in jih zapisal v SPI, tako da lahko obnovimo vrednost na GPIO kartice.
  3. Nato bo izhodni GPIO SPI prenašal informacije, ki jih bo dekodiral naš DAC in jih ojačal s tekom, da bi dosegel zvočnik.

Korak: Zvočni učinki

Zvočni učinki
Zvočni učinki
Zvočni učinki
Zvočni učinki

Edini preostali korak so zvočni učinki.

Razpoložljivi učinki so:

  • Visokofrekvenčni filter
  • Nizkofrekvenčni filter

Z gumbom lahko preklapljate med učinki. Ta gumb bo spremenil spremenljivko v našem programu C, tako da lahko uporabi pravi učinek.

14. korak: [NEOBVEZNO] Izdelava čelade

[NEOBVEZNO] Izdelava čelade
[NEOBVEZNO] Izdelava čelade
[NEOBVEZNO] Izdelava čelade
[NEOBVEZNO] Izdelava čelade
[NEOBVEZNO] Izdelava čelade
[NEOBVEZNO] Izdelava čelade

Tukaj smo v najbolj ročnem koraku projekta:

  1. Najprej smo zlepili različne 3D tiskane dele čelade.
  2. Za zapolnitev vrzeli med lepljenimi kosi smo dodali zaključek z uporabo 3D peresa.
  3. Vmesne razpoke, napolnjene s peresom in čelado, smo bolj na splošno polirali, tako da je slika dobro ohranjena.
  4. Čelado smo pobarvali v dveh slojih: prvo v antracitno črni barvi, od blizu, drugo pa v primarno zeleni barvi, da dobimo odtenke temnejše zelene barve.
  5. Na koncu smo natisnili logotip naše šole ob strani Čelade

Priporočena: