Taula de continguts:

Rellotge de paraules de quatre lletres amb generador de paraules Akafugu i frases inspiradores: 3 passos
Rellotge de paraules de quatre lletres amb generador de paraules Akafugu i frases inspiradores: 3 passos

Vídeo: Rellotge de paraules de quatre lletres amb generador de paraules Akafugu i frases inspiradores: 3 passos

Vídeo: Rellotge de paraules de quatre lletres amb generador de paraules Akafugu i frases inspiradores: 3 passos
Vídeo: IA i aprenentatge a la universitat 2024, Desembre
Anonim
Image
Image
Rellotge de paraules de quatre lletres amb generador de paraules Akafugu i frases inspiradores
Rellotge de paraules de quatre lletres amb generador de paraules Akafugu i frases inspiradores
Rellotge de paraules de quatre lletres amb generador de paraules Akafugu i frases inspiradores
Rellotge de paraules de quatre lletres amb generador de paraules Akafugu i frases inspiradores

Aquesta és la meva versió del rellotge de paraules de quatre lletres, una idea que es va originar als anys setanta. El rellotge mostra una sèrie de paraules de quatre lletres que es generen a partir d’un algorisme generador de paraules aleatòries o d’una base de dades de paraules de quatre lletres relacionades.

Aquesta versió utilitza pantalles LED de 14 segments més modernes i un microcontrolador Atmega 328p per mostrar les paraules i el temps. S'admeten dos modes de generació de paraules. El primer utilitza un algorisme per generar grups de paraules de quatre lletres que probablement siguin paraules reals, similars a l'original. Cada paraula successiva no té relació amb l’anterior. El segon mode utilitza la base de dades de paraules relacionals de l’" Edinburgh Associative Thesaurus ", un document d’associacions de paraules basat en les respostes de les persones per demanar la primera paraula que se us acudeix després de donar-los una paraula inicial, i després continuar el procés amb la paraula de resposta. La base de dades va ser adaptada a la generació de paraules de quatre lletres per part de la Corporació Akafugu, que va crear un fitxer de dades de 57 Kbyte que s’emmagatzema en una EEPROM externa per a ser processat per Atmega. El resultat és que el rellotge utilitza el temps Unix com a llavor aleatòria i genera una cadena de paraules de quatre lletres associades basades en respostes humanes, no en algun algorisme.

Nota: la base de dades de paraules Akafugu conté algunes paraules sexualment explícites i potencialment ofensives. Si això us molesta, activeu el mode de paraules aleatòries. Això també pot generar algunes paraules ofensives, però almenys no mostrarà fluxos de paraules ofensives relacionades.

El "Edinburgh Associative Thesaurus" es va elaborar a partir de les respostes de persones que vivien a Anglaterra a principis dels anys seixanta. Les paraules relacions reflecteixen definitivament aquest biaix. Per exemple, la paraula "MILLOR" és seguida amb freqüència per "PETE". No existeix cap connexió evident, tret que se sàpiga que Pete Best va ser el bateria original dels Beatles a principis dels anys 60. Altres biaixos cap a la cultura britànica dels anys 60 abunden. Crec que és molt interessant de veure!

El dispositiu també conté un mòdul de rellotge en temps real adreçable I2C amb còpia de seguretat de la bateria recarregable. El rellotge mostra 5 paraules d'un dels dos algoritmes seleccionables i, a continuació, mostra l'hora, la data, el dia de la setmana i l'any. El rellotge i els modes de funcionament es configuren mitjançant tres interruptors polsadors. Els modes de funcionament s’emmagatzemen a EEPROM no volàtil i sobreviuen a un reinici o a una fallada d’alimentació. El RTC continua funcionant aproximadament un any després de retirar l’energia, amb una precisió extrema compensada per la temperatura. Es mostra automàticament l’hora correcta quan es restaura l’alimentació.

Una característica addicional són les 107 cites sobre el temps que es mostren aleatòriament cada 10 minuts. Aquestes cites es desplacen de dreta a esquerra pels quatre personatges, proporcionant ànims i inspiració freqüentment. L'emmagatzematge de les frases es troba a l'EEPROM externa amb la base de dades de paraules Akafugu. La base de dades només pren 57 Kbytes dels 64 Kbytes disponibles al dispositiu, deixant espai per a les 107 frases. Una frase "presumir" sempre és la primera que es mostra quan el rellotge s'encén per primer cop als 10 minuts següents.

La unitat utilitza pantalles comunes de 14 segments de càtode (2 càtodes per cada dígit) que es multiplexen mitjançant una rutina de servei d’interrupció del temporitzador que fa que la pantalla de quatre caràcters s’actualitzi a 100 Hz. Sempre que s’executa l’ISR, desactiva el mig caràcter anterior, recupera 7 dels 14 segments per a un dels quatre caràcters, activa els pins de segment corresponents i posa a terra el càtode corresponent. Les pantalles són una mica rares, però tenia un excés de subministrament que volia utilitzar. El càtode de doble comú redueix el nombre de pins necessaris per dígit de 15 a 9. Hi ha prou pins en un Atmega 328p per permetre la transmissió directa de la pantalla sense registre de desplaçament.

FACTE: Modifiqueu el codi per utilitzar el mòdul LED alfanumèric de 4 caràcters Adafruit

Pas 1: història

Història
Història
Història
Història
Història
Història
Història
Història

El rellotge original FLW es va construir amb grans tubs alfanumèrics de neó alfanumèrics Burroughs B7971 extrets de taulers de visualització d’actius desactivats. Són similars als tubs numèrics de l’època, però utilitzaven una pantalla de 14 segments per formar tots els caràcters ASCII. El rellotge utilitzava una lògica discreta, seleccionant lletres d'una taula per formar combinacions aleatòries de quatre lletres que es ponderaven per produir paraules reals.

Amb l'algorisme En el model original del 1972, només apareixen certes lletres en cada posició. Es va fer una anàlisi tabulada a mà de diversos centenars de paraules de quatre lletres i es va comptar la freqüència de les lletres en cadascuna de les quatre posicions. Es van utilitzar les deu lletres més freqüents de cada posició, excepte en la segona posició que només contenia vuit lletres.

Per a cada posició, un simple comptador BCD (0-9) (un IC 74LS90) funcionava lliurement i el recompte es capturava i es mantenia aproximadament un cop cada pocs segons fins a un per minut, depenent de la velocitat. La instantània del comptador es va aplicar a una matriu de descodificació de díodes (utilitzant uns 150 díodes) per formar els caràcters.

Com que només es van seleccionar les deu (o vuit) lletres més habituals per a cada posició, sense tenir en compte les combinacions de lletres, poden aparèixer moltes paraules que no siguin paraules, per exemple, FRLR, LREE, LLLL, etc.

Tingueu en compte que la segona posició només tenia vuit lletres, ja que la novena i la desena lletra de la mostra tenien una freqüència proporcionalment baixa, mentre que la primera i la segona tenien una freqüència extremadament alta, de manera que es van doblar. Així, 10 x 8 x 10 x 10 = 8000 permutacions. Les lletres que es van programar en el primer model de 1973 es mostren en una de les imatges anteriors.

Pas 2: Codi i esquema

Codi i esquema
Codi i esquema
Codi i esquema
Codi i esquema
Codi i esquema
Codi i esquema
Codi i esquema
Codi i esquema

S'adjunta l'esquema.

El rellotge es pot construir mitjançant qualsevol Arduino basat en Atmega 328p.

Per utilitzar-lo amb un Atmega 328p autònom, tal com es mostra a l'esquema, s'ha d'utilitzar un programador ISP per programar el microcontrolador mitjançant l'IDE Arduino. Després de la programació, els fusibles s’han de configurar mitjançant l’ordre avrdude següent (s’ha d’instal·lar WinAVR). Substituïu el port de com i el tipus de programador. El més fàcil és utilitzar un Arduino com a programador d’ISP. Google per obtenir més informació.

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

Aquests paràmetres desactiven el vector de reinici del carregador d'arrencada, de manera que el codi s'inicia immediatament des del vector de codi principal. Els fusibles també estan configurats per a un oscil·lador extern de 16 MHz. Un cop cremat, no podreu tornar a programar el xip fins que el cristall i els condensadors no estiguin connectats tal com es mostra a l’esquema, ja que l’oscil·lador intern per defecte es desactiva amb aquests paràmetres de fusible.

La biblioteca Arduino DS3231 s'ha d'instal·lar per proporcionar accés a les rutines del rellotge RTC. Cal habilitar el suport Unix time a la biblioteca descomentant la línia "#define CONFIG_UNIXTIME" al fitxer config.h de la biblioteca RTC DS3231. El temps Unix s’utilitza com a llavor del generador de nombres aleatoris, de manera que les seqüències de paraules i frases no es repetiran cada vegada que s’activa el rellotge.

El mòdul de rellotge DS3231 RTC en si és una varietat habitual que es ven a ebay. El mòdul està il·lustrat més amunt. Cerqueu el tipus amb una bateria de recàrrega recarregable.

A més d’un microcontrolador programat, també és necessari obtenir i programar una EEPROM de sèrie Microchip 24LC512 amb la base de dades de paraules Akafugu i la llista de frases. Això es fa mitjançant un circuit senzill construït amb un Arduino i una targeta SD formatada com a FAT32 amb el fitxer output2.dat. Un esbós llegeix les dades de la targeta SD i les escriu a l'EEPROM. Els detalls es poden trobar als dos enllaços següents. Assegureu-vos d'utilitzar l'esbós de programació i el fitxer de dades en aquest manual, ja que el de l'enllaç Akafugu no té la base de dades de frases. Seguiu el procediment als enllaços.

Vista general de la base de dades Akafugu FLW

Instruccions per gravar el fitxer de dades a l'EEPROM

Pas 3: Configuració i control del rellotge

Les configuracions de botons següents s’utilitzen per configurar el rellotge:

Hores ajustades: manteniu premut el botó 1 durant el funcionament normal.

Configuració de minuts: manteniu premut el botó 2 durant el funcionament normal. Els segons es restableixen a "00" automàticament

Restablir els segons a zero: Mantingueu premut el botó 3 durant el funcionament normal, deixeu-lo anar per sincronitzar-lo amb l'inici del nou minut

Estableix el mes: mantén premuts els botons 1 i 2 durant el funcionament normal

Estableix la data: mantén premuts els botons 1 i 3 durant el funcionament normal

Set Year: Mantingueu els botons 2 i 3 junts durant el funcionament normal

Estableix el dia de la setmana: mantén premuts els botons 1, 2 i 3 durant el funcionament normal

Quan la unitat s’encén per primera vegada, els modes de funcionament es mostren ràpidament abans que comenci la generació de paraules:

"EE" significa que s'ha detectat l'EEPROM externa I2C que conté la base de dades de paraules Akafugu i la llista de frases.

"NOEE" significa que no s'ha detectat l'EEPROM. La unitat torna a la generació aleatòria de paraules i no mostra cap frase.

"CK" significa que es visualitzen l'hora i la data després de mostrar 5 paraules consecutives.

"NOCK" significa que l'hora i la data estan apagades. Es mostra contínuament un flux constant de paraules, interromput cada 10 minuts per una frase.

"RND" significa que s'utilitza el mode de generació de paraules aleatòries

"REL" significa que s'utilitza el mode de generació de bases de dades de paraules "Akafugu" relacional

Per canviar i desar modes, desconnecteu el rellotge i torneu-lo a connectar mentre manteniu premut un dels botons indicats. A continuació, deixeu anar el botó. El nou mode s'emmagatzema i es mostra:

Botó 1: commuta i desa el mode de generació de paraules aleatòria o relacional

Botó 2: activa o desactiva la visualització de la data / hora després de 5 paraules consecutives

Recomanat: