Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

13/10/2013 #1

Avatar de KIRITO

Pedal de Guitarra con PIC?
Hola a todos de nuevo vengo con una duda que me corroe como el acido sobre placa...
Es posible hacer un pedal de guitarra digital (o varios) programandolo dentro de un PIC?
Si fuera posible enseguida estaria haciendo lineas de codigo jaja

Un Saludo Haaasta Luuuegorrrl! ...
13/10/2013 #2

Avatar de Nuyel

Eso es simple... NO!
Necesitas un DSP y sinceramente un dsPIC creo que tambien se quedaría corto, seria algo más especializado y no un microcontrolador de propósito general.
Por otro lado yo hice un efecto que emplea un PIC para conmutarlo por todas las opciones que tiene y se me ocurrió que seria simple implementar el PIC para encargarse de esa tarea controlando los 4066 y así reducir los todos botones a un par de "gestos".
13/10/2013 #3

Avatar de Melghost

Hola, KIRITO. Mi respuesta es: SÍ.

Tienes que conectar un conversor digital-analógico a la salida de uno de los puertos del PIC. De esa forma sacas el sonido una vez procesado. Y para la entrada, te basta con una de las entradas analógicas del mismo PIC.

Te recomiendo que elijas un PIC que permita una frecuencia de funcionamiento alta y que utilices un cuarzo para el oscilador.

También te recomiendo que elijas una gama que incluya un set de instrucciones potente, como los PIC18Fxxxx. Probablemente necesitarás hacer operaciones complejas con los datos que recibas en la entrada, y eso es mejor con un buen set de instrucciones. También necesitarás hacer muchos accesos a tablas en RAM de forma indexada.

Elige el PIC con más memoria RAM que puedas. Así podrás programar el efecto de reverb. Sin embargo olvídate de hacer Delay o grabación de bucles, a menos que pretendas trabajar a frecuencias muy bajas (y, por tanto, de poca calidad de sonido).

No esperes obtener la calidad de un pedal comercial, ni mucho menos grabar en un estudio. Pero si te lo curras, seguro que en un local de ensayo o en un concierto nadie nota la diferencia, y mola tocar con instrumentos de tu propia creación.

Hacia el año 1992 programé un multiefectos en un ATARI ST, al que le metía la señal mediante un conversor analógico-digital que yo construí y que conecté al puerto de cartuchos (que inicialmente era un puerto sólo para cartuchos). Programé una distorsión, delay, reverb, y alguna cosilla más. Eso hoy en día no tiene mucho misterio, pero consulta cómo estaba la informática por aquellas fechas. Lo hice todo en ASM del MC68000 (8 MHz).

¿Se puede...? La respuesta SIEMPRE es SÍ. La única cuestión es CÓMO.
13/10/2013 #4

Avatar de ByAxel

Para efectos de sonido un PIC18 no creo, necesitas un nivel mejor de procesamiento... doy mi voto por los dsPIC y hay librerias para DSP.

Audio and Speech

Saludos.
13/10/2013 #5

Avatar de Melghost

Claro, mejor cuanta más capacidad de procesamiento.

Pero todo depende de lo que se pretenda obtener. En el ATARI sonaba muy bien. Ni por asomo hubiera servido para un uso profesional; pero en ese caso, mejor comprar un pedal creado específicamente para eso.

Cada cosa tiene sus requerimientos. Creo que con un PIC18Fxxxx se puede hacer un pedal que sorprenda a más de uno. Tiene potencia de sobra. Pero claro, no para un estudio de grabación. Para empezar estaría limitado a 8 bits (o el proyecto se complicaría muchísimo para 16 bits).

Sin duda, mejores resultados con dsPIC, como dice ByAxel.
13/10/2013 #6

Avatar de Nuyel

Melghost un MC68000 no es un PIC y decir que uno serie 18F de 8bits se le puede comparar menos el 68000 no es un microcontrolador, es un microprocesador sus capacidades son muy diferentes.
14/10/2013 #7

Avatar de KIRITO

Mi idea era hacer uno simplemente por hacer uno experimentar por decirde otra forma xD
20/10/2013 #8

Avatar de Melghost

Cierto, no es lo mismo un MC68000 que un PIC18Fxxx.

El MC68000 trabajaba a 8 MHz y tenía tecnología CISC. Una división o multiplicación le podía llevar tranquilamente 60 ciclos de reloj. Además, al ser un microprocesador, necesitaba una infraestructura a su alrededor para funcionar: Mínimo una ROM para albergar el programa, y una RAM para albergar los datos. Circuitos lógicos para diferenciar los accesos a memoria de los accesos a los puertos, y más cosas. Por supuesto, no tenía entradas analógicas, así que haría falta también un conversor (como fue mi caso). Todo eso es difícil meterlo en un pedal. En un ATARI es más fácil.

Sin embargo, el PIC18F87K90 por ejemplo, trabaja a 64 MHz, tiene tecnología RISC y, por ejemplo, te hace una multiplicación en un único ciclo de reloj. Al ser un microcontrolador, viene provisto de un montón de recursos que le hacen ser casi independiente. No necesitas chips externos para albergar el programa ni los datos, y tiene 24 entradas analógicas de 12 bits (te podrías hacer una mesa de mezclas muy molona).

No es por generar polémica, pero sigo diciendo: Mi respuesta siempre es: SE PUEDE.
20/10/2013 #9

Avatar de electroandres

Obvio que se puede, pero sera dificil. Tenes que aplicar analisis de señales y aplicarles alguna transformada. Analisar la señal en frecuencia.
21/10/2013 #10

Avatar de Melghost

Sí, bueno, cada efecto lleva su análisis. Estos efectos son fáciles:

Para cambiar el volumen basta con hacer una multiplicación y una división (sería como multiplicar por una fracción)

Aprovechando ese sistema de cambiar el volumen puedes hacer un vibrato, mediante un bucle que vaya cambiando el volumen con el tiempo.

Para una distorsión aumentas el volumen, y recortas mediante comparaciones por ejemplo.

Para una reverb ya tienes que tirar de RAM y hacerte un buffer circular (FIFO) de tamaño configurable, en el que vas mezclando lo que ya había con lo que entra. A lo que había en el buffer, antes de la suma hay que atenuarlo un poco (valor configurable).

También se puede hacer un ecualizador. Para cada banda yo aplico un algoritmo en el que me imagino una bola que trata de seguir la onda (como si fuera una pelota en el mar). Pero esta bola tiene una masa y, por tanto, una inercia, así que le cuesta seguir los movimientos de la onda. De esta forma haces un filtro pasabajos que funciona bastante bien. Para un filtro pasaaltos haces exactamente lo mismo, pero al dato inicial le restas el resultado del pasabajos. Y para un pasabanda aplicas los dos.

Partiendo del ecualizador, si en una entrada analógica conectas un pedal analógico, te puedes hacer un wah-wah variando los parámetros del ecualizador.

Un delay sería exactamente igual que la reverb, pero requeriría una memoria externa para hacer un buffer más grande. Esto, con un microprocesador no tiene problema (ya cuentas, quieras o no, con esa memoria RAM externa). Es la mayor limitación que yo le veo a los microcontroladores; tienen muy poca RAM.

En general, creo que hay muchos efectos que se pueden programar con un poco de imaginación. Pero si necesitas un análisis de frecuencias, la cosa efectivamente se complica. Bueno, seguro que hay muchos más trucos.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.