Sommario:

Word Clock a quattro lettere con generatore di parole Akafugu e frasi di ispirazione: 3 passaggi
Word Clock a quattro lettere con generatore di parole Akafugu e frasi di ispirazione: 3 passaggi

Video: Word Clock a quattro lettere con generatore di parole Akafugu e frasi di ispirazione: 3 passaggi

Video: Word Clock a quattro lettere con generatore di parole Akafugu e frasi di ispirazione: 3 passaggi
Video: FLW Clock 2024, Luglio
Anonim
Image
Image
Orologio di parole a quattro lettere con generatore di parole Akafugu e frasi di ispirazione
Orologio di parole a quattro lettere con generatore di parole Akafugu e frasi di ispirazione
Orologio di parole a quattro lettere con generatore di parole Akafugu e frasi di ispirazione
Orologio di parole a quattro lettere con generatore di parole Akafugu e frasi di ispirazione

Questa è la mia versione del Four Letter Word Clock, un'idea nata negli anni '70. L'orologio visualizza una serie di parole di quattro lettere generate da un algoritmo di generazione di parole casuali o da un database di parole di quattro lettere correlate.

Questa versione utilizza display LED a 14 segmenti più moderni e un microcontrollore Atmega 328p per visualizzare le parole e l'ora. Sono supportate due modalità di generazione di parole. Il primo utilizza un algoritmo per generare gruppi di parole di quattro lettere che potrebbero essere parole reali, simili all'originale. Ogni parola successiva non è correlata alla precedente. La seconda modalità utilizza il database di parole relazionali dell'"Edinburgh Associative Thesaurus", un documento di associazioni di parole basato sulle risposte delle persone alla richiesta della prima parola che viene in mente dopo aver dato loro una parola seme, quindi continuando il processo con la parola di risposta. Il database è stato adattato alla generazione di parole di quattro lettere dalla Akafugu Corporation, che ha creato un file di dati di 57 Kbyte che è memorizzato in una EEPROM esterna per l'elaborazione da parte dell'Atmega. Il risultato è che l'orologio utilizza il tempo Unix come seme casuale e genera una stringa di parole di quattro lettere associate in base alle risposte umane, non a un algoritmo.

Nota: il database delle parole Akafugu contiene alcune parole sessualmente esplicite e potenzialmente offensive. Se questo ti dà fastidio, attiva la modalità parola casuale. Questo potrebbe anche generare alcune parole offensive, ma almeno non mostrerà flussi di parole offensive correlate!

Il "Thesaurus associativo di Edimburgo" è stato compilato sulla base delle risposte di persone che vivevano in Inghilterra nei primi anni '60. La parola relazioni riflette sicuramente questo pregiudizio! Ad esempio, la parola "BEST" è spesso seguita da "PETE". Non esiste una connessione ovvia, a meno che non si sappia che Pete Best era il batterista originale dei Beatles nei primi anni '60! Abbondano altri pregiudizi verso la cultura britannica degli anni '60. Penso che sia molto interessante da guardare!

Il dispositivo contiene anche un modulo Real Time Clock indirizzabile I2C con batteria di backup ricaricabile. L'orologio visualizza 5 parole da uno dei due algoritmi selezionabili, quindi visualizza l'ora, la data, il giorno della settimana e l'anno. L'orologio e le modalità di funzionamento vengono impostate tramite tre interruttori a pulsante. Le modalità operative sono memorizzate in EEPROM non volatile e sopravvivono a un ripristino oa un'interruzione dell'alimentazione. L'RTC continua a funzionare per circa un anno dopo la rimozione dell'alimentazione, con un'estrema precisione compensata dalla temperatura. L'ora corretta viene visualizzata automaticamente al ripristino dell'alimentazione.

Una caratteristica aggiunta sono le 107 citazioni sul tempo che vengono visualizzate in modo casuale ogni 10 minuti. Queste citazioni scorrono da destra a sinistra attraverso i quattro personaggi, fornendo frequenti incoraggiamenti e ispirazione! La memorizzazione delle frasi è nella EEPROM esterna con il database di parole Akafugu. Il database occupa solo 57 Kbyte dei 64 Kbyte disponibili nel dispositivo, lasciando spazio alle 107 frasi. Una frase "vantaggiosa" è sempre la prima da visualizzare quando l'orologio viene acceso per la prima volta al successivo intervallo di 10 minuti.

L'unità utilizza display a 14 segmenti a catodo comune (2 catodi per ogni cifra) che sono multiplexati da una routine di servizio di interruzione del timer che determina l'aggiornamento del display a quattro caratteri a 100 Hz. Ogni volta che l'ISR viene eseguito, spegne il mezzo carattere precedente, recupera 7 dei 14 segmenti per uno dei quattro caratteri, accende i pin del segmento corrispondente e mette a terra il catodo corrispondente. I display sono un po' rari, ma avevo una grande scorta in eccesso che volevo usare. Il doppio catodo comune riduce il numero di pin necessari per cifra da 15 a 9. Ci sono abbastanza pin su un Atmega 328p per consentire l'azionamento diretto del display senza un registro a scorrimento.

DA FARE: Modificare il codice per utilizzare il modulo LED alfanumerico a 4 caratteri Adafruit

Passaggio 1: Storia

Storia
Storia
Storia
Storia
Storia
Storia
Storia
Storia

L'orologio FLW originale è stato costruito con grandi tubi al neon alfanumerici Burroughs B7971 recuperati da tabelloni ticker dismessi. Questi sono simili ai tubi nixie numerici dell'epoca, ma utilizzavano un display a 14 segmenti per formare tutti i caratteri ASCII. L'orologio utilizzava una logica discreta, selezionando le lettere da una tabella per formare combinazioni casuali di quattro lettere che erano ponderate per produrre parole reali.

Con l'algoritmo Nel modello originale del 1972, in ogni posizione compaiono solo determinate lettere. È stata eseguita un'analisi tabulata a mano di diverse centinaia di parole di quattro lettere ed è stata contata la frequenza delle lettere in ciascuna delle quattro posizioni. Sono state utilizzate le dieci lettere più frequenti di ogni posizione, tranne nella seconda posizione che conteneva solo otto lettere.

Per ogni posizione, un semplice contatore BCD (0-9) (un 74LS90 IC) funzionava liberamente e il conteggio veniva catturato e mantenuto da una volta ogni pochi secondi a una volta al minuto, a seconda dell'impostazione della velocità. L'istantanea del contatore è stata quindi applicata a una matrice di decodifica di diodi (usando circa 150 diodi) per formare i caratteri.

Poiché per ogni posizione sono state selezionate solo le dieci (o otto) lettere più comuni, senza riguardo per le combinazioni di lettere, possono apparire molte non-parole, ad esempio FRLR, LREE, LLLL, ecc.

Si noti che la seconda posizione aveva solo otto lettere, poiché la nona e la decima lettera nel campione avevano una frequenza proporzionalmente bassa, mentre la prima e la seconda avevano una frequenza estremamente alta, quindi erano raddoppiate. Quindi 10 x 8 x 10 x 10 = 8000 permutazioni. Le lettere che sono state programmate nel primo modello del 1973 sono mostrate in una delle immagini sopra.

Passaggio 2: codice e schema

Codice e schema
Codice e schema
Codice e schema
Codice e schema
Codice e schema
Codice e schema
Codice e schema
Codice e schema

Lo schema è allegato.

L'orologio può essere costruito utilizzando qualsiasi Arduino basato su Atmega 328p.

Per l'utilizzo con un Atmega 328p autonomo, come mostrato nello schema, è necessario utilizzare un programmatore ISP per programmare il microcontrollore tramite l'IDE Arduino. Dopo la programmazione, i fusibili devono essere impostati utilizzando il seguente comando avrdude (deve essere installato WinAVR). Sostituisci la porta COM e il tipo di programmatore. Il più semplice è usare un Arduino come programmatore ISP. Google per i dettagli.

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

Queste impostazioni disabilitano il vettore di ripristino del bootloader in modo che il codice inizi immediatamente dal vettore di codice principale. I fusibili sono predisposti anche per un oscillatore esterno a 16MHz. Una volta bruciato, non sarai in grado di programmare nuovamente il chip fino a quando il cristallo e i condensatori non saranno collegati come mostrato nello schema, poiché l'oscillatore interno predefinito è disabilitato con queste impostazioni del fusibile.

La libreria Arduino DS3231 deve essere installata per fornire l'accesso alle routine di clock RTC. È necessario abilitare il supporto temporale Unix nella libreria decommentando la riga "#define CONFIG_UNIXTIME" nel file config.h della libreria RTC DS3231. Il tempo Unix viene utilizzato come seme per il generatore di numeri casuali in modo che le sequenze di parole e frasi non vengano ripetute ogni volta che l'orologio viene acceso.

Il modulo orologio RTC DS3231 stesso è una varietà comune venduta su ebay. Il modulo è illustrato sopra. Cerca il tipo con una batteria di riserva ricaricabile.

Oltre a un microcontrollore programmato, è anche necessario ottenere e programmare una EEPROM seriale Microchip 24LC512 con il database di parole Akafugu e l'elenco delle frasi. Questo viene fatto usando un semplice circuito costruito con un Arduino e una scheda SD formattata come FAT32 con il file output2.dat su di essa. Uno schizzo legge i dati dalla scheda SD e li scrive nella EEPROM. I dettagli possono essere trovati ai seguenti due link. Assicurati di utilizzare lo schizzo di programmazione e il file di dati in questo Instructable, poiché quello al collegamento Akafugu non ha il database delle frasi. Segui la procedura nei link.

Panoramica del database Akafugu FLW

Istruzioni per la masterizzazione del file di dati nella EEPROM

Passaggio 3: impostazione e controllo dell'orologio

Le seguenti combinazioni di pulsanti vengono utilizzate per l'impostazione dell'orologio:

Impostazione dell'ora: tenere premuto il pulsante 1 durante il normale funzionamento.

Impostazione dei minuti: tenere premuto il pulsante 2 durante il normale funzionamento. I secondi vengono reimpostati automaticamente su "00"

Secondi azzerati: tenere premuto il pulsante 3 durante il normale funzionamento, rilasciarlo per sincronizzarsi con l'inizio di un nuovo minuto

Imposta mese: tieni premuti contemporaneamente i pulsanti 1 e 2 durante il normale funzionamento

Imposta data: tieni premuti contemporaneamente i pulsanti 1 e 3 durante il normale funzionamento

Imposta anno: tieni premuti contemporaneamente i pulsanti 2 e 3 durante il normale funzionamento

Imposta giorno della settimana: tieni premuti contemporaneamente i pulsanti 1, 2 e 3 durante il normale funzionamento

Alla prima accensione dell'unità, le modalità di funzionamento vengono visualizzate rapidamente prima che inizi la generazione delle parole:

"EE" significa che è stata rilevata la EEPROM esterna I2C contenente il database di parole Akafugu e l'elenco delle frasi.

"NOEE" significa che la EEPROM non è stata rilevata. L'unità torna alla generazione di parole casuali e non visualizza le frasi.

"CK" significa che l'ora e la data vengono visualizzate dopo la visualizzazione di 5 parole consecutive.

"NOCK" significa che l'ora/data è disattivata. Un flusso costante di parole viene visualizzato continuamente, interrotto ogni 10 minuti da una frase.

"RND" significa che viene utilizzata la modalità di generazione di parole casuali

"REL" significa che viene utilizzata la modalità di generazione del database di parole relazionali "Akafugu"

Per modificare e salvare le modalità, scollegare l'orologio e ricollegarlo tenendo premuto uno dei pulsanti indicati. Quindi rilasciare il pulsante. La nuova modalità viene memorizzata e visualizzata:

Pulsante 1: attiva/disattiva la modalità di generazione di parole casuale o relazionale

Pulsante 2: attiva o disattiva la visualizzazione di data/ora dopo 5 parole consecutive

Consigliato: