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.

MPF – Mission Pinball Framework

Contrairement aux apparences, ceci est un flipper:

2016-11-19-17-41-29

Je concède qu’il faut encore beaucoup d’imagination, mais les briques [de lego] se mettent progressivement en place:

J’ai attaqué ma plateforme (mpf/platforms/rasppinball) pour intégrer la futur électronique maison dans le framework MPF : Mission Pinball Framework. Ce n’est pas trivial car cette partie n’est pas encore beaucoup documentée, mais grâce aux exemples des autres plateformes (opp, roc, …) je commence à m’en sortir.

Merci aussi au support de mpf sur les forums : mpf-users

Coté configuration, j’apprends le fonctionnement du mission pinball framework. Donc je vais intégrer le flipper « supersonic » d’origine pour le moment:

2016-11-13-18-14-29

L’émulateur clavier de switch est fonctionnel dans mpf. Le bouton « rouge » simule  la bille en position de départ, qui est aussi le drain dans ce flipper. Le bouton jaune est le bouton crédit/start.

Dans la vidéo, je dois appuyer sur les deux boutons afin que mpf accepte de préparer une partie avec une bille présente. Les autres boutons simulent les bumpers, cibles, etc. Les scores sont configurés sur quelques switchs seulement.

Sur l’écran, on peut voir incrustée la vidéo en sortie du raspberry (cadre noir), et au dessus la session ssh qui lance le framework (ssh bleu).

 

 

Suite des expériences à venir: implémentation des LEDS dans le framework, puis aussi jouer avec le « mpf monitor », qui affiche sur l’image du flipper l’état des capteurs et des actionneurs.

 

 

 

 

switch matrix

C’est le moment de rentrer dans la matrice !

 

Maintenant que j’ai la lumière, je vais tester les intéractions avec le raspberry.

Le moyen simple e était de jouer avec quelques contacts qui traînaient dans mes tas de récup, mais histoire de bosser comme dans le futur flipper, je me suis orienté vers une matrice de contacts.

Evidemment j’aurais pu simplement commander ceci:
sku_156679_1

Ma patience a préféré se laisser guider vers le « do it yourself »:

2016-11-06-14-40-242016-11-06-13-42-50

Une chute de plinthe Ikea, quelques vis, une canette de soda découpée en tranche. Les fils sont un peu longs mais ce sont des fils pré-découpés et pré-étamés. A quelques centimes le fil sur internet, faut arrêter de s’emm…

Et j’imagine que la qualité des contacts simulera parfaitement ceux du flipper !

Encore quelques lignes de code python, récupérée ici histoire de lancer rapidement quelques tests, et voici le résultat:

 

Le code, Modifié à la hache pour gérer du 4 x 4 :https://www.raspberrypi.org/forums/viewtopic.php?f=37&t=34235

 

Coté électronique et Raspberry, les résistances de rappels sont interne et configurable via la librairie GPIO, ce qui simplifie la mise en place.