Bonjour à tous,
Mon projet consiste à fabriquer une mallette, contenant plusieurs mini-jeux à résoudre. Chaque mini-jeu contient un certains nombre de composants (boutons, affichages, etc..). La mallette contiendrait une dizaine de ces mini-jeux, sous forme de modules séparés...
Comme j'ai pas l'impression d'être très clair, je vais détailler: Imaginez une mallette (vous savez, celle avec les liasses de billets dans les films). Cette mallette est divisée en 10 zones rectangulaires. Chaque zone accueille un module, permettant de jouer à un mini-jeu.
Le tout doit être contrôlé par une unique arduino, qui gère difficulté des niveaux, temps limité, etc..
Il est évident que je n'aurais jamais assez de ports sur un seul arduino. J'ai donc pensé utiliser un arduino par module, qui contrôlerait le déroulement du mini-jeu, et renverrais des informations quant au succès ou à l’échec du joueur. Un arduino "central" permettrait de traiter toutes ces infos et contrôler l'ensemble de la partie.
Comment donc faire dialoguer ensemble tous ces arduino ? (ou du moins, comment les faire tous communiqués avec le "central")
J'ai pensé à utilisé le bus I²C, mais je ne suis pas sur que ça conviennent. En effet, le module "mini-jeu" doit prévenir le "central" dès que le mini-jeu est fini (succès ou echec). Hors dans un fonctionnement Maître-esclave, l'esclave ne peut prendre la parole sans que le maître ne lui ait demandé. Et je trouve ça assez dégueu de demander en permanence "hé les gars, il a fini votre mini-jeu ?"
De plus, j'ignore si le I²C fonctionne correctement avec autant d’esclaves.
Je me suis aussi renseigné sur le SPI. Il a le mérite de ne pas avoir de pb de collision et communication en full-duplex, mais le manque d'acquittement et le nombre ne fils supplémentaires me gène, ça semble pas convenir non-plus. En plus, c'est encore du maitre esclave donc impossible pour le maitre d'attendre un message provenant de n'importe quel esclave...
Enfin, j'aimerais utiliser une communication avec peu de fils, le but étant de garder le plus de ports pour les composants à piloter, et si possible, d'utiliser les micro-contrôleurs les plus petits possibles (réduction des coûts). Dans l'idéal, le boitier serait modulable, avec la possibilité de rajouter ou d'enlever des modules. Ils viendraient alors se "clipser" sur la malette, et se connecter via RJ11 ou autre connecteur petit et pratique.
Merci d'avance et n'hésitez pas à demander des détails si besoin.
-----