Fabriquez un Tamagotchi de bureau: 8 étapes

Fabriquez un Tamagotchi de bureau: 8 étapes

Table des matières:

Anonim

Un jour, j'étais assis derrière mon bureau au travail et j'ai eu ce besoin étrange de construire quelque chose. Après avoir regardé un peu autour de moi, j'ai eu l'œil sur une matrice LED et cela a fait naître une idée dans ma tête: "JE VEUX FAIRE UN TAMAGOTCHI".

Donc, pour ceux qui ne savent pas ce qu’est un Tamagotchi, voici un petit morceau de Wikipédia:

"Le Tamagotchi (ち っ Tamagocchi?) Est un animal de compagnie numérique de poche, créé au Japon par Akihiro Yokoi de WiZ et Aki Maita de Bandai. Il a d'abord été vendu par Bandai en 1996 au Japon."

Donc, ma vision de ce jouet classique est de le transformer en un gadget de bureau avec une matrice LED pour un affichage et un Arduino pour le cerveau afin de le rendre plus accessible aux gens. Cela dit, rejoignez-moi pour concevoir, construire et programmer le premier Tamagotchi (autant que je sache) au monde.

Provisions:

Étape 1: Obtenir les bonnes choses

Donc, comme pour tout autre projet électronique, vous aurez besoin d’outils de base:

1) fer à souder

2) Du fil de soudure

3) une paire de cutters

4) une paire de pinces à bec effilé

Facultatif: procurez-vous de la tresse de soudure ou une pompe à soudure pour corriger les erreurs de soudure

En ce qui concerne les composants électroniques, la liste des pièces est un peu plus longue. Voici ce dont vous aurez besoin pour obtenir:

1) Un ATmega328P avec le chargeur de démarrage arduino + cristal 16Mhz avec deux bouchons 22pF

* Vous aurez besoin de quelque chose pour programmer la puce, comme une plate-forme Arduino ou un adaptateur FDTI

2) 4 registres à décalage 74HC595

3) 2 x réseaux de transistors Darlington ULN2803

4) 1 x cristal DS1302 RTC + 32,768 kHz

5) 1 support de pile bouton 3V + la pile.

6) 4 boutons-poussoirs à angle droit

7) 1 x buzzer de peizzo

8) 4 modules de matrice à 8 x 8 LED

9) 16 résistances de 330Ohm (vous devrez calculer la valeur de votre matrice)

10) 2 x rangées de 16 têtes de broches femelles

11) 2 x rangées de 16 têtes de broches mâles

12) 1 x rangée de 4 têtes femelles (pour la programmation)

13) bouchon 5 x 100nF

14) 1 x 10uF bouchon

15) 1 x résistance 10K

15) connecteur d'alimentation

16) 5V DC mur verrue

17) Un gros morceau de protoboard

18) Quelques fils pour les connexions

Étape 2: Le côté matériel

Même si ce projet concerne principalement des logiciels, nous devrons d'abord créer le matériel pour faciliter l'écriture du code et son débogage.

Le matériel est constitué de 2 parties principales: la partie microcontrôleur et l’affichage à LED.

La partie microcontrôleur est très simple, c’est un arduino autonome (ATmega328 avec le chargeur de démarrage arduino) avec

certains périphériques (4 boutons, une sonnerie et un RTC), mais c’est la partie la plus critique car elle réfléchit à fond.

La partie affichage à LED est un peu plus complexe et met du temps à se souder. Ce circuit est constitué de 4 registres à décalage (74HC595), 2 réseaux de transistors Darlington (ULN2803) et 4 matrices à LED 8x8.

Comme la plupart des écrans à LED, il n’est pas surprenant que l’affichage doive être multiplexé (le concept est plutôt cool) car piloter des LED 16x16 individuellement prendra 256 broches du microcontrôleur et c’est ridicule.

Même avec l'approche multiplexage, il faudra toujours 32 broches (16 rangées + 16 colonnes) du microcontrôleur pour piloter l'affichage que nous n'avons pas encore. La solution consiste donc à utiliser des registres à décalage comme extension d'E / S, 4 8 les registres à décalage binaire nous donnent 32 sorties et il ne faut que 3 lignes pour toutes les contrôler.

Mais les problèmes ne s'arrêtent pas là car les registres à décalage ne peuvent pas absorber le courant de 16 DEL (si une rangée est allumée) sur une broche. Nous devons donc lui donner un coup de main à l'aide du réseau de transistors Darlington qui agira comme un tampon capable de gérer des courants importants pouvant frire les registres à décalage.

Donc, pour récapituler, nous utilisons 4 registres à décalage connectés en guirlande pour contrôler l'affichage, les 2 premiers contrôlent les lignes et les 2 autres contrôlent les colonnes à l'aide du tableau darlington.

La seule chose à calculer dans ce projet est la valeur des résistances qui piloteront les rangées de DEL.

La formule est très simple et va comme suit:

R = (Vsource - Vled) / Iled

Vsource est 5V, Vled est la tension directe sur une seule LED de la matrice et Iled est le courant direct de cette même LED.

Vous pouvez également utiliser des calculatrices en ligne pour vous aider.

Étape 3: Le concept de construction - Panneau LED

Quand j'ai commencé la construction, je voulais obtenir un look soigné sans utiliser de cas (trouver le bon cas est un cauchemar), alors je suis allé chercher

une construction en deux parties, c’est-à-dire une carte qui contient la matrice de LED et la seconde avec toute l’électronique.

De cette façon, la seule chose que vous voyez à l'avant-plan est l'écran à LED et tous les autres éléments sont cachés derrière l'écran.

La première carte avec la matrice de LED dictera la taille de la seconde car vous souhaitez masquer l’autre carte derrière l’affichage. Placez donc la matrice sur le tableau, marquez où couper et découpez le tableau. Coupez la deuxième planche pour qu'elle ait la même taille que la première. Le truc avec ce style de construction est de devoir utiliser des proto-planches de la même taille, c'est donc une bonne idée de poncer les planches pour obtenir la même taille.

Comme j'avais 4 matrices à DEL 8x8, je devais les relier ensemble pour obtenir une matrice à DEL 16x16, ce qui est assez simple et prend juste un peu de temps pour les relier. Pour ce faire, vous devez connecter les rangées des matrices horizontales avec on et autre et relier les colonnes des matrices verticales (j’ai effectué les connexions à l’aide de minces fils de banderolage).

Maintenant, la seule partie restante avec cette carte est la connexion des en-têtes qui relieront les cartes aux cartes ensemble. Le placement de ce connecteur est décidé par la position des commutateurs sur la deuxième carte. Les commutateurs seront sur les côtés de la carte, vous ne pourrez donc pas placer les connecteurs sur le bord de la carte. C'est pourquoi les connecteurs sont placés à environ 4 trous du bord.

Il existe deux connecteurs, l'un pour les lignes et l'autre pour les colonnes.

Et pour finir le look, je recommande de mettre une feuille de papier blanc sur la matrice pour masquer l'assemblage et obtenir un look propre.

J'ai collé le papier sur les bords de la matrice pour que l'écran soit protégé de la colle.

Étape 4: Le concept de construction - Panneau de pilotage

Maintenant, la carte de conducteur est la partie la plus complexe de cette construction à cause de l'espace restreint et je ne peux pas vraiment vous dire comment la construire car chaque modèle a son propre style de construction.

Ce que je peux vous dire, c'est l'emplacement des composants clés tels que les boutons et les connecteurs. Maintenant, les boutons doivent se trouver sur les côtés du tableau et la plupart doivent être à angle droit pour les rendre invisibles, mais vous pouvez toujours les appuyer.

À partir de là, vous placez les connecteurs qui relieront les deux cartes. Les connecteurs doivent être aussi proches que possible du bord pour permettre une bonne connexion, ce qui vous permet de placer les boutons en premier sur le bord, puis de décider où mettre les connecteurs.

remarque: il est très important de s'assurer que les connecteurs des deux cartes se rejoignent parfaitement et que les côtés des cartes sont de niveau.

Une fois ces parties critiques terminées, vous êtes libre de construire le reste comme bon vous semble, mais assurez-vous qu’aucune partie ne passe "à la mer".

Je recommanderai de construire des groupes et de garder toutes les pièces de ce groupe proches les unes des autres pour faciliter le câblage, par exemple:

Le connecteur de colonne doit être connecté aux deux puces Darlington et aux deux registres à décalage. Il est donc logique de placer ce groupe près l'un de l'autre et avec un peu de réflexion, il est possible de s'en tirer avec seulement quelques fils ici et là dans ce groupe..

Assurez-vous également de mettre des en-têtes de programmation pour le micro-contrôleur pour les futurs mods.

Étape 5: Règles du jeu

Après avoir terminé la partie matérielle, il est temps de penser au code et aux mécanismes du jeu.

Ce fut la partie la plus difficile pour moi parce que je regardais de toutes pièces et que je devais établir mes propres règles qui ne sont pas parfaites du tout.

Le jeu tel qu'il est est très facile à exploiter et à utiliser mais ce n’est pas un jeu sérieux, c’est un véritable petit gadget.

Donc, avec cette petite clause de non-responsabilité, parlons un peu des règles du jeu.

L'animal a 5 caractéristiques de base: santé, poids, bonheur, faim et âge.

Le rôle du joueur est d’équilibrer ces statistiques par 4 actions: nourrir l’animal, jouer avec lui, nettoyer après lui et prendre soin de sa santé.

Chaque action a un effet positif et un effet négatif et le joueur doit faire un effort pour choisir le meilleur compromis.

Lorsque le joueur choisit de nourrir son animal, il a 3 options: lui donner un repas à base de viande, lui donner un fruit ou un festin de bonbons.

Un repas à base de viande compense le plus grand nombre de points de faim et ajoute beaucoup au poids, un fruit améliore la santé des animaux domestiques, mais diminue leur bonheur, et les bonbons stimulent grandement le bonheur, mais réduisent la santé et augmentent le poids des animaux domestiques.

Lorsque le joueur choisit de jouer avec l'animal de compagnie, un jeu de Simon commence et dépend de la qualité du joueur. Les statistiques de bonheur augmentent, mais si le joueur fait très mal, le bonheur diminue.

De temps en temps, l'animal se rend aux toilettes et le joueur doit le nettoyer après lui. Chaque tour, son absence abaisse la santé de l'animal et augmente les chances de le rendre malade.

De plus, il y a un risque aléatoire que l'animal devienne malade. Ce risque est plus élevé si l'animal est vieux ou sale. Il y a 3 niveaux de maladie, chacun avec ses propres effets négatifs. Le joueur peut donner un coup de feu à l'animal pour le guérir, mais cela va réduire la santé de celui-ci (personne ne craint de prendre des coups: D).

Et la partie la plus impuissante (pour moi) est que l'animal va se coucher automatiquement à 23h00 et se réveille à 8h00 pour ne pas mourir la nuit. Bien sûr, vous pouvez modifier cette partie à votre guise et définir un nouveau coucher pour l'animal.

Étape 6: Logiciels: menus et animations

Nous sommes ici dans la partie la plus fastidieuse du projet, après avoir décidé de toutes les caractéristiques et de tous les états du jeu, il est temps de leur donner vie en créant toutes les animations, les paramètres, les actions et les états du jeu.

Pour cette étape, j'ai utilisé une combinaison de deux programmes: paint.net et excel.

Dans Paint, j'ai créé toutes les icônes et tous les écrans de menu, une par une. L'utilisation de la peinture est d'une grande aide car vous pouvez facilement copier, peindre, supprimer et manipuler l'image. Néanmoins, cette partie a été très difficile pour moi parce que j'ai eu du mal à créer des icônes personnalisées qui défendent chaque action, chaque décor, chaque repas et les émotions.

Remarque: Dans Paint, j'ai utilisé l'option de grille de pixels pour me permettre de diviser facilement une section en pixels et de peindre chaque section.

Après avoir terminé ce travail sur les animations et les icônes, j'ai numéroté les icônes par groupes et commencé à créer le bitmap des icônes. Pour ce faire, j'ai utilisé mon astuce préférée sous excel pour créer le bitmap.

J'ai créé un tableur Excel qui me permet de "peindre" avec des cellules dans une zone spécifique, puis il recrache le bitmap au format souhaité.

Cela fait, il ne reste plus qu'à intégrer les bitmaps dans le code et à commencer à écrire le logiciel.

Étape 7: Logiciel: code final

La partie principale de ce projet est le logiciel et c'est ce qui donne à ce projet son caractère.

Maintenant, je n’examinerai pas le code en détail ici, car j’ai fait cela dans le code lui-même, alors attendez-vous à y voir beaucoup de commentaires (certains avec quelques erreurs d’orthographe horribles: D).

Le code utilise 3 bibliothèques mais elles viennent toutes avec l'IDE Arduino, il n'est donc pas nécessaire de télécharger.

J'ai écrit le code sans aucune bibliothèque spéciale pour ne pas avoir à le maintenir à jour et à trouver ces bibliothèques à l'avenir, c'est pourquoi le code est long et a beaucoup de fonctions différentes.

Maintenant, le code lui-même a deux parties principales: la boucle principale qui gère toutes les règles du jeu et le comportement "pets" et une routine d’interruption de minuterie qui gère la mise à jour de l’affichage.

Mon travail sur le code n'est pas encore terminé car il y a toujours de nouvelles choses à ajouter et à améliorer, je vais donc mettre à jour le code de temps en temps. Mais pour l'instant, le code est dans son état de fonctionnement et est complet.

Étape 8: Vous avez terminé! Et ensuite?

Yay! Nous avons fini! ou faisons-nous?

Nous avons un banc de travail entièrement fonctionnel avec toutes les fonctions de base, mais pourquoi s’arrêter là?

Il y a beaucoup de choses à ajouter et à améliorer et c'est à vous de le faire. Alors, surmontez les obstacles et améliorez-vous, changez et amusez-vous avec!

Et n'oubliez pas de mettre sur votre terrasse avec fierté et de montrer votre nouvelle création.

P.S.

Prenez bien soin de vous et n'oubliez pas de le nourrir de temps en temps:)