Table des matières:

Horloge de mots à quatre lettres avec générateur de mots Akafugu et phrases inspirantes : 3 étapes
Horloge de mots à quatre lettres avec générateur de mots Akafugu et phrases inspirantes : 3 étapes

Vidéo: Horloge de mots à quatre lettres avec générateur de mots Akafugu et phrases inspirantes : 3 étapes

Vidéo: Horloge de mots à quatre lettres avec générateur de mots Akafugu et phrases inspirantes : 3 étapes
Vidéo: Apprendre Aux Enfants À Lire L'Heure Avec Les Aiguilles Et Le Cadran - Lire L'Heure Sur Une Horloge 2024, Juillet
Anonim
Image
Image
Horloge de mots à quatre lettres avec générateur de mots Akafugu et phrases inspirantes
Horloge de mots à quatre lettres avec générateur de mots Akafugu et phrases inspirantes
Horloge de mots à quatre lettres avec générateur de mots Akafugu et phrases inspirantes
Horloge de mots à quatre lettres avec générateur de mots Akafugu et phrases inspirantes

Ceci est ma version de l'horloge de mots à quatre lettres, une idée qui remonte aux années 1970. L'horloge affiche une série de mots de quatre lettres qui sont générés soit à partir d'un algorithme de générateur de mots aléatoires, soit à partir d'une base de données de mots de quatre lettres associés.

Cette version utilise des écrans LED à 14 segments plus modernes et un microcontrôleur Atmega 328p pour afficher les mots et l'heure. Deux modes de génération de mots sont pris en charge. Le premier utilise un algorithme pour générer des groupes de mots de quatre lettres susceptibles d'être de vrais mots, similaires à l'original. Chaque mot successif n'a aucun rapport avec le précédent. Le deuxième mode utilise la base de données de mots relationnels du "Thésaurus associatif d'Edimbourg", un document d'associations de mots basé sur les réponses des personnes à la question du premier mot qui leur vient à l'esprit après leur avoir donné un mot de départ, puis en continuant le processus avec le mot de réponse. La base de données a été adaptée à la génération de mots de quatre lettres par Akafugu Corporation, qui a créé un fichier de données de 57 Ko qui est stocké dans une EEPROM externe pour être traité par l'Atmega. Le résultat est que l'horloge utilise l'heure Unix comme une graine aléatoire et génère une chaîne de mots de quatre lettres associés basée sur des réponses humaines, et non sur un algorithme.

Remarque: La base de données de mots Akafugu contient des mots sexuellement explicites et potentiellement offensants. Si cela vous dérange, veuillez activer le mode mot aléatoire. Cela peut également générer des mots offensants, mais au moins n'affichera pas de flux de mots offensants connexes !

Le "Thésaurus associatif d'Edimbourg" a été compilé sur la base des réponses de personnes vivant en Angleterre au début des années 60. Le mot relations reflète bien ce parti pris ! Par exemple, le mot "BEST" est fréquemment suivi de "PETE". Aucun lien évident n'existe, à moins que l'on sache que Pete Best était le batteur original des Beatles au début des années 60 ! D'autres préjugés envers la culture britannique des années 60 abondent. Je pense que c'est très intéressant à regarder !

L'appareil contient également un module d'horloge en temps réel adressable I2C avec batterie de secours rechargeable. L'horloge affiche 5 mots de l'un des deux algorithmes sélectionnables, puis affiche l'heure, la date, le jour de la semaine et l'année. L'horloge et les modes de fonctionnement sont réglés à l'aide de trois boutons poussoirs. Les modes de fonctionnement sont stockés dans une EEPROM non volatile et survivent à une réinitialisation ou à une panne de courant. Le RTC continue de fonctionner pendant environ un an après la mise hors tension, avec une précision extrême compensée en température. L'heure correcte s'affiche automatiquement lorsque l'alimentation est rétablie.

Une fonctionnalité supplémentaire est les 107 citations sur le temps qui sont affichées au hasard toutes les 10 minutes. Ces citations défilent de droite à gauche à travers les quatre personnages, fournissant des encouragements et une inspiration fréquents ! Le stockage des phrases est dans l'EEPROM externe avec la base de données de mots Akafugu. La base de données ne prend que 57 Ko sur les 64 Ko disponibles dans l'appareil, laissant de la place pour les 107 phrases. Une phrase "de vantardise" est toujours la première à s'afficher lorsque l'horloge est allumée pour la première fois à l'intervalle de 10 minutes suivant.

L'unité utilise des affichages à cathode commune à 14 segments (2 cathodes pour chaque chiffre) qui sont multiplexés par une routine de service d'interruption de minuterie qui entraîne le rafraîchissement de l'affichage à quatre caractères à 100 Hz. Chaque fois que l'ISR fonctionne, il éteint le demi-caractère précédent, récupère 7 des 14 segments pour l'un des quatre caractères, active les broches du segment correspondant et met à la terre la cathode correspondante. Les écrans sont un peu rares, mais j'avais un gros surplus d'approvisionnement que je voulais utiliser. La cathode double commune réduit le nombre de broches nécessaires par chiffre de 15 à 9. Il y a juste assez de broches sur un Atmega 328p pour permettre l'entraînement direct de l'affichage sans registre à décalage.

A FAIRE: Modifier le code pour utiliser le module LED alphanumérique à 4 caractères Adafruit

Étape 1: Historique

Histoire
Histoire
Histoire
Histoire
Histoire
Histoire
Histoire
Histoire

L'horloge FLW originale a été construite avec de grands tubes de surplus de néon alphanumériques Burroughs B7971 récupérés sur des panneaux d'affichage de téléscripteurs mis hors service. Ceux-ci sont similaires aux tubes nixie numériques de l'époque, mais utilisaient un affichage à 14 segments pour former tous les caractères ASCII. L'horloge utilisait une logique discrète, sélectionnant des lettres dans une table pour former des combinaisons aléatoires de quatre lettres qui étaient pondérées pour produire de vrais mots.

Avec l'algorithme Dans le modèle original de 1972, seules certaines lettres apparaissent à chaque position. Une analyse tabulée à la main de plusieurs centaines de mots de quatre lettres a été effectuée et la fréquence des lettres dans chacune des quatre positions a été comptée. Les dix lettres les plus fréquentes de chaque position ont été utilisées, sauf dans la deuxième position qui ne contenait que huit lettres.

Pour chaque position, un simple compteur BCD (0-9) (un IC 74LS90) fonctionnait librement et le décompte était capturé et maintenu environ une fois toutes les quelques secondes à une fois par minute, selon le réglage de la vitesse. L'instantané du compteur a ensuite été appliqué à une matrice de décodage de diodes (utilisant environ 150 diodes) pour former les caractères.

Étant donné que seules les dix (ou huit) lettres les plus courantes ont été sélectionnées pour chaque position, sans tenir compte des combinaisons de lettres, de nombreux non-mots peuvent apparaître, par exemple FRLR, LREE, LLLL, etc.

Notez que la deuxième position n'avait que huit lettres, car les neuvième et dixième lettres de l'échantillon avaient une fréquence proportionnellement faible, tandis que la première et la seconde avaient une fréquence extrêmement élevée - elles ont donc été doublées. Donc 10 x 8 x 10 x 10 = 8000 permutations. Les lettres qui ont été programmées dans le premier modèle de 1973 sont montrées dans l'une des images ci-dessus.

Étape 2: Code et schéma

Code et schéma
Code et schéma
Code et schéma
Code et schéma
Code et schéma
Code et schéma
Code et schéma
Code et schéma

Le schéma est joint.

L'horloge peut être construite à l'aide de n'importe quel Arduino basé sur Atmega 328p.

Pour une utilisation avec un Atmega 328p autonome, comme indiqué dans le schéma, un programmeur ISP doit être utilisé pour programmer le microcontrôleur via l'IDE Arduino. Après la programmation, les fusibles doivent être réglés à l'aide de la commande avrdude suivante (WinAVR doit être installé). Remplacez le port com et le type de programmeur. Le plus simple est d'utiliser un Arduino comme programmeur ISP. Google pour plus de détails.

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

Ces paramètres désactivent le vecteur de réinitialisation du chargeur de démarrage afin que le code démarre immédiatement à partir du vecteur de code principal. Les fusibles sont également réglés pour un oscillateur externe de 16 MHz. Une fois gravé, vous ne pourrez plus programmer la puce tant que le cristal et les condensateurs ne seront pas connectés comme indiqué sur le schéma, car l'oscillateur interne par défaut est désactivé avec ces paramètres de fusible.

La bibliothèque DS3231 Arduino doit être installée pour donner accès aux routines d'horloge RTC. Il est nécessaire d'activer la prise en charge de l'heure Unix dans la bibliothèque en décommentant la ligne "#define CONFIG_UNIXTIME" dans le fichier config.h de la bibliothèque DS3231 RTC. L'heure Unix est utilisée comme graine pour le générateur de nombres aléatoires afin que les séquences de mots et de phrases ne soient pas répétées à chaque mise sous tension de l'horloge.

Le module d'horloge RTC DS3231 lui-même est une variété courante vendue sur ebay. Le module est illustré ci-dessus. Recherchez le type avec une batterie de secours rechargeable.

En plus d'un microcontrôleur programmé, il est également nécessaire d'obtenir et de programmer une EEPROM série Microchip 24LC512 avec la base de données de mots et la liste de phrases Akafugu. Cela se fait à l'aide d'un circuit simple construit avec un Arduino et une carte SD formatée en FAT32 avec le fichier output2.dat dessus. Un croquis lit les données de la carte SD et les écrit dans l'EEPROM. Les détails peuvent être trouvés sur les deux liens suivants. Assurez-vous d'utiliser le croquis de programmation et le fichier de données dans ce Instructable, car celui du lien Akafugu n'a pas la base de données de phrases. Suivez la procédure dans les liens.

Présentation de la base de données Akafugu FLW

Instructions pour graver le fichier de données dans l'EEPROM

Étape 3: Configuration et contrôle de l'horloge

Les combinaisons de boutons suivantes sont utilisées pour la configuration de l'horloge:

Heure réglée: Maintenez la touche 1 enfoncée pendant le fonctionnement normal.

Minuterie réglée: Maintenez la touche 2 enfoncée pendant le fonctionnement normal. Les secondes sont remises à "00" automatiquement

Secondes remises à zéro: maintenez le bouton 3 enfoncé pendant le fonctionnement normal, relâchez pour synchroniser avec le début d'une nouvelle minute

Définir le mois: maintenez les boutons 1 et 2 enfoncés pendant le fonctionnement normal

Régler la date: maintenez les boutons 1 et 3 ensemble pendant le fonctionnement normal

Définir l'année: maintenez les boutons 2 et 3 enfoncés pendant le fonctionnement normal

Définir le jour de la semaine: maintenez les boutons 1, 2 et 3 enfoncés ensemble pendant le fonctionnement normal

Lors de la première mise sous tension de l'unité, les modes de fonctionnement s'affichent rapidement avant le démarrage de la génération des mots:

"EE" signifie que l'EEPROM externe I2C contenant la base de données de mots Akafugu et la liste de phrases a été détectée.

"NOEE" signifie que l'EEPROM n'a pas été détectée. L'unité revient à la génération de mots aléatoires et aucun affichage de phrase.

"CK" signifie que l'heure et la date sont affichées après l'affichage de 5 mots consécutifs.

"NOCK" signifie que l'heure/la date est désactivée. Un flux constant de mots est affiché en continu, interrompu toutes les 10 minutes par une phrase.

"RND" signifie que le mode de génération de mots aléatoires est utilisé

« REL » signifie que le mode de génération de la base de données de mots relationnelle « Akafugu » est utilisé

Pour changer et enregistrer les modes, débranchez l'horloge et rebranchez-la tout en maintenant l'un des boutons indiqués. Relâchez ensuite le bouton. Le nouveau mode est mémorisé et affiché:

Bouton 1: Basculer et enregistrer le mode de génération de mots aléatoire ou relationnel

Bouton 2: Activer ou désactiver l'affichage de la date/heure après 5 mots consécutifs

Conseillé: