Съдържание:

Часовник с четири букви с генератор на думи Akafugu и вдъхновяващи фрази: 3 стъпки
Часовник с четири букви с генератор на думи Akafugu и вдъхновяващи фрази: 3 стъпки

Видео: Часовник с четири букви с генератор на думи Akafugu и вдъхновяващи фрази: 3 стъпки

Видео: Часовник с четири букви с генератор на думи Akafugu и вдъхновяващи фрази: 3 стъпки
Видео: Часть 1 — Аудиокнига «Бэббит» Синклера Льюиса (гл. 01–05) 2024, Юли
Anonim
Image
Image
Часовник с четири букви с генератор на думи Акафугу и вдъхновяващи фрази
Часовник с четири букви с генератор на думи Акафугу и вдъхновяващи фрази
Часовник с четири букви с генератор на думи Акафугу и вдъхновяващи фрази
Часовник с четири букви с генератор на думи Акафугу и вдъхновяващи фрази

Това е моята версия на Часовника с четири букви с думи, идея, възникнала през 70 -те години. Часовникът показва серия от четирибуквени думи, които се генерират или от алгоритъм за генериране на произволни думи, или от база данни от свързани четирибуквени думи.

Тази версия използва по-модерни 14-сегментни LED дисплеи и микроконтролер Atmega 328p за показване на думите и часа. Поддържат се два режима на генериране на думи. Първият използва алгоритъм за генериране на групи от четири букви, които вероятно ще бъдат действителни думи, подобни на оригинала. Всяка следваща дума няма връзка с предходната. Вторият режим използва базата данни за релационни думи от "Единбургския асоциативен тезаурус", документ на асоциациите на думите, базиран на отговорите на хората да попитат първата дума, която им дойде на ум, след като им даде начална дума, след което да продължи процеса с думата за отговор. Базата данни е адаптирана за генериране на думи от четири букви от Akafugu Corporation, която създава 57 Kbyte файл с данни, който се съхранява във външен EEPROM за обработка от Atmega. Резултатът е, че часовникът използва Unix времето като произволно начало и генерира низ от свързани четирибуквени думи въз основа на човешките отговори, а не на някакъв алгоритъм.

Забележка: Базата данни с думи Akafugu съдържа някои сексуално явни и потенциално обидни думи. Ако това ви притеснява, моля, включете режима на произволна дума. Това също може да генерира някои обидни думи, но поне няма да показва потоци от свързани обидни думи!

„Единбургският асоциативен тезаурус“е съставен въз основа на отговори на хора, живеещи в Англия в началото на 60 -те години. Думата отношения определено отразява това пристрастие! Например думата „НАЙ -ДОБРАТА“често е последвана от „ПЕТ“. Не съществува очевидна връзка, освен ако не се знае, че Пийт Бест е оригиналният барабанист на Бийтълс в началото на 60 -те! Има и други пристрастия към британската култура от 60 -те години. Мисля, че е много интересно да се гледа!

Устройството съдържа и I2C адресируем модул за часовник в реално време с резервно зареждане на батерията. Часовникът показва 5 думи от един от двата избираеми алгоритма, след което показва часа, датата, деня от седмицата и годината. Часовникът и режимите на работа се настройват с помощта на три бутона с бутон. Режимите на работа се съхраняват в енергонезависим EEPROM и преживяват нулиране или прекъсване на захранването. RTC продължава да работи около година след изключване на захранването, с изключителна точност, компенсирана от температурата. Точното време се показва автоматично при възстановяване на захранването.

Допълнителна функция са 107 цитата за времето, които се показват произволно на всеки 10 минути. Тези цитати се превъртат отдясно наляво през четирите знака, осигурявайки често насърчение и вдъхновение! Съхранението на фразите е във външния EEPROM с базата данни с думи Akafugu. Базата данни заема само 57 Kbytes от 64 Kbytes, налични в устройството, оставяйки място за 107 фрази. Фразата „самохвалство“винаги е първата, която се показва при първото включване на часовника на следващия 10 -минутен интервал.

Устройството използва обикновени катодни 14-сегментни дисплеи (2 катода за всяка цифра), които са мултиплексирани от услуга за прекъсване на таймера, което води до опресняване на четиризначния дисплей при 100 Hz. Всеки път, когато ISR работи, той изключва предишния полусимвол, извлича 7 от 14 сегмента за един от четирите знака, включва съответните щифтове на сегмента и заземява съответния катод. Дисплеите са малко необичайни, но имах голям излишък, който исках да използвам. Катодът с двойно общ достъп намалява броя на пиновете, необходими на цифра от 15 на 9. Има само достатъчно щифтове на Atmega 328p, за да позволи директно задвижване на дисплея без регистър за смяна.

ЗАДЕЛ: Променете кода, за да използвате 4-знаков буквено-цифров LED модул Adafruit

Стъпка 1: История

История
История
История
История
История
История
История
История

Оригиналният часовник FLW е построен с големи буквено -цифрови неонови излишъци от Burroughs B7971, изчистени от изведени от употреба табла за борсови билети. Те са подобни на цифровите никси тръби от онова време, но използват 14-сегментен дисплей, за да оформят всички символи на ASCII. Часовникът използва дискретна логика, избирайки букви от таблица, за да образува произволни четири комбинации от букви, които са претеглени, за да създадат реални думи.

С алгоритъма В оригиналния модел от 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 трябва да бъде инсталиран). Заместете com порта и типа програмист. Най -лесно е да използвате Arduino като 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

Тези настройки деактивират вектора за нулиране на зареждащото устройство, така че кодът веднага започва от основния вектор на кода. Предпазителите са настроени и за външен 16MHz осцилатор. След като изгорите, няма да можете да програмирате чипа отново, докато кристалът и кондензаторите не бъдат свързани, както е показано на схемата, тъй като вътрешният осцилатор по подразбиране е деактивиран с тези настройки на предпазителя.

Библиотеката DS3231 Arduino трябва да бъде инсталирана, за да осигури достъп до рутините на часовника RTC. Необходимо е да активирате поддръжката на Unix за време в библиотеката, като декомментирате реда "#define CONFIG_UNIXTIME" в файла config.h на библиотеката DS3231 RTC. Unix времето се използва като начало за генератора на случайни числа, така че последователността на думите и фразите няма да се повтаря всеки път, когато часовникът се включи.

Самият часовник DS3231 RTC модул е често срещано разнообразие, продавано в ebay. Модулът е илюстриран по -горе. Потърсете типа с акумулаторна резервна батерия.

В допълнение към програмиран микроконтролер е необходимо също така да се получи и програмира сериен EEPROM на Microchip 24LC512 с базата данни с думи Akafugu и списък с фрази. Това става с помощта на проста схема, изградена с Arduino, и SD карта, форматирана като FAT32 с файла output2.dat върху нея. Скица чете данните от SD картата и ги записва в EEPROM. Подробности можете да намерите на следните две връзки. Не забравяйте да използвате скицата за програмиране и файла с данни в тази инструкция, тъй като в тази на връзката Akafugu липсва базата данни с фрази. Следвайте процедурата в връзките.

Преглед на базата данни на Akafugu FLW

Инструкции за записване на файла с данни в EEPROM

Стъпка 3: Настройка и контрол на часовника

Следните комбинации от бутони се използват за настройка на часовника:

Зададен час: Задръжте бутон 1 по време на нормална работа.

Настройка на минутите: Задръжте бутона 2 по време на нормална работа. Вторите се нулират автоматично на "00"

Секундите се нулират: Задръжте бутона 3 по време на нормална работа, освободете, за да синхронизирате с началото на новата минута

Задайте месец: Задръжте бутоните 1 и 2 заедно по време на нормална работа

Задаване на дата: Задръжте бутоните 1 и 3 заедно по време на нормална работа

Задайте година: Задръжте бутоните 2 и 3 заедно по време на нормална работа

Задайте ден от седмицата: Задръжте бутоните 1, 2 и 3 заедно по време на нормална работа

Когато устройството се включи за първи път, режимите на работа се показват бързо, преди да започне генерирането на думи:

„EE“означава открит външен EEPROM на I2C, съдържащ базата данни с думи Akafugu и списък с фрази.

"NOEE" означава, че EEPROM не е открит. Устройството се връща към генериране на произволни думи и без показване на фрази.

"CK" означава, че часът и датата се показват след показване на 5 последователни думи.

"NOCK" означава, че часът/датата са изключени. Постоянен поток от думи се показва непрекъснато, прекъсван на всеки 10 минути от фраза.

"RND" означава, че се използва режим на генериране на произволни думи

"REL" означава, че се използва релационният режим на генериране на база данни с думи "Akafugu"

За да промените и запазите режимите, изключете часовника и го включете отново, като държите един от посочените бутони. След това отпуснете бутона. Новият режим се съхранява и показва:

Бутон 1: Превключете и запазете режим на генериране на произволни или релационни думи

Бутон 2: Превключване на показването на дата/час след включване или изключване на 5 последователни думи

Препоръчано: