Taula de continguts:

Casc canviador de veu Spartan: 14 passos (amb imatges)
Casc canviador de veu Spartan: 14 passos (amb imatges)

Vídeo: Casc canviador de veu Spartan: 14 passos (amb imatges)

Vídeo: Casc canviador de veu Spartan: 14 passos (amb imatges)
Vídeo: Беслан. Помни / Beslan. Remember (english & español subs) 2024, De novembre
Anonim
Casc canviador de veu Spartan
Casc canviador de veu Spartan
Casc canviador de veu Spartan
Casc canviador de veu Spartan

Hola! Som un equip de 4 estudiants de l'escola Politècnica de la Universitat de la Sorbona:

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

Aquest projecte es realitza com a part dels nostres estudis i té com a objectiu tenir en mà diverses eines, així com demostrar els nostres èxits teòrics.

El famós objecte adopta l’aspecte d’un casc semblant al de l’heroi d’un determinat videojoc el nom del qual es perdrà. Pel que fa al disseny, també tenim una pantalla que mostra la transformada de Fourier del senyal d'àudio que surt de l'altaveu. L’objectiu d’aquests auriculars és canviar la veu de l’operador en temps real mitjançant diversos efectes seleccionables.

Objectius educatius:

  • Captureu el so des d'un micròfon
  • Amplificar, filtrar, digitalitzar el senyal
  • Adonar-se del FFT d’un senyal
  • Mostra aquest FFT en una pantalla
  • Síntesi de senyals
  • Traieu un so d'un altaveu
  • Adonar efectes sobre el so de l’àudio (reverberació, ressò, etc …)

Ara que ja hem posat els antecedents i hem presentat el projecte, és hora de posar-hi les mans!

Pas 1: requisits 1/3: maquinari

Requisits 1/3: maquinari
Requisits 1/3: maquinari

Per tal de construir el casc amb èxit, necessitarem una mica de maquinari per executar el dispositiu.

  • Junta de desenvolupament DE0-Nano-SoC de la pantalla LCD TFT Terasic + Adafruit (Arduino)
  • Accés a una impressora 3D per fer que el casc (Si sou estudiants universitaris acosteu-vos a la vostra universitat, alguns tenen laboratoris accessibles als estudiants)
  • Un ordinador amb connexió a Internet i un mínim de connectivitat (USB, Ethernet). L’ordinador també ha de tenir un processador fort, ja que la compilació de programes a Qsys requereix molt de temps.
  • (No cal) Impressora que fabriqui plaques de circuits impresos (PCB) a partir de fitxers Gerber per reduir la mida del circuit + una planxa de soldadura per posar els components al PCB.
  • (Fortament recomanat): un bon cafè per gaudir del vostre treball amb el nostre Instructable:)

Pas 2: Requisits 2/3: components del vostre circuit

Requisits 2/3: components per al vostre circuit
Requisits 2/3: components per al vostre circuit
Requisits 2/3: components per al vostre circuit
Requisits 2/3: components per al vostre circuit
Requisits 2/3: components per al vostre circuit
Requisits 2/3: components per al vostre circuit

Aquests són els components necessaris per al vostre circuit:

  • Texas Instrument LM386 amplificador d'àudio de classe AB
  • BreadBoard
  • Conjunt de cables mascle-mascle, mascle-femella
  • Convertidor digital a analoh (DAC) LM358P
  • Altaveu
  • Micròfon petit utilitzat en circuits analògics
  • Un joc de resistències d’1kOhm a 220kOhm
  • Condensador 1,5nF
  • Condensador 50nF
  • Condensador 100nF
  • Condensador 100uF
  • Condensador 220uF
  • Condensadors x4 10uF

Pas 3: Requisits 3/3: programari

Requisits 3/3: programari
Requisits 3/3: programari
Requisits 3/3: programari
Requisits 3/3: programari

Finalment, però no menys important, necessitareu programari:

  • Quartus 15.1: versió Lite
  • Un compilador C (per exemple, gcc)
  • Altium per al disseny de PCB
  • El paquet SoC incrustat d’Altera per comunicar-se amb el mapa SoC

  • Massilla

Pas 4: Circuit d'entrada

Circuit d’entrada
Circuit d’entrada
Circuit d’entrada
Circuit d’entrada
Circuit d’entrada
Circuit d’entrada
Circuit d’entrada
Circuit d’entrada

Construïm el circuit. Utilitzeu la imatge anterior del circuit per muntar-la a la vostra taula. També veureu la imatge del BreadBoard i el circuit que hi ha a l'interior per veure com es connecten els pins. Tot el circuit s’alimenta amb un corrent continu de 5 V (CC). Per a això, podeu utilitzar una bateria de 5V amb un convertidor USB-B o un generador de funcions.

Alguns recordatoris:

  • La font d'alimentació de 5V i la terra es connecten en línies horitzontals separades de la placa
  • Si voleu connectar 2 components en paral·lel, poseu-los en una línia comuna de la taula de treball
  • Si voleu connectar 2 components de sèrie, els components només han de tenir un pin en una línia comuna de la placa de control.

No dubteu a veure un tutorial dedicat sobre com utilitzar una taula de treball i crear un circuit. Tampoc no oblideu llegir atentament la posició del pin de l’amplificador d’àudio LM358P (vegeu la imatge superior)

Pas 5: Circuit de sortida

Circuit de sortida
Circuit de sortida
Circuit de sortida
Circuit de sortida
Circuit de sortida
Circuit de sortida
Circuit de sortida
Circuit de sortida

Totes les mateixes instruccions que el pas 4. Les quatre entrades: SDI, no CS, SCK i no LDAC provenen de la vostra junta DE0-Nano-Soc. Més endavant veurem com es generen.

No oblideu llegir atentament les posicions dels pins de l’amplificador d’àudio LM386 (vegeu la imatge superior)

Pas 6: [OPCIONAL] Creació de circuits impresos Borad i components de soldadura

[OPCIONAL] Creació de circuits impresos Borad i components de soldadura
[OPCIONAL] Creació de circuits impresos Borad i components de soldadura
[OPCIONAL] Creació de components de soldadura i borad del circuit imprès
[OPCIONAL] Creació de components de soldadura i borad del circuit imprès
[OPCIONAL] Creació de circuits impresos Borad i components de soldadura
[OPCIONAL] Creació de circuits impresos Borad i components de soldadura

Si teniu la sort de tenir una impressora de placa de circuit o podeu utilitzar-ne una, crearem la nostra pròpia placa de circuit imprès (PCB). Tingueu en compte que aquest pas és opcional. Aquest pas només consisteix a moure el circuit d'una placa de control a un PCB.

Necessitareu aquests 2 fitxers GERBER.

Aquests fitxers es van fer a Altium. Utilitzeu-los al programari de la impressora de PCB per imprimir-los. Un cop obtingueu el PCB, assegureu-vos que el PCB estigui net i que les pistes estiguin impreses correctament.

Ara arriba el veritable negoci: soldar. Les 2 imatges anteriors són el mapa del circuit del PCB. Cada component té noms (R6, C4, MK1, etc.). Les imatges dels passos 4 i 5 mostren els paràmetres dels components (resistència, conductància..). Col·loqueu cada component des del tauler de control al PCB segons els seus noms.

Un cop hàgiu soldat tot amb el soldador, proveu tots els components amb un voltímetre per comprovar si hi ha curtcircuit.

Pas 7: configuració del SoC

Configuració de SoC
Configuració de SoC
Configuració de SoC
Configuració de SoC

Pel que fa a la configuració del SoC, haureu d'executar algunes ordres i scripts inclosos al paquet SoC incrustat dins d'un terminal. Per fer-ho, haureu d'afegir $ PATH. PATH s’utilitza dins d’un terminal per dir que es busca un fitxer als directoris donats per path quan s’executa una ordre. Per fer-ho, escriviu la línia d'ordres següent:

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

A continuació, escriviu la línia d'ordres per generar capçaleres a partir d'un fitxer sof. Podeu obtenir el fitxer sof compilant el vostre projecte a Quartus. Per fer-ho, escriviu:./generate_header.

Pas 8: Programació de C HPS

Programació de C HPS
Programació de C HPS

Hem d’adonar-nos de dues coses en aquesta part: llegir i llegir el valor de l’ADC i escriure’l a l’SPI.

1. Llegiu el valor de l'ADC

L'adreça de la memòria on es troba l'ADC no és accessible directament, de fet, el sistema Linux present a la targeta configura una abstracció de la memòria. Per accedir realment a l’adreça ADC utilitzarem la funció mmap.

"h2p_lw_spi_addr = virtual_base + ((sense signar llarg) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (sense signar llarg) (HW_REGS_MASK));"

Aquesta instrucció permet afegir un desplaçament al començament de l'adreça base per arribar a l'adreça de la memòria assignada per a l'ADC, i realitzar a l'adreça resultant una lògica I per tenir en compte l'enmascarament.

Després d'això, només serà necessari desferreferir el punter del programa per obtenir-ne el valor.

2. Escriviu el valor de l'ADC a l'SPI

La manipulació és idèntica, aquesta vegada donem el desplaçament al mmap per aterrar a l'adreça assignada per l'SPI. Mentre escriviu a l’SPI, la documentació tècnica especifica que heu d’escriure a l’adreça +1 el valor de l’adc.

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

Aquesta instrucció us permet escriure a l’SPI. De fet, el bit 4, de manera que 1 << 12, és el bit que permet activar l'SPI. Amb un OR lògic, donem tant el bit d’activació com el valor de l’ADC a l’SPI.

Pas 9: Adquisició digital de l'ADC des de la targeta

Adquisició digital de l'ADC de la targeta
Adquisició digital de l'ADC de la targeta
Adquisició digital de l'ADC de la targeta
Adquisició digital de l'ADC de la targeta
Adquisició digital de l'ADC de la targeta
Adquisició digital de l'ADC de la targeta
Adquisició digital de l'ADC de la targeta
Adquisició digital de l'ADC de la targeta

Primer de tot, haureu d’establir l’adreça IP Ethernet del vostre ordinador a través del Tauler de control -> Xarxa -> Parmesals de la targeta. Seleccioneu la interfície ethernet de la targeta, la propietat, l'adreça ipv4 i introduïu una IP fixa, una màscara, etc.

A continuació, connecteu la targeta des del costat de la presa d’alimentació amb el cable micro USB. Obriu el programador Quartus i inicieu l'exportació. Aquesta manipulació es tornarà a fer després de cada apagat de la targeta.

Canvieu el cable d'endoll micro USB per connectar-vos aquesta vegada al costat de la presa Ethernet. Ara, amb Putty serà necessari connectar-se a la targeta per enllaç sèrie. La configuració és visible a les fotos, amb la idea de substituir COM5 per COM seguit del número que podeu trobar al gestor de dispositius (feu clic amb el botó dret al logotip de Windows per obrir-lo).

Premeu Enter, esteu connectat.

Informació per reiniciar el projecte: - Corregiu l'IP Ethernet corresponent a la targeta - Engegueu la targeta, cada vegada que engegueu l'alimentació, cal posar amb "programa" a quarts el projecte compilat a la targeta. Això es fa a través del port micro-USB: per poder mostrar el resultat del programa, utilitzem més micro USB però UART. Amb massilla configurada per COM5 sèrie (o 6 períodes de gestiniari de rellotge) Connecteu-vos a la targeta. - Estableix una contrasenya (passwd) - Estableix l'adreça IP ifconfig ethcho IPchoice (IP no gaire diferent de l'et del PC) - Genera la capçalera segons Qsys amb el terminal incrustat (PATH d'exportació) - make - scp l exec a la mapa: executa sota massilla el prog

Pas 10: càlcul FFT

Càlcul FFT
Càlcul FFT

Per obtenir la transformada ràpida de Fourier al nostre programa C, utilitzarem una biblioteca escrita per Mark Borgerding: Kiss FFT. Podeu descarregar la biblioteca aquí: https://kissfft.sourceforge.net/. És necessari aplicar un FFT a un senyal per modificar i aplicar efectes de senyal. També pot servir per mostrar l'espectre d'un senyal.

El primer pas del programa C consisteix en assignar memòria per emmagatzemar el resultat FFT. La mida de la memòria depèn del nombre de punts utilitzats per calcular el FFT. Com més punts tingueu, més precís serà el FFT. Tanmateix, el programa funcionarà més lent i utilitzarà més memòria. Tingueu en compte que obtindreu dues matrius de la funció kiss_fft: l'entrada i la sortida de la funció (cx_in i cx_out)

Una vegada que la nostra matriu s'omple de nous valors FFT, és a dir, quan r = Win - 1, estem processant el FFT. Pel que fa a la visualització, només mostrem la part positiva de l’espectre, ja que hi ha una simetria entre la part negativa i la part positiva.

Pel que fa a l’eix horitzontal, estem reduint els valors dels pics en 100 * alçada / (alçada²) per tal de distingir els pics de les freqüències principals.

Estem utilitzant la trucada del sistema usleep per definir una freqüència de lectura dels valors ADC. Aquesta freqüència s'estableix actualment en 1, 5 Hz.

Pas 11: Visualització del FFT

Visualització del FFT
Visualització del FFT
Visualització del FFT
Visualització del FFT

Basant-nos en un exemple donat a la pantalla LCD TFT Adafruit disponible aquí: https://www.terasic.com/downloads/cd-rom/de0-nano-s… hem programat el NIOS de la nostra Junta perquè pugui llegir el valor ADC.

Per tant, el registre ADC es comparteix entre el NIOS i l’HPS perquè els valors ADC s’utilitzaran per mostrar el FFT a la pantalla NIOS, i aquests mateixos valors s’escriuran a l’SPI per tal de sortir de la placa i finalment convertir-los pel DAC per obtenir un senyal analògic.

Pas 12: Muntatge

muntatge
muntatge

Estem a punt d’acabar! Haureu de muntar totes les parts del projecte (circuit d’entrada, circuit de sortida i placa). Assegureu-vos de connectar les peces per corregir els pins segons el Projecte Quartus.

  1. El circuit d'entrada enviarà el senyal d'àudio captat pel micròfon, amplificat, filtrat i offset.
  2. El programa C present a la targeta llegirà els valors de l’ADC tal com hem vist anteriorment i l’escriurà a l’SPI per poder recuperar el valor al GPIO de la targeta.
  3. A continuació, la sortida GPIO de l’SPI transmetrà la informació que serà descodificada pel nostre DAC i amplificada executant-se per arribar a l’altaveu.

Pas 13: Efectes de so

Efectes de so
Efectes de so
Efectes de so
Efectes de so

L’únic pas que queden són els efectes sonors.

Els efectes disponibles són:

  • Filtre d'alta freqüència
  • Filtre de baixa freqüència

Podeu canviar entre efectes gràcies a un botó. Aquest botó canviarà una variable del nostre programa C, de manera que pot aplicar l’efecte adequat.

Pas 14: [OPCIONAL] Fabricació del casc

[OPCIONAL] Fabricació del casc
[OPCIONAL] Fabricació del casc
[OPCIONAL] Fabricació del casc
[OPCIONAL] Fabricació del casc
[OPCIONAL] Fabricació del casc
[OPCIONAL] Fabricació del casc

Aquí es troba al pas més manual del projecte:

  1. Primer vam enganxar les diferents parts impreses en 3D del casc.
  2. Per omplir els buits entre les peces enganxades hem afegit un acabat amb un llapis 3D.
  3. Vam polir els intersticis plens amb el bolígraf i el casc de manera més general perquè la pintura s’aguanti bé després.
  4. Vam pintar el casc amb 2 capes: la primera de negre antracita, de prop, i una segona de color verd primari de més enllà per donar tons de verd més fosc.
  5. Finalment vam imprimir el logotip de la nostra escola al lateral del casc

Recomanat: