Mündəricat:

Akafugu Word Generator və İlham Verici İfadələr ilə Dörd Hərfli Söz Saatı: 3 Addım
Akafugu Word Generator və İlham Verici İfadələr ilə Dörd Hərfli Söz Saatı: 3 Addım

Video: Akafugu Word Generator və İlham Verici İfadələr ilə Dörd Hərfli Söz Saatı: 3 Addım

Video: Akafugu Word Generator və İlham Verici İfadələr ilə Dörd Hərfli Söz Saatı: 3 Addım
Video: Akafugu Four Letter Word Generator on IV-17 Modular Clock 2024, Noyabr
Anonim
Image
Image
Akafugu Word Generator və İlham Verici İfadələr ilə Dörd Hərfli Söz Saatı
Akafugu Word Generator və İlham Verici İfadələr ilə Dörd Hərfli Söz Saatı
Akafugu Word Generator və İlham Verici İfadələr ilə Dörd Hərfli Söz Saatı
Akafugu Word Generator və İlham Verici İfadələr ilə Dörd Hərfli Söz Saatı

Bu, 1970 -ci illərdə yaranmış bir fikir olan dörd hərfli söz saatının mənim versiyamdır. Saat, təsadüfi bir söz generatoru alqoritmindən və ya əlaqəli dörd hərfli sözlər verilənlər bazasından yaranan dörd hərfli sözlər seriyasını göstərir.

Sözü və vaxtı göstərmək üçün bu versiya daha müasir 14 seqmentli LED displeylərdən və Atmega 328p mikro nəzarət cihazından istifadə edir. İki söz yaratmaq rejimi dəstəklənir. Birincisi, orijinala bənzər faktiki sözlər ola biləcək dörd hərfli söz qrupları yaratmaq üçün bir alqoritmdən istifadə edir. Bir -birinin ardınca gələn sözlərin əvvəlki ilə heç bir əlaqəsi yoxdur. İkinci rejim, "Edinburgh Associative Thesaurus" dan əlaqəli söz bazasını istifadə edir, insanların bir toxum sözü verdikdən sonra ağla gələn ilk sözü soruşmağa verdiyi cavablara əsaslanan söz birləşmələrinin bir sənədi və sonra cavab sözü ilə prosesi davam etdirir. Verilənlər bazası, Atmega tərəfindən işlənmək üçün xarici bir EEPROM-da saxlanılan 57 Kbayt məlumat faylı yaradan Akafugu Korporasiyası tərəfindən dörd hərfli söz istehsalına uyğunlaşdırılmışdır. Nəticə budur ki, saat Unix vaxtını təsadüfi bir toxum kimi istifadə edir və bəzi alqoritmlərə deyil, insan cavablarına əsaslanaraq əlaqəli dörd hərfli sözlər yaradır.

Qeyd: Akafugu söz bazası bəzi cinsi açıq və potensial təhqiramiz sözlər ehtiva edir. Bu sizi narahat edirsə, zəhmət olmasa təsadüfi söz rejimini yandırın. Bu da bəzi təhqiramiz sözlər yarada bilər, amma heç olmasa əlaqəli təhqiramiz sözlərin axınlarını göstərməyəcək!

"Edinburq Assosiativ Tezaurusu" 60 -cı illərin əvvəllərində İngiltərədə yaşayan insanların cavabları əsasında tərtib edilmişdir. Əlaqələr sözü mütləq bu qərəzliyi əks etdirir! Məsələn, "İYİ" sözünün ardınca tez -tez "PETE" gəlir. Pete Bestin 60 -cı illərin əvvəllərində Beatles üçün orijinal nağaraçı olduğunu bilməyincə heç bir açıq əlaqə yoxdur! 60 -cı illərin İngiltərə mədəniyyətinə qarşı digər qərəzlər çoxdur. Düşünürəm ki, izləmək çox maraqlıdır!

Cihaz eyni zamanda şarj edilə bilən batareya ehtiyatı olan I2C ünvanlı Real Time Clock moduluna malikdir. Saat, seçilən iki alqoritmdən birindən 5 sözü göstərir, sonra saatı, tarixi, həftənin gününü və ilini göstərir. Saat və iş rejimi üç düymə açarı ilə qurulur. İş rejimləri uçucu olmayan EEPROM-da saxlanılır və sıfırlama və ya elektrik kəsilməsindən sağ çıxır. RTC, gücün kəsilməsindən təxminən bir il sonra, həddindən artıq temperaturla kompensasiya edilmiş dəqiqliklə işləməyə davam edir. Güc bərpa edildikdə düzgün vaxt avtomatik olaraq göstərilir.

Əlavə edilmiş bir xüsusiyyət, hər 10 dəqiqədə bir təsadüfi olaraq göstərilən vaxt haqqında 107 sitatdır. Bu sitatlar dörd simvol arasında sağdan sola fırlanır və tez -tez təşviq və ilham verir! İfadələr üçün saxlama Akafugu söz bazası ilə xarici EEPROM -dədir. Verilənlər bazası, cihazda mövcud olan 64 Kbaytdan yalnız 57 Kbayt alır və 107 ifadəyə yer buraxır. Növbəti 10 dəqiqə aralığında saat ilk dəfə işə salındıqda "lovğalanma" ifadəsi həmişə ilk görünəndir.

Bölmə, dörd xarakterli ekranın 100 Hz-də yenilənməsi ilə nəticələnən bir taymer kəsmə xidməti proqramı ilə çoxaldılmış ümumi 14-seqmentli ekranlardan (hər rəqəm üçün 2 katod) istifadə edir. ISR hər dəfə işlədikdə əvvəlki yarı işarəni söndürür, dörd simvoldan biri üçün 14 seqmentdən 7-ni alır, müvafiq seqment pinlərini açır və müvafiq katodu əsaslandırır. Ekranlar bir az nadirdir, amma istifadə etmək istədiyim böyük bir artıma sahib idim. İkiqat ümumi katod, hər rəqəm üçün lazım olan sancaqlar sayını 15-dən 9-a endirir. Atmega 328p-də ekranın sürüşmə qeydləri olmadan birbaşa idarə olunmasına imkan verən kifayət qədər sancaqlar var.

İŞLƏR: Adafruit 4 xarakterli alfasayısal LED modulundan istifadə etmək üçün kodu dəyişdirin

Addım 1: Tarix

Tarix
Tarix
Tarix
Tarix
Tarix
Tarix
Tarix
Tarix

Orijinal FLW saatı, istifadədən çıxarılan səhmdar ticarət lövhələrindən təmizlənmiş böyük Burroughs B7971 alfasayısal neon artıq borularla inşa edilmişdir. Bunlar dövrün nixie borularına bənzəyir, lakin bütün ASCII simvollarını yaratmaq üçün 14 seqmentli bir ekran istifadə edirdi. Saat, ayrı bir məntiqdən istifadə edərək, cədvəldən hərfləri seçərək, real sözlər istehsal etmək ehtimalı olan təsadüfi dörd hərf birləşməsini meydana gətirdi.

Alqoritm ilə 1972 -ci ilin orijinal modelində hər mövqedə yalnız müəyyən hərflər görünür. Bir neçə yüz dörd hərfli sözün əllə cədvəl analizi aparılmış və hər dörd mövqedə hərflərin tezliyi sayılmışdır. Cəmi səkkiz hərfdən ibarət olan ikinci mövqe istisna olmaqla, hər bir mövqedə ən çox rast gəlinən on hərf istifadə edilmişdir.

Hər bir mövqe üçün, sadə bir BCD (0-9) sayğacı (74LS90 IC) sərbəst hərəkət edirdi və say tutuldu və sürət parametrlərinə görə bir neçə saniyədən bir dəqiqəyə bir dəfə tutuldu. Sayğac şəkli daha sonra simvolları yaratmaq üçün bir diodun deşifr edilməsi matrisinə (təxminən 150 dioddan istifadə edilərək) tətbiq edildi.

Hər bir mövqe üçün yalnız on (və ya səkkiz) ən çox yayılmış məktub seçildiyindən, hərf birləşmələri nəzərə alınmadan bir çox sözlər görünə bilər, məsələn, FRLR, LREE, LLLL və s.

Nəzərə alın ki, ikinci mövqedə yalnız səkkiz hərf var idi, çünki nümunədəki doqquzuncu və onuncu hərflər mütənasib olaraq aşağı tezliyə malik idi, birinci və ikincisi isə çox yüksək tezliyə malik idi, buna görə də ikiqat artırıldı. Beləliklə 10 x 8 x 10 x 10 = 8000 permütasiya. 1973 -cü ilin ilk modelində proqramlaşdırılan hərflər yuxarıdakı şəkillərdən birində göstərilmişdir.

Addım 2: Kod və Şematik

Kod və sxematik
Kod və sxematik
Kod və sxematik
Kod və sxematik
Kod və sxematik
Kod və sxematik
Kod və sxematik
Kod və sxematik

Sxem əlavə olunur.

Saat hər hansı bir Atmega 328p əsaslı Arduino istifadə edilə bilər.

Şemada göstərildiyi kimi, müstəqil bir Atmega 328p ilə istifadə etmək üçün, Arduino IDE vasitəsi ilə mikro nəzarətçini proqramlaşdırmaq üçün bir ISP proqramçısı istifadə edilməlidir. Proqramlaşdırmadan sonra, sigortalar aşağıdakı avrdude əmri ilə qurulmalıdır (WinAVR quraşdırılmalıdır). Com portunu və proqramçı tipini əvəz edin. Ən asan, bir ISD proqramçısı olaraq bir Arduino istifadə etməkdir. Ətraflı məlumat üçün 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

Bu parametrlər bootloader sıfırlama vektorunu deaktiv edir, buna görə kod dərhal əsas kod vektorundan başlayır. Sigortalar 16 MHz xarici osilator üçün də qurulmuşdur. Yandırıldıqda, kristal və kondansatörlər sxemdə göstərildiyi kimi bağlanana qədər çipi yenidən proqramlaşdıra bilməyəcəksiniz.

DS3231 Arduino kitabxanası, RTC saat rutinlərinə girişi təmin etmək üçün quraşdırılmalıdır. DS3231 RTC kitabxana config.h faylında "#define CONFIG_UNIXTIME" sətirini açaraq kitabxanada Unix vaxt dəstəyini aktivləşdirmək lazımdır. Unix vaxtı təsadüfi ədədlər generatoru üçün bir toxum kimi istifadə olunur ki, saat hər dəfə işə salınanda söz və söz ardıcıllığı təkrarlanmasın.

DS3231 RTC saat modulunun özü ebayda satılan ümumi bir çeşiddir. Modul yuxarıda göstərilmişdir. Yenidən doldurulan ehtiyat batareyası olan növü axtarın.

Proqramlaşdırılmış mikro nəzarətçiyə əlavə olaraq, Akafugu söz bazası və söz siyahısı olan bir Microchip 24LC512 seriyalı EEPROM əldə etmək və proqramlaşdırmaq da lazımdır. Bu, Arduino ilə qurulmuş sadə bir dövrə və üzərindəki output2.dat faylı olan FAT32 olaraq format edilmiş SD kartdan istifadə etməklə edilir. Bir eskiz SD kartdakı məlumatları oxuyur və EEPROM -a yazır. Ətraflı məlumatı aşağıdakı iki linkdə tapa bilərsiniz. Bu Təlimat kitabçasında proqramlaşdırma eskizini və məlumat faylını istifadə etdiyinizə əmin olun, çünki Akafugu linkindəki ifadədə verilənlər bazası yoxdur. Bağlantılardakı proseduru izləyin.

Akafugu FLW verilənlər bazasına ümumi baxış

Məlumat faylını EEPROM -a yazmaq üçün təlimatlar

Addım 3: Saat Quraşdırma və Nəzarət

Saat qurmaq üçün aşağıdakı düymələr birləşmələrindən istifadə olunur:

Saat ayarı: Normal iş zamanı 1 düyməsini basıb saxlayın.

Dəqiqə dəsti: Normal iş zamanı 2 düyməsini basıb saxlayın. İkincisi avtomatik olaraq "00" a sıfırlanır

Saniyə sıfıra sıfırlanır: Normal iş zamanı 3 düyməsini basıb saxlayın, yeni dəqiqənin başlaması ilə sinxronizasiya etmək üçün buraxın

Ay Ayarla: Normal iş zamanı 1 və 2 düymələrini bir yerdə saxlayın

Tarixi təyin edin: Normal iş zamanı 1 və 3 düymələrini bir yerdə saxlayın

İli Ayarla: Normal iş zamanı 2 və 3 düymələrini bir yerdə saxlayın

Həftənin Gününü təyin edin: Normal iş zamanı 1, 2 və 3 düymələrini bir yerdə saxlayın

Cihaz ilk dəfə işə salındıqda, işləmə rejimləri söz istehsalına başlamazdan əvvəl tez bir zamanda göstərilir:

"EE", Akafugu söz bazasını və ifadələr siyahısını ehtiva edən I2C xarici EEPROM deməkdir.

"NOEE", EEPROMun aşkarlanmadığı deməkdir. Bölmə təsadüfi söz istehsalına qayıdır və heç bir ifadəni göstərmir.

"CK", ardıcıl 5 söz göstərildikdən sonra vaxt və tarixin göstərilməsi deməkdir.

"NOCK" vaxtı/tarixinin söndürüldüyünü bildirir. Davamlı bir söz axını, hər 10 dəqiqədə bir sözlə kəsilərək göstərilir.

"RND" təsadüfi söz yaratmaq rejiminin istifadə edildiyini bildirir

"REL", əlaqəli "Akafugu" söz bazası yaratmaq rejiminin istifadə edildiyini bildirir

Rejimləri dəyişdirmək və saxlamaq üçün, göstərilən düymələrdən birini tutaraq saatı ayırın və yenidən qoşun. Sonra düyməni buraxın. Yeni rejim saxlanılır və göstərilir:

Düymə 1: Təsadüfi və ya əlaqəli söz yaratmaq rejimini dəyişdirin və qeyd edin

Düymə 2: Ardıcıl 5 sözdən sonra tarixin/vaxtın göstərilməsini yandırın və ya söndürün

Tövsiyə: