Sisällysluettelo:

Nelikirjaiminen sanakello Akafugu Word Generatorilla ja inspiroivia lauseita: 3 vaihetta
Nelikirjaiminen sanakello Akafugu Word Generatorilla ja inspiroivia lauseita: 3 vaihetta

Video: Nelikirjaiminen sanakello Akafugu Word Generatorilla ja inspiroivia lauseita: 3 vaihetta

Video: Nelikirjaiminen sanakello Akafugu Word Generatorilla ja inspiroivia lauseita: 3 vaihetta
Video: 2.0 (xxxx) Kuinka monta nelikirjaimista sanaa saadaan kirjaimista MATIKKA? 2024, Marraskuu
Anonim
Image
Image
Neljän kirjaimen sanakello Akafugu -sanageneraattorilla ja inspiroivilla lauseilla
Neljän kirjaimen sanakello Akafugu -sanageneraattorilla ja inspiroivilla lauseilla
Neljän kirjaimen sanakello Akafugu -sanageneraattorilla ja inspiroivilla lauseilla
Neljän kirjaimen sanakello Akafugu -sanageneraattorilla ja inspiroivilla lauseilla

Tämä on minun versioni nelikirjaimisesta sanakellosta, idea, joka sai alkunsa jo 1970 -luvulla. Kello näyttää sarjan nelikirjaimisia sanoja, jotka luodaan joko satunnaisten sanojen generaattorin algoritmista tai niihin liittyvien nelikirjaimisten sanojen tietokannasta.

Tämä versio käyttää nykyaikaisempia 14-segmenttisiä LED-näyttöjä ja Atmega 328p -mikro-ohjainta sanojen ja ajan näyttämiseen. Tuetaan kahta sananmuodostustilaa. Ensimmäinen käyttää algoritmia nelikirjaimisten sanaryhmien luomiseen, jotka ovat todennäköisesti todellisia sanoja, samanlaisia kuin alkuperäinen. Jokainen peräkkäinen sana ei liity edelliseen. Toisessa tilassa käytetään "Edinburghin assosiatiivisen tesauruksen" suhteellisten sanojen tietokantaa, joka on sanayhdistysten asiakirja, joka perustuu ihmisten vastauksiin kysyä ensimmäistä sanaa, joka tulee mieleen, kun heille on annettu alkusana, ja jatkaa prosessia vastaussanalla. Akafugu Corporation mukautti tietokannan nelikirjaimiseen sanojen luomiseen ja loi 57 Kbyte -tiedoston, joka tallennetaan ulkoiseen EEPROM-tietokoneeseen Atmegan käsiteltäväksi. Tuloksena on, että kello käyttää Unix-aikaa satunnaisena siemenenä ja luo merkkijonon siihen liittyviä nelikirjaimisia sanoja ihmisen vastausten perusteella, ei jonkin algoritmin perusteella.

Huomautus: Akafugu -sanatietokanta sisältää joitakin seksuaalisia ja mahdollisesti loukkaavia sanoja. Jos tämä häiritsee sinua, ota satunnainen sanatila käyttöön. Tämä voi myös luoda loukkaavia sanoja, mutta ei ainakaan näytä liittyvien loukkaavien sanojen virtoja!

Edinburghin assosiatiivinen tesaurus on koottu Englannissa asuvien ihmisten vastausten perusteella 60 -luvun alussa. Sana suhteet varmasti heijastavat tätä puolueellisuutta! Esimerkiksi sanaa "BEST" seuraa usein "PETE". Ilmeistä yhteyttä ei ole olemassa, ellet tiedä, että Pete Best oli Beatlesin alkuperäinen rumpali 60 -luvun alussa! Muita ennakkoluuloja 60 -luvun Yhdistyneen kuningaskunnan kulttuuriin on runsaasti. Mielestäni erittäin mielenkiintoista katseltavaa!

Laitteessa on myös I2C -osoitteellinen reaaliaikainen kellomoduuli, jossa on ladattava akku. Kello näyttää 5 sanaa yhdestä kahdesta valittavasta algoritmista ja näyttää sitten kellonajan, päivämäärän, viikonpäivän ja vuoden. Kello ja toimintatilat asetetaan kolmella painikekytkimellä. Toimintatilat on tallennettu haihtumattomaan EEPROM-muistiin ja ne kestävät nollaus- tai sähkökatkon. RTC toimii edelleen noin vuoden ajan virran katkaisun jälkeen äärimmäisen lämpötilakompensoidulla tarkkuudella. Oikea aika näytetään automaattisesti, kun virta palautetaan.

Lisäominaisuus on 107 lainausta ajasta, jotka näytetään satunnaisesti 10 minuutin välein. Nämä lainaukset vierivät oikealta vasemmalle neljän merkin yli ja tarjoavat usein rohkaisua ja inspiraatiota! Lausekkeiden tallennus on ulkoisessa EEPROMissa Akafugu -sanatietokannan kanssa. Tietokanta vie vain 57 kilotavua laitteen käytettävissä olevista 64 kilotavusta, joten tilaa 107 lauseelle jää. "Kerskauksen" lause näkyy aina ensimmäisenä, kun kello käynnistetään ensimmäisen kerran seuraavan 10 minuutin välein.

Laite käyttää yleisiä 14-segmenttisiä katodinäyttöjä (2 katodia kutakin numeroa kohden), jotka multipleksoidaan ajastimen keskeytyspalvelurutiinilla, jonka seurauksena nelimerkkinen näyttö päivitetään 100 Hz: llä. Aina kun ISR suoritetaan, se sammuttaa edellisen puolimerkin, hakee seitsemän 14 segmentistä yhdelle neljästä merkistä, kytkee vastaavat segmentin nastat päälle ja maadoittaa vastaavan katodin. Näytöt ovat vähän harvinaisia, mutta minulla oli suuri ylijäämä, jota halusin käyttää. Kaksois-yhteinen katodi vähentää tarvittavien nastojen määrää numeroa kohden 15: stä 9. Atmega 328p: ssä on juuri tarpeeksi nastoja, jotka mahdollistavat näytön suoran käytön ilman siirtorekisteriä.

TEHTÄVÄT: Muokkaa koodia käyttämään Adafruit 4-merkkistä aakkosnumeerista LED-moduulia

Vaihe 1: Historia

Historia
Historia
Historia
Historia
Historia
Historia
Historia
Historia

Alkuperäinen FLW -kello rakennettiin suurilla Burroughs B7971 aakkosnumeerisilla neonylijäämäputkilla, jotka on poistettu käytöstä poistetuista osakekannen näyttötauluista. Nämä ovat samanlaisia kuin ajan numeeriset nixiputket, mutta käyttivät 14-segmenttistä näyttöä kaikkien ASCII-merkkien muodostamiseen. Kello käytti erillistä logiikkaa valitsemalla kirjaimet taulukosta satunnaisten neljän kirjainyhdistelmien muodostamiseksi, jotka painotettiin todennäköisesti tuottamaan todellisia sanoja.

Algoritmin avulla Alkuperäisessä vuoden 1972 mallissa vain tietyt kirjaimet näkyvät kussakin paikassa. Käsin taulukoitu analyysi useista sadoista nelikirjaimisista sanoista tehtiin ja kirjainten tiheys laskettiin kussakin neljässä kohdassa. Kunkin sijainnin kymmenen yleisintä kirjainta käytettiin, paitsi toisessa paikassa, joka sisälsi vain kahdeksan kirjainta.

Jokaista asentoa varten yksinkertainen BCD (0-9) -laskuri (74LS90 IC) juoksi vapaasti ja lukema otettiin talteen ja pidettiin noin muutaman sekunnin välein kerran minuutissa nopeusasetuksesta riippuen. Laskukuva otettiin sitten diodin dekoodausmatriisiin (käyttäen noin 150 diodia) merkkien muodostamiseksi.

Koska kuhunkin kohtaan valittiin vain kymmenen (tai kahdeksan) yleisimpiä kirjaimia, ilman kirjainyhdistelmiä, monia muita sanoja voi esiintyä, esim. FRLR, LREE, LLLL jne.

Huomaa, että toisessa sijainnissa oli vain kahdeksan kirjainta, koska näytteen yhdeksännellä ja kymmenennellä kirjaimella oli suhteellisesti alhainen taajuus, kun taas ensimmäisellä ja toisella oli erittäin korkea taajuus, joten ne kaksinkertaistettiin. Näin ollen 10 x 8 x 10 x 10 = 8000 permutaatiota. Ensimmäiseen vuoden 1973 malliin ohjelmoidut kirjaimet näkyvät yhdessä yllä olevista kuvista.

Vaihe 2: Koodi ja kaavio

Koodi ja kaavio
Koodi ja kaavio
Koodi ja kaavio
Koodi ja kaavio
Koodi ja kaavio
Koodi ja kaavio
Koodi ja kaavio
Koodi ja kaavio

Kaavio on liitteenä.

Kello voidaan rakentaa käyttämällä mitä tahansa Atmega 328p -pohjaista Arduinoa.

Jos haluat käyttää erillistä Atmega 328p -laitetta, kuten kaaviossa esitetään, ISP -ohjelmoijaa on käytettävä mikro -ohjaimen ohjelmointiin Arduino IDE: n kautta. Ohjelmoinnin jälkeen sulakkeet on asetettava käyttämällä seuraavaa avrdude -komentoa (WinAVR on asennettava). Korvaa com -portti ja ohjelmointityyppi. Helpointa on käyttää Arduinoa Internet -palveluntarjoajan ohjelmoijana. Googlella saat lisätietoja.

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

Nämä asetukset poistavat käynnistyslataimen nollausvektorin käytöstä, joten koodi alkaa heti pääkoodivektorista. Sulakkeet on asetettu myös ulkoiselle 16 MHz: n oskillaattorille. Poltettuasi et voi ohjelmoida sirua uudelleen, ennen kuin kide ja kondensaattorit on kytketty kaavion mukaisesti, koska oletusarvoinen sisäinen oskillaattori ei ole käytössä näillä sulakeasetuksilla.

DS3231 Arduino -kirjasto on asennettava, jotta se voi käyttää RTC -kellorutiineja. Unix -aikatuki on otettava käyttöön kirjastossa poistamalla rivi "#define CONFIG_UNIXTIME" DS3231 RTC -kirjaston config.h -tiedostosta. Unix -aikaa käytetään satunnaislukugeneraattorin siemenenä, jotta sana- ja lausejärjestyksiä ei toisteta joka kerta, kun kello käynnistetään.

Itse DS3231 RTC -kellomoduuli on yleinen lajike, jota myydään ebayssa. Moduuli on kuvattu yllä. Etsi tyyppi, jossa on ladattava vara -akku.

Ohjelmoidun mikro -ohjaimen lisäksi on myös hankittava ja ohjelmoitava Microchip 24LC512 -sarjan EEPROM, joka sisältää Akafugu -sanatietokannan ja ilmausluettelon. Tämä tehdään yksinkertaisella piirillä, joka on rakennettu Arduinolla ja SD -kortilla, joka on alustettu FAT32 -muotoon ja jossa on output2.dat -tiedosto. Luonnos lukee tiedot SD -kortilta ja kirjoittaa ne EEPROMiin. Tiedot löytyvät seuraavista kahdesta linkistä. Muista käyttää ohjelmointiluonnosta ja datatiedostoa tässä Instructable -ohjelmassa, koska Akafugu -linkistä puuttuu lause -tietokanta. Noudata linkkien ohjeita.

Akafugu FLW -tietokannan yleiskatsaus

Ohjeet datatiedoston polttamiseen EEPROMiin

Vaihe 3: Kellon asetus ja ohjaus

Seuraavia näppäinyhdistelmiä käytetään kellon asetuksiin:

Tunnit: Pidä painiketta 1 normaalikäytössä.

Minuutti: Pidä painiketta 2 normaalikäytössä. Toiset palautetaan automaattisesti "00": ksi

Sekunnit nollataan: Pidä painiketta 3 normaalikäytössä, vapauta synkronoidaksesi uuden minuutin alkamisen kanssa

Aseta kuukausi: Pidä painikkeet 1 ja 2 yhdessä normaalin käytön aikana

Aseta päivämäärä: Pidä painikkeet 1 ja 3 yhdessä normaalin käytön aikana

Aseta vuosi: Pidä painikkeita 2 ja 3 yhdessä normaalin käytön aikana

Aseta viikonpäivä: Pidä painikkeita 1, 2 ja 3 yhdessä normaalin käytön aikana

Kun yksikkö käynnistetään ensimmäisen kerran, toimintatilat näkyvät nopeasti ennen sanojen luomista:

"EE" tarkoittaa I2C: n ulkoista EEPROM: ia, joka sisältää Akafugu -sanatietokannan ja ilmausluettelon.

"NOEE" tarkoittaa, että EEPROM -laitetta ei havaittu. Yksikkö palaa satunnaiseen sananmuodostukseen ja ei ilmausnäyttöä.

"CK" tarkoittaa, että kellonaika ja päivämäärä näytetään 5 peräkkäisen sanan näyttämisen jälkeen.

"NOCK" tarkoittaa, että kellonaika/päivämäärä on kytketty pois päältä. Tasainen sanavirta näkyy jatkuvasti, ja lause keskeyttää sen 10 minuutin välein.

"RND" tarkoittaa satunnaista sananmuodostustilaa

"REL" tarkoittaa relaatiota "Akafugu" -sanatietokannan luontitilaa

Jos haluat vaihtaa ja tallentaa tiloja, irrota kello ja kytke virta takaisin pitämällä yhtä ilmoitetuista painikkeista. Vapauta sitten painike. Uusi tila tallennetaan ja näytetään:

Painike 1: Vaihda ja tallenna satunnainen tai suhteellinen sananmuodostustila

Painike 2: Ota päivämäärän ja kellonajan näyttö käyttöön tai poista se käytöstä 5 peräkkäisen sanan jälkeen

Suositeltava: