Sadržaj:

Kaciga za izmjenu glasa Spartan: 14 koraka (sa slikama)
Kaciga za izmjenu glasa Spartan: 14 koraka (sa slikama)

Video: Kaciga za izmjenu glasa Spartan: 14 koraka (sa slikama)

Video: Kaciga za izmjenu glasa Spartan: 14 koraka (sa slikama)
Video: Mma borac Marko Bojkovic napao tiktokera! 2024, Studeni
Anonim
Kaciga za izmjenu glasa Spartan
Kaciga za izmjenu glasa Spartan
Kaciga za izmjenu glasa Spartan
Kaciga za izmjenu glasa Spartan

Zdravo! Mi smo tim od 4 učenika sa Politehničke škole Sveučilišta Sorbonne:

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

Ovaj projekt realiziran je u sklopu naših studija i ima za cilj uzeti u obzir brojne alate, te pokazati naša teorijska postignuća.

Poznati objekt poprima izgled kacige koja liči na heroja određene video igre čije će ime biti izgubljeno. Što se tiče dizajna, imamo i zaslon koji prikazuje Fourierovu transformaciju audio signala koji izlazi iz zvučnika. Svrha ovih slušalica je promijeniti glas operatera u stvarnom vremenu pomoću brojnih efekata koji se mogu birati.

Obrazovni ciljevi:

  • Snimite zvuk s mikrofona
  • Pojačajte, filtrirajte, digitalizirajte signal
  • Ostvarite FFT signala
  • Prikažite ovaj FFT na ekranu
  • Sinteza signala
  • Izvucite zvuk iz zvučnika
  • Ostvarite efekte na audio zvuk (odjek, odjek itd.)

Sada kada smo stavili pozadinu i predstavili projekt, vrijeme je da ga uzmete u ruke!

Korak 1: Zahtjevi 1/3 - Hardver

Uvjeti 1/3 - Hardver
Uvjeti 1/3 - Hardver

Kako bismo uspješno izgradili vašu kacigu, trebat će nam neki hardver za pokretanje uređaja.

  • DE0-Nano-SoC razvojna ploča kompanije Terasic + Adafruit TFT LCD ekran (Arduino)
  • Pristup 3D pisaču za izradu kacige (Ako ste student sve bliže sveučilištu, neki imaju laboratorije dostupne studentima)
  • Računalo s internetskom vezom i minimalnim povezivanjem (USB, Ethernet). Vaše računalo također mora imati snažan procesor jer sastavljanje programa na Qsys -u oduzima puno vremena.
  • (Nije potrebno) Pisač koji izrađuje tiskane ploče (PCB) iz Gerberovih datoteka kako bi smanjio veličinu kruga + lemilicu za stavljanje komponenti na PCB.
  • (Snažno preporučeno): Dobra kava za uživanje u poslu s našim Instructable:)

Korak 2: Zahtjevi 2/3 - Komponente za vaš krug

Zahtjevi 2/3 - Komponente za vaš krug
Zahtjevi 2/3 - Komponente za vaš krug
Zahtjevi 2/3 - Komponente za vaš krug
Zahtjevi 2/3 - Komponente za vaš krug
Zahtjevi 2/3 - Komponente za vaš krug
Zahtjevi 2/3 - Komponente za vaš krug

Evo komponenti potrebnih za vaš krug:

  • Audio pojačalo klase Texas Instrument LM386 AB
  • BreadBoard
  • Set muško-muških, muško-ženskih kabela
  • LM358P digitalno-analogni pretvarač (DAC)
  • Zvučnik
  • Mali mikrofon koji se koristi u analognom krugu
  • Igrački skup otpornika od 1kOhm do 220kOhm
  • Kondenzator 1,5nF
  • Kondenzator 50nF
  • Kondenzator 100nF
  • Kondenzator 100uF
  • Kondenzator 220uF
  • x4 Kondenzatori 10uF

Korak 3: Zahtjevi 3/3 - Softver

Zahtjevi 3/3 - Softver
Zahtjevi 3/3 - Softver
Zahtjevi 3/3 - Softver
Zahtjevi 3/3 - Softver

Na kraju, ali ne i najmanje važno, trebat će vam softver:

  • Quartus 15.1: Lite verzija
  • C kompajler (gcc na primjer)
  • Altium za projektiranje PCB -a
  • Alterin SoC ugrađeni paket za komunikaciju s SoC kartom

  • Kit

Korak 4: Ulazni krug

Ulazni krug
Ulazni krug
Ulazni krug
Ulazni krug
Ulazni krug
Ulazni krug
Ulazni krug
Ulazni krug

Izgradimo krug. Upotrijebite gornju sliku kruga kako biste je sastavili na matičnoj ploči. Također ćete vidjeti sliku BreadBoarda i krug unutra kako biste vidjeli kako su pinovi povezani. Cijeli krug napaja se istosmjernom strujom (DC) od 5V. U tu svrhu možete koristiti 5V bateriju s USB-B pretvaračem ili generator funkcija.

Neki podsjetnici:

  • Napajanje 5V i uzemljenje spojeni su na zasebnim vodoravnim vodovima ploče
  • Ako želite spojiti 2 komponente paralelno, stavite ih u zajedničku liniju ploče
  • Ako želite spojiti 2 serijske komponente, kompomenti moraju imati samo jedan pin u zajedničkom retku ploče.

Ne ustručavajte se pogledati namjenski vodič o korištenju matične ploče i povezivanju strujnog kruga na njoj. Također ne zaboravite pažljivo pročitati položaj pina audio pojačala LM358P (pogledajte gornju sliku)

Korak 5: Izlazni krug

Izlazni krug
Izlazni krug
Izlazni krug
Izlazni krug
Izlazni krug
Izlazni krug
Izlazni krug
Izlazni krug

Potpuno iste upute kao i korak 4. Četiri ulaza: SDI, a ne CS, SCK, a ne LDAC, dolaze s vaše ploče DE0-Nano-Soc. Kasnije ćemo vidjeti kako ih generirati.

Ne zaboravite pažljivo pročitati položaje pinova audio pojačala LM386 (pogledajte gornju sliku)

Korak 6: [NEOBVEZNO] Stvaranje borada i komponenti za lemljenje tiskanog kruga

[NEOBVEZNO] Stvaranje borada i komponenti za lemljenje tiskanog kruga
[NEOBVEZNO] Stvaranje borada i komponenti za lemljenje tiskanog kruga
[NEOBVEZNO] Stvaranje borada i komponenti za lemljenje tiskanog kruga
[NEOBVEZNO] Stvaranje borada i komponenti za lemljenje tiskanog kruga
[NEOBVEZNO] Stvaranje Borad tiskanog kruga i komponenti za lemljenje
[NEOBVEZNO] Stvaranje Borad tiskanog kruga i komponenti za lemljenje

Ako imate sreće da imate pisač na ploči ili ga možete koristiti, stvorit ćemo vlastitu tiskanu ploču (PCB). Imajte na umu da je ovaj korak neobavezan. Ovaj korak sastoji se samo u premještanju vašeg kruga s matične ploče na PCB.

Trebat će vam ove 2 GERBER datoteke.

Te su datoteke napravljene na Altiumu. Koristite ih na softveru pisača PCB -a za ispis vaše PCB -a. Nakon što nabavite PCB, provjerite je li PCB čist i jesu li pjesme ispravno ispisane.

Sada dolazi prava stvar: lemljenje. Gornje 2 slike su karta kruga na PCB -u. Svaka komponenta ima nazive (R6, C4, MK1 itd.). Slike u koraku 4 i 5 prikazuju parametre komponenti (otpor, vodljivost..). Stavite svaku komponentu s matične ploče na tiskanu ploču prema njihovim nazivima.

Nakon što ste sve lemili lemilicom, ispitajte sve komponente voltmetrom da biste provjerili ima li kratkog spoja.

Korak 7: SoC postavljanje

SoC postavljanje
SoC postavljanje
SoC postavljanje
SoC postavljanje

Što se tiče postavljanja SoC -a, morat ćete pokrenuti neke naredbe i skripte uključene u SoC ugrađeni paket unutar terminala. Da biste to učinili, morat ćete dodati $ PATH. PATH se unutar terminala koristi za traženje datoteke u direktorijima danim putem prilikom izvođenja naredbe. Da biste to učinili, upišite sljedeću naredbenu liniju:

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

Zatim upišite naredbeni redak za generiranje zaglavlja iz sof datoteke. Soft datoteku dobivate sastavljanjem svog projekta na Quartusu. Da biste to učinili, upišite:./generate_header.

Korak 8: Programiranje C HPS

Programiranje C HPS
Programiranje C HPS

U ovom dijelu moramo shvatiti 2 stvari, naime pročitati pročitati vrijednost ADC -a i upisati je u SPI.

1. Očitajte vrijednost ADC -a

Adresa memorije u kojoj se nalazi ADC nije izravno dostupna, zapravo linux sustav prisutan na kartici postavlja apstrakciju memorije. Za stvarno pristupanje ADC adresi koristit ćemo funkciju mmap.

"h2p_lw_spi_addr = virtual_base + ((unsigned long) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (unsigned long) (HW_REGS_MASK));"

Ova uputa omogućuje dodavanje pomaka na početku osnovne adrese kako bi se došlo do adrese memorije dodijeljene za ADC, te da se na rezultirajućoj adresi izvede logika I da se uzme u obzir maskiranje.

Nakon toga, bit će potrebno samo dereferencirati pokazivač u programu kako bi se dobila njegova vrijednost.

2. Upišite vrijednost ADC -a u SPI

Manipulacija je identična, ovaj put mmapi dajemo pomak za slijetanje na adresu dodijeljenu od strane SPI -a. Tijekom pisanja u SPI -u, u tehničkoj dokumentaciji je navedeno da morate na adresu + 1 upisati vrijednost adc -a.

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

Ova vam uputa omogućuje pisanje u SPI. Doista bit 4, dakle 1 << 12, je bit koji omogućuje aktiviranje SPI -a. S logičkim ILI, stoga dajemo i aktivacijski bit i vrijednost ADC -a SPI -ju.

Korak 9: Digitalno preuzimanje ADC -a s kartice

Digitalno preuzimanje ADC -a s kartice
Digitalno preuzimanje ADC -a s kartice
Digitalno preuzimanje ADC -a s kartice
Digitalno preuzimanje ADC -a s kartice
Digitalno preuzimanje ADC -a s kartice
Digitalno preuzimanje ADC -a s kartice
Digitalno preuzimanje ADC -a s kartice
Digitalno preuzimanje ADC -a s kartice

Prije svega, morat ćete postaviti Ethernet IP adresu svog računala putem Upravljačke ploče -> Mreža -> Karmetalne kartice. Odaberite ethernet sučelje kartice, svojstvo, ipv4 adresu i unesite fiksni IP, masku itd …

Zatim povežite karticu sa strane utičnice za napajanje mikro USB kabelom. Otvorite Quartus programer i pokrenite izvoz. Ova će se manipulacija ponoviti nakon svakog isključivanja kartice.

Promijenite mikro USB utični kabel, da biste se ovaj put povezali pokraj Ethernet priključka. Sada će se s Puttyjem morati povezati na karticu serijskom vezom. Konfiguracija je vidljiva na fotografijama, ideja je zamijeniti COM5 COM -om, a zatim broj koji možete pronaći u upravitelju uređaja (desnom tipkom miša kliknite logotip Windowsa da biste ga otvorili).

Pritisnite enter, povezani ste.

Podaci za ponovno pokretanje projekta: - Popravite ethernet ip koji odgovara kartici - Uključite karticu, svaki put kad uključite napajanje, potrebno je staviti sa "program" pod quartus projekt sastavljen na kartici. To se vrši putem mikro -USB priključka - Da bismo mogli prikazati rezultat programa, koristimo više mikro USB -a, ali UART - S kitom konfiguriranim za serijski COM5 (ili perifon sa 6 gledatelja) Spojite se na karticu. - Postavi lozinku (passwd) - Postavi IP adresu ifconfig ethxx IPchoice (IP nedaleko od one za eth računala) - Generiraj zaglavlje prema Qsys -u s ugrađenim terminalom (izvoz PATH) - napravi - scp l exec u map - izvršiti pod kitom prog

Korak 10: Izračun FFT -a

Proračun FFT -a
Proračun FFT -a

Kako bismo dobili brzu Fourierovu transformaciju u naš C program, koristit ćemo biblioteku koju je napisao Mark Borgerding: Kiss FFT. Knjižnicu možete preuzeti ovdje: https://kissfft.sourceforge.net/. Primjena FFT -a na signal neophodna je za izmjenu i primjenu efekata signala. Također može poslužiti za prikaz spektra signala.

Prvi korak u vašem C programu sastoji se u dodjeli memorije za pohranu rezultata FFT. Veličina memorije ovisi o broju točaka koje se koriste za izračun FFT -a. Što više bodova imate, to će FFT biti precizniji. Međutim, program će raditi sporije i koristit će više memorije. Imajte na umu da ćete od funkcije kiss_fft dobiti dva niza: ulaz i izlaz funkcije (cx_in i cx_out)

Nakon što je naš niz ispunjen novim FFT vrijednostima, tj. Kada je r = Win - 1, obrađujemo FFT. Što se tiče prikaza, prikazujemo samo pozitivni dio spektra jer postoji simetrija između negativnog i pozitivnog dijela.

Što se tiče vodoravne osi, smanjujemo vršne vrijednosti za 100*visinu/(visinu²) kako bismo razlikovali vrhove glavnih frekvencija.

Koristimo sistemski poziv usleep kako bismo definirali učestalost čitanja za ADC vrijednosti. Ova frekvencija je trenutno postavljena na 1,5 Hz.

Korak 11: Prikaz FFT -a

Prikaz FFT -a
Prikaz FFT -a
Prikaz FFT -a
Prikaz FFT -a

Na temelju primjera danog na Adafruit TFT LCD ekranu dostupnom ovdje: https://www.terasic.com/downloads/cd-rom/de0-nano-s… programirali smo NIOS našeg odbora tako da može čitati vrijednost ADC -a.

Dakle, ADC registar se dijeli između NIOS -a i HPS -a jer će se vrijednosti ADC -a koristiti za prikaz FFT -a na ekranu NIOS -a, a te iste vrijednosti bit će zapisane na SPI -u kako bi se izbacile s ploče i konačno pretvorile putem DAC -a za dobivanje analognog signala.

Korak 12: Montaža

Skupština
Skupština

Skoro smo gotovi! Morat ćete sastaviti svaki dio projekta (ulazni krug, izlazni krug i ploču). Spojite dijelove na ispravne igle prema Quartus projektu.

  1. Ulazni krug će poslati audio signal snimljen mikrofonom, pojačan, filtriran i pomaknut.
  2. Program C prisutan na kartici očitavat će vrijednosti ADC -a kao što smo već vidjeli, i zapisat će ih na SPI kako bismo mogli vratiti vrijednost na GPIO kartice.
  3. Tada će izlazni GPIO SPI -a prenijeti informacije koje će dekodirati naš DAC i pojačati trčanjem do zvučnika.

Korak 13: Zvučni efekti

Zvučni efekti
Zvučni efekti
Zvučni efekti
Zvučni efekti

Jedini korak koji preostaje su zvučni efekti.

Dostupni učinci su:

  • Filter visoke frekvencije
  • Filter niske frekvencije

Pomoću gumba možete se prebacivati između efekata. Ovaj će gumb promijeniti varijablu u našem programu C, tako da može primijeniti pravi učinak.

Korak 14: [NEOBVEZNO] Izrada kacige

[NEOBVEZNO] Izrada kacige
[NEOBVEZNO] Izrada kacige
[NEOBVEZNO] Izrada kacige
[NEOBVEZNO] Izrada kacige
[NEOBVEZNO] Izrada kacige
[NEOBVEZNO] Izrada kacige

Ovdje smo u najručnijem koraku projekta:

  1. Prvo smo zalijepili različite 3D ispisane dijelove kacige.
  2. Kako bismo popunili praznine između zalijepljenih komada, dodali smo završnu obradu pomoću 3D olovke.
  3. Općenito smo polirali međuprostore ispunjene olovkom i kacigom tako da slika nakon toga dobro stoji.
  4. Obojili smo kacigu u 2 sloja: prvi u antracitno -crnoj boji izbliza, a drugi primarno zeleni od daljnjeg kako bismo dobili nijanse tamnije zelene.
  5. Konačno smo ispisali logo naše škole sa strane kacige

Preporučeni: