Question carte arduino adapté à mon projet

Bonjour,

je souhaite réaliser le projet que je précise ci-dessous, je prévoie d'utiliser une Arduino Mega. Cependant je suis inquiet concernant la suffisance de la mémoire de cette dernière carte.

Résumé du projet :
Dans un premier temps je précise que suis au tout début du projet, je rédige pour le moment le cahier des charges.

Objet : Réalisation du jeu Hearthstone format physique.

Ce jeu permettra de jouer à Hearthstone avec un jeu de carte physique

Caractéristiques :
Pour le moment j'ai décompté :

  • 700 outputs nécessaires : Leds signalétiques et afficheurs 14 et 7 segments (qui seront connectés via des multiplexeurs/Demux)
  • 30 inputs nécessaires : Essentiellement des boutons poussoirs mais aussi 2 scanners de code barre afin de détecter les cartes qui seront jouées.
  • Environ 200 cartes (du jeu hearthstone) à programmer

Les effets de cartes sont parfois génériques (on peut alors créer des fonctions pour chaque type d'effet) et donc réduire la taille du programme.

Par ailleurs j'aimerai me laisser de la place mémoire pour ajouter des extensions.

Question : Vous qui avez déjà réalisé des programmes sur Arduino, pensez-vous que la capacité mémoire de l’Arduino Mega est adaptée à mon projet ?

Bonjour,
https://forum.arduino.cc/index.php?topic=315372.0
https://forum.arduino.cc/index.php?topic=546956.0

200 cartes, 730 IO ? Tu ouvres un casino ?

Plus sérieusement, s'il faut programmer 200 cartes, il serait peut-être plus facile de le faire sur raspberry. Là, il suffirait de copier une carte SD 200 fois.

Bonjour, merci pour ta réponse,

juste pour être sûr, je parle bien de 200 cartes à joué qui seront à définir dans le programme.

Effectivement le nombre d'inputs monte rapidement car je prévoie d'utiliser des afficheurs 2*7 segments pour les points de vie et points d'attaque.

Aaaahhh, ok! Je croyais qu'il s'agissait de 200 fois la même carte électronique pour 200 joueurs par exemple...

Un Mega 2560 dispose de 54 E/S dont 14 PWM, 16 analogiques et 4 UARTs.

Que représente la définition d'une carte à jouer, en termes de mémoire ? Le Mega a :

  • Mémoire flash: 256 kB
  • Mémoire SRAM: 8 kB
  • Mémoire EEPROM: 4 kB
    ce qui est assez limité. Il existe aussi des shields pour carte SD.

Pour plus de mémoire et de rapidité, mais moins d'IO, tu peux te tourner vers les ESP8266 et ESP32. Là on parle de 4 voire 16 MO.

Pour les leds, tu peux envisager des leds style WS2812, qui sont chaînées. Tu n'as besoin que de 3 fils (VCC, GND et commande) quel que soit le nombre de leds. Par contre il faut une alimentation qui suit (prévoir 60 mA par led).

Pour les limites d'entrées-sortie et de mémoire de stockage, tu peux étendre les capacités d'une carte basique (Uno, Nano), avec des EEPROM et des multiplexeurs. Et cela sans limite.

La seule limite vraiment contraignante des cartes, c'est la mémoire interne : celle qui stocke le code. Certaines bibliothèques peuvent être très gourmandes. Par exemple, l'utilisation d'un affichage sur un écran OLED : une police de caractère peut consommer la moité de la mémoire d'une Uno/Nano. Mais rien n'interdit de connecter la carte à un PC qui gèrera l'affichage.

Bonjour,

merci pour vos réponses,

les leds doivent êtres commandées séparément,

J'ai donc prévu :

  • le MM5540 qui semble pouvoir commander séparément jusqu'à 34 leds
  • 4 DEMUX MC14514B afin de réduire encore le nombre d'inputs (voir schéma et plan en pièce-jointe)

Tout ceci évidement alimenté par une alim externe, mais pas de connexion au PC, je souhaite que je jeu soit transportable

Je ne prévoie pas d'afficheur spécifique hormis les leds qui fournirons les informations nécessaires aux joueurs.

Je ne sais malheureusement pas la taille de la programmation d'une carte mais au vu de vos réponses, je vais plutôt me tourner vers la Raspberry pi 4 avec un module I2C pour ajouter des Inputs/Outputs.

Si vous avez d'autres informations qui pourrai me servir n'hésitez pas.
Merci à vous

Les leds chaînées dont je parlais sont addressables individuellement

Si tu as besoin d'un affichage et que tu souhaites quelque chose d'autonome, choisis un Raspberry.