sábado, 8 de marzo de 2008

Sintetizador de voz SPE030

La empresa inglesa Tech Supplies distribuye el sintetizador de voz SPE030. Existen dos versiones, una con voz femenina y otra con voz masculina, las dos con pronunciación inglesa, por supuesto. Se trata de un módulo muy pequeño, con unas dimensiones de 40 x 40 mm, que es, a su vez, el diámetro del altavoz. Este sintetizador se vende a un precio de 52,88 libras esterlinas.

La información sobre el módulo se ha obtenido del manual de PICAXE. El módulo sintetizador de voz SPE030 permite transformar en voz cualquier texto escrito. Su corazón es el circuito integrado sintetizador de voz Winbond WTS701. El módulo incorpora un amplificador de 325 mW LM386 y un integrado que gestiona las comunicaciones por el puerto serie ST232C. La actividad del módulo está gestionada por un microcontrolador PIC 16F872.

El módulo se alimenta con un portapilas de 4,5 voltios, aunque admite hasta 5 V. Lo he probado con tres pilas alcalinas de 1,5 voltios que proporcionan entre las tres 4,62 voltios y va perfectamente. También lo he probado con tres pilas recargables (Ni-MH) de 1,2 voltios que proporcionan 4,09 voltios y también funciona por un pequeño tiempo (Cuando baja a 4,02 voltios deja de funcionar). Al conectar el módulo a la alimentación eléctrica la voz lee el primer mensaje grabado. A continuación se ha de introducir el conector del puerto serie (Es importante hacerlo en este orden).

Su consumo es de 35 mA en reposo y de 60 a 100 mA cuando produce voz. Puede almacenar, programándolas desde un ordenador mediante el puerto serie, 30 frases, con un total de 1.925 “bytes“ disponibles. También se le puede enviar un texto cualquiera desde un microcontrolador PICAXE por medio de un bus de datos I2C. Para cargar las 30 frases desde un ordenador, utilizando el cable del puerto serie RS232, se utiliza un programa que se puede descargar desde la página web de PICASE.

Una vez instalado el programa se ha de seleccionar el puerto serie (COM 1 ó COM 2), también se pueden graduar el volumen (Volume), tono (Pitch) y la velocidad (Speed). En el ordenador que he utilizado el puerto era el COM2 y de las dos opciones que permite el programa he seleccionado “38400“, con la opción “9600“ NO SE CONECTA.

Cuando escribimos sobre algunas de las cinco filas que aparecen en la pantalla, en el recuadro de información que hay debajo, el programa nos informa de la cantidad de memoria ocupada y de la cantidad de memoria disponible (“Total Size of Phrases is ... bytes of 1925 available“). Los botones “Test“ y “Set“ permiten ir comprobando como se oirán los mensajes antes de grabarlos en el módulo SP030. Cuando se han editado los cinco primeros mensajes, se accede a los siguientes mediante el botón “PageDw“. De la misma forma se puede pasar a los mensajes anteriores mediante el botón “PageUp“.

Una vez redactadas las diferentes frases se hace clic sobre el botón “Program“ para cargar el programa en el módulo SPE030. Al hacerlo se comprime la información y se almacena en la memoria Flash del módulo. En la ventana del programa “SP03 Driver Version 7, Speech Module - Loader/Configurator/Tester“, debajo de la fila de los textos de los mensajes grabados, en el recuadro de la información del programa, aparece primero “Programming Phrase No...“, y después, “Finished Programming“, que nos informa de que las 30 frases ya se han cargado en la memoria del SPE030.

Al acabar de cargar las frases se deselecciona el botón “Test“, pero se puede volver a activar haciendo clic sobre una de las filas de los textos de las frases.

Al pulsar el botón “Program” NO se cargan, directamente, los valores de “Volume“, “Pitch“ y “Speed“. Previamente se ha de hacer clic sobre el botón “Test“ al ir editando cada frase.

El módulo sintetizador SPE030 puede trabajar de tres formas distintas.

  • MODO 1: De forma aislada.

Mediante pulsadores se puede conseguir que el SPE030 reproduzca cinco frases precargadas. Estos pulsadores han de instalarse para que conecten cada una de las cinco entradas del conector PL2 (Sel 0, Sel 1, Sel 2, Sel 3 y Sel 4) con el terminal de masa (Gnd, 0 voltios). Las entradas que no se utilizan se mantienen en posición alta mediante unas resistencias (4k7) instaladas en el interior del módulo.

Mientras se presiona el pulsador correspondiente a “Sel 0“ se escuchará la frase número 30 (%11110), si se hace con “Sel 1“ se oirá el mensaje número 29 (%11101), con “Sel 2“ el mensaje 27 (%11011), con “Sel 3“ el mensaje 23 (%10111) y con “Sel 4“ el mensaje 15 (%01111).

Si se desea se puede colocar un LED (Con una resistencia en serie de 330 Ohmios) entre el “Status“ y la masa (Gnd). Este LED se encenderá mientras esté hablando el altavoz.

  • MODO 2: Operación mediante un microcontrolador PICAXE conectado con un puerto digital.

El puerto de entrada digital conecta el PICAXE con el conector PL2 del módulo sintetizador SPE030. De esta forma se pueden reproducir las 30 frases grabadas en el módulo.

Para reproducir cualquiera de las 30 (1-30) frases predefinidas, se ha de introducir, de forma digital, el número de la frase a la entrada de 5 bits (SEL 0 - SEL 4). Los números 0 y 31 ($00 y $1F) no son reconocidos por el equipo y no permiten la reproducción de ninguna frase. El SP030 dispone de resistencias conectadas a las entradas Sel0 - Sel4, de forma que cuando no están conectadas o están fuera de uso su valor sea uno.

En cuanto la CPU reconoce y confirma una nueva señal en una de las entradas, las lee todas y reproduce la frase correspondiente. En cuanto el módulo ha reconocido el número de la frase vuelve a poner todas las entradas a 0, antes de que haya terminado de reproducir la frase, ya que de otro modo esta frase se volvería a repetir. Cuando el SP030 ha terminado de reproducir la frase pone a cero todas las entradas, cosa que supervisa el microcontrolador PICAXE para prepararse para la frase siguiente.

No es necesario utilizar, y por tanto cablear, todos los cinco pines. Si sólo se han de reproducir 3 frases sería suficiente con usar dos pines (SEL0 Y SEL1). Los pines se activan mediante una señal de estado bajo (0), es decir, se produce una inversión de la selección (El valor 00001 es en realidad el valor 11110 = el mensaje 30). Gracias al uso de esta lógica invertida se puede cablear el módulo sintetizador directamente a las salidas “de transistor“ que hay en muchas de las placas de proyectos PICAXE.

Vista anterior y posterior del módulo sintetizador SPE030.

Ejemplo de programa para el PICAXE-18

main:

' *** reproduccion de la frase 30***

let pins=000001
‘ seleccion de la frase 11110 = 30
gosub wait4shutup
‘ espera a que acabe la frase para terminar

' *** reproduccion de la frase 21 ***

let pins=001001
‘ seleccion de la frase 10110 = 21
gosub wait4shutup
‘ espera a que acabe la frase para terminar
goto main

' *** subrutina que espera a que el
' modulo SPE030 acabe de reproducir la frase ***

wait4shutup:
pause 10 ‘ pequeña pausa
let pins = 000000
‘ puesta a cero de todos los pins
if pin2 = 1 then wait4shutup
‘ control del estado de los pins
return

Los pines de “+5V“ y de “Gnd“ de los dos conectores (PL1 y PL2) están unidos internamente (A través del circuito impreso de doble cara). Por este motivo se puede alimentar elèctricamente el módulo por medio de cualquiera de los dos conectores.

Conexiones eléctricas

El módulo SPE030 dispone de dos conectores. La alimentación eléctrica a 5V se puede conectar indistintamente sobre cualquiera de los dos conectores.

Conector PL1 (9 pines)

+5V - Alimentación eléctrica de 100 mA.
SDA - Conexión SDA del bus.
SCL - Conexión SCL del bus.
N/C - Se trata de un pin que no se ha de conectar.
GND - Toma de masa (0 voltios).
Spare - Se trata de un pin que no se ha de conectar.
GND - Toma de masa (0 voltios).
RS232 Rx - Conexión con el Tx del puerto serie de comunicación con el ordenador.
RS232 Tx - Conexión con el Rx del puerto serie de comunicación con el ordenador.

Conector PL2 (8 pines)

GND - Toma de masa (0 voltios).
Sel 0 - Los pines del Sel 0 hasta el Sel 4 permiten seleccionar de forma digital una de las 30 frases memorizadas en el módulo.
Sel 1 - digital binary select
Sel 2 - input port. They select
Sel 3 - one of the 30 predefined
Sel 4 - phrases.
Status - El valor alto (1) permite que el módulo hable y el valor bajo (0) le deja en silencio.
+5V - Alimentación eléctrica de 100 mA.


Patillaje del módulo sintetizador SPE030.

Esquema de conexión de una placa de proyectos PICAXE-18 CHI030. Los cables están soldados en los agujeros interiores de la placa.

Conexión del módulo sintetizador SPE030 a un circuito integrado amplificador ULN2003, para una conexión mediante puerto digital.

  • MODO 3: Operación mediante un microcontrolador PICAXE-18X/28X, utilizando el bus i2c.

Además de la alimentación eléctrica a 5 voltios, la conexión del bus I2C solamente requiere dos pines más, el correspondiente a SDA y a SCL. La opción de conexión mediante bus I2C permite al módulo SPE030 ejecutar cualquier texto propuesto directamente por el microcontrolador PICAXE.

Si se usa la interconexión mediante el bus I2C no se dispone de ninguna resistencia 4k7 incorporada en el módulo SPE030, por lo que se deberán conectar externamente entre las lineas SCL y SDA y la tensión de 5 voltios. El protocolo de comunicación i2c con el módulo sintetizador es el mismo que el utilizado en el EEPROM 24C04.

El código de la familia SPE030 es $C4, funciona a 400kHz (i2cfast) y utiliza un sólo octeto (i2cbyte) para guardar la dirección de memoria. Por lo tanto para configurar el bus i2c del PICAXE, antes de utilizar readi2c o writei2c, se ha de usar i2cslave $C4, i2cfast y i2cbyte. El SPE030 sólo tiene dos registros, el registro de comando (dirección 00) y el número de revisión de software (dirección 01). Para leer el número de revisión de software se ha de leer la dirección 01. Las lineas de programa para hacer esto serían:

readi2c 1, (b2)
debug b2

Conexión del bus i2c entre el microcontrolador PICAXE-18X/28X y el módulo sintetizador SPE030.

Todas las órdenes y el texto que se ha de reproducir se guardan en el registro de comando (en la dirección 00). Hay 32 órdenes válidas, de las que alguna se muestra a continuación.

Comando: LOAD BUFFER ($00) Acción: Guarda en la dirección de memoria el texto para ser reproducido.

Comando: SPKPRE 1 a 30 (Desde $01 hasta $1E) Acción: Reproduce una frase predefinida.

Comando: SPKBUF 64 ($40) Acción: Reproduce el texto guardado en la memoria.

El comando LOAD BUFFER va seguido del texto que se quiere reproducir. Puede ser más o menos largo (Con un máximo de 85 bytes). Se puede ejecutar LOAD BUFFER varias veces para aumentar el tamaño del texto a reproducir antes de que se ejecute el comando SPKBUF. El texto guardado en la memoria se borra cada vez que se ejecuta el comando SPKPRE o el comando SPKBUF.

El registro del texto a reproducir comienza por 3 bytes de control (el volumen, el tono y la velocidad), a continuación el texto en ASCII, y finalmente un cero ($00). Este texto así guardado puede ser reproducido ejecutando el comando SPKBUF. El módulo SPE030 permite un registro de 85 bytes, de modo que ese es el límite para una frase. El volumen, el tono, la velocidad y el registro de carácteres NULL necesitan de 4 bytes, por lo que quedan 81 para el texto. Por lo tanto para reproducir la palabra “PICAXE“ se ha enviar la secuencia siguiente hacia el bus I2C.

writei2c 0, (0,0,5,3,”pickacks”,0)
writei2c 0, (64)

Estos son los valores que acompañan al comando writei2c :

0 indica la dirección del comando LOAD BUFFER del módulo SPE030
0 Volumen (Max.) (entre 0 y 3, el valor 0 es el máximo)
5 Tono (entre 0 y 7)
3 Velocidad (entre 0 y 7)
Texto a reproducir “pickacks”
0 NULL

Se ha de tener en cuenta que cuando se trata de palabras raras (como ”PICAXE”) se obtienen mejores resultados experimentando con una ortografía fonética (Como por ejemplo ”pickacks”).

Para comprobar cuando el módulo SPE030 ha acabado la reproducción, se puede proceder a leer el registro de comando (dirección 0) - readi2c 0, b1.

Mientras dura la reproducción el registro de comando contiene la secuencia correspondiente al texto que se está reproduciendo, es decir 1-30 ($01-$1E) ó 64 ($40). El registro de comando tendrá un valor cero ($00 dólar) cuando la reproducción del texto haya finalizado y el módulo esté listo para la siguiente frase.

Patillaje de un microcontrolador PICAXE - 18X, indicando las dos patillas correspondientes al bus i2c.

Ejemplo de programa para el PICAXE

' Determina la dirección del i2c
' esclavo para el módulo sintetizador SPE030

i2cslave $C4, i2cfast, i2cbyte

' *** Firmware ***

' Guarda la versión del firmware
' en la variable b1 y la muestra en la pantalla

readi2c 1, (b2)
debug b2

main:

' *** Frase pregrabada ***

' Reproduce la primera frase
' pregrabada (mensaje 1)
' Mediante gosub se espera a que el
' mensaje se acabe de reproducir
writei2c 0, (1)
gosub wait4shutup

' *** Reproduccion de un texto
' al instante ***

' Se ha de introducir el texto
' a reproducir al instante
' Primero se guarda el texto en el
' registro (max 81 caracteres)
' Load buffer(0), volumen(0),
' tono(5), velocidad(1), "texto", null(0)
' Recuerde que se consiguen mejores
' resultados usando una ortografia fonetica!
writei2c 0,(0,0,5,1,"Hello pickacks user",0)
' El texto se esta reproduciendo
writei2c 0, (64)
gosub wait4shutup
' Se vuelve a iniciar el proceso
goto main

' *** Esta subrutina comprueba
' que el módulo SPE03o haya acabado
' la reproduccion ***

wait4shutup:

readi2c 0, (b1)
if b1 > 0 then wait4shutup
return

El módulo SPE030 se puede comprar en Tech supplies a un presio de 45 libras, que con los impuestos y los gastos de transporte se convierten en unos 86 €.

Maqueta de motor iónico

Durante el otoño de 2007 Marc Orantes, alumno de segundo de bachillerato, construyó una maqueta de un motor iónico, similar a los utilizados en vehículos espaciales. En el siguiente video se puede ver el funcionamiento de esa maqueta.

Encendiendo lana de acero

Hace algunos meses algunos de mis alumnos me comentaron que habían visto en un programa de divulgación científica de la televisión (“Clever“) que la lana de acero, utilizada para limpiar y pulir metales, se podía encender utilizando una pequeña corriente eléctrica. Lo probamos en el taller con una fuente de alimentación y este es el resultado.

En el programa de televisión lo encendían con un soplete y le hacían girar atado a una cuerda. De este modo ardía toda la masa intensamente y produciendo bastante luz.

viernes, 7 de marzo de 2008

El meteorito de Tunguska

El 30 de junio de 1908 explotó, a una cierta altura sobre el suelo, en las proximidades del río Podkamennaya en Tunguska (Siberia), un bólido de unos 80 m de diámetro y probablemente rocoso. La explosión fue detectada por numerosas estaciones sismográficas y hasta por una estación barográfica en el Reino Unido debido a las fluctuaciones en la presión atmosférica que produjo.

El suceso incendió y derribó árboles en un área de 2.150 km², rompiendo ventanas y haciendo caer a la gente al suelo a 400 km de distancia. Durante varios días, las noches eran tan brillantes en algunas zonas de Rusia y Europa que se podía leer sin luz artificial. En los Estados Unidos, los observatorios del Monte Wilson y el Astrofísico del Smithsonian observaron una reducción en la transparencia atmosférica de varios meses de duración, en lo que se considera el primer indicio de este tipo asociado a explosiones de alta potencia.

La energía liberada se ha establecido, mediante el estudio del área afectada, en la equivalente a la explosión de una bomba nuclear de 10 ó 15 megatones. Si hubiese explotado sobre zona habitada, se habría producido una masacre de enormes dimensiones. Según testimonios de la población Tungus, la etnia local nómada de origen mongol dedicado al pastoreo de renos, que lo vio caer, «brillaba como el Sol». Informes del distrito de Kansk (a 600 km del impacto), describieron sucesos tales como barqueros precipitados al agua y caballos derribados por la onda de choque, mientras las casas temblaban y en los estantes los objetos de loza se rompían. El maquinista del ferrocarril Transiberiano detuvo su tren temiendo un descarrilamiento, al notar que vibraban tanto los vagones como los railes.

El metano producido en los lagos de Siberia

Según un artículo de la BBC, el deshielo de la turbera más grande del mundo, situada en Siberia, podría desencadenar una dramática aceleración en el proceso de calentamiento global del planeta.

Una turbera es un lugar en donde se produce turba, un material de origen vegetal que constituye la primera etapa en la transformación de un vegetal en carbón. Este proceso necesita de miles de años. La turbera que se está derritiendo en Siberia cubre un área de un millón de kilómetros cuadrados y tiene más de 11.000 años de antigüedad.

Un estudio, publicado por la revista británica News Scientist, indica que el deshielo de éste área, que tiene el mismo tamaño que Francia y Alemania juntos, podría liberar miles de millones de toneladas de gas metano a la atmósfera. El profesor Sergei Karpotin, de la Universidad Estatal de Tomsk en Rusia, declaró a la revista News Scientist que “toda la región del subártico siberiano se está derritiendo y éste es un proceso que se ha dado en los últimos tres o cuatro años“.

El metano tiene el mismo efecto que el dióxido de carbono en el efecto invernadero, sólo que con una intensidad 20 veces mayor. La turbera contiene miles de millones de toneladas de metano que se encuentran en su mayoría, atrapadas bajo el permafrost, y en las estructuras de hielo más profundas.

En este video de Youtube se puede ver como, transpasando la capa de hielo que cubre los lagos siberianos, se libera el metano encerrado en grandes burbujas dentro del hielo, pudiendo encenderlo mediante una llama.

lunes, 3 de marzo de 2008

Servidor web Olimex

La empresa bulgara Olimex fabrica circuitos impresos bajo demanda. También proporciona diversos circuitos electrónicos ya montados. Entre estos se encuentran los miniservidores web. El PIC-MAXI-WEB de la fotografía se vende a un precio de 110 €. Este, y sus otros productos los distribuye Shop Olimex y Tux Graphics.

Existen otros productos similares como el Site Player Server que distribuye Superrobotica.

Wolfram Demonstrations Project

En la página Wolfram Demonstrations Project encontramos multitud de simulaciones científico-tecnológicas. Como ejemplo sirva esta, que representa diferentes formas de puentes de celosía.

Para poder ver la simulación se ha de instalar el programa Free Mathematica Player y despues descargar el archivo correspondiente.

Se puede acceder al bloc desde Wolfram.