SE3Binome2023-7

De projets-se.plil.fr
Aller à la navigation Aller à la recherche

Préambule

Lien du GIT

[1](https://archives.plil.fr/adjadjaa/Mega-Boy.git)

Cahier des charges

Nous aimerions fabriquer une mini-console de jeu avec un écran et plusieurs boutons (flèches directionnelles + deux boutons), la présence de LEDs (au moins une pour le niveau de la batterie), une batterie et un gyroscope. Le jeu à inclure n'est pas encore décidé, mais quelques idées incluent : Snake, jeu de réflexes, etc.

Liste des composants :

  • 6 touches (A, B et 4 touches directionnelles)
  • 1 gyroscope (abandonné, pas assez de pins)
  • 4 LEDs
  • 1 mémoire
  • 1 batterie
  • 1 écran

Détails des composants

ATMEGA32U4-A

  • Micro-contrôleur

AT45DB161D-SU

  • Mémoire

FH12S-40S-0.5SH

  • Connecteur pour l'écran

NHD-2.4-240320CF-CTXI#-F

  • Écran

RT9526AGE

  • Chargeur de batterie

AP7333

  • Régulateur de tension : Nous avons choisi ce régulateur car tous nos composants fonctionnent en 3.3V et la batterie délivre 3.7V. Nous ne pouvions pas utiliser le LM1117 à cause de son drop out voltage de 1.2V. Celui du AP7333 étant de 0.3V, il nous convient mieux.

USB_MINI-B_SMT

  • Connecteur USB

AVR-ISP-6

  • Programmateur AVR

BUTTON_SWITCH

  • 6 boutons poussoirs

LED_SMD

  • 4 LEDs

Hardware

Kicad

Photo de la schématique

Nous avons mis sur la face avant les 6 boutons, le connecteur d'écran ainsi que les 4 LEDs. Cette face constituera donc l'avant de la console pour l'utilisateur. Au dos, nous avons donc mis tous les autres éléments non nécessaires pour l'utilisateur tels que les différentes connectiques (USB, connecteur de batterie et l'AVR ISP), le microprocesseur, les différents composants pour gérer l'alimentation (le régulateur de tension et le chargeur pour la batterie) et enfin en dernier, nous avons mis une mémoire.

Avant du PCB
Arrière du PCB


PCB vue 3D avant
PCB vue 3D arrière


Reçu carte vierge

Photo arrière du PCB vierge
Photo avant du PCB vierge


Carte après soudure des composants

Arrière du PCB soudé
Avant du PCB soudé


Différents problèmes rencontrés

Le premier problème rencontré est survenu sur le régulateur de tension. En effet, nous avions routé pour un AP7333-SAG or Monsieur Boe ne les a pas retrouvés et nous a donné un AP7333-SRG à la place. Le mapping des pins n'étant pas identique, il a fallu modifier le routage à la main. Heureusement, nous avions prévu les éventuels imprévus avec des test-points un peu partout simplifiant ainsi cette modification.

Photo détaillant la modification SAG vers SRG
Arrière de la carte modifiée


Lors du routage de la carte, nous avons également commis une erreur. En effet, nous avons oublié de relier le UVCC et le VCC du micro-contrôleur. Il n'était donc pas possible de programmer le micro-contrôleur en l'alimentant via l'USB. Nous avons donc court-circuité l'alimentation de la batterie (VCC) et l'USB (5V) avec un fil mâle femelle permettant ainsi de le débrancher facilement.

Arrière du PCB soudé

Pour brancher l'écran (possédant une nappe), il est important de faire attention au sens des pins pour connecter l'écran. Pour celui-ci, nous nous sommes référés à la datasheet de l'écran. Il semble correct étant donné que les backlight sont allumés.

Datasheet pour la connectique de l'écran
Connexion au micro-contrôleur


Lors du routage, nous avons fait attention à bien garder le même sens sur les pins entre l'écran et le connecteur. Cependant, nous avons oublié que la nappe elle-même possédait un sens. Ainsi, lorsque nous avons voulu insérer la nappe de l'écran dans le connecteur, nous nous sommes rendu compte que la nappe était dans le mauvais sens. Il a donc fallu retourner le connecteur pour tenir compte de ce problème.

Photo du changement du connecteur écran

L'autre problème survenu provient également du régulateur. En sortie, nous étions censés retrouver du 3.3V que ce soit via le 5V de l'USB ou bien le 3.7V de la batterie. Or, nous ne retrouvions que du 2.92V que ce soit à vide ou branché sur le reste du circuit. Le problème reste donc non identifié, mais nous supposons que celui-ci vient du régulateur en lui-même... Nous n'avons pas pu le remplacer car il n'y en avait plus en stock. Pour pallier ce problème et quand même essayer, nous avons décidé de brancher notre carte directement sur une alimentation 3.3V. La puce présente dans l'écran n'est peut-être pas active avec une tension trop faible.

Photo des fils pour branchement sur l'alimentation 3.3V

Software

Code préliminaire

Nous avons tout d'abord testé la carte avec un programme simple allumant une LED pour s'assurer du bon fonctionnement de la carte.

Programme test

À l'issue de ce test, la carte semble fonctionnelle.

Dans un premier temps, étant donné notre routage, il est important de créer une fonction modifiant l'ordre des bits de commande. Notre routage inverse les bits 5 et 6 et inverse l'ordre. Voici le programme ainsi conçu (test effectué dans le dossier /Programmation/inversion de bit):

Bit de la schématique
Code modifiant l'ordre des bits


Essai de la carte

Afin de programmer l'écran, nous avons essayé pas mal de choses différentes. L'écran est contrôlé par un TFT Controller/Driver ST7789VI, des commandes spécifiques lui sont associées. La liste de toutes ces commandes est disponible dans la datasheet de celui-ci. Nous avons donc essayé pas mal de codes différents, que ce soit le code fourni par la datasheet de l'écran ou un code fait avec l'IDE Arduino par le constructeur, adapté en un code C classique.

Le premier code fourni par la datasheet et modifié :

Code datasheet
Code datasheet


Le deuxième code adapté à partir de l'IDE Arduino :

Code Arduino
Code Arduino


Conclusion

Le projet Mega-Boy nous a beaucoup appris. Malgré les défis rencontrés, comme les incompatibilités de composants et les erreurs de routage, nous avons beaucoup appris de nos différentes erreurs.

Les principales difficultés ont été de modifier le routage pour le régulateur de tension AP7333-SRG, d'ajuster les connexions de l'écran et de gérer les problèmes de tension.

La conception et les tests du matériel nous a permis de développer nos compétences en conception de PCB. Les essais et ajustements de la carte, ont souligné l'importance de faire preuve de rigueur lors de toutes les étapes de conception et d'avoir une documentation technique claire.

Nous sommes persuadés qu'avec les bons composants et des ajustements supplémentaires, la mini-console Mega-Boy pourrait fonctionner.