Мазмуну:

Акафугу сөз генератору жана шыктандыруучу фразалар менен төрт тамгадан турган саат: 3 кадам
Акафугу сөз генератору жана шыктандыруучу фразалар менен төрт тамгадан турган саат: 3 кадам

Video: Акафугу сөз генератору жана шыктандыруучу фразалар менен төрт тамгадан турган саат: 3 кадам

Video: Акафугу сөз генератору жана шыктандыруучу фразалар менен төрт тамгадан турган саат: 3 кадам
Video: 10 лучших бесплатных генераторов искусств на основе искусственного интеллекта 2024, Ноябрь
Anonim
Image
Image
Акафугу сөз генератору жана шыктандыруучу фразалар менен төрт тамгадан турган сөз сааты
Акафугу сөз генератору жана шыктандыруучу фразалар менен төрт тамгадан турган сөз сааты
Акафугу сөз генератору жана шыктандыруучу фразалар менен төрт тамгадан турган сөз сааты
Акафугу сөз генератору жана шыктандыруучу фразалар менен төрт тамгадан турган сөз сааты

Бул менин Төрт тамгадан турган саатымдын версиясы, бул идея 1970 -жылдары пайда болгон. Саат кокус сөз генераторунун алгоритминен же төрт тамгадан турган сөздөрдүн маалымат базасынан түзүлгөн төрт тамгадан турган сөздөрдүн сериясын көрсөтөт.

Бул версияда заманбап 14 сегменттүү LED дисплейлери жана сөздөрдү жана убакытты көрсөтүү үчүн Atmega 328p микроконтроллери колдонулат. Эки сөз муун режимдери колдоого алынат. Биринчиси, түп тамгасына окшош, чыныгы сөздөр болушу мүмкүн болгон төрт тамгадан турган сөз топторун түзүү үчүн алгоритмди колдонот. Ар бир кийинки сөз мурунку менен байланышы жок. Экинчи режим "Эдинбург Ассоциативдүү Тезаурусунун" реляциялык сөздөрдүн маалымат базасын колдонот, адамдардын урук сөзүн бергенден кийин биринчи келген сөздү суроого берген жоопторуна негизделген сөз ассоциацияларынын документи, андан кийин процессти жооп сөзү менен улантуу. Маалыматтар базасы Акафугу корпорациясы тарабынан төрт тамгадан турган сөз муунуна ылайыкташтырылган, ал 57 Кбайт маалымат файлы түзүлүп, ал Атмега тарабынан иштетүү үчүн тышкы EEPROMдо сакталат. Натыйжада, саат Unix убактысын туш келди үрөн катары колдонот жана кандайдыр бир алгоритмге эмес, адамдардын жоопторуна негизделген төрт тамгадан турган сөздөрдү түзөт.

Эскертүү: Akafugu сөздөрдүн маалымат базасында сексуалдык мүнөздөгү жана потенциалдуу адепсиз сөздөр камтылган. Эгер бул сизди түйшөлтсө, туш келди сөз режимин күйгүзүңүз. Бул ошондой эле кээ бир адепсиз сөздөрдү жаратышы мүмкүн, бирок, жок дегенде, байланышкан адепсиз сөздөрдүн агымын көрсөтпөйт!

"Эдинбург Ассоциативдүү Тезавры" 60 -жылдардын башында Англияда жашаган адамдардын жоопторунун негизинде түзүлгөн. Сөз мамилелери сөзсүз түрдө ошол жактуулукту чагылдырат! Мисалы, "МЫКТЫ" деген сөздүн артынан "ПЕТЕ" келет. Пит Бест 60 -жылдардын башында Битлздин барабанчысы экенин билбесе, эч кандай ачык байланыш жок! 60 -жылдардагы Улуу Британиянын маданиятына карата башка көз караштар көп. Менин оюмча, көрүү абдан кызыктуу!

Бул түзмөктө I2C дареги бар Real Time Clock модулу камтылган, батарейканын камдык көчүрмөсү бар. Саат эки тандалма алгоритмдин биринен 5 сөздү көрсөтөт, андан кийин убакытты, күндү, жуманын күнүн жана жылды көрсөтөт. Саат жана иштөө режимдери үч баскыч баскычын колдонуу менен орнотулган. Иштөө режимдери туруксуз EEPROMде сакталат жана баштапкы абалга келтирүүдөн же электр энергиясынын үзүлүшүнөн аман калат. РТК электр энергиясы өчүрүлгөндөн кийин болжол менен бир жыл иштей берет, температуранын ордун толтуруучу тактык менен. Туура убакыт автоматтык түрдө кайра калыбына келгенде көрсөтүлөт.

Кошумча өзгөчөлүк - бул ар бир 10 мүнөт сайын туш келди көрсөтүлгөн 107 убакыт цитатасы. Бул цитаталар төрт белгиден оңдон солго жылып, тез -тез дем берип, шыктандырып турат! Сөз айкаштарын сактоо Akafugu сөз базасы менен тышкы EEPROMдо. Маалымат базасы түзмөктө бар 64 Кбайттын 57 Кбайтын гана алат, 107 фразага орун калтырат. Кийинки 10 мүнөттүк интервалда саат биринчи жолу иштетилгенде "мактануу" фразасы дайыма биринчи болуп көрсөтүлөт.

Бул бирдикте жалпы катоддук 14 сегменттүү дисплейлер колдонулат (ар бир цифра үчүн 2 катод), алар таймерди үзгүлтүккө учуратуу кызматы менен мультиплексирленет, анын натыйжасында төрт белгиден турган дисплей 100 Гцте жаңыртылат. ISR чуркаганда, ал мурунку жарым белгини өчүрүп, 14 сегменттин 7син төрт белгинин бирине алат, тиешелүү сегменттин казыктарын күйгүзүп, тиешелүү катодду негиздейт. Дисплейлер сейрек кездешет, бирок мен колдонгум келген чоң профицит бар болчу. Кош таралган катод бир цифрага керектүү казыктардын санын 15тен 9га чейин азайтат. Atmega 328pде дисплейди сменалык реестрсиз түз башкарууга уруксат берүү үчүн жетиштүү төөнөгүчтөр бар.

КЫЛУУ КЕРЕК: Adafruit 4 белгиден турган тамга-сандык LED модулун колдонуу үчүн кодду өзгөртүү

1 -кадам: Тарых

Тарых
Тарых
Тарых
Тарых
Тарых
Тарых
Тарых
Тарых

Түпнуска FLW сааты иштен чыгарылган биржалык дисплей такталарынан тазаланган чоң Burroughs B7971 неондук ашыкча түтүктөр менен курулган. Булар ошол кездеги сандык никси түтүктөрүнө окшош, бирок ASCII белгилеринин бардыгын түзүү үчүн 14 сегменттүү дисплейди колдонгон. Саат дискреттик логиканы колдонуп, таблицадан тамгаларды тандап, кокус төрт тамганын комбинациясын түздү, алар чыныгы сөздөрдү чыгарышы ыктымал.

Алгоритм менен 1972 -жылкы оригиналдуу моделде ар бир позицияда белгилүү тамгалар гана пайда болот. Бир нече жүз төрт тамгадан турган сөздүн анализи жасалып, төрт позициядагы тамгалардын жыштыгы эсептелди. Сегиз тамгадан турган экинчи позицияны кошпогондо, ар бир позициядагы он эң көп кат колдонулган.

Ар бир позиция үчүн, жөнөкөй BCD (0-9) эсептегич (74LS90 IC) эркин чуркады жана ылдамдыктын орнотулушуна жараша, эсеп бир нече секунддан бир мүнөткө чейин кармалып турду. Эсептегичтин сүрөтү каармандарды түзүү үчүн диоддун декоддоо матрицасына (болжол менен 150 диодду колдонуу) колдонулган.

Ар бир позиция үчүн эң көп таралган он (же сегиз) тамгалар тандалгандыктан, тамгалардын айкалышын эске албаганда, көптөгөн сөздөр эмес, мисалы, FRLR, LREE, LLLL ж.

Экинчи позицияда сегиз тамга гана болгонуна көңүл буруңуз, анткени үлгүдөгү тогузунчу жана онунчу тамгалар пропорционалдуу түрдө төмөн жыштыктагы, ал эми биринчи жана экинчиси өтө жогорку жыштыктагы болгондуктан, алар эки эсе көбөйгөн. Ошентип 10 x 8 x 10 x 10 = 8000 алмаштыруу. 1973 -жылдын биринчи моделине программаланган тамгалар жогорудагы сүрөттөрдүн биринде көрсөтүлгөн.

2 -кадам: Код жана схема

Код жана схема
Код жана схема
Код жана схема
Код жана схема
Код жана схема
Код жана схема
Код жана схема
Код жана схема

Схема тиркелет.

Саатты каалаган Atmega 328p негизделген Arduino колдонуп курууга болот.

Схемада көрсөтүлгөндөй, өзүнчө Atmega 328p менен колдонуу үчүн ISP программисти Arduino IDE аркылуу микроконтроллерди программалоо үчүн колдонулушу керек. Программалоодон кийин, сактандыргычтар төмөнкү avrdude буйругу менен орнотулушу керек (WinAVR орнотулушу керек). Ком портун жана программисттин түрүн алмаштырыңыз. Ардуинону ISP программисти катары колдонуу эң оңой. Чоо -жайын билүү үчүн 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

Бул орнотуулар жүктөгүчтү баштапкы абалга келтирүү векторун өчүрөт, андыктан код дароо негизги код векторунан башталат. Сактандыргычтар 16МГц тышкы осцилляторго да орнотулган. Күйүп кеткенден кийин, кристалл менен конденсатор схемада көрсөтүлгөндөй туташмайынча, чипти кайра программалай албайсыз, анткени демейки ички осциллятор бул эриткич орнотуулары менен өчүрүлгөн.

DS3231 Arduino китепканасы RTC саат тартибине кирүүнү камсыз кылуу үчүн орнотулушу керек. DS3231 RTC китепканасынын config.h файлындагы "#define CONFIG_UNIXTIME" линиясын комментарийлөө аркылуу китепканада Unix убактысын колдоону иштетүү керек. Unix убактысы туш келди сандардын генератору үчүн үрөн катары колдонулат, ошондуктан саат иштетилген сайын сөз жана фразалар тизмеги кайталанбайт.

DS3231 RTC саат модулунун өзү ebayда сатылат. Модуль жогоруда сүрөттөлгөн. Заряддалуучу камдык батарея менен түрүн издеңиз.

Программаланган микроконтроллерден тышкары, Akafugu сөз базасы жана фразалар тизмеги менен Microchip 24LC512 сериялык EEPROM алуу жана программалоо да зарыл. Бул Arduino менен курулган жөнөкөй схема жана FAT32 форматындагы SD2 картасы, анын үстүндө output2.dat файлы менен жасалат. Эскиз SD картадан маалыматтарды окуйт жана EEPROMго жазат. Чоо -жайын төмөнкү эки шилтемеден тапса болот. Программалоо эскизин жана маалымат файлын колдонууну унутпаңыз, анткени Akafugu шилтемесинде фразанын маалымат базасы жок. Шилтемелердеги процедураны аткарыңыз.

Akafugu FLW маалымат базасына сереп

Маалымат файлын EEPROMго жазуу боюнча нускамалар

3 -кадам: Саатты орнотуу жана башкаруу

Төмөнкү баскычтардын комбинациясы саат орнотуу үчүн колдонулат:

Саат коюлган: нормалдуу иштөө учурунда 1 баскычын басып туруңуз.

Мүнөт коюу: 2 баскычын кадимки иштөө учурунда кармап туруңуз. Экинчиси автоматтык түрдө "00" абалына келтирилет

Секунддар нөлгө кайтарылат: кадимки иштөө учурунда 3 баскычын басып туруңуз, жаңы мүнөттүн башталышы менен синхрондоштуруу үчүн коё бериңиз

Айды коюу: 1 жана 2 баскычтарын кадимки иштөө учурунда бирге кармаңыз

Орнотуу датасы: 1 жана 3 баскычтарын кадимки иштөө учурунда бирге кармаңыз

Жылды коюу: Кадимки иштөө учурунда 2 жана 3 баскычтарын бирге кармаңыз

Аптанын күнүн коюңуз: 1, 2 жана 3 баскычтарын кадимки иштөө учурунда бирге кармаңыз

Бирдик биринчи жолу күйгүзүлгөндө, иштөө режимдери сөз жаратуу башталганга чейин тез көрсөтүлөт:

"EE" Акафугу сөз базасын жана фразалар тизмесин камтыган I2C тышкы EEPROM дегенди билдирет.

"NOEE" EEPROM табылган жок дегенди билдирет. Бирдик туш келди сөз жаратууга кайтат жана фразаны көрсөтпөйт.

"CK" убактысы жана датасы катары менен 5 сөз көрсөтүлгөндөн кийин көрсөтүлөт дегенди билдирет.

"NOCK" убактысы/датасы өчүрүлгөнүн билдирет. Сөздөрдүн туруктуу агымы үзгүлтүксүз көрсөтүлөт, ар бир 10 мүнөт сайын фраза менен үзгүлтүккө учурайт.

"RND" кокус сөз жаратуу режими колдонулат дегенди билдирет

"REL" реляциялык "Акафугу" сөз базасын түзүү режими колдонулат дегенди билдирет

Режимдерди өзгөртүү жана сактоо үчүн, көрсөтүлгөн түймөлөрдүн бирин кармап туруп, саатты ажыратып, кайра туташтырыңыз. Андан кийин баскычты бошотуңуз. Жаңы режим сакталат жана көрсөтүлөт:

1 -баскыч: Кокус же Реляциялык сөз жаратуу режимин которуштуруу жана сактоо

2 -баскыч: 5 сөздөн кийин датаны/убакытты көрсөтүүнү өчүрүү же өчүрүү

Сунушталууда: