Obsah:

Přilba Spartan Voice Changer: 14 kroků (s obrázky)
Přilba Spartan Voice Changer: 14 kroků (s obrázky)

Video: Přilba Spartan Voice Changer: 14 kroků (s obrázky)

Video: Přilba Spartan Voice Changer: 14 kroků (s obrázky)
Video: Zavřete oči a poslouchejte 😂😂😂 2024, Listopad
Anonim
Přilba Spartan Voice Changer
Přilba Spartan Voice Changer
Přilba Spartan Voice Changer
Přilba Spartan Voice Changer

Ahoj! Jsme tým 4 studentů z polytechnické školy Sorbonské univerzity:

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

Tento projekt je realizován jako součást našich studií a jeho cílem je vzít do ruky řadu nástrojů a také demonstrovat naše teoretické úspěchy.

Slavný předmět získává vzhled přilby připomínající hrdinu určité videohry, jejíž jméno bude ztraceno. Po stránce designu máme také obrazovku, která zobrazuje Fourierovu transformaci zvukového signálu vycházejícího z reproduktoru. Účelem této náhlavní soupravy je změnit hlas operátora v reálném čase pomocí řady volitelných efektů.

Vzdělávací cíle:

  • Zachyťte zvuk z mikrofonu
  • Zesílení, filtrování, digitalizace signálu
  • Realizujte FFT signálu
  • Ukažte tento FFT na obrazovce
  • Syntéza signálu
  • Vyjměte zvuk z reproduktoru
  • Realizujte efekty na zvukovém zvuku (dozvuk, ozvěna atd …)

Nyní, když jsme vložili pozadí a představili projekt, je čas ho dostat do rukou!

Krok 1: Požadavky 1/3 - Hardware

Požadavky 1/3 - Hardware
Požadavky 1/3 - Hardware

K úspěšnému vybudování vaší helmy budeme ke spuštění zařízení potřebovat nějaký hardware.

  • Vývojová deska DE0-Nano-SoC od Terasic + Adafruit TFT LCD obrazovka (Arduino)
  • Přístup k 3D tiskárně, aby byla helma (Pokud jste vysokoškolský student, přesuňte se blíže ke své univerzitě, některé mají laboratoře přístupné studentům)
  • Počítač s internetovým připojením a minimem připojení (USB, Ethernet). Váš počítač také musí mít silný procesor, protože kompilace programů na Qsys zabere hodně času.
  • (Není vyžadováno) Tiskárna, která vyrábí desky plošných spojů (PCB) ze souborů Gerber za účelem zmenšení velikosti obvodu + páječka pro umístění součástí na desku plošných spojů.
  • (Důrazně doporučujeme): Dobrá káva, abyste si mohli užít svou práci s naším Instructable:)

Krok 2: Požadavky 2/3 - komponenty pro váš obvod

Požadavky 2/3 - komponenty pro váš obvod
Požadavky 2/3 - komponenty pro váš obvod
Požadavky 2/3 - komponenty pro váš obvod
Požadavky 2/3 - komponenty pro váš obvod
Požadavky 2/3 - komponenty pro váš obvod
Požadavky 2/3 - komponenty pro váš obvod

Zde jsou součásti potřebné pro váš obvod:

  • Zvukový zesilovač třídy Texas Instrument LM386 AB
  • BreadBoard
  • Sada kabelů male-male, male-female
  • LM358P Převodník digitálního signálu na Analoh (DAC)
  • mluvčí
  • Malý mikrofon používaný v analogovém obvodu
  • Herní sada rezistorů od 1 kOhm do 220 kOhm
  • Kondenzátor 1,5nF
  • Kondenzátor 50nF
  • Kondenzátor 100nF
  • Kondenzátor 100uF
  • Kondenzátor 220uF
  • x4 kondenzátory 10uF

Krok 3: Požadavky 3/3 - Software

Požadavky 3/3 - Software
Požadavky 3/3 - Software
Požadavky 3/3 - Software
Požadavky 3/3 - Software

V neposlední řadě budete potřebovat software:

  • Quartus 15.1: Lite verze
  • Kompilátor C (například gcc)
  • Altium pro návrh DPS
  • Altera integrovaná sada SoC pro komunikaci s mapou SoC
  • Tmel

Krok 4: Vstupní obvod

Vstupní obvod
Vstupní obvod
Vstupní obvod
Vstupní obvod
Vstupní obvod
Vstupní obvod
Vstupní obvod
Vstupní obvod

Pojďme postavit obvod. Chcete -li jej sestavit na prkénku, použijte výše uvedený obrázek obvodu. Uvidíte také obrázek BreadBoardu a obvodu uvnitř, abyste viděli, jak jsou piny připojeny. Celý obvod je napájen stejnosměrným proudem 5 V (DC). K tomu můžete použít 5V baterii s převodníkem USB-B nebo generátorem funkcí.

Několik připomenutí:

  • Napájení 5V a uzemnění jsou propojeny na samostatných vodorovných linkách nepájivého pole
  • Pokud chcete zapojit 2 komponenty paralelně, vložte je do společné řady prkénka
  • Pokud chcete připojit 2 sériové komponenty, musí mít komponenty pouze jeden pin ve společné řadě prkénka.

Neváhejte se podívat na speciální návod, jak používat prkénko a postavit na něj obvod. Nezapomeňte si také pečlivě přečíst polohu pinů audio zesilovače LM358P (viz obrázek výše)

Krok 5: Výstupní obvod

Výstupní obvod
Výstupní obvod
Výstupní obvod
Výstupní obvod
Výstupní obvod
Výstupní obvod
Výstupní obvod
Výstupní obvod

Zcela stejné pokyny jako v kroku 4. Čtyři vstupy: SDI, nikoli CS, SCK, nikoli LDAC jsou z vaší desky DE0-Nano-Soc. Později uvidíme, jak je vygenerovat.

Nezapomeňte si pečlivě přečíst polohu pinů audio zesilovače LM386 (viz obrázek výše)

Krok 6: [VOLITELNÉ] Vytvoření součástek plošných spojů a pájení

[VOLITELNÉ] Vytváření plošných spojů a pájecích komponent
[VOLITELNÉ] Vytváření plošných spojů a pájecích komponent
[VOLITELNÉ] Vytváření součástek plošných spojů a pájení
[VOLITELNÉ] Vytváření součástek plošných spojů a pájení
[VOLITELNÉ] Vytváření součástek plošných spojů a pájení
[VOLITELNÉ] Vytváření součástek plošných spojů a pájení

Pokud máte to štěstí, že vlastníte tiskárnu s plošnými spoji nebo ji můžete používat, vytvoříme si vlastní desku s plošnými spoji (PCB). Tento krok je volitelný. Tento krok spočívá pouze v přesunu vašeho obvodu z desky na desku plošných spojů.

Budete potřebovat tyto 2 soubory GERBER.

Tyto soubory byly vytvořeny na Altium. Použijte je v softwaru tiskárny PCB k vytištění desky plošných spojů. Jakmile získáte desku plošných spojů, ujistěte se, že je čistá a že stopy jsou správně vytištěny.

Nyní přichází skutečná nabídka: Pájení. 2 obrázky nahoře jsou mapa obvodu na DPS. Každá součást má svůj název (R6, C4, MK1 atd.). Obrázky v krocích 4 a 5 ukazují parametry komponent (odpor, vodivost..). Umístěte každou součást z vaší desky na desku plošných spojů podle jejich názvů.

Jakmile vše pájíte pomocí páječky, otestujte všechny součásti voltmetrem a zkontrolujte, zda nedošlo ke zkratu.

Krok 7: Nastavení SoC

Nastavení SoC
Nastavení SoC
Nastavení SoC
Nastavení SoC

Pokud jde o nastavení SoC, budete muset v terminálu spustit některé příkazy a skripty zahrnuté ve vestavěné sadě SoC. K tomu budete muset přidat nějaké $ PATH. PATH se v terminálu používá k vyhledání souboru v adresářích zadaných cestou, když spouštíte příkaz. Chcete -li to provést, zadejte následující příkazový řádek:

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

Poté zadejte příkazový řádek a vygenerujte záhlaví ze souboru SOF. Soubor SOF získáte kompilací projektu na Quartusu. Chcete -li to provést, zadejte:./generate_header.

Krok 8: Programování C HPS

Programování C HPS
Programování C HPS

V této části musíme realizovat 2 věci, a to číst, číst hodnotu ADC a zapisovat do SPI.

1. Přečtěte si hodnotu ADC

Adresa paměti, ve které je ADC obsažen, není přímo přístupná, ve skutečnosti linuxový systém přítomný na kartě nastavuje abstrakci paměti. Ke skutečnému přístupu na adresu ADC použijeme funkci mmap.

"h2p_lw_spi_addr = virtual_base + ((bez znaménka) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (bez znaménka) (HW_REGS_MASK));"

Tato instrukce umožňuje přidat offset na začátek základní adresy, aby dosáhl adresy paměti přidělené pro ADC, a provést na výsledné adrese logiku A vzít v úvahu maskování.

Poté již bude pouze nutné dereference ukazatele v programu získat jeho hodnotu.

2. Napište hodnotu ADC do SPI

Manipulace je identická, tentokrát dáme mmapu offset, abychom přistáli na adrese přidělené SPI. Při psaní SPI technická dokumentace uvádí, že na adresu + 1 musíte napsat hodnotu adc.

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

Tato instrukce vám umožňuje zapisovat do SPI. Skutečně bit 4, tedy 1 << 12, je bit, který umožňuje aktivovat SPI. S logickým NEBO tedy dáme SPI aktivační bit i hodnotu ADC.

Krok 9: Digitální akvizice ADC z karty

Digitální akvizice ADC z karty
Digitální akvizice ADC z karty
Digitální akvizice ADC z karty
Digitální akvizice ADC z karty
Digitální akvizice ADC z karty
Digitální akvizice ADC z karty
Digitální akvizice ADC z karty
Digitální akvizice ADC z karty

Nejprve budete muset nastavit ethernetovou IP adresu vašeho počítače pomocí Ovládacích panelů -> Síť -> Card Parmesals. Vyberte ethernetové rozhraní karty, vlastnosti, adresy IPv4 a zadejte pevnou IP adresu, masku atd …

Poté připojte kartu ze strany konektoru napájení kabelem micro USB. Otevřete programátor Quartus a spusťte export. Tato manipulace bude přepracována po každém vypnutí karty.

Vyměňte kabel micro USB, připojte se tentokrát vedle ethernetového konektoru. Nyní bude u Putty nutné připojit se ke kartě sériovým spojením. Konfigurace je viditelná na fotografiích, přičemž myšlenkou je nahradit COM5 za COM a za ním číslo, které najdete ve správci zařízení (otevřete jej pravým kliknutím na logo Windows).

Stiskněte Enter, jste připojeni.

Informace k restartu projektu: - Opravte ethernetový ip odpovídající kartě - Zapněte kartu, pokaždé, když zapnete napájení, je nutné do programu Quartus vložit „program“projekt zkompilovaný na kartě. To se provádí přes port micro -USB - Abychom mohli zobrazit výsledek programu, používáme více micro USB, ale UART - S tmelem nakonfigurovaným pro sériový COM5 (nebo 6 hodin gestinnaire periph) Připojte se ke kartě. - Nastavit heslo (passwd) - Nastavit IP adresu ifconfig ethxx IPchoice (IP není daleko od té pro ether PC) - Generovat záhlaví podle Qsys s integrovaným terminálem (export PATH) - make - scp l exec v mapa - spusťte pod tmelem prog

Krok 10: Výpočet FFT

Výpočet FFT
Výpočet FFT

Abychom získali rychlou Fourierovu transformaci v našem programu C, použijeme knihovnu napsanou Markem Borgerdingem: Kiss FFT. Knihovnu si můžete stáhnout zde: https://kissfft.sourceforge.net/. Použití FFT na signál je nutné k úpravě a použití efektů signálu. Může také sloužit k zobrazení spektra signálu.

První krok v programu C spočívá v přidělení paměti za účelem uložení výsledku FFT. Velikost paměti závisí na počtu bodů použitých pro výpočet FFT. Čím více bodů získáte, tím více bude FFT výhodnější. Program však poběží pomaleji a bude využívat více paměti. Všimněte si, že z funkce kiss_fft získáte dvě pole: vstup a výstup funkce (cx_in a cx_out)

Jakmile je naše pole naplněno novými hodnotami FFT, tj. Když r = Win - 1, zpracováváme FFT. Pokud jde o displej, zobrazujeme pouze pozitivní část spektra, protože mezi negativní částí a pozitivní částí existuje symetrie.

Pokud jde o vodorovnou osu, snižujeme špičkové hodnoty o 100*výšku/(výšku²), abychom rozlišili vrcholy hlavních frekvencí.

K definování četnosti čtení hodnot ADC používáme systémové volání us ushing. Tato frekvence je aktuálně nastavena na 1, 5 Hz.

Krok 11: Zobrazení FFT

Zobrazení FFT
Zobrazení FFT
Zobrazení FFT
Zobrazení FFT

Na základě příkladu, který je uveden na TFT LCD obrazovce Adafruit, která je k dispozici zde: https://www.terasic.com/downloads/cd-rom/de0-nano-s… jsme naprogramovali NIOS naší rady, aby byl schopen číst hodnota ADC.

Registr ADC je tedy sdílen mezi NIOS a HPS, protože hodnoty ADC budou použity k zobrazení FFT na obrazovce NIOS a stejné hodnoty budou zapsány do SPI, aby mohly být vyvedeny z desky a nakonec převedeny DAC pro získání analogového signálu.

Krok 12: Sestavení

Shromáždění
Shromáždění

Jsme téměř hotovi! Budete muset sestavit každou část projektoru (vstupní obvod, výstupní obvod a desku). Zajistěte připojení dílů ke správným kolíkům podle projektu Quartus.

  1. Vstupní obvod odešle zvukový signál zachycený mikrofonem, zesílený, filtrovaný a odsazený.
  2. Program C přítomný na kartě načte hodnoty ADC, jak jsme viděli dříve, a zapíše je do SPI, abychom mohli obnovit hodnotu na GPIO karty.
  3. Poté výstupní GPIO SPI přenese informace, které budou dekódovány naším DAC a zesíleny spuštěním k dosažení reproduktoru.

Krok 13: Zvukové efekty

Zvukové efekty
Zvukové efekty
Zvukové efekty
Zvukové efekty

Jediným krokem zbývají zvukové efekty.

Dostupné efekty jsou:

  • Vysokofrekvenční filtr
  • Nízkofrekvenční filtr

Mezi efekty můžete přepínat díky tlačítku. Toto tlačítko změní proměnnou v našem programu C, takže může použít správný efekt.

Krok 14: [VOLITELNÉ] Výroba helmy

[VOLITELNÉ] Výroba helmy
[VOLITELNÉ] Výroba helmy
[VOLITELNÉ] Výroba helmy
[VOLITELNÉ] Výroba helmy
[VOLITELNÉ] Výroba helmy
[VOLITELNÉ] Výroba helmy

Zde jsme v nejvíce manuálním kroku projektu:

  1. Nejprve jsme slepili různé 3D tištěné části helmy.
  2. Abychom vyplnili mezery mezi lepenými kusy, přidali jsme povrchovou úpravu pomocí 3D pera.
  3. Mezery vyplněné perem a helmou jsme vyleštili obecněji, aby obraz poté dobře držel.
  4. Přilbu jsme natřeli 2 vrstvami: první antracitovou černou, zblízka a druhou primární zelenou z dále, abychom získali odstíny tmavší zelené.
  5. Nakonec jsme na stranu přilby vytiskli logo naší školy

Doporučuje: