Isi kandungan:

Jam Kata Empat Huruf Dengan Penjana Kata Akafugu dan Frasa Inspirasi: 3 Langkah
Jam Kata Empat Huruf Dengan Penjana Kata Akafugu dan Frasa Inspirasi: 3 Langkah

Video: Jam Kata Empat Huruf Dengan Penjana Kata Akafugu dan Frasa Inspirasi: 3 Langkah

Video: Jam Kata Empat Huruf Dengan Penjana Kata Akafugu dan Frasa Inspirasi: 3 Langkah
Video: Стихийные бедствия, требующие чрезвычайных мер 2024, Julai
Anonim
Image
Image
Jam Kata Empat Huruf Dengan Penjana Kata Akafugu dan Frasa Inspirasi
Jam Kata Empat Huruf Dengan Penjana Kata Akafugu dan Frasa Inspirasi
Jam Kata Empat Huruf Dengan Penjana Kata Akafugu dan Frasa Inspirasi
Jam Kata Empat Huruf Dengan Penjana Kata Akafugu dan Frasa Inspirasi

Ini adalah versi saya dari Four Letter Word Clock, idea yang berasal dari tahun 1970-an. Jam memaparkan rangkaian kata empat huruf yang dihasilkan dari algoritma penjana kata rawak atau dari pangkalan data perkataan empat huruf yang berkaitan.

Versi ini menggunakan paparan LED 14 segmen yang lebih moden dan mikrokontroler Atmega 328p untuk memaparkan perkataan dan masa. Dua mod penghasilan perkataan disokong. Yang pertama menggunakan algoritma untuk menghasilkan kumpulan kata empat huruf yang kemungkinan besar adalah perkataan sebenar, serupa dengan yang asli. Setiap perkataan berturut-turut tidak berkaitan dengan yang sebelumnya. Mod kedua menggunakan pangkalan data kata hubungan dari "Edinburgh Associative Thesaurus", dokumen perkaitan kata berdasarkan tanggapan orang untuk meminta kata pertama yang terlintas di fikiran setelah memberi mereka kata benih, kemudian meneruskan proses dengan kata respons. Pangkalan data disesuaikan dengan generasi kata empat huruf oleh Akafugu Corporation, yang membuat file data 57 Kbyte yang disimpan di EEPROM luaran untuk diproses oleh Atmega. Hasilnya ialah jam menggunakan waktu Unix sebagai rawak dan menghasilkan rentetan kata empat huruf yang berkaitan berdasarkan respons manusia, bukan beberapa algoritma.

Catatan: Pangkalan data kata Akafugu mengandungi beberapa perkataan yang eksplisit secara seksual dan berpotensi menyinggung perasaan. Sekiranya ini mengganggu anda, sila hidupkan mod kata rawak. Ini juga boleh menghasilkan beberapa kata yang menyinggung perasaan, tetapi sekurang-kurangnya tidak akan memaparkan aliran kata-kata yang menyinggung!

"Edinburgh Associative Thesaurus" disusun berdasarkan respons dari orang-orang yang tinggal di England pada awal 60-an. Kata hubungan pasti menggambarkan bahawa berat sebelah! Contohnya, perkataan "TERBAIK" sering diikuti oleh "PETE". Tidak ada hubungan yang jelas, kecuali jika seseorang tahu bahawa Pete Best adalah pemain drum asli untuk The Beatles pada awal tahun 60-an! Bias lain terhadap budaya UK pada tahun 60-an. Saya rasa sangat menarik untuk ditonton!

Peranti ini juga mengandungi modul Jam Masa Nyata yang dapat dialamatkan I2C dengan sandaran bateri yang boleh dicas semula. Jam memaparkan 5 perkataan dari salah satu daripada dua algoritma yang boleh dipilih, kemudian memaparkan waktu, tarikh, hari dalam seminggu dan tahun. Jam dan mod operasi ditetapkan menggunakan tiga suis butang tekan. Mod operasi disimpan dalam EEPROM yang tidak mudah berubah dan bertahan daripada tetapan semula atau kegagalan kuasa. RTC terus berjalan selama kira-kira satu tahun setelah kuasa dikeluarkan, dengan ketepatan yang dikompensasi suhu yang melampau. Masa yang betul secara automatik dipaparkan apabila kuasa dipulihkan.

Ciri tambahan adalah 107 petikan mengenai masa yang dipaparkan secara rawak setiap 10 minit. Petikan ini menatal dari kanan ke kiri melintasi empat watak, memberikan dorongan dan inspirasi yang kerap! Penyimpanan untuk frasa ada di EEPROM luaran dengan pangkalan data perkataan Akafugu. Pangkalan data hanya mengambil 57 Kbytes dari 64 Kbytes yang tersedia dalam peranti, memberikan ruang untuk 107 frasa. Frasa "brag" selalu menjadi yang pertama dipaparkan ketika jam pertama kali dihidupkan pada selang 10 minit berikutnya.

Unit ini menggunakan paparan segmen 14 katod biasa (2 katod untuk setiap digit) yang dilipatgandakan oleh rutin perkhidmatan mengganggu pemasa yang mengakibatkan paparan empat watak disegarkan pada 100 Hz. Setiap kali ISR berjalan, ia mematikan watak separuh sebelumnya, mengambil 7 dari 14 segmen untuk salah satu daripada empat watak, menghidupkan pin segmen yang sesuai dan meletakkan katod yang sesuai. Paparannya agak tidak biasa, tetapi saya mempunyai lebihan bekalan yang ingin saya gunakan. Katod dual-common mengurangkan bilangan pin yang diperlukan setiap digit dari 15 hingga 9. Cukup pin pada Atmega 328p yang cukup untuk membolehkan pemacu langsung paparan tanpa register shift.

TO-DO: Ubah suai kod untuk menggunakan modul LED alfanumerik 4 watak Adafruit

Langkah 1: Sejarah

Sejarah
Sejarah
Sejarah
Sejarah
Sejarah
Sejarah
Sejarah
Sejarah

Jam FLW yang asli dibina dengan tiub lebihan alfanumerik Burroughs B7971 besar yang dilepaskan dari papan paparan ticker stok yang tidak berfungsi. Ini serupa dengan tabung nixie angka, tetapi menggunakan paparan 14 segmen untuk membentuk semua watak ASCII. Jam menggunakan logik diskrit, memilih huruf dari meja untuk membentuk gabungan empat huruf rawak yang diberi wajaran kemungkinan menghasilkan kata-kata yang nyata.

Dengan algoritma Dalam model 1972 yang asal, hanya huruf tertentu yang muncul di setiap kedudukan. Analisis tabulasi tangan beberapa ratus kata empat huruf dilakukan dan kekerapan huruf dalam setiap empat kedudukan dihitung. Sepuluh huruf yang paling kerap digunakan untuk setiap posisi, kecuali di posisi kedua yang hanya mengandungi lapan huruf.

Untuk setiap posisi, penghitung BCD sederhana (0-9) (IC 74LS90) berjalan bebas dan kiraannya ditangkap dan dipegang kira-kira sekali setiap beberapa saat hingga sekali per minit, bergantung pada pengaturan kelajuan. Snapshot kaunter kemudian diterapkan pada matriks penyahkodan diod (menggunakan sekitar 150 dioda) untuk membentuk watak.

Oleh kerana hanya sepuluh (atau lapan) huruf yang paling umum dipilih untuk setiap posisi, tanpa memperhatikan kombinasi huruf, banyak kata bukan perkataan dapat muncul, misalnya, FRLR, LREE, LLLL, dll.

Perhatikan bahawa kedudukan kedua hanya mempunyai lapan huruf, kerana huruf kesembilan dan kesepuluh dalam sampel memiliki frekuensi rendah secara proporsional, sementara yang pertama dan kedua memiliki frekuensi yang sangat tinggi-sehingga mereka digandakan. Oleh itu 10 x 8 x 10 x 10 = 8000 permutasi. Huruf-huruf yang diprogramkan ke model 1973 pertama ditunjukkan dalam salah satu gambar di atas.

Langkah 2: Kod dan Skematik

Kod dan Skematik
Kod dan Skematik
Kod dan Skematik
Kod dan Skematik
Kod dan Skematik
Kod dan Skematik
Kod dan Skematik
Kod dan Skematik

Skema dilampirkan.

Jam mungkin dibina menggunakan Arduino berasaskan Atmega 328p.

Untuk digunakan dengan Atmega 328p mandiri, seperti yang ditunjukkan dalam skema, pengaturcara ISP harus digunakan untuk memprogram mikrokontroler melalui Arduino IDE. Selepas pengaturcaraan, sekering harus ditetapkan menggunakan perintah avrdude berikut (WinAVR mesti dipasang). Ganti port com dan jenis pengaturcara. Yang paling mudah adalah menggunakan Arduino sebagai pengaturcara ISP. Google untuk maklumat lanjut.

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

Tetapan ini melumpuhkan vektor reset bootloader sehingga kodnya segera bermula dari vektor kod utama. Sekering juga ditetapkan untuk pengayun 16MHz luaran. Setelah dibakar, anda tidak dapat memprogramkan cip lagi sehingga kristal dan kapasitor disambungkan seperti yang ditunjukkan dalam skema, kerana pengayun dalaman lalai dilumpuhkan dengan tetapan fius ini.

Perpustakaan DS3231 Arduino mesti dipasang untuk memberi akses kepada rutin jam RTC. Anda perlu mengaktifkan sokongan masa Unix di perpustakaan dengan melepaskan baris "#define CONFIG_UNIXTIME" dalam fail config.h perpustakaan RTC DS3231. Waktu Unix digunakan sebagai biji untuk penjana nombor rawak sehingga urutan kata dan frasa tidak akan diulang setiap kali jam dihidupkan.

Modul jam DS3231 RTC itu sendiri adalah pelbagai biasa yang dijual di ebay. Modul digambarkan di atas. Cari jenisnya dengan bateri sandaran yang boleh dicas semula.

Sebagai tambahan kepada mikrokontroler yang diprogramkan, juga perlu untuk mendapatkan dan memprogram EEPROM bersiri Microchip 24LC512 dengan pangkalan data perkataan dan senarai frasa Akafugu. Ini dilakukan menggunakan litar sederhana yang dibina dengan Arduino, dan kad SD diformat sebagai FAT32 dengan fail output2.dat di atasnya. Lakaran membaca data dari kad SD dan menulisnya ke EEPROM. Perincian boleh didapati di dua pautan berikut. Pastikan menggunakan lakaran pengaturcaraan dan fail data dalam Instructable ini, kerana pautan Akafugu tidak mempunyai pangkalan data frasa. Ikuti prosedur di pautan.

Gambaran keseluruhan pangkalan data FLF Akafugu

Arahan untuk membakar fail data ke EEPROM

Langkah 3: Penyediaan dan Kawalan Jam

Kombinasi butang berikut digunakan untuk penyediaan jam:

Set jam: Tahan butang 1 semasa operasi biasa.

Set minit: Tahan butang 2 semasa operasi biasa. Kedua diset semula ke "00" secara automatik

Detik ditetapkan semula ke sifar: Tahan butang 3 semasa operasi normal, lepaskan untuk diselaraskan dengan permulaan minit baru

Tetapkan Bulan: Tahan butang 1 dan 2 bersama-sama semasa operasi biasa

Tetapkan Tarikh: Tahan butang 1 dan 3 bersama-sama semasa operasi biasa

Set Tahun: Tahan butang 2 dan 3 bersama-sama semasa operasi biasa

Tetapkan Hari Minggu: Tahan butang 1, 2 dan 3 bersama-sama semasa operasi biasa

Apabila unit pertama kali dihidupkan, mod operasi dipaparkan dengan cepat sebelum penjanaan perkataan bermula:

"EE" bermaksud EEPROM luaran I2C yang mengandungi pangkalan data kata Akafugu dan senarai frasa telah dikesan.

"NOEE" bermaksud bahawa EEPROM tidak dikesan. Unit ini beralih kepada penghasilan kata secara rawak dan tidak ada paparan frasa.

"CK" bermaksud masa dan tarikh ditunjukkan setelah memaparkan 5 perkataan berturut-turut.

"NOCK" bermaksud masa / tarikh dimatikan. Aliran kata yang berterusan ditunjukkan secara berterusan, terganggu setiap 10 minit oleh frasa.

"RND" bermaksud mod penghasilan kata secara rawak digunakan

"REL" bermaksud mod penghasilan pangkalan data perkataan "Akafugu" yang digunakan

Untuk menukar dan menyimpan mod, cabut jam dan pasangkan kembali sambil menahan salah satu butang yang ditunjukkan. Kemudian lepaskan butang. Mod baru disimpan dan dipaparkan:

Butang 1: Togol dan simpan mod penghasilan perkataan Rawak atau Relasional

Butang 2: Togol paparan tarikh / masa selepas 5 perkataan berturut-turut dihidupkan atau dimatikan

Disyorkan: