Turinys:
Video: Keturių raidžių žodžių laikrodis su Akafugu žodžių generatoriumi ir įkvepiančiomis frazėmis: 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Tai mano keturių raidžių žodžio laikrodžio versija, idėja, kilusi dar aštuntajame dešimtmetyje. Laikrodis rodo keturių raidžių žodžių seriją, sugeneruotą pagal atsitiktinių žodžių generatoriaus algoritmą arba iš susijusių keturių raidžių žodžių duomenų bazės.
Šioje versijoje žodžiai ir laikas rodomi naudojant modernesnius 14 segmentų LED ekranus ir „Atmega 328p“mikrovaldiklį. Palaikomi du žodžių generavimo režimai. Pirmasis naudoja algoritmą, kad sugeneruotų keturių raidžių žodžių grupes, kurios tikriausiai yra tikri žodžiai, panašūs į originalą. Kiekvienas paskesnis žodis nesusijęs su ankstesniu. Antrasis režimas naudoja reliatyvių žodžių duomenų bazę iš „Edinburgo asociatyvaus tezauro“- žodžių asociacijų dokumento, pagrįsto žmonių atsakymais į pirmojo žodžio, kuris ateina į galvą, užduodant jiems pradinį žodį, klausimą, tada tęsiant procesą atsakymo žodžiu. Duomenų bazę keturių raidžių žodžių generavimui pritaikė „Akafugu Corporation“, sukūrusi 57 Kbyte duomenų failą, kuris saugomas išoriniame EEPROM, kad jį galėtų apdoroti „Atmega“. Rezultatas yra tas, kad laikrodis naudoja „Unix“laiką kaip atsitiktinę sėklą ir generuoja susijusių keturių raidžių žodžių eilutę, pagrįstą žmogaus atsakymais, o ne kokiu nors algoritmu.
Pastaba: Akafugu žodžių duomenų bazėje yra keletas seksualiai aiškių ir galimai įžeidžiančių žodžių. Jei tai jums trukdo, įjunkite atsitiktinio žodžio režimą. Tai taip pat gali sugeneruoti įžeidžiančius žodžius, bet bent jau nerodys susijusių įžeidžiančių žodžių srautų!
„Edinburgo asociatyvusis tezauras“buvo sudarytas remiantis 60 -ųjų pradžioje Anglijoje gyvenusių žmonių atsakymais. Žodis santykiai neabejotinai atspindi šį šališkumą! Pavyzdžiui, po žodžio „GERIAUSIA“dažnai seka „PETE“. Akivaizdus ryšys neegzistuoja, nebent žinotume, kad Pete'as Bestas buvo originalus „The Beatles“būgnininkas 60 -ųjų pradžioje! Kiti 60 -ojo dešimtmečio JK kultūros šališkumo gausa. Manau, labai įdomu žiūrėti!
Įrenginyje taip pat yra I2C adresuojamas realaus laiko laikrodžio modulis su įkraunama baterija. Laikrodis rodo 5 žodžius iš vieno iš dviejų pasirenkamų algoritmų, tada rodo laiką, datą, savaitės dieną ir metus. Laikrodis ir darbo režimai nustatomi trimis mygtukais. Veikimo režimai saugomi nepastoviame EEPROM ir išgyvena iš naujo nustatant ar nutrūkus elektros tiekimui. Išjungus maitinimą, RTC ir toliau veikia maždaug metus, ypač tiksliai kompensuojant temperatūrai. Atnaujinus maitinimą, automatiškai rodomas teisingas laikas.
Papildoma funkcija yra 107 citatos apie laiką, kurios rodomos atsitiktinai kas 10 minučių. Šios citatos slenka iš dešinės į kairę per keturis simbolius, dažnai skatindamos ir įkvėpdamos! Frazių saugykla yra išoriniame EEPROM su Akafugu žodžių duomenų baze. Duomenų bazė užima tik 57 kbitus iš įrenginyje esančių 64 KB, paliekant vietos 107 frazėms. „Pagyrimo“frazė visada pirmoji rodoma, kai laikrodis pirmą kartą įjungiamas kas 10 minučių.
Prietaisas naudoja įprastus 14 segmentų katodo ekranus (2 katodai kiekvienam skaitmeniui), kurie yra multipleksuojami laikmačio pertraukos aptarnavimo tvarka, todėl keturių simbolių ekranas atnaujinamas 100 Hz dažniu. Kai ISR veikia, jis išjungia ankstesnį pusės simbolį, nuskaito 7 iš 14 segmentų vienam iš keturių simbolių, įjungia atitinkamus segmento kaiščius ir įžemina atitinkamą katodą. Ekranai yra šiek tiek neįprasti, tačiau turėjau didelį perteklių, kurį norėjau naudoti. Dvigubas bendras katodas sumažina reikalingų smeigtukų skaičių vienam skaitmeniui nuo 15 iki 9. „Atmega 328p“kaiščių yra pakankamai, kad būtų galima tiesiogiai valdyti ekraną be poslinkių registro.
VEIKLA: Pakeiskite kodą, kad būtų naudojamas „Adafruit“4 simbolių raidinis ir skaitmeninis LED modulis
1 žingsnis: istorija
Originalus FLW laikrodis buvo pagamintas naudojant didelius „Burroughs B7971“raidinius ir skaitmeninius neoninius pertekliaus vamzdelius, išimtus iš nebenaudojamų vertybinių popierių rodyklių. Jie yra panašūs į to meto skaitmeninius „nixie“vamzdelius, tačiau naudojo 14 segmentų ekraną, kad sudarytų visus ASCII simbolius. Laikrodis naudojo diskretišką logiką, pasirinkdamas raides iš lentelės, kad sudarytų atsitiktines keturių raidžių kombinacijas, kurios buvo įvertintos taip, kad būtų galima išgauti tikrus žodžius.
Su algoritmu Pradiniame 1972 m. Modelyje kiekvienoje pozicijoje rodomos tik tam tikros raidės. Buvo atlikta kelių šimtų keturių raidžių žodžių rankiniu būdu analizė ir suskaičiuotas raidžių dažnis kiekvienoje iš keturių pozicijų. Buvo naudojamos dešimt dažniausiai kiekvienos pozicijos raidžių, išskyrus antrąją, kurioje buvo tik aštuonios raidės.
Kiekvienai padėčiai paprastas BCD (0-9) skaitiklis (74LS90 IC) laisvai važiavo, o skaičius buvo užfiksuotas ir laikomas maždaug kartą per kelias sekundes-kartą per minutę, atsižvelgiant į nustatytą greitį. Tada skaitiklio momentinė nuotrauka buvo pritaikyta diodų dekodavimo matricai (naudojant apie 150 diodų), kad būtų suformuoti simboliai.
Kadangi kiekvienai pozicijai buvo pasirinktos tik dešimt (arba aštuonios) dažniausiai pasitaikančios raidės, neatsižvelgiant į raidžių derinius, gali atsirasti daug ne žodžių, pvz., FRLR, LREE, LLLL ir kt.
Atkreipkite dėmesį, kad antroji pozicija turėjo tik aštuonias raides, nes devintoji ir dešimtoji imties raidės buvo proporcingai žemos, o pirmoji ir antroji-itin aukšto dažnio, todėl jos buvo padvigubintos. Taigi 10 x 8 x 10 x 10 = 8000 permutacijų. Pirmame 1973 m. Modelyje užprogramuotos raidės parodytos viename iš aukščiau pateiktų vaizdų.
2 žingsnis: kodas ir schema
Schema pridedama.
Laikrodis gali būti sukurtas naudojant bet kurį „Atmega 328p“pagrįstą „Arduino“.
Jei norite naudoti su autonominiu „Atmega 328p“, kaip parodyta schemoje, norint valdyti mikrokontrolerį per „Arduino IDE“, reikia naudoti ISP programuotoją. Po programavimo saugikliai turi būti nustatyti naudojant šią avrdude komandą (turi būti įdiegta „WinAVR“). Pakeiskite kom portą ir programuotojo tipą. Lengviausia naudoti „Arduino“kaip ISP programuotoją. Išsamesnės informacijos ieškokite „Google“.
avrdude -c arduino -P com13 -b 19200 -p atmega328p -U lfuse: w: 0xFF: m -U hfuse: w: 0xDF: m -U efuse: w: 0x05: m
Šie nustatymai išjungia įkrovos tvarkyklės atstatymo vektorių, todėl kodas iškart prasideda nuo pagrindinio kodo vektoriaus. Saugikliai taip pat nustatyti išoriniam 16MHz osciliatoriui. Kai sudegsite, nebegalėsite užprogramuoti lusto, kol kristalas ir kondensatoriai nebus prijungti, kaip parodyta schemoje, nes numatytasis vidinis osciliatorius yra išjungtas naudojant šiuos saugiklių nustatymus.
Norint suteikti prieigą prie RTC laikrodžio tvarkos, turi būti įdiegta DS3231 „Arduino“biblioteka. Būtina įgalinti „Unix“laiko palaikymą bibliotekoje, nekomentuojant eilutės „#define CONFIG_UNIXTIME“DS3231 RTC bibliotekos config.h faile. „Unix“laikas naudojamas kaip atsitiktinių skaičių generatoriaus sėkla, kad žodžių ir frazių sekos nebūtų kartojamos kiekvieną kartą įjungus laikrodį.
Pats DS3231 RTC laikrodžio modulis yra įprasta įvairovė, parduodama „ebay“. Modulis iliustruotas aukščiau. Ieškokite tipo su įkraunama atsargine baterija.
Be užprogramuoto mikrovaldiklio, taip pat būtina įsigyti ir užprogramuoti „Microchip 24LC512“serijos EEPROM su Akafugu žodžių duomenų baze ir frazių sąrašu. Tai daroma naudojant paprastą grandinę, sukurtą naudojant „Arduino“, ir SD kortelę, suformatuotą kaip FAT32, ir failą output2.dat. Eskizas nuskaito duomenis iš SD kortelės ir įrašo juos į EEPROM. Išsamią informaciją rasite dviejose toliau pateiktose nuorodose. Būtinai naudokite programavimo eskizą ir duomenų failą šioje instrukcijoje, nes nuorodoje „Akafugu“nėra frazių duomenų bazės. Atlikite nuorodose nurodytą procedūrą.
Akafugu FLW duomenų bazės apžvalga
Duomenų failo įrašymo į EEPROM instrukcijos
3 veiksmas: laikrodžio nustatymas ir valdymas
Nustatant laikrodį naudojami šie mygtukų deriniai:
Valandos nustatymas: laikykite nuspaudę 1 mygtuką įprasto darbo metu.
Minutės nustatymas: laikykite nuspaudę 2 mygtuką įprasto darbo metu. Antrasis automatiškai atstatomas į „00“
Sekundės atstatomos į nulį: laikykite nuspaudę 3 mygtuką įprasto darbo metu, atleiskite, kad sinchronizuotumėte su naujos minutės pradžia
Mėnesio nustatymas: laikykite 1 ir 2 mygtukus kartu įprasto darbo metu
Nustatykite datą: laikykite 1 ir 3 mygtukus kartu įprasto darbo metu
Nustatyti metus: laikykite 2 ir 3 mygtukus kartu įprasto darbo metu
Nustatykite savaitės dieną: laikykite 1, 2 ir 3 mygtukus kartu įprasto darbo metu
Pirmą kartą įjungus įrenginį, darbo režimai greitai rodomi prieš prasidedant žodžių generavimui:
„EE“reiškia I2C išorinį EEPROM, kuriame yra Akafugu žodžių duomenų bazė ir frazių sąrašas.
„NOEE“reiškia, kad EEPROM nebuvo aptiktas. Prietaisas grįžta prie atsitiktinio žodžių generavimo ir nerodo frazių.
„CK“reiškia, kad laikas ir data rodomi po 5 žodžių iš eilės.
„NOCK“reiškia, kad laikas/data yra išjungti. Nuolat rodomas žodžių srautas, kurį kas 10 minučių pertraukia frazė.
„RND“reiškia atsitiktinį žodžių generavimo režimą
„REL“reiškia reliatyvų „Akafugu“žodžių duomenų bazės generavimo režimą
Norėdami pakeisti ir išsaugoti režimus, atjunkite laikrodį ir vėl įjunkite, laikydami vieną iš nurodytų mygtukų. Tada atleiskite mygtuką. Naujas režimas išsaugomas ir rodomas:
1 mygtukas: perjunkite ir išsaugokite atsitiktinio arba reliatyvaus žodžio generavimo režimą
2 mygtukas: įjunkite arba išjunkite datos/laiko rodymą po 5 žodžių iš eilės
Rekomenduojamas:
Lovos MP3 žadintuvo raidžių laikrodis: 6 žingsniai (su paveikslėliais)
Lovos MP3 žadintuvo raidžių laikrodis: šiam projektui norėjau sukurti patogų ir visiškai funkcionalų žadintuvą prie lovos. Mano asmeninės prielaidos prie žadintuvo prie lovos yra: Skaityti bet kokioje šviesoje, o ne apakinti naktį MP3 žadintuvo melodijos Pritraukti
„Apvalus“žodžių laikrodis (olandų ir anglų kalbomis!): 8 žingsniai (su paveikslėliais)
„Apvalus“žodžių laikrodis (olandų ir anglų kalbomis!): Prieš kelerius metus pirmą kartą pamačiau „Word Clock“internete. Nuo tada aš visada norėjau tai padaryti pats. Yra daug instrukcijų, tačiau norėjau padaryti kažką originalaus. Nelabai žinau apie elektroniką, todėl naudojau
2 raidžių žodžių mokymosi priemonė su Morzės kodu: 5 žingsniai
2 raidžių žodžių mokinys su Morzės kodu: kurį laiką nesėkmingai bandžiau išmokti 2 raidžių žodžius „Scrabble“(tm). Aš taip pat bandžiau vėl išmokti Morzės abėcėlę, nesėkmingai. Aš nusprendžiau išbandyti pasąmoningą mokymąsi, sukurdamas dėžutę, kurioje nuolat rodoma
Minimalistinis žodžių laikrodis: 28 žingsniai (su paveikslėliais)
Minimalistinis žodžių laikrodis: Didelis ačiū „Super Make Something“, nes šį projektą įkvėpė jų „Neopixel Word Clock“. Šį laikrodį sukūriau kaip dalį savo „IGCSE Design & Technologijų kursą ir už tai gavo A*. CAD modelis buvo sukurtas iš sintezės iš anksto, taigi
Olandiškas 8x8 žodžių laikrodis: 7 žingsniai (su paveikslėliais)
Olandų 8x8 žodžių laikrodis: žinau, kad nesu pirmasis, sukūręs žodinį laikrodį, naudodamas „Arduino“. Vis dėlto mano „darbų“sąraše visada buvo kažkas, kad galėčiau sukurti olandišką. Kitam projektui aš jau seniai nusipirkau „colorduino / rainbowduino / funduino“, kad galėčiau ką nors išbandyti