INHOUDSOPGAWE:

Woordklok met vier letters met Akafugu -woordopwekker en inspirerende frases: 3 stappe
Woordklok met vier letters met Akafugu -woordopwekker en inspirerende frases: 3 stappe

Video: Woordklok met vier letters met Akafugu -woordopwekker en inspirerende frases: 3 stappe

Video: Woordklok met vier letters met Akafugu -woordopwekker en inspirerende frases: 3 stappe
Video: Woordklok met alternatieve besturingsprint 2024, Junie
Anonim
Image
Image
Woordklok met vier letters met Akafugu -woordopwekker en inspirerende frases
Woordklok met vier letters met Akafugu -woordopwekker en inspirerende frases
Woordklok met vier letters met Akafugu -woordopwekker en inspirerende frases
Woordklok met vier letters met Akafugu -woordopwekker en inspirerende frases

Dit is my weergawe van die Four Letter Word Clock, 'n idee wat in die 1970's ontstaan het. Die klok vertoon 'n reeks woorde van vier letters wat gegenereer word uit 'n willekeurige woordgenerator-algoritme of uit 'n databasis van verwante vierletterwoorde.

Hierdie weergawe gebruik meer moderne 14-segment LED-skerms en 'n Atmega 328p-mikrobeheerder om die woorde en tyd te vertoon. Twee woordgenereringsmetodes word ondersteun. Die eerste gebruik 'n algoritme om vier groepe woordgroepe te genereer wat waarskynlik werklike woorde is, soortgelyk aan die oorspronklike. Elke opeenvolgende woord hou nie verband met die vorige nie. Die tweede metode gebruik die verhoudingswoorddatabasis van die "Edinburgh Associative Thesaurus", 'n dokument van woordassosiasies wat gebaseer is op mense se reaksies op die vraag van die eerste woord wat in gedagte kom nadat hulle 'n saadwoord gegee het, en daarna die proses met die antwoordwoord voortgesit. Die databasis is aangepas by die generering van vier letters deur die Akafugu Corporation, wat 'n 57 Kbyte-datalêer geskep het wat in 'n eksterne EEPROM gestoor is vir verwerking deur die Atmega. Die gevolg is dat die klok Unix-tyd as 'n ewekansige saad gebruik en 'n string verwante vierletterwoorde genereer wat gebaseer is op menslike reaksies, nie 'n algoritme nie.

Let wel: Die Akafugu -woorddatabasis bevat 'n paar seksueel eksplisiete en moontlik aanstootlike woorde. As dit u pla, skakel die ewekansige woordmodus aan. Dit kan ook aanstootlike woorde veroorsaak, maar dit sal ten minste geen strome verwante aanstootlike woorde vertoon nie!

Die "Edinburgh Associative Thesaurus" is saamgestel op grond van reaksies van mense wat in die vroeë 60's in Engeland gewoon het. Die woord verhoudings weerspieël beslis die vooroordeel! Byvoorbeeld, die woord "BESTE" word gereeld gevolg deur "PETE". Daar is geen duidelike verband nie, tensy 'n mens weet dat Pete Best die oorspronklike drummer vir die Beatles in die vroeë 60's was! Ander vooroordele teenoor die Britse kultuur van die 60's is volop. Ek dink dit is baie interessant om te kyk!

Die toestel bevat ook 'n I2C -aanspreeklike Real Time Clock -module met herlaaibare battery -rugsteun. Die klok vertoon 5 woorde uit een van die twee kiesbare algoritmes, en wys dan die tyd, datum, dag van die week en jaar. Die klok en die werkmodus word ingestel met drie drukknoppies. Bedryfsmodusse word in 'n nie-vlugtige EEPROM gestoor en oorleef 'n herstel of kragonderbreking. Die RTC werk ongeveer 'n jaar nadat die krag verwyder is, met uiterste temperatuurvergoeding. Die korrekte tyd word outomaties vertoon wanneer die krag herstel word.

'N Bykomende kenmerk is die 107 aanhalings oor tyd wat lukraak elke 10 minute vertoon word. Hierdie aanhalings blaai van regs na links oor die vier karakters, en bied gereelde aanmoediging en inspirasie! Die stoor van die frases is in die eksterne EEPROM met die Akafugu -woorddatabasis. Die databse neem slegs 57 Kbyte van die 64 Kbytes wat op die toestel beskikbaar is, en laat ruimte vir die 107 frases. 'N "Spog" -frase is altyd die eerste wat vertoon word wanneer die horlosie eers met die volgende 10 minute interval aangeskakel word.

Die eenheid gebruik gewone katode 14-segment-skerms (2 katodes vir elke syfer) wat met 'n timeronderbrekingsdiensroetine gemultiplex word, wat daartoe lei dat die vier-karakter-vertoning by 100 Hz verfris word. Elke keer as die ISR loop, skakel dit die vorige halfkarakter uit, haal 7 van die 14 segmente vir een van die vier karakters, skakel die ooreenstemmende segmentpenne aan en maal die ooreenstemmende katode. Die uitstallings is 'n bietjie ongewoon, maar ek het 'n groot oorskotvoorraad gehad wat ek wou gebruik. Die dubbele gemeenskaplike katode verminder die aantal penne wat nodig is per syfer van 15 na 9. Daar is net genoeg penne op 'n Atmega 328p om die skerm direk te laat ry sonder 'n skofregister.

TO-DO: Verander kode om die Adafruit 4-karakter alfanumeriese LED-module te gebruik

Stap 1: Geskiedenis

Geskiedenis
Geskiedenis
Geskiedenis
Geskiedenis
Geskiedenis
Geskiedenis
Geskiedenis
Geskiedenis

Die oorspronklike FLW -horlosie is gebou met groot Burroughs B7971 alfanumeriese neon -oorskotbuise wat verwyder is van afgebakende voorraadkaartskerms. Dit is soortgelyk aan die numeriese nixie-buise van destyds, maar het 'n 14-segment vertoning gebruik om al die ASCII-karakters te vorm. Die klok het diskrete logika gebruik en letters uit 'n tabel gekies om ewekansige kombinasies van vier letters te vorm wat gewig het om waarskynlik werklike woorde te lewer.

Met die algoritme In die oorspronklike 1972 -model verskyn slegs sekere letters in elke posisie. 'N Handmatige ontleding van 'n paar honderd woorde met vier letters is gedoen en die frekwensie van letters in elk van die vier posisies is getel. Die tien mees algemene letters van elke posisie is gebruik, behalwe in die tweede posisie wat slegs agt letters bevat.

Vir elke posisie hardloop 'n eenvoudige BCD (0-9) toonbank ('n 74LS90 IC) vrylik en die telling word vasgelê en ongeveer een keer elke paar sekondes tot een keer per minuut gehou, afhangende van die snelheidsinstelling. Die telleropname is toe op 'n diode -dekoderingsmatriks (met ongeveer 150 diodes) toegepas om die karakters te vorm.

Aangesien slegs die tien (of agt) mees algemene letters vir elke posisie gekies is, sonder inagneming van letterkombinasies, kan baie nie-woorde verskyn, bv. FRLR, LREE, LLLL, ens.

Let daarop dat die tweede posisie slegs agt letters bevat, aangesien die negende en tiende letters in die steekproef 'n proporsioneel lae frekwensie gehad het, terwyl die eerste en tweede uiters hoë frekwensie gehad het, sodat hulle verdubbel is. Dus 10 x 8 x 10 x 10 = 8000 permutasies. Die letters wat in die eerste 1973 -model geprogrammeer is, word in een van die foto's hierbo getoon.

Stap 2: Kode en skematiese

Kode en skematiese
Kode en skematiese
Kode en skematiese
Kode en skematiese
Kode en skematiese
Kode en skematiese
Kode en skematiese
Kode en skematiese

Die skematika is aangeheg.

Die klok kan gebou word met enige Atmega 328p-gebaseerde Arduino.

Vir gebruik met 'n selfstandige Atmega 328p, soos getoon in die skema, moet 'n ISP -programmeerder gebruik word om die mikrobeheerder via die Arduino IDE te programmeer. Na die programmering moet die sekeringe ingestel word met behulp van die volgende avrdude -opdrag (WinAVR moet geïnstalleer word). Vervang die com -poort en tipe programmeerder. Die maklikste is om 'n Arduino as 'n ISP -programmeerder te gebruik. Google vir besonderhede.

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

Hierdie instellings deaktiveer die herlaaivektor vir selflaaiprogram sodat die kode onmiddellik vanaf die hoofkodevektor begin. Die sekeringe is ook ingestel vir 'n eksterne 16MHz ossillator. Sodra dit verbrand is, sal u die chip nie weer kan programmeer voordat die kristal en kapasitors verbind is soos in die skema getoon nie, aangesien die standaard interne ossillator met hierdie lontinstellings gedeaktiveer is.

Die DS3231 Arduino -biblioteek moet geïnstalleer word om toegang tot die RTC -klokroetines te bied. Dit is nodig om Unix -tydondersteuning in die biblioteek moontlik te maak deur die reël "#define CONFIG_UNIXTIME" in die DS3231 RTC -biblioteek config.h -lêer uit te voer. Unix -tyd word gebruik as 'n saad vir die ewekansige getalgenerator, sodat die woord- en frase -volgorde nie herhaal sal word elke keer as die klok aangeskakel word nie.

Die DS3231 RTC -klokmodule self is 'n algemene variëteit wat op eBay verkoop word. Die module word hierbo geïllustreer. Soek die tipe met 'n herlaaibare rugsteunbattery.

Benewens 'n geprogrammeerde mikrobeheerder, is dit ook nodig om 'n Microchip 24LC512 seriële EEPROM met die Akafugu -woorddatabasis en fraseslys te bekom en te programmeer. Dit word gedoen met behulp van 'n eenvoudige stroombaan wat met 'n Arduino gebou is, en 'n SD -kaart geformateer as FAT32 met die output2.dat -lêer daarop. 'N Skets lees die data van die SD -kaart en skryf dit aan die EEPROM. Besonderhede kan gevind word op die volgende twee skakels. Gebruik die programmeerskets en datalêer in hierdie instruksies, aangesien die een by die Akafugu -skakel nie die frase -databasis het nie. Volg die prosedure in die skakels.

Akafugu FLW databasis oorsig

Instruksies vir die verbranding van die datalêer na die EEPROM

Stap 3: Opstel en beheer van die klok

Die volgende knoppiekombinasies word gebruik vir die opstel van die klok:

Ure stel: Hou knoppie 1 ingedruk tydens normale werking.

Minute stel: hou knoppie 2 tydens normale werking. Tweede word outomaties teruggestel na "00"

Sekondes teruggestel na nul: hou knoppie 3 tydens normale werking, los om te sinkroniseer met die begin van die nuwe minuut

Stel maand: Hou knoppies 1 en 2 bymekaar tydens normale werking

Stel datum: Hou knoppies 1 en 3 bymekaar tydens normale werking

Stel jaar: Hou knoppies 2 en 3 bymekaar tydens normale werking

Stel weekdag in: Hou knoppies 1, 2 en 3 bymekaar tydens normale werking

As die eenheid die eerste keer aangeskakel word, word die werkswyses vinnig vertoon voordat woordgenerering begin:

"EE" beteken dat die I2C eksterne EEPROM met die Akafugu -woorddatabasis en fraseslys opgespoor is.

'NOEE' beteken dat die EEPROM nie opgespoor is nie. Die eenheid gaan oor na willekeurige woordgenerering en geen frase vertoon nie.

"CK" beteken dat die tyd en datum vertoon word nadat 5 opeenvolgende woorde vertoon is.

"NOCK" beteken dat die tyd/datum afgeskakel is. 'N Bestendige stroom woorde word deurlopend vertoon, elke 10 minute onderbreek deur 'n frase.

"RND" beteken dat willekeurige woordgenereringsmodus gebruik word

'REL' beteken dat die relasionele 'Akafugu' woorddatabasis -generasie -modus gebruik word

Om die modus te verander en te stoor, ontkoppel die horlosie en koppel dit weer aan terwyl u een van die aangeduide knoppies ingedruk hou. Laat dan die knoppie los. Die nuwe modus word gestoor en vertoon:

Knoppie 1: Wissel en stoor willekeurige of relatiewe woordgenereringsmodus

Knoppie 2: Skakel die vertoning van datum/tyd na 5 opeenvolgende woorde aan of uit

Aanbeveel: