Tabla de contenido:

Word Clock de cuatro letras con generador de palabras Akafugu y frases inspiradoras: 3 pasos
Word Clock de cuatro letras con generador de palabras Akafugu y frases inspiradoras: 3 pasos

Video: Word Clock de cuatro letras con generador de palabras Akafugu y frases inspiradoras: 3 pasos

Video: Word Clock de cuatro letras con generador de palabras Akafugu y frases inspiradoras: 3 pasos
Video: Загадка Титаника : Как они могли не заметить айсберг?! Самая подробная история! 2024, Noviembre
Anonim
Image
Image
Word Clock de cuatro letras con generador de palabras Akafugu y frases inspiradoras
Word Clock de cuatro letras con generador de palabras Akafugu y frases inspiradoras
Word Clock de cuatro letras con generador de palabras Akafugu y frases inspiradoras
Word Clock de cuatro letras con generador de palabras Akafugu y frases inspiradoras

Esta es mi versión del Word Clock de cuatro letras, una idea que se originó en la década de 1970. El reloj muestra una serie de palabras de cuatro letras que se generan a partir de un algoritmo generador de palabras al azar o de una base de datos de palabras de cuatro letras relacionadas.

Esta versión utiliza pantallas LED de 14 segmentos más modernas y un microcontrolador Atmega 328p para mostrar las palabras y la hora. Se admiten dos modos de generación de palabras. El primero usa un algoritmo para generar grupos de palabras de cuatro letras que probablemente sean palabras reales, similares al original. Cada palabra sucesiva no tiene relación con la anterior. El segundo modo utiliza la base de datos de palabras relacionales del "Tesauro asociativo de Edimburgo", un documento de asociaciones de palabras basado en las respuestas de las personas al preguntar la primera palabra que les viene a la mente después de darles una palabra inicial y luego continuar el proceso con la palabra de respuesta. La base de datos fue adaptada a la generación de palabras de cuatro letras por Akafugu Corporation, que creó un archivo de datos de 57 Kbyte que se almacena en una EEPROM externa para su procesamiento por parte de Atmega. El resultado es que el reloj usa la hora Unix como una semilla aleatoria y genera una cadena de palabras asociadas de cuatro letras basadas en respuestas humanas, no en algún algoritmo.

Nota: La base de datos de palabras de Akafugu contiene algunas palabras sexualmente explícitas y potencialmente ofensivas. Si esto le molesta, active el modo de palabra aleatoria. Esto también puede generar algunas palabras ofensivas, ¡pero al menos no mostrará secuencias de palabras ofensivas relacionadas!

El "Tesauro asociativo de Edimburgo" se compiló basándose en las respuestas de personas que vivían en Inglaterra a principios de los años 60. ¡La palabra relaciones definitivamente refleja ese sesgo! Por ejemplo, la palabra "MEJOR" suele ir seguida de "PETE". ¡No existe una conexión obvia, a menos que se sepa que Pete Best fue el baterista original de los Beatles a principios de los 60! Abundan otros sesgos hacia la cultura británica de los años 60. ¡Creo que es muy interesante de ver!

El dispositivo también contiene un módulo de reloj en tiempo real direccionable I2C con respaldo de batería recargable. El reloj muestra 5 palabras de uno de los dos algoritmos seleccionables, luego muestra la hora, fecha, día de la semana y año. El reloj y los modos de funcionamiento se configuran mediante tres interruptores de botón. Los modos de operación se almacenan en EEPROM no volátil y sobreviven a un reinicio o falla de energía. El RTC continúa funcionando durante aproximadamente un año después de que se desconecta la energía, con una precisión de compensación de temperatura extrema. La hora correcta se muestra automáticamente cuando se restablece la energía.

Una característica adicional son las 107 citas sobre el tiempo que se muestran aleatoriamente cada 10 minutos. Estas citas se desplazan de derecha a izquierda a lo largo de los cuatro caracteres, ¡proporcionando estímulo e inspiración frecuentes! El almacenamiento de las frases está en la EEPROM externa con la base de datos de palabras de Akafugu. La base de datos ocupa solo 57 Kbytes de los 64 Kbytes disponibles en el dispositivo, dejando espacio para las 107 frases. Una frase de "alarde" es siempre la primera que se muestra cuando el reloj se enciende por primera vez en el siguiente intervalo de 10 minutos.

La unidad utiliza pantallas de 14 segmentos de cátodo común (2 cátodos por cada dígito) que se multiplexan mediante una rutina de servicio de interrupción del temporizador que da como resultado que la pantalla de cuatro caracteres se actualice a 100 Hz. Siempre que el ISR se ejecuta, apaga el medio carácter anterior, recupera 7 de los 14 segmentos para uno de los cuatro caracteres, enciende los pines del segmento correspondiente y conecta a tierra el cátodo correspondiente. Las pantallas son un poco poco comunes, pero tenía un gran excedente de suministro que quería usar. El cátodo común dual reduce la cantidad de pines necesarios por dígito de 15 a 9. Hay suficientes pines en un Atmega 328p para permitir la transmisión directa de la pantalla sin un registro de desplazamiento.

TO-DO: Modifique el código para usar el módulo LED alfanumérico de 4 caracteres Adafruit

Paso 1: Historia

Historia
Historia
Historia
Historia
Historia
Historia
Historia
Historia

El reloj FLW original se construyó con grandes tubos de neón alfanuméricos Burroughs B7971 extraídos de los tableros de anuncios de cotizaciones de valores retirados. Estos son similares a los tubos nixie numéricos de la época, pero usaban una pantalla de 14 segmentos para formar todos los caracteres ASCII. El reloj usaba lógica discreta, seleccionando letras de una tabla para formar combinaciones aleatorias de cuatro letras que estaban ponderadas para producir palabras reales.

Con el algoritmo En el modelo original de 1972, solo aparecen ciertas letras en cada posición. Se realizó un análisis tabulado a mano de varios cientos de palabras de cuatro letras y se contó la frecuencia de las letras en cada una de las cuatro posiciones. Se utilizaron las diez letras más frecuentes de cada puesto, excepto en la segunda posición que contenía solo ocho letras.

Para cada posición, un contador BCD (0-9) simple (un 74LS90 IC) se ejecutó libremente y el recuento se capturó y se mantuvo entre una vez cada pocos segundos y una vez por minuto, según la configuración de velocidad. La instantánea del contador se aplicó luego a una matriz de decodificación de diodos (usando aproximadamente 150 diodos) para formar los caracteres.

Dado que solo se seleccionaron las diez (u ocho) letras más comunes para cada posición, sin tener en cuenta las combinaciones de letras, pueden aparecer muchas palabras que no son palabras, por ejemplo, FRLR, LREE, LLLL, etc.

Tenga en cuenta que la segunda posición solo tenía ocho letras, ya que las letras novena y décima de la muestra tenían una frecuencia proporcionalmente baja, mientras que la primera y la segunda tenían una frecuencia extremadamente alta, por lo que se duplicaron. Por lo tanto, 10 x 8 x 10 x 10 = 8000 permutaciones. Las letras que se programaron en el primer modelo de 1973 se muestran en una de las imágenes de arriba.

Paso 2: código y esquema

Código y esquema
Código y esquema
Código y esquema
Código y esquema
Código y esquema
Código y esquema
Código y esquema
Código y esquema

Se adjunta el esquema.

El reloj se puede construir usando cualquier Arduino basado en Atmega 328p.

Para usar con un Atmega 328p independiente, como se muestra en el esquema, se debe usar un programador ISP para programar el microcontrolador a través del IDE de Arduino. Después de la programación, los fusibles deben configurarse con el siguiente comando avrdude (debe estar instalado WinAVR). Sustituya el puerto com y el tipo de programador. Lo más fácil es usar un Arduino como programador ISP. Google para obtener más detalles.

avrdude -c arduino -P com13 -b 19200 -p atmega328p -U lfuse: w: 0xFF: m -U hfuse: w: 0xDF: m -U efuse: w: 0x05: m

Estas configuraciones deshabilitan el vector de reinicio del cargador de arranque para que el código comience inmediatamente desde el vector de código principal. Los fusibles también están configurados para un oscilador externo de 16MHz. Una vez quemado, no podrá volver a programar el chip hasta que el cristal y los condensadores estén conectados como se muestra en el esquema, ya que el oscilador interno predeterminado está desactivado con estos ajustes de fusible.

La biblioteca Arduino DS3231 debe estar instalada para proporcionar acceso a las rutinas del reloj RTC. Es necesario habilitar el soporte de tiempo Unix en la biblioteca descomentando la línea "#define CONFIG_UNIXTIME" en el archivo config.h de la biblioteca DS3231 RTC. El tiempo Unix se utiliza como semilla para el generador de números aleatorios para que las secuencias de palabras y frases no se repitan cada vez que se enciende el reloj.

El módulo de reloj DS3231 RTC en sí es una variedad común que se vende en eBay. El módulo se ilustra arriba. Busque el tipo con una batería de respaldo recargable.

Además de un microcontrolador programado, también es necesario obtener y programar una EEPROM serial Microchip 24LC512 con la base de datos de palabras y la lista de frases de Akafugu. Esto se hace usando un circuito simple construido con un Arduino y una tarjeta SD formateada como FAT32 con el archivo output2.dat. Un boceto lee los datos de la tarjeta SD y los escribe en la EEPROM. Los detalles se pueden encontrar en los dos enlaces siguientes. Asegúrese de usar el esquema de programación y el archivo de datos en este Instructable, ya que el del enlace de Akafugu carece de la base de datos de frases. Siga el procedimiento en los enlaces.

Descripción general de la base de datos de Akafugu FLW

Instrucciones para grabar el archivo de datos en la EEPROM

Paso 3: Configuración y control del reloj

Las siguientes combinaciones de botones se utilizan para la configuración del reloj:

Ajuste de la hora: Mantenga pulsado el botón 1 durante el funcionamiento normal.

Ajuste de minutos: Mantenga pulsado el botón 2 durante el funcionamiento normal. Los segundos se restablecen a "00" automáticamente

Segundos restablecidos a cero: Mantenga presionado el botón 3 durante el funcionamiento normal, suéltelo para sincronizar con el inicio de un nuevo minuto

Establecer mes: Mantenga presionados los botones 1 y 2 juntos durante el funcionamiento normal

Establecer fecha: Mantenga presionados los botones 1 y 3 juntos durante el funcionamiento normal

Establecer año: Mantenga presionados los botones 2 y 3 juntos durante el funcionamiento normal

Establecer el día de la semana: Mantenga presionados los botones 1, 2 y 3 juntos durante el funcionamiento normal

Cuando la unidad se enciende por primera vez, los modos de funcionamiento se muestran rápidamente antes de que comience la generación de palabras:

"EE" significa que se ha detectado la EEPROM externa I2C que contiene la base de datos de palabras de Akafugu y la lista de frases.

"NOEE" significa que no se detectó la EEPROM. La unidad vuelve a la generación aleatoria de palabras y no se muestra ninguna frase.

"CK" significa que la hora y la fecha se muestran después de mostrar 5 palabras consecutivas.

"NOCK" significa que la hora / fecha está apagada. Se muestra continuamente un flujo constante de palabras, interrumpido cada 10 minutos por una frase.

"RND" significa que se utiliza el modo de generación de palabras al azar

"REL" significa que se utiliza el modo de generación de base de datos de palabras relacional "Akafugu"

Para cambiar y guardar los modos, desenchufe el reloj y vuelva a enchufarlo mientras mantiene presionado uno de los botones indicados. Luego suelte el botón. El nuevo modo se almacena y se muestra:

Botón 1: alternar y guardar el modo de generación de palabras aleatorias o relacionales

Botón 2: activa o desactiva la visualización de la fecha / hora después de 5 palabras consecutivas

Recomendado: