Jeu électronique XO

Salutations, Habr!



Comme vous l'avez peut-être deviné sur la photo, nous ne parlons pas aujourd'hui de la classification du cognac. Je vais faire le jeu tic-tac-toe ... Peu importe - je demande une coupe ->

L'idée, comme toujours, est née spontanément. Un soir d'automne tranquille, j'ai dessiné neuf cellules sur une feuille et invité ma fille à jouer un nouveau jeu pour elle. Ayant joué plusieurs fois, j'ai vu qu'il y avait un véritable intérêt ... et ensuite Ostap a souffert.

Il semblerait qu'il soit plus facile de continuer à dessiner des cellules sur une feuille de papier ou à télécharger le programme sur votre téléphone, mais est-ce intéressant? Non!

Ce que je voulais obtenir:

  1. Appareil compact sur la batterie (toutes sortes d'écrans capacitifs tachi et MIPI disparaissent immédiatement).
  2. En conséquence, charge depuis USB (de préférence avec une indication).
  3. Coûts de temps minimum pour la carte et le logiciel (enfin, comme d'habitude, en général).
  4. Boutons tactiles.
  5. Appareil intelligent avec la possibilité de jouer avec le contrôleur (sans deuxième joueur). Passer à un et deux joueurs.
  6. Allumez / éteignez avec un bouton et de préférence sans toucher, de sorte que la mise en marche accidentelle ne se produise pas.
  7. Imprimez le boîtier sur une imprimante 3D + verre dépoli pour fermer les LED.

Tout d'abord.

1. Il a donc été décidé de prendre le contrôleur STM32F100. Sur celui-ci, je peux pleinement implémenter la logique simple du jeu pour commencer. Sur le cas avec 48 jambes, tous les GPIO étaient occupés (sans l'utilisation de multiplexeurs et d'extensions). Pour chaque croix et zéro, 8 LED sont utilisées (connectées en parallèle), qui sont commutées par des agents de terrain (IRLML6401).

L'appareil se compose de deux cartes, l'une avec des LED et des boutons tactiles, la seconde avec un contrôleur, une charge, une batterie, etc. Ils sont connectés par des connecteurs par incréments de 2 mm, entre les cartes il y a une batterie 1250mA.


Fig. 1. Carte contrôleur


Fig. 2. Carte LED

Quelques jours plus tard, les planches sont finalement sorties de la production. J'avais le sentiment que le jeu se révélerait inconfortable en raison de la taille ou des boutons tactiles. Pour l'avenir, je dirai que jouer est très cool! Les boutons fonctionnent bien à travers le plexiglas 1,5-2 mm.


Fig. 3. Côté supérieur de la carte contrôleur et voyants


Fig. 4. Côté INFÉRIEUR de la carte contrôleur et des voyants

2. Le schéma de charge est le plus simple que j'introduise dans des appareils similaires.


Fig. 5. Le circuit du contrôleur de charge.

3. Tout irait bien, mais il y avait plus de composants que ce à quoi je m'attendais, et j'ai été tourmenté à souder. C'est ce qui s'est passé après la soudure.


Fig. 6. Carte contrôleur avec composants


Fig. 7. Carte LED avec composants


Fig. 8. Carte LED avec composants sur le côté des boutons tactiles.

La première et jusqu'à présent la seule version du logiciel que j'ai créée sur ifs et dans une boucle sans fin. Simple et fonctionne sans bugs. Lors de la victoire, le champ entier s'éteint et la combinaison gagnante clignote deux fois.

4. J'ai décidé d'implémenter les boutons tactiles sur les microcircuits TTP223, je les ai déjà utilisés dans l'un de mes projets. Ils ne sont pas exigeants pour le câblage et pour la présence / absence d'un polygone sous le capteur.


Fig. 9. Le schéma d'inclusion des boutons tactiles.

J'en avais plus de 9 pièces et j'ai donc décidé de ne pas utiliser le multiplexeur et d'accrocher chaque bouton sur mon contrôleur GPIO.

5. Ensuite, je prévois d'intégrer l'algorithme de jeu avec le contrôleur (j'ai déjà trouvé plusieurs options décentes). Il est prévu de passer jusqu'à présent en maintenant le bouton tactile central avant de l'allumer (mais ce n'est pas encore définitif).

6. J'ai longuement réfléchi à la manière d'allumer / éteindre simplement avec un bouton de manière simple. L'option la plus rapide et la plus correcte, à mon avis, concerne les transistors et l'utilisation de deux contrôleurs GPIO, que je n'ai pas. Par conséquent, j'ai mis la puce CD4013BM. L'allumage se fait en appuyant pendant environ 1 s, en s'éteignant en appuyant rapidement. Cela fonctionne très bien.


Fig. 10. Schéma de câblage CD4013BM.

La broche "OUT_KEY" va au pied de la mise sous tension (EN) du DC / DC AP3418 (il fait du 3V3). Ainsi, la consommation est minime.


Fig. 11. Carte avec microcontrôleur et batterie.

7. L'affaire est toujours au stade de la conception. Une petite boîte soignée avec un plexiglas mat de 1,5 mm sur le dessus est prévue.

Quand j'ai mis quelques feuilles de papier par-dessus pour voir comment la translucidité se passe, j'ai réalisé que c'était un fiasco. Non, cela se voit bien, mais la règle du champ n'est pas visible. Par conséquent, dans la «Fig. 2. " 4 LED supplémentaires sont installées dans les coins du carré central (elles ne sont pas sur mon circuit imprimé soudé). Si tout fonctionne comme il me semble, alors si vous faites du fraisage à l'arrière sur du plexiglas, ces 4 LED bleues donneront 4 faisceaux minces qui forment le marquage du champ, qui s'allumeront lorsque l'appareil sera allumé. Si les rayons ne fonctionnent pas, dans tous les cas, le fraisage sera visible.

Il y a un haut-parleur sur la carte, mais avec le générateur intégré, il ne tient pas en hauteur, et sans le générateur, je ne le fais pas. Je pense que le vibromoteur du téléphone tombera à cet endroit et il y aura une réponse vibro lorsqu'il sera pressé et gagné.

En conséquence, je peux dire que le jouet s'est avéré très intéressant. La photo ne transmet pas tout l'effet, mais les croix et les zéros sont superbes, sans aucun reflet. Jouer est un plaisir! Les boutons fonctionnent parfaitement et la taille du champ est très pratique. Lorsque l'affaire sera prête, je posterai certainement une photo.



A très bientôt!

UPD:
Prix ​​ajoutés lors de l'achat de composants pour 1 appareil, j'ai peut-être oublié quelque chose. Les conseils et l'assemblée ne comptaient pas. Quelque chose peut être échangé contre un moins cher.

1. STM32F100C4T6B - 1 pièce - 130 rub.
2. CD4013BM - 1pc - 16r.
3. LTC4054 - 1pc - 5p.
4. AP3418KTR - 1 pièce - 30 rub.
5. IRLML6401TRPBF (Si2307DS) - 18 pièces - 11r.
6. LP503759 - 1 pièce - 300 rub.
7. C191KRCT / C191KGCT - 148pcs - 436 roubles.
8. TTP223 - 8 pièces - 40r.
9. Bouton, connecteur, passif - un tas - 100 roubles.
10. Droits
11. Assemblée

Total: 1068 rub.

UPD:
Lien vidéo

Source: https://habr.com/ru/post/fr429618/


All Articles