Cuprins:

Ceas cu patru litere de cuvinte cu generatorul de cuvinte Akafugu și fraze inspiraționale: 3 pași
Ceas cu patru litere de cuvinte cu generatorul de cuvinte Akafugu și fraze inspiraționale: 3 pași

Video: Ceas cu patru litere de cuvinte cu generatorul de cuvinte Akafugu și fraze inspiraționale: 3 pași

Video: Ceas cu patru litere de cuvinte cu generatorul de cuvinte Akafugu și fraze inspiraționale: 3 pași
Video: Cristian Munteanu - Ecuație cu patru necunoscute (1994) 2024, Iulie
Anonim
Image
Image
Ceas cu patru litere de cuvinte cu generatorul de cuvinte Akafugu și fraze inspiraționale
Ceas cu patru litere de cuvinte cu generatorul de cuvinte Akafugu și fraze inspiraționale
Ceas cu patru litere de cuvinte cu generatorul de cuvinte Akafugu și fraze inspiraționale
Ceas cu patru litere de cuvinte cu generatorul de cuvinte Akafugu și fraze inspiraționale

Aceasta este versiunea mea a Ceasului cu patru litere, o idee care a luat naștere în anii 1970. Ceasul afișează o serie de cuvinte din patru litere care sunt generate fie dintr-un algoritm generator de cuvinte aleatoriu, fie dintr-o bază de date cu cuvinte din patru litere aferente.

Această versiune folosește afișaje LED cu 14 segmente mai moderne și un microcontroler Atmega 328p pentru a afișa cuvintele și ora. Sunt acceptate două moduri de generare a cuvintelor. Primul folosește un algoritm pentru a genera grupuri de cuvinte din patru litere care sunt probabil cuvinte reale, similare cu originalul. Fiecare cuvânt succesiv nu are legătură cu precedentul. Al doilea mod folosește baza de date relațională a cuvintelor din „Edinburgh Associative Thesaurus”, un document de asocieri de cuvinte bazat pe răspunsurile oamenilor la întrebarea primului cuvânt care îți vine în minte după ce le-ai dat un cuvânt semință, apoi continuând procesul cu cuvântul de răspuns. Baza de date a fost adaptată la generarea de cuvinte din patru litere de către Akafugu Corporation, care a creat un fișier de date de 57 Kbyte care este stocat într-o EEPROM externă pentru procesare de către Atmega. Rezultatul este că ceasul folosește timpul Unix ca o sămânță aleatorie și generează un șir de cuvinte asociate din patru litere bazate pe răspunsuri umane, nu pe un algoritm.

Notă: baza de date de cuvinte Akafugu conține câteva cuvinte explicite sexual și potențial jignitoare. Dacă acest lucru vă deranjează, activați modul cuvânt aleatoriu. Acest lucru poate genera și unele cuvinte jignitoare, dar cel puțin nu va afișa fluxuri de cuvinte jignitoare conexe!

„Edinburgh Associative Thesaurus” a fost compilat pe baza răspunsurilor din partea oamenilor care locuiau în Anglia la începutul anilor '60. Cuvântul relații reflectă cu siguranță această părtinire! De exemplu, cuvântul „CEL MAI BUN” este urmat frecvent de „PETE”. Nu există nicio conexiune evidentă, cu excepția cazului în care se știe că Pete Best a fost bateristul original pentru Beatles la începutul anilor '60! Alte părtiniri față de cultura britanică din anii 60 abundă. Cred că este foarte interesant de urmărit!

Dispozitivul conține, de asemenea, un modul Ceas în timp real adresabil I2C cu rezervă a bateriei reîncărcabile. Ceasul afișează 5 cuvinte dintr-unul dintre cei doi algoritmi selectabili, apoi afișează ora, data, ziua săptămânii și anul. Ceasul și modurile de funcționare sunt setate cu ajutorul a trei butoane. Modurile de operare sunt stocate în EEPROM nevolatilă și supraviețuiesc unei resetări sau întreruperi de curent. RTC continuă să funcționeze timp de aproximativ un an după scoaterea curentului, cu o precizie extremă compensată de temperatură. Ora corectă este afișată automat la restabilirea alimentării.

O caracteristică adăugată este cea de 107 citate despre timp care sunt afișate aleator la fiecare 10 minute. Aceste citate derulează de la dreapta la stânga peste cele patru personaje, oferind încurajări și inspirații frecvente! Stocarea frazelor se află în EEPROM externă cu baza de date de cuvinte Akafugu. Baza de date ia doar 57 Kbyte din cele 64 Kbyte disponibile în dispozitiv, lăsând spațiu pentru cele 107 fraze. O frază „laudă” este întotdeauna prima care se afișează atunci când ceasul este pornit pentru prima dată la următorul interval de 10 minute.

Unitatea utilizează afișaje comune cu 14 segmente de catod (2 catode pentru fiecare cifră) care sunt multiplexate de o rutină de service de întrerupere a temporizatorului care are ca rezultat actualizarea afișajului cu patru caractere la 100 Hz. Ori de câte ori ISR rulează, acesta oprește semicaracterul anterior, preia 7 din cele 14 segmente pentru unul dintre cele patru caractere, pornește pinii de segment corespunzători și fundamentează catodul corespunzător. Afișajele sunt puțin neobișnuite, dar am avut un surplus mare de oferte pe care am vrut să le folosesc. Catodul dual-comun reduce numărul de pini necesari pentru fiecare cifră de la 15 la 9. Există doar suficienți pini pe un Atmega 328p pentru a permite acționarea directă a afișajului fără un registru de schimbare.

TO-DO: Modificați codul pentru a utiliza modulul LED alfanumeric cu 4 caractere Adafruit

Pasul 1: Istorie

Istorie
Istorie
Istorie
Istorie
Istorie
Istorie
Istorie
Istorie

Ceasul original FLW a fost construit cu tuburi mari de surplus de neon alfanumerice Burroughs B7971 scoase de pe panourile de afișare de pe buzunare dezafectate. Acestea sunt similare cu tuburile numerice nixie ale timpului, dar au folosit un afișaj cu 14 segmente pentru a forma toate caracterele ASCII. Ceasul a folosit o logică discretă, selectând litere dintr-un tabel pentru a forma combinații aleatorii de patru litere care au fost ponderate pentru a produce probabil cuvinte reale.

Cu algoritmul În modelul original din 1972, numai anumite litere apar în fiecare poziție. S-a făcut o analiză tabelată manual a câteva sute de cuvinte din patru litere și s-a numărat frecvența literelor în fiecare dintre cele patru poziții. Au fost utilizate cele mai frecvente zece litere din fiecare poziție, cu excepția celei de-a doua poziții care conținea doar opt litere.

Pentru fiecare poziție, un contor simplu BCD (0-9) (un IC 74LS90) a rulat liber și numărul a fost capturat și ținut aproximativ o dată la câteva secunde până la o dată pe minut, în funcție de setarea vitezei. Instantaneul contorului a fost apoi aplicat pe o matrice de decodare a diodelor (folosind aproximativ 150 diode) pentru a forma caracterele.

Deoarece doar cele zece (sau opt) cele mai comune litere au fost selectate pentru fiecare poziție, fără a ține cont de combinațiile de litere, pot apărea multe non-cuvinte, de exemplu, FRLR, LREE, LLLL etc.

Rețineți că a doua poziție avea doar opt litere, deoarece a noua și a zecea literă din eșantion aveau o frecvență proporțional scăzută, în timp ce prima și a doua aveau o frecvență extrem de ridicată - deci au fost dublate. Astfel 10 x 8 x 10 x 10 = 8000 permutări. Literele care au fost programate în primul model din 1973 sunt prezentate într-una dintre imaginile de mai sus.

Pasul 2: Cod și schemă

Cod și schemă
Cod și schemă
Cod și schemă
Cod și schemă
Cod și schemă
Cod și schemă
Cod și schemă
Cod și schemă

Schema este atașată.

Ceasul poate fi construit folosind orice Arduino bazat pe Atmega 328p.

Pentru a fi utilizat cu un Atmega 328p independent, așa cum se arată în schemă, un programator ISP trebuie utilizat pentru a programa microcontrolerul prin ID-ul Arduino. După programare, siguranțele trebuie setate folosind următoarea comandă avrdude (WinAVR trebuie instalat). Înlocuiți portul de com și tipul de programator. Cel mai simplu este să folosești un Arduino ca programator ISP. Google pentru detalii.

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

Aceste setări dezactivează vectorul de resetare a încărcătorului de încărcare, astfel încât codul începe imediat de la vectorul de cod principal. Siguranțele sunt, de asemenea, setate pentru un oscilator extern de 16 MHz. Odată ars, nu veți putea programa din nou cipul până când cristalul și condensatoarele nu sunt conectate așa cum se arată în schemă, deoarece oscilatorul intern implicit este dezactivat cu aceste setări de siguranță.

Biblioteca DS3231 Arduino trebuie instalată pentru a oferi acces la rutinele de ceas RTC. Este necesar să activați suportul Unix time în bibliotecă, descomentând linia „#define CONFIG_UNIXTIME” în fișierul config.h al bibliotecii RTC DS3231. Timpul Unix este folosit ca o semință pentru generatorul de numere aleatorii, astfel încât secvențele de cuvinte și fraze să nu fie repetate de fiecare dată când ceasul este pornit.

Modulul de ceas DS3231 RTC în sine este un soi obișnuit vândut pe eBay. Modulul este ilustrat mai sus. Căutați tipul cu o baterie de rezervă reîncărcabilă.

În plus față de un microcontroler programat, este, de asemenea, necesar să obțineți și să programați o EEPROM serială Microchip 24LC512 cu baza de date de cuvinte Akafugu și lista de fraze. Acest lucru se face folosind un circuit simplu construit cu un Arduino și un card SD formatat ca FAT32 cu fișierul output2.dat pe el. O schiță citește datele de pe cardul SD și le scrie pe EEPROM. Detalii pot fi găsite la următoarele două linkuri. Asigurați-vă că utilizați schița de programare și fișierul de date în acest instructabil, deoarece celui de pe link-ul Akafugu îi lipsește baza de date de expresii. Urmați procedura din linkuri.

Prezentare generală a bazei de date Akafugu FLW

Instrucțiuni pentru arderea fișierului de date către EEPROM

Pasul 3: Configurarea și controlul ceasului

Următoarele combinații de butoane sunt utilizate pentru configurarea ceasului:

Set de ore: Țineți apăsat butonul 1 în timpul funcționării normale.

Set de minute: Țineți apăsat butonul 2 în timpul funcționării normale. În al doilea rând sunt resetate automat la „00”

Secunde resetate la zero: Țineți apăsat butonul 3 în timpul funcționării normale, eliberați pentru a sincroniza cu începutul noului minut

Setare lună: Țineți butoanele 1 și 2 împreună în timpul funcționării normale

Set Date: Țineți butoanele 1 și 3 împreună în timpul funcționării normale

Set An: Țineți butoanele 2 și 3 împreună în timpul funcționării normale

Setați ziua săptămânii: țineți apăsate butoanele 1, 2 și 3 împreună în timpul funcționării normale

Când unitatea este pornită pentru prima dată, modurile de operare sunt afișate rapid înainte de a începe generarea de cuvinte:

„EE” înseamnă că EEPROM externă I2C care conține baza de date de cuvinte Akafugu și lista de fraze a fost detectată.

„NOEE” înseamnă că EEPROM nu a fost detectată. Unitatea revine la generarea aleatorie de cuvinte și la afișarea fără expresie.

„CK” înseamnă ora și data sunt afișate după afișarea a 5 cuvinte consecutive.

„NOCK” înseamnă că data / ora este oprită. Se afișează continuu un flux constant de cuvinte, întrerupt la fiecare 10 minute de o frază.

„RND” înseamnă că se folosește modul de generare aleatorie a cuvintelor

„REL” înseamnă modul relațional de generare a bazei de date de cuvinte „Akafugu”

Pentru a schimba și a salva modurile, deconectați ceasul și reconectați-l în timp ce țineți unul dintre butoanele indicate. Apoi eliberați butonul. Noul mod este stocat și afișat:

Butonul 1: comutați și salvați modul de generare a cuvintelor aleatoriu sau relațional

Butonul 2: comutați afișarea datei / orei după 5 cuvinte consecutive activate sau dezactivate

Recomandat: