Spisu treści:

Czteroliterowy zegar słowny z generatorem słów Akafugu i inspirującymi zwrotami: 3 kroki
Czteroliterowy zegar słowny z generatorem słów Akafugu i inspirującymi zwrotami: 3 kroki

Wideo: Czteroliterowy zegar słowny z generatorem słów Akafugu i inspirującymi zwrotami: 3 kroki

Wideo: Czteroliterowy zegar słowny z generatorem słów Akafugu i inspirującymi zwrotami: 3 kroki
Wideo: Program pisze program - Tuż przed nowotworem - Kropki na przecinki | Czytamy naturę #170 2024, Lipiec
Anonim
Image
Image
Czteroliterowy zegar słowny z generatorem słów Akafugu i inspirującymi zwrotami
Czteroliterowy zegar słowny z generatorem słów Akafugu i inspirującymi zwrotami
Czteroliterowy zegar słowny z generatorem słów Akafugu i inspirującymi zwrotami
Czteroliterowy zegar słowny z generatorem słów Akafugu i inspirującymi zwrotami

To jest moja wersja Czteroliterowego Zegara Słownego, pomysłu, który powstał w latach 70-tych. Zegar wyświetla serię czteroliterowych słów, które są generowane z algorytmu generatora losowych słów lub z bazy danych powiązanych czteroliterowych słów.

Ta wersja wykorzystuje bardziej nowoczesne 14-segmentowe wyświetlacze LED oraz mikrokontroler Atmega 328p do wyświetlania słów i czasu. Obsługiwane są dwa tryby generowania słów. Pierwsza wykorzystuje algorytm do generowania czteroliterowych grup słów, które prawdopodobnie są rzeczywistymi słowami, podobnymi do oryginału. Każde kolejne słowo nie ma związku z poprzednim. Drugi tryb korzysta z relacyjnej bazy danych słów z „Edynburskiego tezaurusa skojarzeniowego”, dokumentu skojarzeń słów opartych na odpowiedziach ludzi na pytanie o pierwsze słowo, które przychodzi na myśl po podaniu im początkowego słowa, a następnie kontynuując proces ze słowem odpowiedzi. Baza danych została przystosowana do generowania czteroliterowych słów przez firmę Akafugu Corporation, która stworzyła plik danych o wielkości 57 KB, który jest przechowywany w zewnętrznej pamięci EEPROM do przetwarzania przez Atmegę. W rezultacie zegar używa czasu uniksowego jako losowego ziarna i generuje ciąg powiązanych czteroliterowych słów na podstawie ludzkich odpowiedzi, a nie jakiegoś algorytmu.

Uwaga: Baza danych słów Akafugu zawiera kilka słów o charakterze jednoznacznie seksualnym i potencjalnie obraźliwym. Jeśli Ci to przeszkadza, włącz tryb losowych słów. Może to również generować obraźliwe słowa, ale przynajmniej nie spowoduje wyświetlenia strumieni powiązanych obraźliwych słów!

„Edynburgski tezaurus skojarzeniowy” został skompilowany na podstawie odpowiedzi od ludzi mieszkających w Anglii na początku lat 60-tych. Słowo relacje zdecydowanie odzwierciedla to nastawienie! Na przykład po słowie „NAJLEPSZA” często występuje słowo „PETE”. Nie ma żadnego oczywistego związku, chyba że wiadomo, że Pete Best był oryginalnym perkusistą The Beatles na początku lat 60-tych! Inne uprzedzenia wobec kultury brytyjskiej lat 60. obfitują. Uważam, że oglądanie tego jest bardzo interesujące!

Urządzenie zawiera również adresowalny moduł zegara czasu rzeczywistego I2C z podtrzymaniem bateryjnym. Zegar wyświetla 5 słów z jednego z dwóch algorytmów do wyboru, a następnie wyświetla czas, datę, dzień tygodnia i rok. Zegar i tryby pracy ustawia się za pomocą trzech przełączników przyciskowych. Tryby pracy są przechowywane w nieulotnej pamięci EEPROM i przetrwają reset lub awarię zasilania. RTC kontynuuje pracę przez około rok po odłączeniu zasilania, z ekstremalną dokładnością z kompensacją temperatury. Prawidłowy czas jest wyświetlany automatycznie po przywróceniu zasilania.

Dodatkową funkcją jest 107 cytatów o czasie, które są wyświetlane losowo co 10 minut. Te cytaty przewijają się od prawej do lewej przez cztery postacie, zapewniając częstą zachętę i inspirację! Miejsce przechowywania fraz znajduje się w zewnętrznej pamięci EEPROM z bazą słów Akafugu. Baza danych zajmuje tylko 57 KB z 64 KB dostępnych w urządzeniu, pozostawiając miejsce na 107 fraz. Fraza „chwała” jest zawsze wyświetlana jako pierwsza, gdy zegar jest włączany po raz pierwszy w ciągu następnych 10 minut.

Urządzenie wykorzystuje 14-segmentowe wyświetlacze ze wspólną katodą (2 katody na każdą cyfrę), które są multipleksowane przez procedurę obsługi przerwań czasowych, która powoduje odświeżanie czteroznakowego wyświetlacza z częstotliwością 100 Hz. Ilekroć ISR działa, wyłącza poprzednią pół-znak, odzyskuje 7 z 14 segmentów dla jednego z czterech znaków, włącza odpowiednie kołki segmentu i uziemia odpowiednią katodę. Wyświetlacze są nieco rzadkie, ale miałem dużą nadwyżkę zapasu, z którego chciałem skorzystać. Podwójna wspólna katoda zmniejsza liczbę pinów potrzebnych na cyfrę z 15 do 9. W Atmega 328p jest wystarczająco dużo pinów, aby umożliwić bezpośrednie sterowanie wyświetlaczem bez rejestru przesuwnego.

DO ZROBIENIA: Zmodyfikuj kod, aby używać 4-znakowego alfanumerycznego modułu LED Adafruit

Krok 1: Historia

Historia
Historia
Historia
Historia
Historia
Historia
Historia
Historia

Oryginalny zegar FLW został zbudowany z dużych, alfanumerycznych lampek neonowych Burroughs B7971 zebranych z wycofanych z eksploatacji tablic informacyjnych. Są one podobne do numerycznych rurek nixie z tamtych czasów, ale używały 14-segmentowego wyświetlacza do tworzenia wszystkich znaków ASCII. Zegar wykorzystywał logikę dyskretną, wybierając litery z tabeli, tworząc losowe czteroliterowe kombinacje, które były ważone tak, aby dawały prawdziwe słowa.

Z algorytmem W oryginalnym modelu z 1972 roku w każdej pozycji pojawiają się tylko określone litery. Przeprowadzono ręcznie tabelaryczną analizę kilkuset czteroliterowych słów i policzono częstotliwość liter w każdej z czterech pozycji. Zastosowano dziesięć najczęściej występujących liter każdej pozycji, z wyjątkiem drugiej pozycji, która zawierała tylko osiem liter.

Dla każdej pozycji prosty licznik BCD (0-9) (74LS90 IC) działał swobodnie, a zliczanie było rejestrowane i utrzymywane od około raz na kilka sekund do raz na minutę, w zależności od ustawienia prędkości. Migawka licznika została następnie zastosowana do diodowej matrycy dekodowania (przy użyciu około 150 diod) w celu utworzenia znaków.

Ponieważ dla każdej pozycji wybrano tylko dziesięć (lub osiem) najpopularniejszych liter, bez względu na kombinacje liter, może pojawić się wiele niebędących słowami, np. FRLR, LREE, LLLL itp.

Zauważ, że druga pozycja miała tylko osiem liter, ponieważ dziewiąta i dziesiąta litera w próbce miały proporcjonalnie niską częstotliwość, podczas gdy pierwsza i druga miały wyjątkowo wysoką częstotliwość, więc były podwojone. Zatem 10 x 8 x 10 x 10 = 8000 permutacji. Litery zaprogramowane w pierwszym modelu z 1973 roku pokazano na jednym z powyższych zdjęć.

Krok 2: Kod i schemat

Kod i schemat
Kod i schemat
Kod i schemat
Kod i schemat
Kod i schemat
Kod i schemat
Kod i schemat
Kod i schemat

Schemat w załączeniu.

Zegar można zbudować przy użyciu dowolnego Arduino opartego na Atmega 328p.

Do użytku z samodzielnym Atmega 328p, jak pokazano na schemacie, należy użyć programatora ISP do zaprogramowania mikrokontrolera za pośrednictwem Arduino IDE. Po zaprogramowaniu bezpieczniki należy ustawić za pomocą poniższej komendy avrdude (musi być zainstalowany WinAVR). Zastąp port com i typ programatora. Najłatwiej jest użyć Arduino jako programisty ISP. Google o szczegóły.

avrdude -c arduino -P com13 -b 19200 -p atmega328p -U zabezp:sz:0xFF:m -U zabezp:sz:0xDF:m -U zabezp:sz:0x05:m

Te ustawienia wyłączają wektor resetu bootloadera, więc kod natychmiast zaczyna się od głównego wektora kodu. Bezpieczniki są również ustawione na zewnętrzny oscylator 16MHz. Po spaleniu nie będzie można ponownie zaprogramować układu, dopóki kryształ i kondensatory nie zostaną połączone, jak pokazano na schemacie, ponieważ domyślny wewnętrzny oscylator jest wyłączony przy tych ustawieniach bezpiecznika.

Aby zapewnić dostęp do procedur zegara RTC, należy zainstalować bibliotekę DS3231 Arduino. Konieczne jest włączenie obsługi czasu uniksowego w bibliotece poprzez odkomentowanie linii "#define CONFIG_UNIXTIME" w pliku config.h biblioteki DS3231 RTC. Czas uniksowy jest używany jako ziarno generatora liczb losowych, dzięki czemu sekwencje słów i fraz nie będą powtarzane za każdym razem, gdy zegar jest włączony.

Sam moduł zegara DS3231 RTC jest powszechną odmianą sprzedawaną w serwisie eBay. Moduł został zilustrowany powyżej. Poszukaj typu z baterią zapasową wielokrotnego ładowania.

Oprócz zaprogramowanego mikrokontrolera konieczne jest również uzyskanie i zaprogramowanie szeregowej pamięci EEPROM Microchip 24LC512 z bazą słów i listą fraz Akafugu. Odbywa się to za pomocą prostego obwodu zbudowanego z Arduino i karty SD sformatowanej jako FAT32 z plikiem output2.dat na nim. Szkic odczytuje dane z karty SD i zapisuje je w pamięci EEPROM. Szczegóły można znaleźć pod poniższymi dwoma linkami. Pamiętaj, aby użyć szkicu programowania i pliku danych w tej instrukcji, ponieważ w linku Akafugu brakuje bazy danych fraz. Postępuj zgodnie z procedurą podaną w linkach.

Przegląd bazy danych Akafugu FLW

Instrukcja wypalania pliku danych do EEPROM

Krok 3: Konfiguracja i sterowanie zegarem

Do ustawienia zegara używane są następujące kombinacje przycisków:

Ustawiona godzina: Przytrzymaj przycisk 1 podczas normalnej pracy.

Ustawienie minut: Przytrzymaj przycisk 2 podczas normalnej pracy. Drugie są automatycznie resetowane do „00”

Sekundy resetowane do zera: Przytrzymaj przycisk 3 podczas normalnej pracy, zwolnij, aby zsynchronizować się z początkiem nowej minuty

Ustaw miesiąc: przytrzymaj przyciski 1 i 2 razem podczas normalnej pracy

Ustaw datę: przytrzymaj przyciski 1 i 3 razem podczas normalnej pracy

Ustaw rok: Przytrzymaj przyciski 2 i 3 razem podczas normalnej pracy

Ustaw dzień tygodnia: przytrzymaj jednocześnie przyciski 1, 2 i 3 podczas normalnej pracy

Gdy urządzenie jest włączane po raz pierwszy, tryby pracy są szybko wyświetlane przed rozpoczęciem generowania słów:

„EE” oznacza, że wykryto zewnętrzną pamięć EEPROM I2C zawierającą bazę danych słów i listę fraz Akafugu.

„NOEE” oznacza, że EEPROM nie został wykryty. Urządzenie powraca do losowego generowania słów i bez wyświetlania fraz.

„CK” oznacza, że po wyświetleniu 5 kolejnych słów wyświetlany jest czas i data.

„NOCK” oznacza, że godzina/data są wyłączone. Ciągły strumień słów jest wyświetlany w sposób ciągły, przerywany co 10 minut frazą.

"RND" oznacza, że używany jest tryb losowego generowania słów

„REL” oznacza, że używany jest tryb generowania relacyjnej bazy danych słów „Akafugu”

Aby zmienić i zapisać tryby, odłącz zegar i podłącz ponownie, przytrzymując jeden ze wskazanych przycisków. Następnie zwolnij przycisk. Nowy tryb jest zapisywany i wyświetlany:

Przycisk 1: Przełącz i zapisz tryb generowania słów losowych lub relacyjnych

Przycisk 2: włącz lub wyłącz wyświetlanie daty/czasu po 5 kolejnych słowach

Zalecana: