• Muy bueno!
    Ademas ese PIC te va a permitir hacer muchas cosas mas...o si te pasas al 18F2550 tener USB smile

    Eso si....vas a tener intentar dormir en algun momento! smile

    Saludos!
     

  • Me interesa mucho el tema USB, por ahora tenemos un par de cosas hechas con RS232 y se esta complicando, por ejemplo una alarma que se configura desde la PC, pero ya la mayoria de las PCs no trae puerto serie y para complicar mas las cosas los adaptadores de USB a RS232 anda uno peor que el otro, se pierden datos en la comunicacion. Estuve mirando chips que hagan la conversion, encontre alguno que se consigue y es facil de conectar, incluso tambien hablaban de el en tu sitio, asi que por ahora con eso zafamos. Pero para los futuros proyectos muy probablemente encare algo directamente con USB, al sintetizador pensaba ponerle ese chip y dejar la interfaz RS232 para que se tenga las dos opciones en el modo serie, pero la verdad es que no se que tanto sentido pueda tener un sintetizador de voz por hard en un host USB, ya que eso es casi con seguridad una PC moderna que puede perfectamente sintetizar voz por soft.
    A vos se te ocurre alguna razon para que tenga conexion USB?
     

  • Mmmm....
    Si el chip solamente va a ocuparse del sonido no le veo demasiada utilidad, tenes razon. Pero como vas a tener varios pines libres (casi todos!) y espacio de memoria disponible, quizas se podria implementar (por ejemplo
    ) un controlador de teclado y LCD o cosas asi en las que tendria mas sentido agregar USB.

    Pero.....visto como un "periferico" tenes toda la razon: el USB es al dope smile
     

  • Si, en realidad al proyecto actual en un momento pense en agregarle USB pero despues me di cuenta que un host USB es una computadora (PC, Mac, Tablet, Palm, Celular, etc.) de al menos 300MHz, que puede perfectamente sintetizar voz por soft, ni hablar si encima tiene hard de aceleracion que facilite eso (descompresion mp3 o de otro tipo, etc.). En otro momento lo habria visto factible por ignorancia de que un microcontrolador no tiene el poder para ser host USB, eso lo descubri cuando investigue como controlar una impresora USB desde un PIC, sin exito, claro.
    Es una lastima que no pueda usar un PIC16 para ese nuevo proyecto, por el tema de las palabras de 14 bits, tal vez podria hacer una version de 7 bits de resolucion y entonces entraria el nuevo motor con sonido almacenado, pero los unicos PIC16 que tienen la opcion de acceder a memoria de programa para leer datos son los mas grandes, asi que en este caso un PIC16F876 seria lo minimo. Sigue siendo un chip grande para una aplicacion "reducida", y es un chip viejo, lo que supongo acorta la diferencia de precio con un 18F2520 (la verdad no tengo idea de los precios actuales de esos chips), por lo cual por las complicaciones que implica no vale la pena el esfuerzo del PIC16.
    Por otro lado el PIC18F2520 (o 2550) es una exageracion de hard, asi que seria interesante como un periferico multiple para el proyecto de la computadora, empezando por implementar un par de UARTs para RS232, chip de sonido estilo SID6581, tal vez incluso lectura PS/2 para teclado y mouse, esto logicamente ademas de la voz. No creo que de para tanto, pero tambien hace falta un chip que haga de interfaz con una memoria SD.
    En fin, aplicaciones sobran para el futuro cercano, seguro que algo voy a hacer para aprovechar el chip al maximo y minimizar los componentes de la computadora.
     

  • El tema del precio puede que no sea problema....El 18F2550 cuesta menos de 10 u$s en Argentina. A veces pasa que los chips mas nuevos cuestan menos que los mas viejos. El 16F887, por ejemplo, cuesta menos que el 16F877 y tiene muchas cosas mas....Asi que ese no creo que sea el problema.

    Todo lo que tenes en mente esta muy bueno. Pero lo de hacer algo del estilo del SID es lo mejor de todo!!!!!! Seria genial!

    Volviendo al sintetizador de voz....suponiendo que forme parte de una alarma controlada por PC, por ejemplo, podria atender ademas de la generacion de sonidos la comunicacion con la PC, ahorrandote el coste del chip FT232 o el que estes usando para la interfaz USB. Ese "exceso de potencia" se puede aprovechar seguramente wink

    Salutes!
     

  • Todavia no investigue el tema USB, no tuve mucho tiempo para leer hojas de datos, yo sigo prefiriendo programar en assembler y se que voy contra la corriente, mas aun en un PIC18, asi que tengo que investigarlo a fondo porque es muy probable que los ejemplos resueltos y librerias no me sean de mucha utilidad. Por otro lado, mis programas hace años se construyen alrededor del motor de sonido, por ejemplo hice la deteccion de DTMF integrandola a la misma interrupcion de 7.8KHz del sintetizador viejo, la misma interrupcion reconocia los tonos y emitia ahi mismo el digito hablado con el sintetizador hacia la linea telefonica. Ahora la comunicacion RS232 esta implementada acoplada a la interrupcion, ya que 300 bps es demasiado bajo para el hard del PIC asi que hay que hacerlo contando interrupciones, lo que me preocupa es que tanto se acople la comunicacion USB a mi programa, ya que prefiero no usar otras interrupciones que interfieran con el sonido.
    Volviendo al tema del multiple periferico, todo esta relacionado, acordate que empece esto haciendo un emisor DTMF, el cual emite dos ondas senoidales y las mezcla, asi que ahi mismo en 2005 inicie otra rama del desarrollo para que el sintetizador genere notas musicales, de hecho ahi fue que la voz se ajusto a la frecuencia de una nota musical, C3 (Do de la tercera octava) lo cual de yapa hizo que el sonido sea mas natural, aunque robotico (con el mismo tono siempre, pero antes era peor). El sintetizador actual estaba ajustado dos notas mas abajo, en A#2 (nota LA sostenido de la octava 2), aunque casi inmediatamente se bajo aun mas la frecuencia y ahora quedo entre 2 notas, es decir desafinado. biglaugh.png
    Asi que recien ahora resigne la "compatibilidad" con el sistema musical, y lamentablemente la rama que inicie hace años para agregar multiples canales de sonido y escalado de notas en tiempo real quedo congelada hasta tener tiempo para implementarla.
    La idea de hacer dos sintetizadores mas, el digital y el analogico, es justamente por un lado hacer algo mas natural y utilizable (el digital) y por otro lado retomar el sintetizador musical ya que la generacion "analogica" se trata justamente de emitir ondas senoidales a cualquier frecuencia, mezclarlas y aplicarles algun efecto, lo que es basicamente el chip de sonido estilo SID. Trato de que un desarrollo sea la excusa para avanzar otro que por si solo no avanzaria. wink.png
    Lastima que no encontre excusa comercial para el sintetizador de voz, aunque si pude aprovechar cosas desarrolladas originalmente para eso, pero por el momento es puro hobby nomas. Con el tema del USB para el periferico de la computadora, lo util seria que se pueda de alguna manera conectar la computadora a la PC y que aparezca como un dispositivo de almacenamiento masivo, asi uno podria cargarle programas mas facilmente, haciendo eso ni haria falta que la SD tenga formato FAT, solo que aparezca ante la PC como si fuera FAT. La tarjeta SD estaria formateada directamente por la computadora en algun sistema propietario y seria de acceso local.
     

  • Yo de ASM no tengo prácticamente idea. Pero estimo que si bien es casi indispensable para hacer el tema de la síntesis de sonido, para manejar algo como una conexión USB o una tarjeta SD puede resultar demasiado tedioso....

    No dejes de pensar en el sintetizador como una "aplicacion comercial". Yo creo que un chip programado con ese soft, accesible via RS-232 o SPI desde otro micro, con una "interfaz" simple de usar ( que permita comandos tipo "say ("hola") ) se puede vender muy bien.

    Como hobbysta me puedo imaginar muchas cosas usando un chip asi... Y tranquilamente pagaría el doble o el triple de lo que cuesta un PIC virgen por ese chip. No parece mucha ganancia, pero pensá que seguramente venderias cientos de unidades. Y no solo en Argentina! wink
     

  • Comercialmente hasta ahora, lamentablemente para mi, los chips con voz grabada le roban el lugar a un sintetizador de voz, salvo que logre hacer algo con voz mas natural, ahi tal vez tendria una oportunidad en alguna que otra aplicacion. Por ahora como dije es hobby, y de empecinado que soy nomas, mi alarma va a tener sintetizador aunque sea la unica unidad que lo tenga. biglaugh.png
    Eso por el lado de alguna aplicacion que use el sintetizador, por el lado de venderlo propiamente como sintetizador, lo mas barato que vi ronda los 25 dolares aproximadamente y con fonemas en ingles, pero suelen ademas generar otros sonidos basicos, algo asi como un chip de sonido minimo. Yo le vi el mismo margen de ganancia que me comentas, y creo que es el tope, por el momento le veo mas aplicacion como modulo RS232 para robots y otros proyectos, y para la futura computadora, va a salir solamente como modulo de voz y en cuanto termine la recepcion RS232 y el codigo para chequear comandos validos y convertir comandos a fonemas, me pongo a intentar hacer una version reducida en PIC12F683 con RS232 unicamente, que seria mas que practica para algunos proyectos. Hasta que no termine el analizador de comandos no se cuanto ocupara realmente el programa para poder reducirlo.
    Cuando tenga algo andando voy a distribuir 3 o 4 micros para que los prueben, el sintetizador no esta completo todavia, falta un sonido (SH) y ajustar algun otro que no esta del todo bien, pero seria una version alfa para que puedan experimentar que tanto se entiende, probar amplificadores, parlantes, algun filtro de salida mejor, e intentar conectarlo a alguna computadora retro.
    Ah, me olvidaba, leiste la actualizacion en mi web donde puse los comandos al final? No necesitas ni decir SAY, envias lo que queres decir, en el formato que habia puesto antes, cuando hice la prueba de acento cordobes, eso es el ASCII tal cual que envias por el puerto serie para que hable. Se podria decir que el chip es casi una impresora de texto RS232. wink.png
     

  • Nopes...:(
    Guardé tu pagina en favoritos pero no pude leer nada. Vengo doblando con las puertas por que quiero sacarme de encima un par de trabajos y -encima- el temita ese del clon de la Altair 8800 me robó varias horas. Espero el fin de semana poder leer tranquilo todo eso. wink
     

  • Bueno, para que tengas una idea rapida, diseñe la interfaz para que quede comodo tanto manejarlo desde un programa (un PIC, una PC) como desde una terminal. El modo mas rapido de probar el chip es conectar una terminal por RS232 usando 300,8N1 y tipeando directamente el texto, los "comandos" no son mas que los caracteres ASCII de los sonidos, solo los llamo asi porque no hay una correspondencia directa entre los caracteres y los fonemas, por ejemplo como hay fonema CH, y encima dos versiones (CH y CH1), al recibir una C el chip tiene que esperar para saber si el proximo es una H, si no es asi emite K, si viene una H, tiene que esperar a ver si viene un 1 para saber que sonido hacer. Por eso son comandos, C, CH, CH1, etc.
    Pero si queres que hable desde una terminal, que diga SALUDOS, RETROCOMPUTACION, tipearias algo como:

    SALU+DO-S,RETROKOMPUTASIO+N

    U+ es la u con acento, lo mismo O+ es la o acentuada, O- es el acento al reves, con tono mas bajo, para silaba de fin de oracion o pausa. El chip hace eco de lo que recibe asi que irias viendo lo que tipeas en la terminal misma, o asterisco si es un caracter no valido. Mas facil imposible, por eso me estoy atrasando tanto, sino ya habria salido.
     

Moderador (s): homecomputer, Selandari, ArielP, pastbytes, Durandal