fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Grabar audio con un PIC ????

9 Respuestas
7 Usuarios
0 Reactions
6,395 Visitas
Norte
Respuestas: 24
Topic starter
(@norte)
Eminent Member
Registrado: hace 18 años

Hola, alguien a probado a grabar audio con algun PIC ???? Ando en busca de informacion pero no hay mucha....... en fin a ver si alguien se ha atrevido alguna vez con este tema, saludos.

Responder
8 respuestas
gizer20
Respuestas: 1570
(@gizer20)
Noble Member
Registrado: hace 19 años

Y siguiendo con la pregunta logica gravar video seria tan sencillo? aunque siguiendo con la logica se que no pero quiero saber el porque

Responder
joviwap
Respuestas: 301
(@joviwap)
Ardero
Registrado: hace 20 años

Desgraciadamente para el vídeo se te quedará corto el pic, aunque si pones un conversor A/D externo (más rápido) y la imagen no es de demasiada calidad... pues posiblemente si que puedas. Pero en cualquier caso no tendrías potencia para hacer más que guardarla.

Un saludo.

Responder
chandra
Respuestas: 68
(@chandra)
Trusted Member
Registrado: hace 19 años

Grabar video ya son palabras mucho mayores.

Para simplificar, podemos considerar dos tipos distintos de señal de video, las analogicas y las digitales.

En el caso de las analogicas, se trata de señales con un ancho de banda de unos 4MHz, lo que significa que entre la frecuencia mas baja y la mas alta hay una diferencia de 4MHz. Por cuestiones matematicas excesivamente complejas para resumir ahora, nos creeremos que necesitamos el doble de muestras por segundo para poder guardarla. Esto son unos ocho millones de muestras por segundo. Y ademas en este caso necesitariamos algo mas que un byte por muestra para poder tener una calidad aceptable (por lo menos dos). Esto seria una forma muy cutre de hacerlo, y desde luego no es como se digitaliza video en la vida real.

Por lo tanto nuestro pic debe ser capaz de manejar como minimo 16 Millones de bytes por segundo. Teniendo en cuenta que los mas rapidos, a 20 MHz son capaces de ejecutar 5 millones de instrucciones por segundo, habria que mover mas de tres bytes en cada instruccion, lo cual es evidentemente imposible.

La otra aproximacion, que es la que de verdad se utiliza en la realidad, es la de utilizar una señal "digital", pero esto implica procesar a bajo nivel la señal de video. La idea basica es digitalizar la señal, pero en vez de una digitalizacion que despues requiera volver a generar la señal analogica, se trataria de extraer directamente la informacion de cada pixel. Esto SI que seria posible con un PIC, pero a costa de perder gran cantidad de informacion de la imagen. Una imagen de video normal tiene una resolucion de unos 600x800 pixels, es decir, de casi medio millon de pixeles. Ese medio millon de pixels hay que multiplicarlo por 25 imagenes distintas por segundo, y nos dan unos 12 millones de pixeles por segundo. Si digitalizamos cada pixel en escala de grises con un byte, tendriamos que guardar 12 millones de bytes cada segundo. Pero como esta vez estamos digitalizando pixel a pixel, podemos "olvidarnos" de todos los pixeles que no podamos procesar.

Si reducimos la resolucion de cada imagen a 20 x 20 pixels, se nos queda en 400 bytes por imagen, que por 25 imagenes cada segundo, son un total de 10000 bytes por segundo, capacidad que si que tenemos segun el ejemplo del audio. Aunque esa seria una resolucion muy pequeña para utilizar por humanos, puede ser interesante para hacer experimentos de vision artificial.

Las señales de video llevan una informacion especial, llamada señal de sincronismo, que sirve precisamente para sincronizar el comienzo de cada imagen. Lo que tendriamos que hacer entonces es poner al PIC a esperar que detecte esta señal especial. Una vez que ha sido detectada sabemos que estamos al principio de una imagen. Solo tendriamos ajustar el temporizador de captura de datos para saber cuando va a aparecer exactamente el pixel que nos interesa (aproximadamente uno de cada 40) y capturarlo. Tambien habria que "convertir" solo una linea de cada 40, por lo que cada 20 pixels capturados habria que introducir un retardo mucho mayor para esperar a la siguiente linea a caputar (utilizando tambien las señales de sincronismo).

Hay algunos problemillas adicionales, como el hecho de que realmente se transmiten 50 imagenes por segundo, pero a la mitad de resolucion cada una, y por tanto habria que tenerlo en cuenta a la hora de sincronizar, pero seguro que si alguien se atreve con un proyecto de este calibre, estara muy familiarizado con las señales de video.

Hay algunos proyectos con señales de video y PICs, los mas interesantes son las CMU Cam, que utilizan camaras digitales y una version especial de los PIC (ahora creo que fabricados por Parallax) para proyectos de vision artificial, y un juego de PONG con un PIC, que hace exactamente lo contrario, es decir, genera una señal de video con un PIC. Es una flipada y se puede ver como hay gente que de verdad se aburre mucho (y que se pueden hacer cosas alucinantes con una de estas pequeñas criaturitas).

http://www.cs.cmu.edu/~cmucam/
http://www.rickard.gunee.com/projects/v ... c/pong.php

Para que veais que no hacen faltan supermaquinas con infinita memoria y capacidad de calculo para hacer cosas realmente curiosas. Solo hacen falta un poco de imaginacion y creatividad.

Saludos

Responder
garrocha
Respuestas: 1110
(@garrocha)
Ardero
Registrado: hace 20 años

Resucitando hilos muertos, a traves de la PicListLatina he encontrado un conversor de "WAV a ASM" :mrgreen:

http://www.romanblack.com/picsound.htm

Responder
Página 2 / 2
Compartir: