C’est quand qu’on arrive ?

Communication

Peu d’articles dans ce blog, mais du progrès coté programmation ! Le raspberry et l’arduino communiquent enfin !

L’arduino renvoie en temps réel l’état des capteurs (matrice de switch), mais aussi boutons cablés en direct (flips et bouton start). Le raspberry traduit ça en score via mpf.

De son coté, le raspberry/mpf envoie les macros matérieles pour que l’arduino réagisse plus rapidement et en autonomie au bumpers, slingshots et flips.

 

Une courte démo:

 

De nouveaux problèmes…

Raspberry instable

Depuis peu, et sans raison apparente, je subis des plantages réguliers du raspberry, complètement freeze. J’exclus un problème d’alimentation car le raspberry est directement relié à une alim ATX de PC, que j’imagine plutôt stable et pas en manque de puissance. Pourtant j’ai souvent le logo de pb d’alim en surbrillance sur l’écran. Les processus python mpf sont à 98% d’occupation du processeur.

J’ai pensé à de la surchauffe car je n’ai pas installé les dissipateurs sur le raspberry, mais je ne trouve pas celui ci trop chaud. Dans le doute j’ai ajouté un ventilateur, mais sans résultat.

Dialogue de sourd

Je perds des morceaux de trames du raspberry vers l’arduino. Dans l’autre sens la communication est stable et complète. Bizarrement, c’est plus stable à 115200 qu’à 9600 bauds.

 

Prochaines étapes

Debug, debug, debug, logiciel et matériel…

En parallèle, sans avoir besoin d’être devant le flipper, je continue le développement des règles du Supersonic dans les fichiers de configuration du mission pinball !

It’s aliiiive !!

Remontage !

La première version vivante du flipper fonctionnait grâce aux contacts des bumpers et autres slingshots directement relié à la commande de la carte de puissance (transistor/mosfet). C’était amusant et ça permettait « aux gamins » de passer un peu de temps dessus.

Depuis quelques semaines, l’objectif était de réintroduire de l’intelligence dans la machine.

J’ai donc reconstruit la matrice de contacts dans l’état d’origine et commencé à appliquer la lecture de celui ci sur l’Arduino.

Un peu de code disponible ici, attention ça tache, c’est du draft-n-quick-n-dirty, sur mon github, pleins d’évolutions sont à venir.

Après la gestion des contacts, j’ai appliqué la gestion des règles matérielles comme prévu pour l’intégration avec le Mission Pinball Framework.

En attendant la gestion de la communication MPF entre l’Arduino et le Raspberry Pi, les règles de base sont ajoutées en dur dans le lancement du code:

  • réaction des bumpers
  • réaction des slingshots
  • gestion des flippers (par des contacts en dehors de la matrice)
  • quelques autres contacts permettent de relancer une bille, de relever les targets, etc.

Une petite vidéo qui montre l’activité des cartes de puissance:

 

Et une autre vue plus générale du flipper:

 

Prochaines étapes:

Terminer la communication pour informer MPF de ce qui se passe sur le plateau de jeu, et que MPF puisse envoyer des commandes.

L’heure de la reprise

Après la sacro-sainte pause estivale où rien ne bouge, il est temps de me pencher à nouveau sur mon jouet.

Les idées sont bien définies dans ma tête, voici le début du plan:

  • L’intelligence sera portée par un raspberry, histoire que je joue un peu avec
  • Je vais utiliser le framework mph, et  du coup devoir développer et intégrer ma propre plateforme dans celui ci. Du coup ca va me faire bosser mon python !
  • Je prévoie d’utiliser les rubans de leds RGB pour remplacer les lampes sous le plateau, les effets multicolores sont souvent saisissants.
  • Je sais que je vais rapidement me retrouver à court d’entrées/sorties, j’ai donc prévu l’aide d’un arduino pour épauler le raspberry. Comme ça j’aurai un nouveau jouet à découvrir !

20161102_143140