Indholdsfortegnelse:

Firebogstavsur med Akafugu Word Generator og inspirerende sætninger: 3 trin
Firebogstavsur med Akafugu Word Generator og inspirerende sætninger: 3 trin

Video: Firebogstavsur med Akafugu Word Generator og inspirerende sætninger: 3 trin

Video: Firebogstavsur med Akafugu Word Generator og inspirerende sætninger: 3 trin
Video: Startup - Word Clock Building Prototype 2024, Juli
Anonim
Image
Image
Firebogstavsur med Akafugu Word Generator og inspirerende sætninger
Firebogstavsur med Akafugu Word Generator og inspirerende sætninger
Firebogstavsur med Akafugu Word Generator og inspirerende sætninger
Firebogstavsur med Akafugu Word Generator og inspirerende sætninger

Dette er min version af Four Letter Word Clock, en idé, der stammer tilbage i 1970'erne. Uret viser en række ord på fire bogstaver, der genereres fra enten en tilfældig ordgeneratoralgoritme eller fra en database med relaterede ord på fire bogstaver.

Denne version bruger mere moderne 14-segment LED-skærme og en Atmega 328p mikrokontroller til at vise ord og tid. To ordgenereringsmetoder understøttes. Den første bruger en algoritme til at generere ordgrupper på fire bogstaver, der sandsynligvis vil være egentlige ord, der ligner originalen. Hvert efterfølgende ord er ikke relateret til det foregående. Den anden tilstand bruger relationsdatabasen fra "Edinburgh Associative Thesaurus", et dokument med ordforeninger baseret på folks svar på at spørge det første ord, der kommer til at tænke efter at have givet dem et frøord, og derefter fortsætte processen med svarordet. Databasen blev tilpasset til ordbogning på fire bogstaver af Akafugu Corporation, der oprettede en 57 Kbyte datafil, der er gemt i en ekstern EEPROM til behandling af Atmega. Resultatet er, at uret bruger Unix-tid som et tilfældigt frø og genererer en række tilhørende ord på fire bogstaver baseret på menneskelige svar, ikke en algoritme.

Bemærk: Akafugu -orddatabasen indeholder nogle seksuelt eksplicitte og potentielt stødende ord. Hvis dette generer dig, skal du aktivere tilfældig ordtilstand. Dette kan også generere nogle stødende ord, men vil i hvert fald ikke vise strømme af relaterede stødende ord!

"Edinburgh Associative Thesaurus" blev udarbejdet baseret på svar fra mennesker, der boede i England i begyndelsen af 60'erne. Ordet relationer afspejler bestemt den bias! For eksempel efterfølges ordet "BEST" ofte af "PETE". Der findes ingen indlysende forbindelse, medmindre man ved, at Pete Best var den originale trommeslager for Beatles i begyndelsen af 60'erne! Andre fordomme i forhold til britisk kultur i 60'erne florerer. Jeg synes, det er meget interessant at se!

Enheden indeholder også et I2C -adresserbart Real Time Clock -modul med genopladelig batteribackup. Uret viser 5 ord fra en af de to valgbare algoritmer og viser derefter tid, dato, ugedag og år. Uret og driftstilstande indstilles ved hjælp af tre trykknapper. Driftstilstande lagres i ikke-flygtig EEPROM og overlever en nulstilling eller strømsvigt. RTC fortsætter med at køre i cirka et år, efter at strømmen er blevet fjernet, med ekstrem temperaturkompenseret nøjagtighed. Det korrekte tidspunkt vises automatisk, når strømmen genoprettes.

En ekstra funktion er de 107 citater om tid, der vises tilfældigt hvert 10. minut. Disse citater ruller fra højre til venstre over de fire karakterer og giver hyppig opmuntring og inspiration! Opbevaring af sætningerne er i den eksterne EEPROM med Akafugu -orddatabasen. Databasen tager kun 57 Kbytes af de 64 Kbytes, der er tilgængelige på enheden, hvilket efterlader plads til de 107 sætninger. En "pral" sætning er altid den første, der vises, når uret først tændes i det næste 10 minutters interval.

Enheden anvender fælles katode 14-segment displays (2 katoder for hvert ciffer), der er multiplekset med en timer-afbrydelsesrutine, der resulterer i, at displayet med fire tegn opdateres ved 100 Hz. Når ISR'en kører, slukker den forrige halvtegn, henter 7 af de 14 segmenter for et af de fire tegn, tænder de tilsvarende segmentstifter og begrunder den tilsvarende katode. Skærmene er lidt ualmindelige, men jeg havde et stort overskud, som jeg ville bruge. Den dobbelte fælles katode reducerer antallet af stifter, der er nødvendige pr. Ciffer, fra 15 til 9. Der er lige nok stifter på en Atmega 328p til at muliggøre direkte drift af displayet uden et skiftregister.

TO-DO: Rediger kode for at bruge Adafruit 4-tegn alfanumeriske LED-modul

Trin 1: Historie

Historie
Historie
Historie
Historie
Historie
Historie
Historie
Historie

Det originale FLW -ur blev bygget med store Burroughs B7971 alfanumeriske neonoverskudsrør fjernet fra nedlagte lagerkort. Disse ligner datidens numeriske nixie-rør, men brugte et 14-segment display til at danne alle ASCII-tegnene. Uret brugte diskret logik og valgte bogstaver fra en tabel til at danne tilfældige kombinationer af fire bogstaver, der blev vejet til sandsynligvis at producere rigtige ord.

Med algoritmen I den originale 1972 -model vises kun bestemte bogstaver i hver position. En håndtabuleret analyse af flere hundrede ord på fire bogstaver blev udført, og hyppigheden af bogstaver i hver af de fire positioner blev talt. De ti hyppigste bogstaver i hver position blev brugt, undtagen i den anden position, der kun indeholdt otte bogstaver.

For hver position løb en simpel BCD (0-9) tæller (en 74LS90 IC) frit, og tællingen blev fanget og holdt cirka et par gange i sekunder til en gang i minuttet, afhængigt af hastighedsindstillingen. Tæller -snapshot blev derefter anvendt på en diode -dekodningsmatrix (ved hjælp af ca. 150 dioder) for at danne tegnene.

Da kun de ti (eller otte) mest almindelige bogstaver blev valgt for hver position uden hensyntagen til bogstavkombinationer, kan mange ikke-ord vises, f.eks. FRLR, LREE, LLLL osv.

Bemærk, at den anden position kun havde otte bogstaver, da det niende og tiende bogstav i prøven havde en forholdsvis lav frekvens, mens den første og anden havde ekstremt høj frekvens, så de blev fordoblet. Således 10 x 8 x 10 x 10 = 8000 permutationer. Bogstaverne, der blev programmeret til den første 1973 -model, er vist på et af billederne ovenfor.

Trin 2: Kode og skematisk

Kode og skematisk
Kode og skematisk
Kode og skematisk
Kode og skematisk
Kode og skematisk
Kode og skematisk
Kode og skematisk
Kode og skematisk

Skemaet er vedhæftet.

Uret kan bygges ved hjælp af enhver Atmega 328p-baseret Arduino.

Til brug med en selvstændig Atmega 328p, som vist i skematikken, skal en ISP -programmer bruges til at programmere mikrokontrolleren via Arduino IDE. Efter programmering skal sikringerne indstilles ved hjælp af følgende avrdude -kommando (WinAVR skal installeres). Erstat com -port og programmerertype. Det nemmeste er at bruge en Arduino som en internetudbyder. Google for detaljer.

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

Disse indstillinger deaktiverer bootloader -nulstillingsvektoren, så koden starter straks fra hovedkodevektoren. Sikringerne er også indstillet til en ekstern 16MHz oscillator. Når den er brændt, vil du ikke være i stand til at programmere chippen igen, før krystallen og kondensatorerne er forbundet som vist i skematisk, da standard intern oscillator er deaktiveret med disse sikringsindstillinger.

DS3231 Arduino -biblioteket skal installeres for at give adgang til RTC -urrutinerne. Det er nødvendigt at aktivere Unix -tidssupport i biblioteket ved at kommentere linjen "#define CONFIG_UNIXTIME" i DS3231 RTC -bibliotekets config.h -fil. Unix -tid bruges som et frø til den tilfældige talgenerator, så ord- og sætningssekvenserne ikke gentages hver gang uret tændes.

Selve DS3231 RTC -urmodulet er en almindelig variant, der sælges på eBay. Modulet er illustreret ovenfor. Se efter typen med et genopladeligt backupbatteri.

Ud over en programmeret mikrokontroller er det også nødvendigt at skaffe og programmere en Microchip 24LC512 seriel EEPROM med Akafugu orddatabase og sætningsliste. Dette gøres ved hjælp af et simpelt kredsløb bygget med en Arduino og SD -kort formateret som FAT32 med output2.dat -filen på. En skitse læser dataene fra SD -kortet og skriver det til EEPROM. Detaljer kan findes på de følgende to links. Sørg for at bruge programmeringsskitsen og datafilen i denne Instructable, da den på Akafugu -linket mangler sætningsdatabasen. Følg proceduren i linkene.

Oversigt over Akafugu FLW -database

Instruktioner til brænding af datafilen til EEPROM

Trin 3: Opsætning og kontrol af uret

Følgende knapkombinationer bruges til uropsætning:

Tidsindstilling: Hold knap 1 nede under normal drift.

Minutesæt: Hold knap 2 nede under normal drift. Andet nulstilles automatisk til "00"

Sekunder nulstilles til nul: Hold knap 3 nede under normal drift, slip for at synkronisere med start af nyt minut

Indstil måned: Hold knapperne 1 og 2 sammen under normal drift

Indstil dato: Hold knapperne 1 og 3 sammen under normal drift

Indstil år: Hold knapperne 2 og 3 sammen under normal drift

Indstil ugedag: Hold knapperne 1, 2 og 3 sammen under normal drift

Når enheden tændes første gang, vises driftstilstandene hurtigt, inden ordgenerering starter:

"EE" betyder, at I2C ekstern EEPROM, der indeholder Akafugu -orddatabasen og sætningslisten, er blevet registreret.

"NOEE" betyder, at EEPROM ikke blev registreret. Enheden vender tilbage til tilfældig orddannelse og ingen visning af sætninger.

"CK" betyder, at tid og dato vises efter visning af 5 ord i træk.

"NOCK" betyder, at tid/dato er slukket. En jævn strøm af ord vises kontinuerligt, afbrudt hvert 10. minut af en sætning.

"RND" betyder, at tilfældig ordgenereringstilstand bruges

"REL" betyder, at den relationelle "Akafugu" orddatabasegenereringstilstand bruges

Hvis du vil ændre og gemme tilstande, skal du tage uret ud og sætte stikket i igen, mens du holder en af de angivne knapper. Slip derefter knappen. Den nye tilstand gemmes og vises:

Knap 1: Skift og gem tilfældig eller relationel ordgenereringsfunktion

Knap 2: Slå visning af dato/tid til efter fem på hinanden følgende ord til eller fra

Anbefalede: