Dit is mijn versie van de vier Letter woord klok, een idee dat is ontstaan in de jaren 1970 terug. De klok toont een reeks van vier - letter woorden die worden gegenereerd uit ofwel een willekeurig woord generator algoritme of uit een database van verwante vier - letter woorden.
Deze versie maakt gebruik van modernere 14-segment LED-displays en een microcontroller Atmega 328p de woorden en de tijd weergeven. Twee woord generatie modi worden ondersteund. De eerste maakt gebruik van een algoritme voor het genereren van vier-letter woord groepen die dreigen te worden van de werkelijke woorden, vergelijkbaar met het origineel. Elke opeenvolgende woord is niets te maken met de vorige. De tweede modus maakt gebruik van relationele word-database van de "Edinburgh associatieve Thesaurus", een document van word verenigingen op basis van iemands reacties op vragen van het eerste woord dat opkomt na hen een zaad woord, dan voortzetting van het proces met het woord antwoord. De database werd aangepast aan vier - letter woord generatie door de Akafugu Corporation, die een 57 Kbyte gegevensbestand dat wordt opgeslagen in een externe EEPROM voor verwerking door de Atmega heeft gemaakt. Het resultaat is dat de klok wordt gebruikt als Unix keer als een willekeurige zaad en een reeks bijbehorende vier - brief woorden op basis van de antwoorden van de mens, niet een algoritme genereert.
Opmerking: De Akafugu word-database bevat enkele seksueel expliciete en mogelijk aanstootgevende woorden. Als dit je stoort, schakel dan de modus willekeurig woord. Dit kan ook gegenereerd enkele kwetsende woorden, maar ten minste zal niet weer stromen van verwante kwetsende woorden!
De "Edinburgh associatieve Thesaurus" werd samengesteld op basis van reacties van mensen die wonen in Engeland in de vroege jaren 60. De woord-betrekkingen weerspiegelen zeker dat vooroordeel! Bijvoorbeeld, het woord "Beste" wordt vaak gevolgd door "PETE". Vanzelfsprekend bestaat er geen verbinding, tenzij je weet dat Pete Best de originele drummer van the Beatles in de vroege jaren 60 was! Andere vooroordelen naar UK cultuur van de jaren 60 in overvloed. Ik denk dat het zeer interessant om naar te kijken!
Het apparaat bevat ook een I2C adresseerbare Real timerklok module met oplaadbare batterij back-up. De klok 5 woorden van één van de twee selecteerbare algoritmen weergegeven, waarna wordt weergegeven van de tijd, datum, dag van de week en jaar. De klok en bedrijfsmodi worden ingesteld met behulp van drie schakelaars van de drukknop. Bedrijfsmodi worden opgeslagen in niet-vluchtig EEPROM en overleven een reset of macht mislukking. De RTC blijft lopen voor ongeveer een jaar nadat de bevoegdheid wordt verwijderd, met extreme temperatuur-gecompenseerd precisie. De juiste tijd wordt automatisch weergegeven wanneer de stroomvoorziening is hersteld.
Een extra functie is de 107 citaten over tijd die willekeurig elke 10 minuten worden weergegeven. Deze citaten is over de vier tekens, frequente aanmoediging en inspiratie van rechts naar links scrollen! Opslag voor de zinnen wordt in de externe EEPROM met de Akafugu word-database weergegeven. De databaseSluit duurt slechts 57 Kbytes van de 64 KB beschikbaar zijn in het apparaat, verlaten ruimte voor de 107 zinnen. Een woordgroep "opscheppen" is altijd de eerste om weer te geven wanneer de klok is eerst ingeschakeld op het volgende interval van 10 minuten.
De unit maakt gebruik van gemeenschappelijke kathode 14-segment wordt weergegeven (2 kathoden voor elk cijfer) die door een timer interrupt service routine multiplexed die resultaten in de vier-karakter display wordt vernieuwd op 100 Hz. Wanneer de ISR loopt, schakelt uit de vorige helft-tekens, opgehaald 7 van de 14 segmenten voor een van de vier tekens, draait op de bijbehorende pins van het segment en de bijbehorende kathode gronden. De displays zijn een beetje ongewoon, maar ik had een grote overtollige voorraad die ik wilde gebruiken. De dual-common Kathode vermindert het aantal pinnen per cijfer van 15 tot en met 9 nodig. Er zijn net genoeg pinnen op een Atmega 328p die toelaten direct-drive van het display zonder een shift register.
Taak: Wijzig de code zodat de Adafruit 4-karakter alfanumeriek LED modulegebruiken.