Tartalomjegyzék:

Spartan Voice Changer sisak: 14 lépés (képekkel)
Spartan Voice Changer sisak: 14 lépés (képekkel)

Videó: Spartan Voice Changer sisak: 14 lépés (képekkel)

Videó: Spartan Voice Changer sisak: 14 lépés (képekkel)
Videó: Летчики-истребители, элита ВВС 2024, November
Anonim
Spartan Voice Changer sisak
Spartan Voice Changer sisak
Spartan Voice Changer sisak
Spartan Voice Changer sisak

Helló! A Sorbonne Egyetem Politechnikai Iskolájának 4 diákból álló csapata vagyunk:

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

Ez a projekt tanulmányaink részeként valósul meg, és célja számos eszköz kézbe vétele, valamint elméleti eredményeink bemutatása.

A híres tárgy olyan sisakot kap, amely hasonlít egy bizonyos videojáték hőséhez, akinek a neve elveszik. A tervezési oldalon is van egy képernyő, amely megjeleníti a hangszóróból kijövő hangjel Fourier -transzformációját. Ennek a fülhallgatónak az a célja, hogy valós időben megváltoztassa a szolgáltató hangját számos választható effekt segítségével.

Oktatási célok:

  • Rögzítse a hangot egy mikrofonról
  • Erősítse, szűrje, digitalizálja a jelet
  • Ismerje fel a jel FFT -jét
  • Mutassa meg ezt az FFT -t egy képernyőn
  • Jelszintézis
  • Vegyen ki hangot a hangszóróból
  • Érje el az audio hangra gyakorolt hatásokat (visszhang, visszhang stb.)

Most, hogy összeállítottuk a hátteret és bemutattuk a projektet, itt az ideje, hogy kézbe vegye!

1. lépés: Követelmények 1/3 - Hardver

Követelmények 1/3 - Hardver
Követelmények 1/3 - Hardver

Annak érdekében, hogy a sisakot sikeresen megépítsük, szükségünk lesz egy hardverre az eszköz futtatásához.

  • DE0-Nano-SoC Fejlesztőtábla a Terasic + Adafruit TFT LCD képernyőn (Arduino)
  • Hozzáférés a 3D nyomtatóhoz a sisak elkészítéséhez (Ha egyetemi hallgató közelebb kerül az egyetemhez, néhányuknak laboratóriuma van a hallgatók számára)
  • Számítógép internetkapcsolattal és minimális csatlakozási lehetőséggel (USB, Ethernet). A számítógépnek erős processzorral is rendelkeznie kell, mivel a programok összeállítása a Qsys rendszeren sok időt vesz igénybe.
  • (Nem szükséges) Nyomtató, amely nyomtatott áramköri lapokat (NYÁK) készít Gerber -fájlokból az áramkör méretének csökkentése érdekében + forrasztópáka az alkatrészek PCB -re helyezéséhez.
  • (Erősen ajánlott): Egy jó kávé, hogy élvezhesse munkáját az Instructable segítségével:)

2. lépés: Követelmények 2/3 - Az áramkör összetevői

Követelmények 2/3 - Az áramkör alkatrészei
Követelmények 2/3 - Az áramkör alkatrészei
Követelmények 2/3 - Az áramkör alkatrészei
Követelmények 2/3 - Az áramkör alkatrészei
Követelmények 2/3 - Az áramkör alkatrészei
Követelmények 2/3 - Az áramkör alkatrészei

Itt vannak az áramkörhöz szükséges alkatrészek:

  • Texas Instrument LM386 AB osztályú erősítő
  • BreadBoard
  • Férfi-férfi, férfi-női kábelek készlete
  • LM358P digitális-analóg átalakító (DAC)
  • Hangszóró
  • Kis mikrofon analóg áramkörben
  • Játékkészlet 1 kOhm és 220 kOhm között
  • Kondenzátor 1,5 nF
  • Kondenzátor 50 nF
  • Kondenzátor 100 nF
  • Kondenzátor 100uF
  • Kondenzátor 220uF
  • x4 kondenzátorok 10uF

3. lépés: Követelmények 3/3 - Szoftver

Követelmények 3/3 - Szoftver
Követelmények 3/3 - Szoftver
Követelmények 3/3 - Szoftver
Követelmények 3/3 - Szoftver

Végül, de nem utolsó sorban szoftverre lesz szüksége:

  • Quartus 15.1: Lite verzió
  • C fordító (például gcc)
  • Altium a NYÁK -tervezéshez
  • Az Altera SoC beágyazott csomagja kommunikálni tud a SoC térképpel

  • Gitt

4. lépés: Bemeneti áramkör

Bemeneti áramkör
Bemeneti áramkör
Bemeneti áramkör
Bemeneti áramkör
Bemeneti áramkör
Bemeneti áramkör
Bemeneti áramkör
Bemeneti áramkör

Építsük fel az áramkört. Használja az áramkör fenti képét, hogy összeszerelje a kenyértáblájára. Látni fogja a BreadBoard képét és a benne lévő áramkört is, hogy megtudja, hogyan kell a csapokat csatlakoztatni. Az egész áramkör 5V egyenárammal (DC) működik. Ehhez használhat 5 V-os akkumulátort USB-B átalakítóval vagy funkciógenerátorral.

Néhány emlékeztető:

  • Az 5 V -os tápegység és a föld a kenyérsütő lap vízszintes vonalaira vannak csatlakoztatva
  • Ha 2 komponenst szeretne párhuzamosan csatlakoztatni, akkor tegye őket a kenyértábla közös sorába
  • Ha 2 soros komponenst szeretne csatlakoztatni, akkor a komponenseknek csak egy tűvel kell rendelkezniük a kenyértábla közös sorában.

Ne habozzon, nézze meg az oktatóanyagot a kenyérsütő lap használatáról, és kapcsoljon rá áramkört. Ne felejtse el figyelmesen elolvasni az LM358P audioerősítő csapjának helyzetét (lásd a fenti képet)

5. lépés: Kimeneti áramkör

Kimeneti áramkör
Kimeneti áramkör
Kimeneti áramkör
Kimeneti áramkör
Kimeneti áramkör
Kimeneti áramkör
Kimeneti áramkör
Kimeneti áramkör

Teljesen ugyanazok az utasítások, mint a 4. lépésben. A négy bemenet: SDI, nem CS, SCK, nem LDAC a DE0-Nano-Soc kártyáról származik. Később meglátjuk, hogyan lehet őket előállítani.

Ne felejtse el figyelmesen elolvasni az LM386 audioerősítő csapjának helyzetét (lásd a fenti képet)

6. lépés: [Választható] Nyomtatott áramkör Borad és forrasztó alkatrészek létrehozása

[Választható] Nyomtatott áramkör Borad és forrasztó alkatrészek létrehozása
[Választható] Nyomtatott áramkör Borad és forrasztó alkatrészek létrehozása
[Választható] Nyomtatott áramkör Borad és forrasztó alkatrészek létrehozása
[Választható] Nyomtatott áramkör Borad és forrasztó alkatrészek létrehozása
[Választható] Nyomtatott áramkör Borad és forrasztó alkatrészek létrehozása
[Választható] Nyomtatott áramkör Borad és forrasztó alkatrészek létrehozása

Ha szerencséje van egy áramköri nyomtató birtokolásához, vagy használhatja azt, akkor saját nyomtatott áramköri kártyát (PCB) készítünk. Vegye figyelembe, hogy ez a lépés nem kötelező. Ez a lépés csak az áramkör áthelyezését jelenti a kenyértábláról a NYÁK -ra.

Szüksége lesz erre a 2 GERBER fájlra.

Ezek a fájlok az Altiumon készültek. Használja őket a PCB nyomtatószoftverében a PCB nyomtatásához. Miután beszerezte a PCB -t, győződjön meg arról, hogy a nyomtatott áramköre tiszta, és a sávok megfelelően vannak nyomtatva.

Most jön az igazi: a forrasztás. A fenti 2 kép a NYÁK áramkörének térképe. Minden komponensnek neve van (R6, C4, MK1 stb.). A 4. és 5. lépésben látható képek az alkatrészek paramétereit (ellenállás, vezetőképesség..) mutatják be. Helyezze el az egyes alkatrészeket a kenyértábláról a NYÁK -ra a nevük szerint.

Miután mindent forrasztott a forrasztópáka segítségével, teszteljen minden alkatrészt voltmérővel, és ellenőrizze, nincs -e rövidzárlat.

7. lépés: SoC beállítás

SoC beállítás
SoC beállítás
SoC beállítás
SoC beállítás

A SoC beállításával kapcsolatban néhány parancsot és szkriptet kell futtatnia, amelyek a SoC beágyazott csomagjában találhatók a terminálon belül. Ehhez hozzá kell adnia néhány $ PATH -ot. A PATH parancsok a terminálon belül azt mondják, hogy parancs keresésekor keresni kell egy fájlt az útvonal által megadott könyvtárakban. Ehhez írja be a következő parancssort:

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

Ezután írja be a parancssort a fejlécek generálásához egy sof fájlból. A sof fájlt a projekt Quartuson történő összeállításával szerezheti be. Ehhez írja be:./generate_header.

8. lépés: A C HPS programozása

C HPS programozása
C HPS programozása

Ebben a részben két dolgot kell megvalósítanunk, nevezetesen olvassa el, olvassa el az ADC értékét, és írja be az SPI -be.

1. Olvassa el az ADC értékét

Annak a memóriának a címe, amelyben az ADC található, nem érhető el közvetlenül, valójában a kártyán lévő linux rendszer a memória absztrakcióját állítja be. Az ADC -cím eléréséhez az mmap funkciót fogjuk használni.

"h2p_lw_spi_addr = virtual_base + ((hosszú előjel nélküli) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (előjel nélküli hosszú) (HW_REGS_MASK));"

Ez az utasítás lehetővé teszi egy eltolás hozzáadását az alapcím elejére, hogy elérje az ADC számára kiosztott memória címét, és a kapott címen logikát és ÉS figyelembe vegye a maszkolást.

Ezt követően csak a programban lévő mutatót kell eltéríteni, hogy megkapja az értékét.

2. Írja be az ADC értékét az SPI -be

A manipuláció azonos, ezúttal az mmap -nak adjuk meg az eltolást, hogy az SPI által kiosztott címre érkezzen. Az SPI -ben történő írás során a műszaki dokumentáció előírja, hogy a + 1 címre kell írnia az adc értékét.

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

Ez az utasítás lehetővé teszi, hogy írjon az SPI -hez. Valójában a 4. bit, tehát az 1 << 12 az a bit, amely lehetővé teszi az SPI aktiválását. Logikai VAGY -nál tehát az aktiválási bitet és az ADC értékét is megadjuk az SPI -nek.

9. lépés: Az ADC digitális megszerzése a kártyáról

Az ADC digitális megszerzése a kártyáról
Az ADC digitális megszerzése a kártyáról
Az ADC digitális megszerzése a kártyáról
Az ADC digitális megszerzése a kártyáról
Az ADC digitális megszerzése a kártyáról
Az ADC digitális megszerzése a kártyáról
Az ADC digitális megszerzése a kártyáról
Az ADC digitális megszerzése a kártyáról

Először is be kell állítania a számítógép Ethernet IP -címét a Vezérlőpult -> Hálózat -> Kártya parmezálok segítségével. Válassza ki a kártya ethernet interfészét, tulajdonságát, ipv4 -címét, és adjon meg egy rögzített IP -címet, maszkot stb.

Ezután csatlakoztassa a kártyát a tápcsatlakozó oldaláról a mikro USB -kábellel. Nyissa meg a Quartus programozót, és indítsa el az exportálást. Ezt a manipulációt a kártya minden kikapcsolása után megismétlik.

Cserélje ki a mikro -USB csatlakozókábelt, hogy ezúttal az Ethernet -csatlakozó mellett csatlakozzon. Most a Putty segítségével soros kapcsolaton keresztül kell csatlakozni a kártyához. A konfiguráció látható a fényképeken, az ötlet az, hogy a COM5 -öt COM -ra cserélje, majd az eszközkezelőben megtalálható számot (jobb egérgombbal kattintson a Windows logóra a megnyitásához).

Nyomja meg az enter billentyűt, és csatlakozik.

Információk a projekt újraindításához: - Javítsa ki a kártyának megfelelő ethernet ip -t - Kapcsolja be a kártyát, minden alkalommal, amikor bekapcsolja a készüléket, szükség van a "program" beírására a kártyába összeállított projekt alá. Ez a mikro -USB porton keresztül történik - A program eredményének megjelenítéséhez több mikro USB -t használunk, de UART -t. - Soros COM5 (vagy 6 óra gesztinnai periféria) konfigurált gitt segítségével Csatlakoztassa a kártyához. - Jelszó beállítása (passwd) - IP -cím beállítása ifconfig ethxx IPchoice (IP nem messze attól, ami a PC etikája) - Generálja a fejlécet a Qsys szerint a beágyazott terminállal (export PATH) - make - scp l exec a térkép - futtassa a gitt alatt a progit

10. lépés: FFT számítás

FFT számítás
FFT számítás

Annak érdekében, hogy a C programunkba bekerüljön a gyors Fourier -transzformáció, egy könyvtárat használunk, amelyet Mark Borgerding írt: Kiss FFT. A könyvtárat innen töltheti le: https://kissfft.sourceforge.net/. A jelhatások módosításához és alkalmazásához FFT -t kell alkalmazni a jelre. A jel spektrumának megjelenítésére is szolgálhat.

A C program első lépése a memória lefoglalása az FFT eredmény tárolásához. A memória mérete az FFT kiszámításához használt pontok számától függ. Minél több pontja van, annál pontosabb lesz az FFT. A program azonban lassabban fog futni, és több memóriát fog igénybe venni. Ne feledje, hogy a kiss_fft függvényből két tömböt kap: a függvény bemenetét és kimenetét (cx_in és cx_out)

Ha tömbünk új FFT értékekkel van feltöltve, azaz amikor r = Win - 1, akkor feldolgozzuk az FFT -t. Ami a kijelzőt illeti, csak a spektrum pozitív részét jelenítjük meg, mivel szimmetria van a negatív és a pozitív rész között.

Ami a vízszintes tengelyt illeti, a csúcsértékeket 100*magassággal ((magasság²)) csökkentjük, hogy meg tudjuk különböztetni a fő frekvenciák csúcsait.

Az usleep rendszer hívását használjuk az ADC értékek olvasási gyakoriságának meghatározásához. Ez a frekvencia jelenleg 1,5 Hz -re van beállítva.

11. lépés: Az FFT megjelenítése

Az FFT megjelenítése
Az FFT megjelenítése
Az FFT megjelenítése
Az FFT megjelenítése

Az Adafruit TFT LCD képernyőn itt található példa alapján: https://www.terasic.com/downloads/cd-rom/de0-nano-s… programoztuk az igazgatótanács NIOS-ját, hogy olvasni tudjon az ADC érték.

Tehát az ADC regiszter megosztva van az NIOS és a HPS között, mert az ADC értékeket fogják használni az FFT megjelenítéséhez az NIOS képernyőn, és ugyanazokat az értékeket írják fel az SPI -re annak érdekében, hogy kimenjenek a tábláról, és végül átalakítsák a DAC segítségével, hogy analóg jelet kapjon.

12. lépés: Összeszerelés

Összeszerelés
Összeszerelés

Majdnem kész vagyunk! Összeszerelnie kell a projektor minden részét (bemeneti áramkör, kimeneti áramkör és a kártya). Feltétlenül csatlakoztassa az alkatrészeket a megfelelő csapokhoz a Quartus projekt szerint.

  1. A bemeneti áramkör a mikrofon által rögzített hangjelet küldi, erősítve, szűrve és eltolva.
  2. A kártyán jelen lévő C program beolvassa az ADC értékeit, ahogy azt korábban láttuk, és felírja az SPI -re, hogy vissza tudjuk állítani az értéket a kártya GPIO -ján.
  3. Ezután az SPI kimeneti GPIO továbbítja azokat az információkat, amelyeket a DAC dekódol, és futtatva felerősíti a hangszóró eléréséhez.

13. lépés: Hanghatások

Hang hatások
Hang hatások
Hang hatások
Hang hatások

Már csak a hanghatások maradtak hátra.

Az elérhető hatások a következők:

  • Nagyfrekvenciás szűrő
  • Alacsony frekvenciájú szűrő

Egy gomb segítségével válthat az effektusok között. Ez a gomb megváltoztat egy változót a C programunkban, így a megfelelő hatást tudja alkalmazni.

14. lépés: [Választható] A sisak elkészítése

[Választható] A sisak elkészítése
[Választható] A sisak elkészítése
[Választható] A sisak elkészítése
[Választható] A sisak elkészítése
[Választható] A sisak elkészítése
[Választható] A sisak elkészítése

Itt tartunk a projekt legkézi lépésében:

  1. Először ragasztottuk a sisak különböző 3D nyomtatott részeit.
  2. A ragasztott darabok közötti hézagok kitöltéséhez 3D tollat használunk.
  3. A tollal és a sisakkal töltött közbenső részeket úgy csiszoltuk, hogy a festmény később is jól megmaradjon.
  4. A sisakot 2 rétegben festettük: az első antracitfekete, közelről, a második pedig elsődleges zöld, tovább, hogy sötétebb zöld árnyalatokat adjon.
  5. Végül kinyomtattuk iskolánk logóját a sisak oldalán

Ajánlott: