Πίνακας περιεχομένων:

Ρολόι λέξεων τεσσάρων γραμμάτων με γεννήτρια λέξεων Akafugu και εμπνευσμένες φράσεις: 3 βήματα
Ρολόι λέξεων τεσσάρων γραμμάτων με γεννήτρια λέξεων Akafugu και εμπνευσμένες φράσεις: 3 βήματα

Βίντεο: Ρολόι λέξεων τεσσάρων γραμμάτων με γεννήτρια λέξεων Akafugu και εμπνευσμένες φράσεις: 3 βήματα

Βίντεο: Ρολόι λέξεων τεσσάρων γραμμάτων με γεννήτρια λέξεων Akafugu και εμπνευσμένες φράσεις: 3 βήματα
Βίντεο: Απόπειρα Ερμηνείας Ελληνικών Εκφράσεων με τη.. Λογική | Pip #4 2024, Ιούλιος
Anonim
Image
Image
Ρολόι λέξεων τεσσάρων γραμμάτων με γεννήτρια λέξεων Akafugu και εμπνευσμένες φράσεις
Ρολόι λέξεων τεσσάρων γραμμάτων με γεννήτρια λέξεων Akafugu και εμπνευσμένες φράσεις
Ρολόι λέξεων τεσσάρων γραμμάτων με γεννήτρια λέξεων Akafugu και εμπνευσμένες φράσεις
Ρολόι λέξεων τεσσάρων γραμμάτων με γεννήτρια λέξεων Akafugu και εμπνευσμένες φράσεις

Αυτή είναι η δική μου έκδοση του ρολογιού με τέσσερα γράμματα, μια ιδέα που ξεκίνησε τη δεκαετία του 1970. Το ρολόι εμφανίζει μια σειρά λέξεων τεσσάρων γραμμάτων που παράγονται είτε από έναν αλγόριθμο τυχαίας δημιουργίας λέξεων είτε από μια βάση δεδομένων σχετικών λέξεων τεσσάρων γραμμάτων.

Αυτή η έκδοση χρησιμοποιεί πιο σύγχρονες οθόνες LED 14 τμημάτων και έναν μικροελεγκτή Atmega 328p για την εμφάνιση των λέξεων και του χρόνου. Υποστηρίζονται δύο τρόποι δημιουργίας λέξεων. Το πρώτο χρησιμοποιεί έναν αλγόριθμο για να δημιουργήσει ομάδες λέξεων τεσσάρων γραμμάτων που είναι πιθανό να είναι πραγματικές λέξεις, παρόμοιες με την αρχική. Κάθε διαδοχική λέξη δεν σχετίζεται με την προηγούμενη. Ο δεύτερος τρόπος χρησιμοποιεί τη σχεσιακή βάση δεδομένων λέξεων από το "Edinburgh Associative Thesaurus", ένα έγγραφο συσχετίσεων λέξεων που βασίζεται στις απαντήσεις των ανθρώπων στο να ζητήσουν την πρώτη λέξη που έρχεται στο μυαλό αφού τους δώσουν μια λέξη σπόρου, και στη συνέχεια να συνεχίσουν τη διαδικασία με τη λέξη απόκρισης. Η βάση δεδομένων προσαρμόστηκε στη δημιουργία λέξεων τεσσάρων γραμμάτων από την Akafugu Corporation, η οποία δημιούργησε ένα αρχείο δεδομένων 57 Kbyte που αποθηκεύεται σε εξωτερικό EEPROM για επεξεργασία από το Atmega. Το αποτέλεσμα είναι ότι το ρολόι χρησιμοποιεί το χρόνο Unix ως τυχαίο σπόρο και δημιουργεί μια σειρά από σχετικές λέξεις τεσσάρων γραμμάτων που βασίζονται σε ανθρώπινες απαντήσεις και όχι σε κάποιον αλγόριθμο.

Σημείωση: Η βάση δεδομένων λέξεων Akafugu περιέχει μερικές σεξουαλικά ρητές και δυνητικά προσβλητικές λέξεις. Εάν αυτό σας ενοχλεί, ενεργοποιήστε τη λειτουργία τυχαίας λέξης. Αυτό μπορεί επίσης να δημιουργήσει κάποιες προσβλητικές λέξεις, αλλά τουλάχιστον δεν θα εμφανίζει ρεύματα σχετικών προσβλητικών λέξεων!

Ο «Συνδετικός Θησαυρός του Εδιμβούργου» συντάχθηκε με βάση απαντήσεις από ανθρώπους που ζούσαν στην Αγγλία στις αρχές της δεκαετίας του '60. Η λέξη σχέσεις αντανακλά σίγουρα αυτή την προκατάληψη! Για παράδειγμα, η λέξη "BEST" ακολουθείται συχνά από το "PETE". Δεν υπάρχει προφανής σύνδεση, εκτός αν κάποιος γνωρίζει ότι ο Pete Best ήταν ο αρχικός ντράμερ των Beatles στις αρχές της δεκαετίας του '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 για να επιτρέψετε την άμεση οδήγηση της οθόνης χωρίς καταχωρητή αλλαγής ταχυτήτων.

TO-DO: Τροποποιήστε τον κώδικα για να χρησιμοποιήσετε την αλφαριθμητική μονάδα LED Adafruit 4 χαρακτήρων

Βήμα 1: Ιστορία

Ιστορία
Ιστορία
Ιστορία
Ιστορία
Ιστορία
Ιστορία
Ιστορία
Ιστορία

Το αρχικό ρολόι FLW κατασκευάστηκε με μεγάλους σωλήνες αλφάριθμου νέον πλεόνασμα Burroughs B7971 που απορρίφθηκαν από παροπλισμένες πινακίδες ένδειξης. Αυτά είναι παρόμοια με τους αριθμητικούς σωλήνες nixie της εποχής, αλλά χρησιμοποιούσαν μια οθόνη 14 τμημάτων για να σχηματίσουν όλους τους χαρακτήρες ASCII. Το ρολόι χρησιμοποίησε διακριτή λογική, επιλέγοντας γράμματα από έναν πίνακα για να σχηματίσει τυχαίους συνδυασμούς τεσσάρων γραμμάτων που σταθμίστηκαν για να είναι πιθανό να παράγουν πραγματικές λέξεις.

Με τον αλγόριθμο Στο αρχικό μοντέλο του 1972, μόνο ορισμένα γράμματα εμφανίζονται σε κάθε θέση. Πραγματοποιήθηκε ανάλυση σε πίνακα πολλών εκατοντάδων τεσσάρων γραμμάτων και μετρήθηκε η συχνότητα των γραμμάτων σε κάθε μία από τις τέσσερις θέσεις. Χρησιμοποιήθηκαν τα δέκα πιο συχνά γράμματα κάθε θέσης, εκτός από τη δεύτερη θέση που περιείχε μόνο οκτώ γράμματα.

Για κάθε θέση, ένας απλός μετρητής BCD (0-9) (ένα IC 74LS90) έτρεχε ελεύθερα και η καταγραφή καταγράφηκε και κρατήθηκε περίπου μία φορά κάθε λίγα δευτερόλεπτα έως μία φορά το λεπτό, ανάλογα με τη ρύθμιση ταχύτητας. Το αντίγραφο στιγμιότυπο στη συνέχεια εφαρμόστηκε σε μια μήτρα αποκωδικοποίησης διόδου (χρησιμοποιώντας περίπου 150 διόδους) για να σχηματίσει τους χαρακτήρες.

Δεδομένου ότι επιλέχθηκαν μόνο τα δέκα (ή οκτώ) πιο συνηθισμένα γράμματα για κάθε θέση, χωρίς να ληφθούν υπόψη οι συνδυασμοί γραμμάτων, μπορούν να εμφανιστούν πολλές μη λέξεις, π.χ., FRLR, LREE, LLLL, κ.λπ.

Σημειώστε ότι η δεύτερη θέση είχε μόνο οκτώ γράμματα, αφού το ένατο και το δέκατο γράμμα στο δείγμα είχαν αναλογικά χαμηλή συχνότητα, ενώ το πρώτο και το δεύτερο είχαν εξαιρετικά υψηλή συχνότητα-έτσι διπλασιάστηκαν. Έτσι 10 x 8 x 10 x 10 = 8000 μεταθέσεις. Τα γράμματα που προγραμματίστηκαν στο πρώτο μοντέλο του 1973 εμφανίζονται σε μία από τις παραπάνω εικόνες.

Βήμα 2: Κωδικός και σχηματική

Κώδικας και σχηματική
Κώδικας και σχηματική
Κωδικός και σχηματική
Κωδικός και σχηματική
Κωδικός και σχηματική
Κωδικός και σχηματική
Κωδικός και σχηματική
Κωδικός και σχηματική

Το σχήμα επισυνάπτεται.

Το ρολόι μπορεί να κατασκευαστεί χρησιμοποιώντας οποιοδήποτε Arduino που βασίζεται σε Atmega 328p.

Για χρήση με αυτόνομο 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

Αυτές οι ρυθμίσεις απενεργοποιούν το διάνυσμα επαναφοράς του bootloader έτσι ώστε ο κώδικας να ξεκινά αμέσως από το κύριο διάνυσμα κώδικα. Οι ασφάλειες έχουν επίσης ρυθμιστεί για έναν εξωτερικό ταλαντωτή 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. Λεπτομέρειες μπορείτε να βρείτε στους ακόλουθους δύο συνδέσμους. Βεβαιωθείτε ότι χρησιμοποιείτε το σκίτσο προγραμματισμού και το αρχείο δεδομένων σε αυτό το Instructable, καθώς αυτό στο σύνδεσμο Akafugu δεν διαθέτει τη βάση δεδομένων φράσεων. Ακολουθήστε τη διαδικασία στους συνδέσμους.

Επισκόπηση βάσης δεδομένων Akafugu FLW

Οδηγίες για την εγγραφή του αρχείου δεδομένων στο EEPROM

Βήμα 3: Ρύθμιση και έλεγχος ρολογιού

Οι παρακάτω συνδυασμοί κουμπιών χρησιμοποιούνται για τη ρύθμιση του ρολογιού:

Ρύθμιση ώρας: Κρατήστε πατημένο το κουμπί 1 κατά την κανονική λειτουργία.

Σετ λεπτών: Κρατήστε πατημένο το κουμπί 2 κατά την κανονική λειτουργία. Το δεύτερο επαναφέρεται αυτόματα στο "00"

Επαναφορά δευτερολέπτων στο μηδέν: Κρατήστε πατημένο το κουμπί 3 κατά τη διάρκεια της κανονικής λειτουργίας, αφήστε το για συγχρονισμό με την έναρξη του νέου λεπτού

Ρύθμιση μήνα: Κρατήστε πατημένα τα κουμπιά 1 και 2 κατά τη διάρκεια της κανονικής λειτουργίας

Ρύθμιση ημερομηνίας: Κρατήστε πατημένα τα κουμπιά 1 και 3 κατά τη διάρκεια της κανονικής λειτουργίας

Ρύθμιση έτους: Κρατήστε πατημένα τα κουμπιά 2 και 3 κατά τη διάρκεια της κανονικής λειτουργίας

Ορισμός ημέρας της εβδομάδας: Κρατήστε πατημένα τα κουμπιά 1, 2 και 3 κατά τη διάρκεια της κανονικής λειτουργίας

Όταν η μονάδα ενεργοποιείται για πρώτη φορά, οι τρόποι λειτουργίας εμφανίζονται γρήγορα πριν ξεκινήσει η δημιουργία λέξεων:

"EE" σημαίνει ότι έχει εντοπιστεί το I2C εξωτερικό EEPROM που περιέχει τη βάση δεδομένων λέξεων Akafugu και τη λίστα φράσεων.

"NOEE" σημαίνει ότι το EEPROM δεν εντοπίστηκε. Η μονάδα επιστρέφει σε τυχαία δημιουργία λέξεων και δεν εμφανίζεται φράση.

"CK" σημαίνει ότι η ώρα και η ημερομηνία εμφανίζονται μετά την εμφάνιση 5 συνεχόμενων λέξεων.

"NOCK" σημαίνει ότι η ώρα/ημερομηνία είναι απενεργοποιημένη. Ένα σταθερό ρεύμα λέξεων εμφανίζεται συνεχώς, διακόπτεται κάθε 10 λεπτά από μια φράση.

"RND" σημαίνει ότι χρησιμοποιείται τυχαία λειτουργία δημιουργίας λέξεων

"REL" σημαίνει ότι χρησιμοποιείται η σχέση δημιουργίας βάσης δεδομένων λέξης "Akafugu"

Για να αλλάξετε και να αποθηκεύσετε λειτουργίες, αποσυνδέστε το ρολόι και συνδέστε ξανά ενώ κρατάτε ένα από τα υποδεικνυόμενα κουμπιά. Στη συνέχεια, απελευθερώστε το κουμπί. Η νέα λειτουργία αποθηκεύεται και εμφανίζεται:

Κουμπί 1: Εναλλαγή και αποθήκευση Λειτουργία τυχαίας ή σχεσιακής δημιουργίας λέξεων

Κουμπί 2: Εναλλαγή εμφάνισης ημερομηνίας/ώρας μετά από 5 συνεχόμενες λέξεις ενεργοποιημένες ή απενεργοποιημένες

Συνιστάται: