Innholdsfortegnelse:

Fire bokstaver ordklokke med Akafugu Word Generator og inspirerende setninger: 3 trinn
Fire bokstaver ordklokke med Akafugu Word Generator og inspirerende setninger: 3 trinn

Video: Fire bokstaver ordklokke med Akafugu Word Generator og inspirerende setninger: 3 trinn

Video: Fire bokstaver ordklokke med Akafugu Word Generator og inspirerende setninger: 3 trinn
Video: МАССИВНЫЙ Заброшенный испанский дворец | Все, что осталось позади на десятилетия! 2024, Juli
Anonim
Image
Image
Fire bokstaver ordklokke med Akafugu Word Generator og inspirerende setninger
Fire bokstaver ordklokke med Akafugu Word Generator og inspirerende setninger
Fire bokstaver ordklokke med Akafugu Word Generator og inspirerende setninger
Fire bokstaver ordklokke med Akafugu Word Generator og inspirerende setninger

Dette er min versjon av Four Letter Word Clock, en idé som stammer fra 1970 -tallet. Klokken viser en rekke ord på fire bokstaver som genereres fra enten en tilfeldig ordgeneratoralgoritme eller fra en database med relaterte ord på fire bokstaver.

Denne versjonen bruker mer moderne 14-segment LED-skjermer og en Atmega 328p mikrokontroller for å vise ord og tid. To ordgenereringsmoduser støttes. Den første bruker en algoritme til å generere ordgrupper på fire bokstaver som sannsynligvis vil være faktiske ord, lik originalen. Hvert påfølgende ord er ikke relatert til det forrige. Den andre modusen bruker relasjonsorddatabasen fra "Edinburgh Associative Thesaurus", et dokument med ordforeninger basert på folks svar på å spørre det første ordet som kommer til hjernen etter å ha gitt dem et frøord, for deretter å fortsette prosessen med svarordet. Databasen ble tilpasset ordgenerering på fire bokstaver av Akafugu Corporation, som opprettet en 57 Kbyte datafil som er lagret i en ekstern EEPROM for behandling av Atmega. Resultatet er at klokken bruker Unix-tid som et tilfeldig frø og genererer en streng med tilhørende ord på fire bokstaver basert på menneskelige svar, ikke noen algoritme.

Merk: Akafugu -orddatabasen inneholder noen seksuelt eksplisitte og potensielt støtende ord. Hvis dette plager deg, vennligst slå på tilfeldig ordmodus. Dette kan også generere noen støtende ord, men vil i hvert fall ikke vise strømmer av relaterte støtende ord!

"Edinburgh Associative Thesaurus" ble samlet ut fra svar fra mennesker som bodde i England på begynnelsen av 60 -tallet. Ordet relasjoner gjenspeiler definitivt denne skjevheten! For eksempel blir ordet "BEST" ofte etterfulgt av "PETE". Ingen åpenbar forbindelse eksisterer, med mindre man vet at Pete Best var den originale trommeslageren for Beatles på begynnelsen av 60 -tallet! Andre skjevheter mot britisk kultur på 60 -tallet florerer. Jeg synes det er veldig interessant å se!

Enheten inneholder også en I2C -adresserbar sanntidsklokke -modul med oppladbar batteribackup. Klokken viser 5 ord fra en av de to valgbare algoritmene, og viser deretter tid, dato, ukedag og år. Klokken og driftsmodus stilles inn med tre trykknappbrytere. Driftsmoduser lagres i ikke-flyktig EEPROM og overlever en tilbakestilling eller strømbrudd. RTC fortsetter å kjøre i omtrent et år etter at strømmen er fjernet, med ekstrem temperaturkompensert nøyaktighet. Riktig tid vises automatisk når strømmen gjenopprettes.

En ekstra funksjon er de 107 sitatene om tid som vises tilfeldig hvert 10. minutt. Disse sitatene ruller fra høyre til venstre over de fire karakterene, og gir hyppig oppmuntring og inspirasjon! Lagring for setningene er i den eksterne EEPROM med Akafugu -orddatabasen. Databasen tar bare 57 Kbyte av de 64 Kbytes som er tilgjengelige på enheten, og gir plass til de 107 setningene. En "skryt" -frase er alltid den første som vises når klokken først slås på i det neste 10 minutters intervallet.

Enheten bruker vanlige katoder med 14 segmenter (2 katoder for hvert siffer) som er multiplekset med en tidsavbruddsrutine for timer som resulterer i at displayet med fire tegn blir oppdatert på 100 Hz. Når ISR kjører, slår den av det forrige halvtegnet, henter 7 av de 14 segmentene for et av de fire tegnene, slår på de tilsvarende segmentpinnene og begrenser den tilsvarende katoden. Displayene er litt uvanlige, men jeg hadde et stort overskudd som jeg ønsket å bruke. Den dobbelte vanlige katoden reduserer antall pinner som trengs per siffer fra 15 til 9. Det er akkurat nok pinner på en Atmega 328p for å tillate direkte kjøring av skjermen uten skiftregister.

Å GJØRE: Endre kode for å bruke Adafruit 4-tegn alfanumeriske LED-moduler

Trinn 1: Historie

Historie
Historie
Historie
Historie
Historie
Historie
Historie
Historie

Den originale FLW -klokken ble bygget med store Burroughs B7971 alfanumeriske neonoverskuddsrør som ble fjernet fra nedlagte lagerkort. Disse ligner på tidens numeriske nixie-rør, men brukte en 14-segmenters skjerm for å danne alle ASCII-tegnene. Klokken brukte diskret logikk, og valgte bokstaver fra en tabell for å danne tilfeldige kombinasjoner på fire bokstaver som ble vektet for å sannsynligvis produsere virkelige ord.

Med algoritmen I den originale 1972 -modellen vises bare visse bokstaver i hver posisjon. En håndtabellert analyse av flere hundre ord på fire bokstaver ble utført, og hyppigheten av bokstaver i hver av de fire posisjonene ble talt. De ti hyppigste bokstavene i hver posisjon ble brukt, bortsett fra i den andre stillingen som bare inneholdt åtte bokstaver.

For hver posisjon løp en enkel BCD (0-9) teller (en 74LS90 IC) fritt, og tellingen ble fanget og holdt omtrent en gang hvert par sekunder til en gang i minuttet, avhengig av hastighetsinnstillingen. Teller -øyeblikksbildet ble deretter påført en avkodingsmatrise for dioder (med omtrent 150 dioder) for å danne tegnene.

Siden bare de ti (eller åtte) vanligste bokstavene ble valgt for hver posisjon, uten hensyn til bokstavkombinasjoner, kan mange ikke-ord vises, for eksempel FRLR, LREE, LLLL, etc.

Legg merke til at den andre posisjonen bare hadde åtte bokstaver, siden den niende og tiende bokstaven i utvalget hadde en forholdsvis lav frekvens, mens den første og andre hadde ekstremt høy frekvens-så de ble doblet. Dermed 10 x 8 x 10 x 10 = 8000 permutasjoner. Bokstavene som ble programmert i den første modellen fra 1973 er vist på et av bildene ovenfor.

Trinn 2: Kode og skjematisk

Kode og skjematisk
Kode og skjematisk
Kode og skjematisk
Kode og skjematisk
Kode og skjematisk
Kode og skjematisk
Kode og skjematisk
Kode og skjematisk

Skjemaet er vedlagt.

Klokken kan bygges med en hvilken som helst Atmega 328p-basert Arduino.

For bruk med en frittstående Atmega 328p, som vist i skjematikken, må en ISP -programmerer brukes til å programmere mikrokontrolleren via Arduino IDE. Etter programmering bør sikringene settes med følgende avrdude -kommando (WinAVR må være installert). Erstatt com -port og programmerertype. Det enkleste er å bruke en Arduino som en ISP -programmerer. 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 innstillingene deaktiverer tilbakestillingsvektoren for bootloader, så koden starter umiddelbart fra hovedkodevektoren. Sikringene er også satt for en ekstern 16MHz oscillator. Når den er brent, vil du ikke kunne programmere brikken igjen før krystallet og kondensatorene er koblet til som vist i skjematisk, da standard intern oscillator er deaktivert med disse sikringsinnstillingene.

DS3231 Arduino -biblioteket må være installert for å gi tilgang til RTC -klokkerutinene. Det er nødvendig å aktivere Unix -tidsstøtte i biblioteket ved å ikke kommentere linjen "#define CONFIG_UNIXTIME" i DS3231 RTC -bibliotekets config.h -fil. Unix -tid brukes som et frø for tilfeldige tallgeneratoren, slik at ord- og setningssekvensene ikke blir gjentatt hver gang klokken slås på.

Selve DS3231 RTC -klokkemodulen er en vanlig variant som selges på eBay. Modulen er illustrert ovenfor. Se etter typen med et oppladbart reservebatteri.

I tillegg til en programmert mikrokontroller er det også nødvendig å skaffe og programmere en Microchip 24LC512 seriell EEPROM med Akafugu orddatabase og setningsliste. Dette gjøres ved hjelp av en enkel krets bygget med en Arduino, og SD -kort formatert som FAT32 med output2.dat -filen på den. En skisse leser dataene fra SD -kortet og skriver det til EEPROM. Detaljer finner du på de to følgende lenker. Sørg for å bruke programmeringsskissen og datafilen i denne instruksjonsboken, ettersom den på Akafugu -lenken mangler setningsdatabasen. Følg prosedyren i koblingene.

Oversikt over Akafugu FLW -database

Instruksjoner for brenning av datafilen til EEPROM

Trinn 3: Klokkeoppsett og kontroll

Følgende knappekombinasjoner brukes til klokkeoppsett:

Tidsinnstilling: Hold inne knapp 1 under normal drift.

Minutt sett: Hold inne knapp 2 under normal drift. Andre blir automatisk tilbakestilt til "00"

Sekunder tilbakestilles til null: Hold inne knapp 3 under normal drift, slipp for å synkronisere med start av nytt minutt

Angi måned: Hold knappene 1 og 2 sammen under normal drift

Still inn dato: Hold knappene 1 og 3 sammen under normal drift

Angi år: Hold knappene 2 og 3 sammen under normal drift

Angi ukedag: Hold knappene 1, 2 og 3 sammen under normal drift

Når enheten først slås på, vises driftsmodusene raskt før ordgenerering starter:

"EE" betyr at I2C ekstern EEPROM som inneholder Akafugu -orddatabasen og setningslisten er oppdaget.

"NOEE" betyr at EEPROM ikke ble oppdaget. Enheten går tilbake til tilfeldig ordgenerering og ingen frasevisning.

"CK" betyr at tid og dato vises etter å ha vist 5 ord på rad.

"NOCK" betyr at tid/dato er slått av. En jevn strøm av ord vises kontinuerlig, avbrutt hvert 10. minutt av en setning.

"RND" betyr at tilfeldig ordgenereringsmodus brukes

"REL" betyr at den relasjonelle "Akafugu" orddatabasen generasjonsmodus brukes

For å endre og lagre modus, koble fra klokken og koble den til igjen mens du holder en av de angitte knappene. Slipp deretter knappen. Den nye modusen lagres og vises:

Knapp 1: Veksle og lagre tilfeldig eller relasjonell ordgenereringsmodus

Knapp 2: Slå visningen av dato/klokkeslett av eller på etter 5 ord på rad

Anbefalt: