Atención

Como consecuencia de la incorporación de un segundo módulo ultrasonidos, el grupo G6C de motores ha cambiado. Ahora tiene asignados los puertos 12, 13 y 16. Los dos primeros no varían respecto a la situación inicial, en cambio, el último se utiliza en lugar del anterior puerto 14 y corresponde al codo del brazo derecho. El puerto 14 así como el 15, que constituyen el puerto Sonar 7 pasan a ser utilizados para ultrasonidos.

Documentación Disponible

Para acceder al programa deseado solo teneis que hacer click en el vínculo y en la página que os direcciona clickear en "Click here to start download". La memoria colgada es una versión provisional a falta de la definitiva.

martes, 24 de abril de 2007

Haciendo hablar a Robonova

Tras la sesión de demostración de las practicas especiales que se llevó a cabo en semanas anteriores nos hemos dividido el trabajo para avanzar en dos direcciones. Por un lado se esta trabajando con los ultrasonidos (Ver entradas del blog publicadas por Eisen) y por otro lado se esta trabajando con el Coldfire para que el robot pueda hablar e ir comentando las cosas que va haciendo, como por ejemplo cuando mida una distancia con los ultrasonidos que diga el valor de la distancia a la que se encuentra del objeto.


Durante estos días se ha estado trabajando con el DAC (Convertidor digital-analógico) del Coldfire. Para poder reproducir audio con el Coldfire primero nos tenemos que generar un array en C que contenga las muestras de la señal y posteriormente ir recorriendo dicho array enviando las muestras al DAC, generando este una señal analógica que podremos escuchar si conectamos unos auriculares a la salida del DAC.

El siguiente código se encarga de recorrer el array “A” e ir enviando las muestras al DAC,


for(;i <>

DAC_dato(A[i]);

}


pero las manda a la máxima velocidad que permite, con lo cual tendremos que introducir un retardo para que la frecuencia de envió de las muestras del DAC corresponda con la frecuencia de muestreo de la señal (tipicamente en nuestro caso sera de 8000 Hz) para que se reproduzca correctamente, por ello el código quedara como sigue:


int i=0;

for(;i <>

DAC_dato(A[i]);

sleep(1); //Esperamos 1/8000 segundos

}


Se puede consultar el programa completo en C en la siguiente dirección: http://docs.google.com/Doc?id=dgs9sf7s_2gh37zr

No hay comentarios: