Innehållsförteckning:

Fyra bokstäver ordklocka med Akafugu Word Generator och inspirerande fraser: 3 steg
Fyra bokstäver ordklocka med Akafugu Word Generator och inspirerande fraser: 3 steg

Video: Fyra bokstäver ordklocka med Akafugu Word Generator och inspirerande fraser: 3 steg

Video: Fyra bokstäver ordklocka med Akafugu Word Generator och inspirerande fraser: 3 steg
Video: SFI Kurs A - Läsa fyra bokstäver 2024, Juli
Anonim
Image
Image
Fyra bokstäver ordklocka med Akafugu Word Generator och inspirerande fraser
Fyra bokstäver ordklocka med Akafugu Word Generator och inspirerande fraser
Fyra bokstäver ordklocka med Akafugu Word Generator och inspirerande fraser
Fyra bokstäver ordklocka med Akafugu Word Generator och inspirerande fraser

Detta är min version av Four Letter Word Clock, en idé som har sitt ursprung redan på 1970 -talet. Klockan visar en serie med fyra bokstäver som genereras antingen från en slumpmässig ordgeneratoralgoritm eller från en databas med relaterade ord på fyra bokstäver.

Denna version använder modernare 14-segment LED-skärmar och en Atmega 328p mikrokontroller för att visa ord och tid. Två ordgenereringslägen stöds. Den första använder en algoritm för att generera ordgrupper på fyra bokstäver som sannolikt kommer att vara verkliga ord, liknande originalet. Varje ord i följd har inget samband med det föregående. Det andra läget använder relationsdatabasen från "Edinburgh Associative Thesaurus", ett dokument med ordföreningar baserat på människors svar på att fråga det första ordet som kommer att tänka på efter att ha gett dem ett fröord, för att sedan fortsätta processen med svarordet. Databasen anpassades till generering av fyra bokstäver av Akafugu Corporation, som skapade en 57 Kbyte datafil som lagras i en extern EEPROM för behandling av Atmega. Resultatet är att klockan använder Unix-tid som ett slumpmässigt frö och genererar en rad associerade ord med fyra bokstäver baserat på mänskliga svar, inte någon algoritm.

Obs! Akafugu -orddatabasen innehåller några sexuellt uttryckliga och potentiellt stötande ord. Om detta stör dig, vänligen slå på slumpmässigt ordläge. Detta kan också generera några stötande ord, men åtminstone kommer inte att visa strömmar av relaterade stötande ord!

"Edinburgh Associative Thesaurus" sammanställdes baserat på svar från människor som bodde i England i början av 60 -talet. Ordet relationer återspeglar definitivt denna fördom! Till exempel följs ordet "BEST" ofta av "PETE". Det finns ingen uppenbar koppling, om man inte vet att Pete Best var den ursprungliga trummisen för Beatles i början av 60 -talet! Andra fördomar mot brittisk kultur på 60 -talet finns i överflöd. Jag tycker det är väldigt intressant att se!

Enheten innehåller också en I2C -adresserbar Real Time Clock -modul med uppladdningsbart batteri. Klockan visar 5 ord från en av de två valbara algoritmerna, visar sedan tid, datum, veckodag och år. Klockan och driftlägen ställs in med tre tryckknappar. Driftlägen lagras i icke-flyktigt EEPROM och överlever en återställning eller strömavbrott. RTC fortsätter att köra i ungefär ett år efter att strömmen har tagits bort, med extrem temperaturkompenserad noggrannhet. Rätt tid visas automatiskt när strömmen återställs.

En extra funktion är de 107 citaten om tid som visas slumpmässigt var 10: e minut. Dessa citat rullar från höger till vänster över de fyra karaktärerna och ger ofta uppmuntran och inspiration! Lagring för fraserna finns i den externa EEPROM med Akafugu -orddatabasen. Databasen tar bara 57 Kbyte av de 64 Kbytes som finns tillgängliga i enheten, vilket ger plats för de 107 fraserna. En "skryt" -fras är alltid den första som visas när klockan först startas vid nästa 10 minuters intervall.

Enheten använder vanliga 14-segmentiga katodskärmar (2 katoder för varje siffra) som multiplexeras av en timeravbrottstjänstrutin som resulterar i att fyrteckenvisningen uppdateras vid 100 Hz. När ISR: n körs stänger den av det tidigare halvtecknet, hämtar 7 av de 14 segmenten för ett av de fyra tecknen, slår på motsvarande segmentpinnar och grundar motsvarande katod. Displayerna är lite ovanliga, men jag hade ett stort överskott som jag ville använda. Den dubbla gemensamma katoden minskar antalet stift som behövs per siffra från 15 till 9. Det finns precis tillräckligt med stift på en Atmega 328p för att direktdriva displayen utan ett skiftregister.

TO-DO: Ändra koden för att använda Adafruit 4-tecken alfanumeriska LED-modul

Steg 1: Historia

Historia
Historia
Historia
Historia
Historia
Historia
Historia
Historia

Den ursprungliga FLW -klockan byggdes med stora Burroughs B7971 alfanumeriska neonöverskottsrör som avlägsnades från avvecklade stock ticker display boards. Dessa liknar tidens numeriska nixie-rör, men använde en 14-segmentskärm för att bilda alla ASCII-tecken. Klockan använde diskret logik och valde bokstäver från en tabell för att bilda slumpmässiga kombinationer av fyra bokstäver som var viktade för att sannolikt skulle producera riktiga ord.

Med algoritmen I den ursprungliga 1972 -modellen visas bara vissa bokstäver i varje position. En handtabellerad analys av flera hundra ord med fyra bokstäver gjordes och bokstavsfrekvensen i var och en av de fyra positionerna räknades. De tio vanligaste bokstäverna i varje position användes, förutom i den andra positionen som endast innehöll åtta bokstäver.

För varje position sprang en enkel BCD (0-9) räknare (en 74LS90 IC) fritt och räkningen fångades och hölls ungefär varannan sekund till en gång per minut, beroende på hastighetsinställningen. Räknaren ögonblicksbild applicerades sedan på en diodavkodningsmatris (med cirka 150 dioder) för att bilda tecknen.

Eftersom endast de tio (eller åtta) vanligaste bokstäverna valdes för varje position, utan hänsyn till bokstavskombinationer, kan många icke-ord visas, t.ex. FRLR, LREE, LLLL, etc.

Observera att den andra positionen bara hade åtta bokstäver, eftersom den nionde och tionde bokstaven i urvalet hade en proportionellt låg frekvens, medan den första och andra hade extremt hög frekvens-så de fördubblades. Således 10 x 8 x 10 x 10 = 8000 permutationer. Bokstäverna som programmerades in i den första modellen från 1973 visas i en av bilderna ovan.

Steg 2: Kod och schematisk

Kod och schematisk
Kod och schematisk
Kod och schematisk
Kod och schematisk
Kod och schematisk
Kod och schematisk
Kod och schematisk
Kod och schematisk

Schemat är bifogat.

Klockan kan byggas med vilken Atmega 328p-baserad Arduino som helst.

För användning med en fristående Atmega 328p, som visas i schemat, måste en ISP -programmerare användas för att programmera mikrokontrollen via Arduino IDE. Efter programmering ska säkringarna ställas in med följande avrdude -kommando (WinAVR måste installeras). Ersätt com -port och programmerartyp. Det enklaste är att använda en Arduino som en ISP -programmerare. Google för 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

Dessa inställningar inaktiverar återställningsvektorn för bootloader så att koden omedelbart börjar från huvudkodvektorn. Säkringarna är också inställda för en extern 16MHz oscillator. Efter att ha bränts kommer du inte att kunna programmera chippet igen förrän kristallen och kondensatorerna är anslutna enligt schemat, eftersom standard intern oscillator är inaktiverad med dessa säkringsinställningar.

DS3231 Arduino -biblioteket måste installeras för att ge åtkomst till RTC -klockrutinerna. Det är nödvändigt att aktivera Unix -tidssupport i biblioteket genom att inte kommentera raden "#define CONFIG_UNIXTIME" i filen DS3231 RTC -bibliotek config.h. Unix -tid används som frö för slumptalsgeneratorn så att ord- och frasekvenserna inte kommer att upprepas varje gång klockan startas.

Själva DS3231 RTC -klockmodulen är en vanlig variant som säljs på ebay. Modulen illustreras ovan. Leta efter typen med ett uppladdningsbart reservbatteri.

Förutom en programmerad mikrokontroller är det också nödvändigt att skaffa och programmera en Microchip 24LC512 seriell EEPROM med Akafugu orddatabas och fraslista. Detta görs med en enkel krets byggd med en Arduino och SD -kort formaterat som FAT32 med filen output2.dat på den. En skiss läser data från SD -kortet och skriver det till EEPROM. Detaljer kan hittas på följande två länkar. Var noga med att använda programmeringsskissen och datafilen i denna instruktionsbok, eftersom den på Akafugu -länken saknar frasdatabasen. Följ proceduren i länkarna.

Akafugu FLW databasöversikt

Instruktioner för att bränna datafilen till EEPROM

Steg 3: Klockinställning och kontroll

Följande knappkombinationer används för klockinställning:

Timmar: Håll knappen 1 intryckt under normal drift.

Minutinställning: Håll knappen 2 under normal drift. Andra återställs automatiskt till "00"

Sekunder återställs till noll: Håll knapp 3 under normal drift, släpp för att synkronisera med start av ny minut

Ställ in månad: Håll knapparna 1 och 2 tillsammans under normal drift

Ställ in datum: Håll knapparna 1 och 3 tillsammans under normal drift

Ställ in år: Håll knapparna 2 och 3 tillsammans under normal drift

Ställ in veckodag: Håll knapparna 1, 2 och 3 tillsammans under normal drift

När enheten startas första gången visas driftlägen snabbt innan ordgenerering startar:

"EE" betyder att I2C: s externa EEPROM innehåller Akafugu -orddatabas och fraslista har upptäckts.

"NOEE" betyder att EEPROM inte detekterades. Enheten återgår till slumpmässig ordgenerering och ingen frasvisning.

"CK" betyder att tid och datum visas efter att ha visat fem ord i rad.

"NOCK" betyder att tid/datum är avstängt. En stadig ordström visas kontinuerligt, avbruten var tionde minut av en fras.

"RND" betyder att slumpmässigt ordgenereringsläge används

"REL" betyder att det relationella "Akafugu" orddatabasgenereringsläget används

För att ändra och spara lägen, koppla ur klockan och sätt i kontakten igen medan du håller en av de angivna knapparna. Släpp sedan knappen. Det nya läget lagras och visas:

Knapp 1: Växla och spara slumpmässigt eller relationellt ordgenereringsläge

Knapp 2: Aktivera eller inaktivera visning av datum/tid efter fem ord i rad

Rekommenderad: