Tabla de contenido:

Casco Spartan Voice Changer: 14 pasos (con imágenes)
Casco Spartan Voice Changer: 14 pasos (con imágenes)

Video: Casco Spartan Voice Changer: 14 pasos (con imágenes)

Video: Casco Spartan Voice Changer: 14 pasos (con imágenes)
Video: LEGIONES ASTARTES - The Emperor's Angels | Warhammer 40k Lore 2024, Diciembre
Anonim
Casco Spartan Voice Changer
Casco Spartan Voice Changer
Casco Spartan Voice Changer
Casco Spartan Voice Changer

¡Hola! Somos un equipo de 4 estudiantes de la escuela politécnica de la Universidad de la Sorbona:

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

Este proyecto se realiza como parte de nuestros estudios, y tiene como objetivo tomar en la mano una serie de herramientas, así como demostrar nuestros logros teóricos.

El famoso objeto adquiere la apariencia de un casco parecido al del héroe de cierto videojuego cuyo nombre se perderá. Por el lado del diseño también tenemos una pantalla que muestra la transformada de Fourier de la señal de audio que sale del altavoz. El propósito de este auricular es cambiar la voz del operador en tiempo real utilizando una serie de efectos seleccionables.

Metas educativas:

  • Captura el sonido de un micrófono
  • Amplificar, filtrar, digitalizar la señal
  • Darse cuenta de la FFT de una señal
  • Muestre esta FFT en una pantalla
  • Síntesis de señales
  • Saca un sonido de un altavoz
  • Realice efectos sobre el sonido del audio (reverberación, eco, etc.)

Ahora que hemos puesto los antecedentes y presentado el proyecto, ¡es hora de ponerlo en tus manos!

Paso 1: Requisitos 1/3 - Hardware

Requisitos 1/3 - Hardware
Requisitos 1/3 - Hardware

Para construir con éxito su casco, necesitaremos algo de hardware para ejecutar el dispositivo.

  • Placa de desarrollo DE0-Nano-SoC de Terasic + Pantalla LCD TFT Adafruit (Arduino)
  • Acceso a una impresora 3D para hacer el casco (si eres estudiante universitario muévete más cerca de tu universidad, algunas tienen laboratorios accesibles para estudiantes)
  • Una computadora con conexión a Internet y un mínimo de conectividad (USB, Ethernet). Su computadora también debe tener un procesador fuerte, ya que la compilación de programas en Qsys lleva mucho tiempo.
  • (No se requiere) Una impresora que hace placas de circuito impreso (PCB) a partir de archivos Gerber para reducir el tamaño del circuito + un soldador para colocar los componentes en la PCB.
  • (Muy recomendable): Un buen café para disfrutar de tu trabajo con nuestro Instructable:)

Paso 2: Requisitos 2/3 - Componentes para su circuito

Requisitos 2/3 - Componentes para su circuito
Requisitos 2/3 - Componentes para su circuito
Requisitos 2/3 - Componentes para su circuito
Requisitos 2/3 - Componentes para su circuito
Requisitos 2/3 - Componentes para su circuito
Requisitos 2/3 - Componentes para su circuito

Estos son los componentes necesarios para su circuito:

  • Amplificador de audio de clase Texas Instrument LM386 AB
  • Tablero de circuitos
  • Juego de cables Macho-Macho, Macho-Hembra
  • Convertidor de digital a analógico (DAC) LM358P
  • Vocero
  • Pequeño micrófono utilizado en circuito analógico
  • Un juego de resistencias de 1kOhm a 220kOhm
  • Condensador 1.5nF
  • Condensador 50nF
  • Condensador 100nF
  • Condensador 100uF
  • Condensador 220uF
  • x4 Condensadores 10uF

Paso 3: Requisitos 3/3 - Software

Requisitos 3/3 - Software
Requisitos 3/3 - Software
Requisitos 3/3 - Software
Requisitos 3/3 - Software

Por último, pero no menos importante, necesitará software:

  • Quartus 15.1: versión Lite
  • Un compilador de C (gcc por ejemplo)
  • Altium para diseño de PCB
  • Suite integrada SoC de Altera para comunicarse con el mapa SoC

  • Masilla

Paso 4: circuito de entrada

Circuito de entrada
Circuito de entrada
Circuito de entrada
Circuito de entrada
Circuito de entrada
Circuito de entrada
Circuito de entrada
Circuito de entrada

Construyamos el circuito. Utilice la imagen de arriba del circuito para montarlo en su tablero. También verá la imagen de la BreadBoard y el circuito interior para ver cómo están conectados los pines. Todo el circuito se alimenta con una corriente continua (CC) de 5V. Para ello, puede utilizar una batería de 5V con un convertidor USB-B o un generador de funciones.

Algunos recordatorios:

  • La fuente de alimentación de 5 V y la tierra están conectadas en líneas horizontales separadas de la placa de pruebas
  • Si desea conectar 2 componentes en paralelo, colóquelos en una línea común de la placa de pruebas
  • Si desea conectar 2 componentes en serie, los componentes deben tener solo un pin en una línea común de la placa de pruebas.

No dude en ver un tutorial dedicado sobre cómo usar una placa de pruebas y crear un circuito en ella. Además, no olvide leer atentamente la posición de las clavijas del amplificador de audio LM358P (consulte la imagen de arriba)

Paso 5: circuito de salida

Circuito de salida
Circuito de salida
Circuito de salida
Circuito de salida
Circuito de salida
Circuito de salida
Circuito de salida
Circuito de salida

Son las mismas instrucciones que en el paso 4. Las cuatro entradas: SDI, no CS, SCK, no LDAC son de su placa DE0-Nano-Soc. Veremos más adelante cómo generarlos.

No olvide leer atentamente las posiciones de los pines del amplificador de audio LM386 (vea la imagen de arriba)

Paso 6: [OPCIONAL] Creación de componentes de soldadura y borad de circuito impreso

[OPCIONAL] Creación de componentes de soldadura y borad de circuito impreso
[OPCIONAL] Creación de componentes de soldadura y borad de circuito impreso
[OPCIONAL] Creación de componentes de soldadura y borad de circuito impreso
[OPCIONAL] Creación de componentes de soldadura y borad de circuito impreso
[OPCIONAL] Creación de componentes de soldadura y borad de circuito impreso
[OPCIONAL] Creación de componentes de soldadura y borad de circuito impreso

Si tiene la suerte de tener una impresora de placa de circuito o puede utilizar una, crearemos nuestra propia placa de circuito impreso (PCB). Tenga en cuenta que este paso es opcional. Este paso solo consiste en mover su circuito de una placa a una PCB.

Necesitará estos 2 archivos GERBER.

Estos archivos se crearon en Altium. Úselos en el software de su impresora de PCB para imprimir su PCB. Una vez que obtenga su PCB, asegúrese de que esté limpio y que las pistas estén impresas correctamente.

Ahora aquí viene el verdadero problema: soldar. Las 2 imágenes de arriba son el mapa del circuito en la PCB. Cada componente tiene nombres (R6, C4, MK1, etc.). Las imágenes de los pasos 4 y 5 muestran los parámetros de los componentes (resistencia, conductancia …). Coloque cada componente de su placa de pruebas en la PCB de acuerdo con sus nombres.

Una vez que haya soldado todo con su soldador, pruebe todos los componentes con un voltímetro para verificar si hay algún cortocircuito.

Paso 7: Configuración de SoC

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

Con respecto a la configuración de SoC, deberá ejecutar algunos comandos y scripts incluidos en el paquete integrado de SoC dentro de una terminal. Para hacer esto, necesitará agregar algo de $ PATH. PATH se utilizan dentro de una terminal para decir que busque un archivo en los directorios dados por la ruta cuando está ejecutando un comando. Para hacerlo, escriba la siguiente línea de comando:

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

Luego escriba la línea de comando para generar encabezados a partir de un archivo sof. El archivo sof se obtiene compilando su proyecto en Quartus. Para hacerlo, escriba:./generate_header.

Paso 8: Programación de C HPS

Programación C HPS
Programación C HPS

Necesitamos darnos cuenta de 2 cosas en esta parte, a saber, leer, leer el valor del ADC y escribirlo en el SPI.

1. Lea el valor del ADC

La dirección de la memoria en la que está contenido el ADC no es directamente accesible, de hecho, el sistema Linux presente en la tarjeta establece una abstracción de la memoria. Para acceder realmente a la dirección ADC usaremos la función mmap.

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

Esta instrucción permite agregar un offset al comienzo de la dirección base para llegar a la dirección de la memoria asignada para el ADC, y realizar en la dirección resultante un AND lógico para tener en cuenta el enmascaramiento.

Posteriormente, solo será necesario desreferenciar el puntero en el programa para obtener su valor.

2. Escriba el valor del ADC en el SPI

La manipulación es idéntica, esta vez le damos al mmap el desplazamiento para aterrizar en la dirección asignada por el SPI. Al escribir en el SPI, la documentación técnica especifica que debe escribir a la dirección + 1 el valor del adc.

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

Esta instrucción le permite escribir en el SPI. De hecho, el bit 4, entonces 1 << 12, es el bit que permite activar el SPI. Con un OR lógico, por lo tanto, damos tanto el bit de activación como el valor del ADC al SPI.

Paso 9: Adquisición digital del ADC de la tarjeta

Adquisición digital del ADC de la tarjeta
Adquisición digital del ADC de la tarjeta
Adquisición digital del ADC de la tarjeta
Adquisición digital del ADC de la tarjeta
Adquisición digital del ADC de la tarjeta
Adquisición digital del ADC de la tarjeta
Adquisición digital del ADC de la tarjeta
Adquisición digital del ADC de la tarjeta

En primer lugar, deberá configurar la dirección IP de Ethernet de su computadora a través del Panel de control -> Red -> Card Parmesals. Seleccione la interfaz ethernet de la tarjeta, propiedad, dirección ipv4 e ingrese una IP fija, una máscara, etc.

A continuación, conecte la tarjeta desde el lado del conector de alimentación con el cable micro USB. Abra el programador Quartus y ejecute la exportación. Esta manipulación se volverá a realizar después de cada apagado de la tarjeta.

Cambie el cable del conector micro USB, para conectar esta vez junto al conector Ethernet. Ahora, con Putty será necesario conectarse a la tarjeta mediante enlace serie. La configuración es visible en las fotos, la idea es reemplazar COM5 por COM seguido del número que puedes encontrar en tu administrador de dispositivos (haz clic derecho en el logo de Windows para abrirlo).

Pulsa enter, estás conectado.

Información para reiniciar el proyecto: - Corregir la ip ethernet correspondiente a la tarjeta - Encienda la tarjeta, cada vez que encienda la energía, es necesario poner con "programa" en cuartel el proyecto compilado en la tarjeta. Esto se hace a través del puerto micro-USB - Para poder visualizar el resultado del programa usamos más micro USB pero UART - Con masilla configurada para COM5 serial (o periferia gestinnaire de 6 relojes) Conectar a la tarjeta. - Establecer una contraseña (passwd) - Establecer la dirección IP ifconfig ethxx IPchoice (IP no muy lejos de la de eth de la PC) - Generar el encabezado de acuerdo con Qsys con el terminal integrado (export PATH) - make - scp l exec en el mapa - ejecutar bajo masilla el prog

Paso 10: Cálculo de FFT

Cálculo de FFT
Cálculo de FFT

Para obtener la Transformada Rápida de Fourier en nuestro programa C, usaremos una biblioteca escrita por Mark Borgerding: Kiss FFT. Puede descargar la biblioteca aquí: https://kissfft.sourceforge.net/. Es necesario aplicar una FFT a una señal para modificar y aplicar efectos de señal. También puede servir para visualizar el espectro de una señal.

El primer paso en su programa C consiste en asignar memoria para almacenar el resultado de FFT. El tamaño de la memoria depende del número de puntos utilizados para calcular la FFT. Cuantos más puntos tenga, más precisa será la FFT. Sin embargo, el programa se ejecutará más lento y utilizará más memoria. Tenga en cuenta que obtendrá dos matrices de la función kiss_fft: la entrada y la salida de la función (cx_in y cx_out)

Una vez que nuestra matriz se llena con nuevos valores de FFT, es decir, cuando r = Win - 1, estamos procesando la FFT. En cuanto a la pantalla, solo mostramos la parte positiva del espectro, ya que existe una simetría entre la parte negativa y la parte positiva.

En cuanto al eje horizontal, estamos reduciendo los valores de los picos en 100 * altura / (altura²) para distinguir los picos de las frecuencias principales.

Estamos utilizando la llamada al sistema usleep para definir una frecuencia de lectura para los valores de ADC. Esta frecuencia está actualmente establecida en 1, 5 Hz.

Paso 11: Visualización de la FFT

Visualización de la FFT
Visualización de la FFT
Visualización de la FFT
Visualización de la FFT

Basado en un ejemplo de la pantalla LCD TFT de Adafruit disponible aquí: https://www.terasic.com/downloads/cd-rom/de0-nano-s … hemos programado el NIOS de nuestra placa para que pueda leer el valor ADC.

Por lo tanto, el registro ADC se comparte entre NIOS y HPS porque los valores de ADC se usarán para mostrar la FFT en la pantalla de NIOS, y esos mismos valores se escribirán en el SPI para que salgan de la placa y finalmente se conviertan por el DAC para obtener una señal analógica.

Paso 12: Montaje

Montaje
Montaje

¡Ya casi terminamos! Deberá ensamblar cada parte del proyecto (circuito de entrada, circuito de salida y la placa). Asegúrese de conectar las piezas a los pines correctos de acuerdo con el Proyecto Quartus.

  1. El circuito de entrada enviará la señal de audio capturada por el micrófono, amplificada, filtrada y compensada.
  2. El programa C presente en la tarjeta leerá los valores del ADC como hemos visto anteriormente, y lo escribirá en el SPI para que podamos recuperar el valor en el GPIO de la tarjeta.
  3. Luego la salida GPIO del SPI transmitirá la información que será decodificada por nuestro DAC y amplificada corriendo para llegar al altavoz.

Paso 13: efectos de sonido

Efectos de sonido
Efectos de sonido
Efectos de sonido
Efectos de sonido

El único paso que queda son los efectos de sonido.

Los efectos disponibles son:

  • Filtro de alta frecuencia
  • Filtro de baja frecuencia

Puede cambiar entre efectos gracias a un botón. Este botón cambiará una variable en nuestro programa C, para que pueda aplicar el efecto correcto.

Paso 14: [OPCIONAL] Fabricación del casco

[OPCIONAL] Fabricación del casco
[OPCIONAL] Fabricación del casco
[OPCIONAL] Fabricación del casco
[OPCIONAL] Fabricación del casco
[OPCIONAL] Fabricación del casco
[OPCIONAL] Fabricación del casco

Aquí estamos en el paso más manual del proyecto:

  1. Primero pegamos las diferentes partes impresas en 3D del casco.
  2. Para llenar los espacios entre las piezas pegadas, agregamos un acabado con un bolígrafo 3D.
  3. Pulimos los intersticios rellenos con el bolígrafo y el casco de manera más general para que la pintura se mantenga bien después.
  4. Pintamos el casco con 2 capas: la primera en negro antracita, de cerca, y una segunda de verde primario de más lejos para dar tonos de verde más oscuro.
  5. Finalmente imprimimos el logo de nuestra escuela en el lateral del Casco.

Recomendado: