30
Le contrôleur Pinscape Le guide Utilisateur M. J. Roberts • Août 2014 Révision août 2015 Traduction française : C. Rivault (Cyril92 membre de www.pincabpassion.net) Pinscape est le nom que j’ai donné à mon flipper virtuel, que j’ai construit il y a plus d’un an maintenant. Le contrôleur Pinscape est un périphérique que j’ai conçu lors de mon projet, afin de gérer 2 formes particulières d’entrées dans les flippers : le lance-bille et le détecteur de mouvement, mais le projet s’est étendu au câblage pour la gestion des boutons, ainsi qu’au contrôle des périphériques externes . Ce guide explique comment installer le vôtre. Vue d’ensemble Le contrôleur Pinscape est un périphérique USB que vous reliez au PC se trouvant dans la caisse de votre flipper. Il émule un joystick USB, de telle sorte que Windows le reconnait automatiquement grâce à son driver intégré de type joystick. Il fonctionne aussi de manière transparente avec Visual Pinball, qui possède son propre support intégré pour l’utilisation de l’entrée joystick, comme détecteur lance -bille et mouvement. Physiquement, le contrôleur principal fonctionne sur la carte microcontrôleur KL25Z. C’est une simple carte indépendante pour PC au format carte de crédit, coutant environ 13$. Elle est équipée d’un accéléromètre que nous utiliserons comme détecteur de mouvement, ce qui signifie qu’il faudra placer cette carte à plat dans le fond de la caisse de votre flipper, correctement fixée pour bouger avec le flipper. Cette carte se connecte à la carte mère du PC via un câble USB qui lui fournit aussi son courant. Le capteur pour le lance-bille est un périphérique séparé, appelé aussi ‘tableau linéaire CCD’, qui se présente sous la forme d’une petite carte électronique d’environ 7,5 cm x 1,25 c m. Celle-ci doit être installée le long du lance-bille, puis connectée électriquement à la carte KL25Z. Il est aussi nécessaire d’installer une petite source de lumière (NdT 1 une ou 2 leds bleues de 20mA semble être correct) montée vers le fond de la caisse, directement sous le lance-bille. Le capteur CCD se comporte globalement comme une caméra, qui calcule la position du lance-bille en prenant des images très rapidement, ce qui permet au logiciel d’analyser et de déterminer à quel point le lance - bille est tiré à tout instant. En solution alternative, le logiciel peut détecter la position du lance-bille en utilisant un potentiomètre à glissière, qui est moins cher et relativement plus simple qu’un capteur CCD. Pour le paramétrer, il faut attacher mécaniquement la tige du lance-bille au levier de la glissière du potentiomètre, de telle sorte que le mouvement sur la tige du lance-bille fait bouger le levier et change la résistance électrique du potentiomètre. Quand la position du lance-bille et la résistance varient de façon synchrone, le logiciel 1 NdT = Note du Traducteur

Le contrôleur Pinscape

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Le contrôleur Pinscape

Le contrôleur Pinscape Le guide Utilisateur

M. J. Roberts • Août 2014 Révision août 2015 Traduction française : C. Rivault (Cyril92 membre de www.pincabpassion.net)

Pinscape est le nom que j’ai donné à mon flipper virtuel, que j’ai construit il y a plus d’un an maintenant.

Le contrôleur Pinscape est un périphérique que j’ai conçu lors de mon projet, afin de gérer 2 formes

particulières d’entrées dans les flippers : le lance-bille et le détecteur de mouvement, mais le projet s’est

étendu au câblage pour la gestion des boutons, ainsi qu’au contrôle des périphériques externes. Ce guide

explique comment installer le vôtre.

Vue d’ensemble

Le contrôleur Pinscape est un périphérique USB que vous reliez au PC se trouvant dans la caisse de

votre flipper. Il émule un joystick USB, de telle sorte que Windows le reconnait automatiquement grâce

à son driver intégré de type joystick. Il fonctionne aussi de manière transparente avec Visual Pinball, qui

possède son propre support intégré pour l’utilisation de l’entrée joystick, comme détecteur lance-bille et

mouvement.

Physiquement, le contrôleur principal fonctionne sur la carte microcontrôleur KL25Z. C’est

une simple carte indépendante pour PC au format carte de crédit, coutant environ 13$. Elle est

équipée d’un accéléromètre que nous utiliserons comme détecteur de mouvement, ce qui

signifie qu’il faudra placer cette carte à plat dans le fond de la caisse de votre flipper,

correctement fixée pour bouger avec le flipper. Cette carte se connecte à la carte mère du PC

via un câble USB qui lui fournit aussi son courant.

Le capteur pour le lance-bille est un périphérique séparé, appelé aussi ‘tableau linéaire CCD’, qui

se présente sous la forme d’une petite carte électronique d’environ 7,5 cm x 1,25 cm. Celle-ci doit

être installée le long du lance-bille, puis connectée électriquement à la carte KL25Z. Il est aussi

nécessaire d’installer une petite source de lumière (NdT1 une ou 2 leds bleues de 20mA semble

être correct) montée vers le fond de la caisse, directement sous le lance-bille. Le capteur CCD

se comporte globalement comme une caméra, qui calcule la position du lance-bille en prenant

des images très rapidement, ce qui permet au logiciel d’analyser et de déterminer à quel point le lance-

bille est tiré à tout instant.

En solution alternative, le logiciel peut détecter la position du lance-bille en utilisant un potentiomètre à

glissière, qui est moins cher et relativement plus simple qu’un capteur CCD. Pour le paramétrer, il faut

attacher mécaniquement la tige du lance-bille au levier de la glissière du potentiomètre, de telle sorte

que le mouvement sur la tige du lance-bille fait bouger le levier et change la résistance électrique du

potentiomètre. Quand la position du lance-bille et la résistance varient de façon synchrone, le logiciel

1 NdT = Note du Traducteur

Page 2: Le contrôleur Pinscape

peut estimer la position depuis la résistance, qu’il peut donc mesurer grâce au voltage de

l’échantillonage analogique du microcontrôleur.

Fonctionnalités

Le contrôleur possède 4 fonctions principales. Ces fonctionnalités travaillent de façon indépendante, de

telle sorte que vous pouvez utiliser celles que vous désirez.

Détecteur de position du lance-bille : le logiciel fonctionne avec un capteur CCD ou un

potentiomètre qui lit la position du lance-bille. Lorsque vous modifiez mécaniquement la position

du lance-bille en arrière et en avant, le lance-bille virtuel de Visual Pinball suit son mouvement.

Capteur de mouvement : Le contrôleur utilise un accéléromètre pour détecter les mouvements de

la caisse. Visual Pinball possède un support intégré qui applique les accélérations physiques dans

sa propre simulation, de telle sorte que la bille à l’écran réagit lorsque vous bougez la caisse du

flipper. C’est un véritable mouvement analogique, et non pas une simulation comme vous avez

l’habitude d’utiliser avec l’interface clavier dans VP. Avec l’accéléromètre, une petite secousse

provoque une petite réaction, une plus grande secousse provoque une plus grande réaction, et les

mouvements sont totalement directionnels. Cela renforce considérablement le réalisme et

l’immersion que l’on peut avoir sur un flipper virtuel de bureau.

Câblage des entrées boutons : Vous pouvez relier jusqu’à 24 boutons ou switches au contrôleur

pour une utilisation comme les boutons de flipper ou le bouton ‘Start’. Le PC les voit comme des

boutons de joystick, que VP sait utiliser comme contrôles d’entrée. Câbler les boutons est une

tâche relativement simple, il suffit juste de câbler chacun des boutons à un connecteur du KL25Z.

Contrôles de sortie compatible LedWiz pour périphériques à retour de force. Cette

fonctionnalité a des limitations significatives, vous ne devez pas considérer la carte KL25Z

comme une solution complète de remplacement de la LedWiz, mais cela peut s’avérer utile si

vous avez juste besoin d’utiliser quelques ports supplémentaires. Notez qu’il est nécessaire de

considérer l’importance du travail de soudure pour utiliser cette fonctionnalité.

La concurrence

Il existe (au moins) 3 produits commerciaux offrant des fonctionnalités de détecteur de mouvement et de

lance-bille. Le kit Lance-bille digital de Zebulon, le Plunger Kit de VirtuaPin et le Mot-Ion Controller de

Nano-Tech. Le kit de Zeb’ utilise un encodeur linéaire pour le capteur du lance-bille ; les deux autres

utilisent un capteur de proximité infrarouge. Ces trois kits fournissent des options d’accéléromètre pour le

capteur du lance-bille et des entrées pour bouton.

Ces kits sont des produits professionnels correctement finis, des produits proprement emballés qui sont

opérationnels à peine sortis de la boite, et ils sont surtout fournis avec une garantie et un support client. Je

vous engage à jeter un œil à ces kits commerciaux avant de vous lancer dans la fabrication de ma

solution, à moins que vous n’aimiez particulièrement les projets à faire soi-même.

La raison principale pour laquelle je n’ai pas utilisé moi-même l’un de ces kits, c’est que je n’étais pas

satisfait de la précision ni de la stabilité de capture des kits infrarouge (le kit de Zeb’ n’était pas sur le

marché à l’époque, donc l’infrarouge était la seule solution). Je veux juste insister sur le fait que je suis

un peu plus pointilleux sur ces choses-là que beaucoup d’entre nous. Les capteurs infrarouges font le

travail, et font très bien leur travail de base. La plupart des gens en seront très contents. Mais lors de mes

Page 3: Le contrôleur Pinscape

propres tests, Ils n’étaient pas aussi précis que je le voulais. Je suis particulièrement fan de certaines

tables qui nécessitent des compétences délicates lors du tir, qui ne peuvent être simulées de façon réaliste

sans un niveau élevé de précision provenant du capteur de lance-bille.

Sachez que le kit de Zeb’ n’existait pas quand j’ai démarré ce projet. Ce kit utilise un type différent de

capteur digital qui semble atteindre la précision que je recherchais. Je ne l’ai pas vu fonctionner

personnellement, mais les commentaires sur les forums sont très positifs. Je n’aurais même pas démarré

ce projet si le kit de Zeb avait existé à l’époque.

Aucune Garantie

Pour être sûr qu’il n’y a aucune ambiguïté, je tiens à clarifier que l’ensemble de ce projet est sans garantie

de quelque nature que ce soit, je rends tout cela disponible gratuitement dans l’espoir qu’il sera utile, mais

je ne peux assurer qu’il fonctionnera et que vous arriverez à fabriquer votre version avec une totale

réussite. J’ai essayé de faire une documentation aussi complète et précise que possible, mais je peux

cependant avoir oublié certains détails importants ou fait des erreurs. Le logiciel peut (certainement)

contenir des bugs. C’est donc à vos risques et périls.

CE DOCUMENT EST FOURNI "TEL QUEL", SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU

IMPLICITE, Y COMPRIS MAIS SANS S'Y LIMITER LES GARANTIES DE QUALITÉ MARCHANDE,

D'ADEQUATION A UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS

L'AUTEUR NE SERA RESPONSABLE POUR TOUTE RECLAMATION, DOMMAGE OU AUTRE

RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION DE CONTRAT, TORT OU AUTRE, PROVENANT

DE, OU EN RELATION AVEC LA DOCUMENTATION, DE L'UTILISATION OU D'AUTRES OPÉRATIONS

DANS LA DOCUMENTATION.

Ce travail est sous licence Creative Commons Attribution 4.0 International License.

Liste des pièces

Vous aurez besoin de 2 principaux fournisseurs pour les pièces (mais aussi pour la construction de votre

flipper d’une manière générale). Le premier est un distributeur en électronique. J’ai été très satisfait de

Mouser Electronics, et DigiKey aussi a une très bonne réputation. Le second est un magasin de pièces pour

flipper. Pinball Life et Marco Specialties sont très bien. Je recommande aussi VirtuaPin ; Leurs prix sont

plutôt raisonnables et ils possèdent la plupart des éléments important pour un flipper virtuel, bien qu’ils

n’aient pas autant de choix que les fournisseurs. Vous pouvez aussi essayer eBay, bien que selon mon

expérience, les pièces de flipper d’occasion sont aussi chères que des neuves issues des fournisseurs.

Les références des pièces et les liens fournisseurs ci-dessous ne sont que des suggestions, pour faciliter

votre ‘shopping’. Vous êtes libres de les remplacer par des composants similaires à votre convenance.

Composants requis dans tous les cas :

Freescale FRDM-KL25Z carte microcontrôleur

Câble USB USB-A to Mini-B (1.8m ou longueur nécessaire*)

Composants pour la fonctionnalité Lance-bille avec le capteur CCD :

TAOS TSL-1410R Capteur linéaire CCD

LEDs bleues , 2 pièces (ou source lumineuse équivalente de votre choix)

Page 4: Le contrôleur Pinscape

Molex .062 5-circuit plug ††

Molex .062 5-circuit receptacle ††

Molex .062 crimp pins, 5 de chaque ††

Molex .062 crimp sockets, 5 de chaque ††

Composants pour la solution alternative de lance-bille avec potentiomètre à glissière :

ALPS RSA0N11S9A0K, ou Bourns PTF01-152A-103B2 ou celui-ci, ou n’importe quel

potentiomètre à glissière ayant une course d’au moins 80mm.

Composants pour le bouton de calibrage du lance-bille (optionnel même si vous décidez d’installer le

capteur de lance-bille)

Interrupteur à bouton poussoir lumineux

Transistor 2N4401 (ou transistor équivalent NPN)

Résistance 2.2Kohms 1/4W

Résistance 82 ohms 1/4W

Molex .062 4-circuit plug ††

Molex .062 4-circuit receptacle ††

Molex .062 crimp pins, 5 de chaque ††

Molex .062 crimp sockets, 5 de chaque ††

Composants pour la fonctionnalité LedWiz:

Embase verticale 8+8 pour le jumper J1 ††

Embase câbles 8+8 pour le jumper J1 ††

Embase verticale 10+10 pour le jumper J2 ††

Embase câbles 10+10 pour le jumper J2 ††

Connecteur femelle Pour les embases ci-dessus, 1 pour chaque sortie que vous prévoyez

d’utiliser ††

ULN2803A Transistor Darlington, 1 pour un ensemble de 8 sorties que vous prévoyez

d’utiliser.

PC817, Optocoupleur 1 pour chacune des sorties que vous prévoyez d’utiliser

BUK9575-55A MOSFET, 1 pour chaque sortie que vous prévoyez d’utiliser

1N4007 diode, 1 pour chaque sortie avec charge inductive (contacteur, moteur, bobine, etc)

Résistance 220 ohms 1/4 watt 1 pour chaque sortie.

Résistance 470 ohms 1/4 watt 2 pour chaque sortie.

Carte circuit perforée Taille selon le besoin, pour fabriquer le circuit en sortie

Pièce de flipper requise pour la fonctionnalité lance-bille :

Lance-bille complet Williams pièce no. B-12445-1**

Plaque de montage du lance-bille Williams pièce no. 01-3535

Ressort de tension pour lance-bille Stern pièce no. 266-5001-04†

Divers:

Vis #10-32 x 3/4”, 3 de chaque (pour fixer le lance-bille) Vis #4 bois ou métal, 2 de chaque (pour fixer la carte KL25Z au pincab) Support nylon 6mm (pour fixer la carte KL25Z) Câble AWG 22 (solide ou souple ; le câble solide est un peu plus facile à souder sur une carte)

* La carte KL25Z est relié au PC via le câble USB-A vers Mini-B. Choisissez la longueur de ce câble en fonction des

besoins de votre propre pincab. Il faut qu’il soit suffisamment long pour atteindre le port USB de votre PC jusqu’au

port du KL25Z. 2 mètres devraient être suffisants pour la plupart des pincab. La carte KL25Z possède 2 ports USB,

Page 5: Le contrôleur Pinscape

un pour l’utilisation de l’application (interface joystick dans notre cas), et un pour l’installation du firmware. Si vous

voulez garder les 2 ports USB branchés en permanence pour pouvoir faire des updtates de firmware dans le futur,

achetez 2 câbles USB.

** Vous pouvez aussi commander des pièces individuelles pour le lance-bille, si vous préférez. Cela vous permet de

personnaliser le style de votre lance-bille et de son bouton. Différentes couleurs et styles de boutons sont disponibles

chez la plupart des fournisseurs de flipper, certaines boutiques tierces fournissent des tiges en rapport avec certains

thèmes de tables. Recherchez sur le web ‘Custom pinball shooter’ pour vous donner une idée. Si vous voulez quelque

chose de vraiment personnalisé, vous pouvez commander une tige seule sans bouton chez pinball life et y ajouter au

bout un ‘machin’ en plastique de votre propre conception.

(NdT reste à traduire: Highly recommended for fellow OCD sufferers).

† Je vous recommande d’utiliser un ressort de tension moyenne-basse à la place du ressort d’origine fourni avec le

lance-bille complet. Votre lance-bille ne tirera jamais de vraies billes, Il n’y a donc pas besoin de beaucoup de force ;

un excès de force ne fera qu’augmenter les rebonds en fin de course. Je trouve personnellement que l’effet est plus

doux avec un ressort plus faible.

†† Toutes les spécifications de connecteurs ne sont que de simples recommandations, pour vous aider à vous y

retrouver dans l’immense choix de pièces, si vous commandez quelque part comme sur mouser.com. Je préfère

personnellement la série Molex .062 parce qu’il existe une grande variété de configurations des connecteurs, de telle

sorte qu’il est plus facile de tout tester en utilisant différents connecteurs sur des petits circuits autour, vous ne

pouvez pas brancher les choses par erreur parce qu’elles n’iront pas les unes avec les autres . J’ai d’abord utilisé ces

prises parce qu’elles ont largement été utilisées dans les flipper Williams dans les années 80 et 90. La plupart de ce ux

qui fabriquent des pincabs ont tendance à favoriser les terminaisons à visser pour les connexions ; Je préfère

largement les prises à brancher, parce qu’il est plus facile de brancher/débrancher une prise quand on travaille sur

la ‘bête’. Cela vous permet aussi de faire des lots de câbles, groupés ensemble sur un même connecteur , évitant ainsi

de suivre les câbles. Mais les connecteurs sont simplement des connecteurs, si vous préférez d’autres modèles, faites

avec ceux dont vous avez l’habitude.

Les outils

Vous aurez juste besoin d’outils classiques :

Fer à souder (ou mieux une station à souder)

Cutter pour les câbles

Pince à dénuder

Tournevis

Pince à long-bec

Pince à sertir (Si vous préférez pour les connexions Molex, la pince à long bec fera l’affaire)

Mettre à jour le ‘boot loader’ de votre KL25Z

Lorsque vous utiliserez votre carte KL25Z pour la première fois, il y aura une étape indispensable à

effectuer, consistant à mettre à jour la dernière version du firmware du boot loader. Une fois cette étape

effectuée, installer l’application du contrôleur Pinscape est un jeu d’enfant. Voici ce que vous devez

faire :

Page 6: Le contrôleur Pinscape

Aller sur http://www.pemicro.com/opensda/

Télécharger le “OpenSDA Firmware (MSD & Debug)”

Dézippez le fichier

Suivez les instructions depuis le document « Updating the OpenSDA Firmware.pdf » afin de

mettre à jour le boot loader (celui-ci doit avoir un nom du genre

BOOTUPDATEAPP_Pemicro_vxxx.SDA)

Utilisez la même procédure pour installer le fichier MSD-DEBUG-FRDM-

KL25Z_Pemicro_vxxx.SDA (à partir du même fichier .zip)

Note importante à l’attention des utilisateurs Windows 8!

Certaines versions du boot-loader installé en usine ne peuvent ni être utilisées ni mis à jour sur une

machine equipée en Windows 8. Si vous utilisez Windows 8 et que le processus de mise à jour ne semble

pas fonctionner, réessayez sur une machine equipée d’une version plus ancienne de Windows (XP, Vista

ou Win7). Une fois que vous aurez mis à jour et installé le boot loader, tout redeviendra normal sous

Windows 8, mais vous ne pourrez pas faire la mise à jour initale si la version buggée a été installée sur

votre carte KL25Z en usine.

Téléchargement du logiciel pour le contrôleur

Le logiciel du contrôleur Pinscape pour la carte KL25Z est un projet Open Source, ce qui veut dire qu’il

est libre d’utilisation aussi bien en l’état, que pour l’améliorer ou l’étendre en modifiant le code source.

L’application est disponible à cette adresse :

http://mbed.org/users/mjr/code/Pinscape_Controller/

Pour obtenir la version binaire opérationnelle, cliquez sur le bouton de compilation de l’application (build

repository), sur le côté droit de la page. Cela vous chargera la page de compilation. Assurez-vous que la

plate-forme cible est positionnée sur la carte KL25Z, puis cliquez sur le bouton de compilation.

Note: Si vous ne voyez pas la carte KL25Z dans la liste des cibles, vous devrez

vraisemblablement l’ajouter à votre compte. Pour ce faire, rendez-vous sur la

page des plateformes, que vous pouvez atteindre depuis un bouton de navigation

en haut de la page. Cherchez FRDM-KL25Z dans la liste. Cliquez sur le lien pour

faire apparaitre la page de l’appareil, puis cliquer sur le bouton « Add to your

mbed compiler ».

Le processus de compilation prendra une ou 2 minutes. Une fois terminé, un bouton de téléchargement

apparaitra au bas de la page. Cliquez pour sauvegarder le fichier obtenu. Cela vous donnera en final un

fichier .bin qui contient la version binaire compilée de l’application contrôleur. C’est le fichier à installer

dans votre carte KL25Z, en utilisant les étapes décrites dans la section suivante.

Personnaliser le logiciel du contrôleur (config.h)

Avant d’installer le logiciel, vous devriez jeter un œil aux options de personnalisation. C’est un projet

open-source, vous êtes donc libre de personnaliser la totalité du code source autant que vous le souhaitez.

Même si vous ne connaissez rien à la programmation en C++, il existe certaines options de paramétrage

que vous pouvez choisir en éditant le code avec un simple éditeur de texte. Ces options sont centralisées

dans un seul fichier source pour toutes les configurations de paramétrage : config.h.

Page 7: Le contrôleur Pinscape

Pour éditer ce fichier et fabriquer une version paramétrée du binaire, suivez ces étapes. Sur la page du

projet mbed, cliquez sur le bouton ‘import this program’. Vous devez créer un compte mbed gratuit pour

utiliser cette fonctionnalité, parce que cette étape va créer une copie privée du projet sur votre propre

espace de travail sur le site. Une fois votre compte créé et le programme importé, ouvrez le dossier

Pinscape Controller dans l’arborescence des sources et cliquez sur config.h. Ce fichier contient 95% de

commentaires avec un peu de code C++ qui contient les différentes options de paramétrage. Les

commentaires décrivent les options disponibles. Parcourez le fichier pour voir si vous avez besoin de

changer quelque chose. Editez votre fichier, sauvegardez-le, puis cliquez sur le bouton ‘Compile’ afin de

générer votre version personnalisée du binaire à installer. Notez que vous pouvez toujours revenir à ce

point et ajouter d’autres changements à n’importe quel moment – dans ce cas, vous aurez besoin de

télécharger le nouveau binaire.

Installer l’application contrôleur dans la carte KL25Z

Branchez la carte KL25Z à votre PC en utilisant le port de

programmation (Programming Port). Si vous tenez la carte avec les

ports en bas, côté composants face à vous, le port de programmation

est celui de droite, le même que celui utilisé lors de la mise à jour du

boot loader. La carte KL25Z devrait désormais apparaitre dans

Windows comme un nouveau périphérique disque. Dans ce mode

l’acte se comporte comme une clé USB de 128ko de mémoire flash.

Maintenant, effectuez un simple glissé-déposé du fichier .bin que vous avez généré depuis mbed.org (voir

ci-dessus) dans le disque KL25Z. La carte KL25Z démarrera automatiquement, et lancera immédiatement

le logiciel Pinscape.

Note : N’utilisez pas la procédure de mise à jour du boot loader ici. En particulier,

ne maintenez pas le bouton reset enfoncé pendant que vous branchez la carte.

Cela prépare la carte à recevoir un nouveau firmware sur le port de

programmation, ce qui n’est nécessaire que la première fois lors de l’acquisition

de la carte.

Vous pouvez répéter cette étape à n’importe quel moment pour mettre à jour une nouvelle version ou pour

effectuer une « configuration usine » de l’application. Veuillez noter que cette opération supprime le

calibrage du lance-bille et tous les changements de configuration que vous aurez effectués. Refaites donc

toutes ces étapes à chaque fois que vous réinstallez l’application contrôleur.

Branchement du port Joystick

Une fois que vous aurez installé l’application contrôleur, branchez la carte KL25Z avec l’autre port USB

(celui marqué ‘Joystick Port’ sur l’image plus haut). Windows devrait reconnaitre le périphérique comme

un Joystick USB appelé « Pinscape Controller ». Les leds RGB de la carte KL25Z devraient commencer à

clignoter jaune et vert toutes les secondes pour signifier qu’elle fonctionne.

Si vous ouvrez le panneau de contrôle de Windows, puis ‘Paramétrer les contrôleurs de jeu USB’, puis que

vous ouvrez l’entrée ‘Pinscape Controller’, vous verrez que les axes x/y du joystick réagiront lorsque vous

tilterez/secouerez la carte KL25Z. Cela correspond aux informations de l’accéléromètre que la carte

KL25Z renvoie à Windows.

Conseil de dépannage : Si le logiciel ne fonctionne pas correctement à ce

moment (la led ne clignote pas jaune/vert, et il n’y a pas de trace d’un nouveau

périphérique joystick USB dans Windows), vous avez certainement un problème

Page 8: Le contrôleur Pinscape

avec le drag-and-drop de l’explorateur Windows, que certaines personnes ont

rencontré avec la carte KL25Z. Sur certains PC et pour des raisons que personne

ne semble comprendre, le drag-and-drop de l’explorateur ne fonctionne pas

correctement avec le boot loader de la carte KL25Z. Heureusement, il existe une

solution de contournement. Ouvrez le prompt windows avec la commande CMD.

Faites une commande manuelle COPY pour copier le .bin dans le lecteur de

disque correspondant à la carte KL25Z.

Notez que vous pouvez parfaitement garder les 2 ports USB de la carte KL25Z branchés au PC

simultanément. Vous n’êtes pas obligé de déconnecter le port de programmation lorsque vous utilisez le

périphérique en mode joystick, et vous n’êtes pas obligé de déconnecter le port Joystick lorsque vous avez

besoin de réinstaller l’application contrôleur. Personnellement, je laisse les deux ports USB branchés en

permanence, parce que c’est plus simple pour mettre à jour le firmware, ce que je fais très souvent lorsque

je travaille activement sur le logiciel. Cependant, cela ne sert à rien de garder le port de programmation

branché en permanence, si vous ne voulez pas vous retrouver avec un câble et un port USB

supplémentaires utilisés par votre PC.

Si vous ressentez le besoin d’effectuer un cycle complet de fonctionnement de votre carte KL25Z (parce

qu’il vous semble qu’il y a des problèmes de réponses ou de blocage, par exemple), assurez-vous de

débrancher les 2 câbles USB pendant un petit moment. Chacun des ports fournit indépendamment son

propre courant à la carte, vous devez donc débrancher les 2 câbles pour évacuer tout courant et forcer un

reset à froid.

Statut de la LED

La carte KL25Z possède une led RGB intégrée, que l’application contrôleur utilise pour fournir des

informations visuelles de son statut. Les couleurs/modes flash sont :

Eteint : le périphérique n’est pas branché ou n’a pas terminé sa synchronisation avec l’hôte.

Clignotant rouge rapide : environ toutes les 3 secondes : le PC hôte est éteint ou en mode veille.

2 clignotements rouges rapides : environ toutes les 3 secondes : La connexion USB a été

interrompue. Cela peut être dû au câble qui a été physiquement déconnecté, ou bien une erreur de

communication qui est survenue.

Rouge/Vert alternatifs : Le périphérique nécessite d’être redémarré dû à un changement de

numéro LedWiz. Débranchez la carte quelques secondes et rebranchez-le, ou bien maintenez le

bouton reset appuyé pendant un instant.

Jaune/Vert alternatifs: Le périphérique est connecté et fonctionne normalement, mais le lance-

bille n’a pas été calibré. Si vous utilisez la fonction capteur du lance-bille, lancez la procédure de

calibrage.

Bleu/Vert alternatifs : Le périphérique est connecté et fonctionne normalement.

Bleu clignotant : le bouton de calibrage du lance-bille est appuyé, mais le mode calibrage n’a pas

encore démarré. Gardez le bouton enfoncé pour entrer dans le mode calibrage. (ou relâchez-le

pour annuler).

Bleu fixe : Le calibrage est en cours. La procédure de calibrage dure environ 15 secondes. La

section décrivant la procédure de calibrage se trouve plus bas dans le document.

Configuration logicielle

L’application contrôleur pour la carte KL25Z est opérationnelle immédiatement après l’installation.

Cependant, certaines options de configuration peuvent être paramétrées, si vous le désirez. Vous pouvez le

faire à partir de l’outil de configuration, qui fonctionne sous Windows et envoie ses informations au

Page 9: Le contrôleur Pinscape

contrôleur en utilisant la connexion USB. Notez que le contrôleur a besoin d’être branché par le port USB,

et fonctionner en mode Joystick pour pouvoir envoyer des commandes. Le lien de téléchargement de cet

outil se trouve sur la page d’accueil du projet mbed.

Note : Beaucoup plus d’options de configuration peuvent être paramétrées en éditant le fichier source

config.h dans le projet et en le recompilant. Voir la section plus haut dans le document sur config.h

Les paramétrages de configuration qui sont faits grace à l’outil de configuration (configtool) sont

sauvegardés dans la partie non-volatile (flash) de la carte KL25Z. Les paramétrages ‘survivront’ au cycle

d’alimentation, les resets du contrôleur, les resets PC et déconnexions USB. Cependant, mettre à jour le

logiciel du contrôleur efface la mémoire et réinitialise tout le contenu en mode usine.

Voici les options disponibles depuis l’application Config tool for Windows :

Activer ou désactiver le capteur lance-bille : Par défaut le capteur est activé. Vous pouvez laisser

le capteur activé même si il n’y a pas de capteur relié (l’application verra simplement des

valeurs de pixels aléatoires si le capteur n’est pas relié, et fonctionnera normalement par

ailleurs). Cependant, il se peut que les taux rapportés par l’accéléromètre ainsi que l’appui sur

les touches soient sensiblement meilleurs dans VP, parce que la lecture des données du capteur

consomme un peu de temps, même si aucun capteur n’est relié. (Cela n’affectera pas la qualité

des données de l’accéléromètre, tant que le firmware échantillonne l’accéléromètre à un taux

fixe, indépendamment du taux fourni par l’USB)

Changement du Numéro LedWiz : Chaque LedWiz à un numéro de périphérique, configuré dans

le firmware.

Ce numéro permet au PC de commander directement le bon périphérique si vous avez plus

d’une LedWiz installée dans votre pincab. Sur une véritable LedWiz, le numéro est configuré à

l’usine : par défaut et si vous ne le spécifiez pas lors de la commande, ce numéro est configuré à

1. Le contrôleur Pinscape est de son côté configuré par défaut à 8, mais vous pouvez changer

celui-ci à tout moment grâce à l’outil de configuration.

Si vous changez ce numéro, vous devrez au préalable réinitialiser le contrôleur pour que cette

nouvelle valeur prenne effet. La LED de contrôle clignotera Rouge et Vert pour indiquer qu’une

réinitialisation est nécessaire. Enfoncez simplement le bouton Reset sur la carte KL25Z pendant

un petit moment, ou bien débrancher le câble USB pendant quelques secondes, puis rebranchez-

le.

Installer la carte contrôleur dans le pincab.

La carte KL25Z doit être installée bien à plat au fond de votre pincab, les composants vers le haut.

L’orientation par défaut de la carte s’effectue avec les connecteurs USB faisant face au devant de votre

pincab. Si cette orientation ne vous convient pas, vous pouvez pivoter la carte par pas de 90°. Si vous

changez l’orientation de la carte, vous devez alors éditer le fichier config.h (voir ci-dessous) et

changer la valeur ORIENTATION_PORTS_AT_xxx afin de correspondre au sens du montage.

Page 10: Le contrôleur Pinscape

Notez que c’est normal que votre flipper soit légèrement incliné. C’est la règle pour les caisses de flipper.

Le logiciel s’attend à ce qu’il y ait une inclinaison, il compense donc en effectuant un calibrage dès lors

qu’il est au repos pendant quelques secondes. Installez simplement la carte à plat dans le fond de votre

flipper, le logiciel calculera la légère inclinaison et la soustraira de ces résultats.

Il est important d’installer la carte KL25Z fermement fixée à l’intérieur du pincab. L’accéléromètre doit

bouger en étant collé au pincab afin qu’il nous fournisse les mêmes sensations de mouvement pendant les

évènements de secousses. La carte KL25Z possède des pieds en caoutchouc, et 2 trous (sur les coins

extérieurs de chaque côté des connecteurs USB) pour les vis. Fixez-les avec des vis #4 x 1’’ (2.54cm pour

métal ou bois), et utilisez des entretoises en nylon de 6mm de hauteur entre la carte et le fond du pincab.Il

faut que la carte soit fixée sans qu’il y ait de jeu. Configuration de Visual Pinball

Visual Pinball possède sa propre gestion intégrée pour l’accéléromètre et l’entrée lance-bille en utilisant

les propriétés du Joystick, mais elle est désactivée par défaut. Pour l’activer :

Ouvrez VP (en mode création, inutile de charger une table)

Choisissez ‘Préférences Keys on menu’

Cochez la case ‘Enable Analog Nudge’

Cochez la case ‘Enable Nudge Filter’ si il existe (voir plus bas)

Sous ‘Axis Alignment’ :

o Mettez X-Axis (L/R) à ‘X-Axis’ dans la liste déroulante

o Mettez Y-Axis (U/D) à ‘Y-Axis’

o Mettez X-Gain et Y-Gain à 1000

o Mettez Plunger (lance-bille) à ‘Z-Axis’

o Mettez Dead Zone à 0

o Décochez ‘Reverse axis’ pour X, Y et Z

Le paramétrage ci-dessus considère que vous avez selectionné l’option appropriée

ORIENTATION_PORTS_AT_xxx dans le fichier config.h. Cela permet d’assurer que les données

envoyées à VP sont correctement orientées sur les axes X et Y du joystick de VP. Notez que la version

précédente de ce guide indiquait d’ajuster les directions des axes dans Visual Pinball afin de correspondre

Page 11: Le contrôleur Pinscape

aux orientations. Il n’y a plus besoin de faire cela. A partir de la version d’août 2015, l’orientation se

paramètre dans config.h ; et utilise les paramètres par défaut de VP comme ci-dessus dans tous les cas.

Cette nouvelle approche a l’avantage que cela devrait fonctionner avec les autres logiciels de flipper, tel

que Future Pinball qui n’a pas les paramètres aussi flexibles que VP.

La case à cocher ‘Enable Nudge Filter’ apparait dans la version VP 9.9.1 et VP10 (et au dessus). Quand

elle est activée, le filtre de mouvement permettra d’envoyer des informations à l’accéléromètre afin

d’effectuer des simulations de mouvement beaucoup plus réalistes. Ce filtre n’existe pas en standard dans

la version Physmod 5, mais j’ai créé une version spécifique de Physmod 5 qui le possède. Vous pouvez

télécharger l’exécutable depuis la page du projet Pinscape sur mbed.org. Notez que la case à cocher n’est

pas présente, le filtre est simplement déjà activé par défaut.

Choisir un capteur lance-bille

Le logiciel Pinscape peut actuellement fonctionner avec 2 types différents de capteurs : le capteur CCD

linéaire TAOS, et un potentiomètre linéaire à glissière.

Le logiciel fonctionne aussi sans aucun capteur pour le lance-bille. Personnellement, je n’imaginerais pas

construire un pincab sans y installer un lance-bille, qui reste un élément essentiel sur un flipper, mais le

logiciel n’en a pas forcément besoin. Si vous ne câblez aucun capteur pour le lance-bille, le logiciel

transmettra une valeur constante à 0 pour la position du lance-bille. VP vous permettra toujours d’utiliser

le bouton ‘Launch Ball’ comme d’habitude.

En supposant donc que vous vouliez un vrai lance-bille, étudions les options des capteurs, les pour et les

contre.

Le CCD est mon type de capteur favori, pour de multiples raisons. D’abord, il est extrêmement précis ; sa

résolution est aussi bonne que ce que vous pouvez voir apparaitre à l’écran. Deuxièmement, il est à l’abri

d’une dérive d’étalonnage, parce qu’il capte la position relative de pixels qui sont fixés dans l’espace.

Troisièmement, il n’y a aucun contact mécanique entre le capteur et le lance-bille, il n’y a donc aucune

possibilité d’usure, et le capteur n’a aucun effet sur comment le lance-bille bouge et se comporte.

L’installation du mechanisme est rendue très simple.

Mais le CCD comporte quelques désavantages. Il est cher, et requiert un travail important de soudure pour

les connexions électriques. Certaines personnes en ont fait les frais sur cette partie.

Le potentiomètre est moins onéreux, et l’installation de la partie électronique est plus simple. La

contrepartie est que le potentiomètre doit être physiquement attaché à la tige du lance-bille. Cela rend

l’installation plus compliquée mécaniquement. Cela peut aussi affecter comment le lance-bille bouge et se

comporte pour l’utilisateur, puisqu’il existe des frottements résiduels sur le potentiomètre lors du

mouvement du lance-bille. Le potentiomètre peut comporter des traces d’usure à la longue, ce qui peut

affecter le calibrage et réduire la stabilité ou la linéarité des lectures des informations sur la durée.

Si vous avez des idées pour d’autres types de capteurs, faites-le moi savoir ! Le logiciel est conçu de telle

sorte que le code puisse être facilement implémenté pour de nouveaux types de capteurs, en continuité des

options déjà existantes. Je ne peux garantir que je serai moi-même capable d’effectuer un nouveau

développement sur le code pour de nouveaux types de capteurs, mais je peux fournir du support technique

si vous êtes prêts à faire le travail, et je serai très heureux d’insérer le résultat dans le code source du projet

global.

Câbler le capteur lance-bille, partie I : Le capteur CCD

Page 12: Le contrôleur Pinscape

Le composant TSL1410R est un capteur CCD. Le logiciel utilise ce capteur pour déterminer la position du

lance-bille, principalement en capturant des ‘images’ de la position du lance-bille avec le capteur, afin de

visualiser l’extrêmité du lance-bille en analysant les images capturées. (Le TSL1412R est aussi géré.

Celui-ci est très semblable au TSL1410R, mais il possède une rangée de pixel un peu plus étendue.

Mettez à jour l’option CCD_NPIXELS dans le fichier config.h si vous utilisez un 1412R)

Attention ! Le capteur CCD peut-être endommagé par l’électicité statique. Prenez vos précautions avec les

appareils sensibles à l’électricité statique lors de la manipulation du capteur CCD. Mettez-vous à la terre

avant de manipuler le capteur en touchant la surface d’une barre métallique, ou bien un PC branché, ou

tout autre appareil mis à la terre. Evitez les sols tapissés ou toute autre source statique lorsque vous

travaillez sur le capteur.

La fiche technique du fabricant pour le TSL1410R est disponible ici :

http://www.taosinc.com/getfile.aspx?type=press&file=tsl1410r-e29.pdf

Le câblage du TSL1410R est décrit dans le schéma ci-dessous. La plupart des connexions sont simplement

entre terminaisons sur le capteur lui-même. Il y a en tout 5 câbles entre le capteur et la carte KL25Z.

Lorsque vous aurez terminé, chaque terminaison du capteur CCD, exceptée la N° 11, doit être connectée à

quelque chose (soit à une autre terminaison du capteur, soit à une terminaison sur la carte KL25Z (ou les

2). La connexion N° 11 doit être laissée libre.

Page 13: Le contrôleur Pinscape

J’ai installé une prise mâle/femelle (voir les connecteurs Molex dans la section ‘liste des pièces’) entre la

carte KL25Z et le capteur, afin de pouvoir retirer chacune des parties indépendamment depuis le pincab.

J’ai soudé directement sur les terminaisons du capteur et sur les plots de soudure de la carte KL25Z.

Vous préférerez peut-être utiliser des connecteurs pin (comme ceux décrits dans la liste des pièces pour

l’émulation LedWiz) pour connecter la carte KL25Z. Ce sera probablement plus propre que ce que j’ai

fait. La raison pour laquelle j’ai préféré souder directement sur les plots est que le capteur lance-bille

requiert des connexions avec le jumper J9 et le jumper J10, et le bouton de calibrage a aussi besoin de

connecteurs sur ces mêmes jumpers. Je n’ai pas trouvé de bonne solution pour arranger correctement les

différentes connexions en utilisant des connecteurs pin et obtenir des connecteurs indépendants pour le

bouton de calibrage et le capteur. Au lieu d’utiliser des connecteurs pin directement sur la carte KL25Z,

j’ai préféré souder directement et ajouter une prise connecteur aux câbles. Si je devais en construire un

nouveau, je trouverais le moyen d’utiliser des supports de connexion et des prises – Je préfère que tous soit

modulaire et facilement branchable dan mon pincab.

Installer le capteur lance-bille

C’est une partie où vous allez devoir improviser. Je ne connais pas de support spécifique pour maintenir le

capteur dans une parfaite position. J’ai fabriqué moi-même 2 supports en métal (un à chaque bout du

capteur) taillés à la bonne longueur, courbé à 90° et percés pour y passer des vis. Le capteur est vraiment

léger, il n’y a donc pas spécialement besoin de supports très résistants, mais vous devrez quand même

vous assurer que le capteur reste toujours à sa place afin que son alignement avec le lance-bille ne varie

pas à l’usage.

Voici à quoi ressemble mon installation une fois terminée. Les connecteurs blancs sont des vis en nylon

M3.

La justesse du placement et de l’alignement du capteur est importante, mais le capteur a des tolérances, ce

n’est donc pas si difficile. J’ai été capable de configurer le mien à vue, et il a marché du premier coup.

Les exigences principales sont les suivantes :

Page 14: Le contrôleur Pinscape

Le capteur doit être positionné au-dessus du lance-bille, la fenêtre de capture dirigée vers le bas.

Il doit être le plus près possible du lance-bille, mais suffisamment éloigné pour ne pas risquer

qu’il y ait un contact physique – 1cm semble bien fonctionner.

La fenêtre du capteur doit être centrée le mieux possible le long de l’axe du lance-bille (cela a

pour effet de produire une ombre sur la fenêtre de capture)

La fin de la fenêtre de capture doit s’étendre à peine au-delà de l’amplitude complète de

mouvement du lance-bille.

Ce dernier point est véritablement la clé du système. L’application a besoin de voir lors de la capture une

extrémité totalement illuminée, sans ombre, et pour l’autre extrémité totalement dans l’ombre. Elle a

besoin de voir chacune des extrémités afin de déterminer les différents niveaux relatifs à l’exposition de la

lumière. C’est ce qui permet au capteur d’obtenir une bonne condition de tolérance à une gamme de

lumière. Lorsque le lance-bille est poussé totalement vers l'avant, quelques pixels doivent être laissés à

découvert hors de l'ombre, donc assurez-vous que le capteur s’étend un peu au-delà de la position

complètement vers l'avant. De la même façon, quelques pixels doivent rester dans l’ombre quand le lance-

bille est totalement tiré vers l’arrière. Le capteur est plus long d’environ 6mm que la gamme d’extension

d’un lance-bille, vous avez donc 3mm de part et d’autre pour ajuster la position du capteur.

Notez que le lance-bille peut avancer encore d’environ 1.2cm par rapport à sa position de repos si vous le

poussez et compressez le ressort extérieur. C’est ce qui se fera naturellement quand vous tirerez en pleine

force, il est donc important de prendre cet aspect en considération dans le positionnement du capteur.

Cela n’a pas d’importance si le capteur est installé avec les contacts à droite ou à gauche, du moment que

la fenêtre de capture est dirigée vers le bas. L’application reconnait la direction à partir de la répartition de

la lumière quand il lit les pixels. Il sait que l’extrémité la plus brillante est au bout.

Installation d’une source de lumière pour le capteur CCD

Le principe de fonctionnement du capteur du lance-bille est de détecter le bord de l'ombre portée par le

lance-bille contre le capteur. Nous voulons une ombre aussi nette que possible. L’ombre est plus nette

lorsque la source de lumière est plus éloignée, car la lumière devient un point de source.

La meilleure configuration de lumière semble être une petite source de lumière positionnée à environ

20cm du capteur. Ma configuration qui a été très fiable utilise 2 leds bleues de 20mA fixées sur le côté

intérieur du pincab, proche du fond, à environ 20cm du capteur. Elles sont positionnées à peu près en ligne

en faisant face au capteur.

Page 15: Le contrôleur Pinscape

Vous remarquerez que je n’utilise aucune ombre ou cache autour du capteur pour la source de lumière. Le

pincab seul semble faire une très bonne chambre noire. Il y a d’autres points lumineux dûs à diverses leds

à l’intérieur du pincab mais ils sont suffisamment faibles pour ne pas créer d’interférences.

Lors de mes essais, Le capteur CCD s’est montré très opérationnel sur de larges et différentes conditions

de lumière, et particulièrement dans les conditions les plus faibles. Trop de lumière surexpose le capteur et

empêche le logiciel de detecter les coins d’ombre, mais il semble presque impossible d’avoir trop peu de

lumière. Lors de les tests, le capteur pouvait (presque incroyablement) fonctionner avec seulement la

lumière des leds de la carte mère et des autres périphériques. C’est un peu bizarre de fonctionner de cette

façon, et vous ne devriez pas suivre cet exemple comme source principale de lumière, mais c’est une

bonne façon de se rendre compte à quel point ce capteur est sensible.

Premiers essais et dépannage

L’outil de configuration (décrit précédemment) vous permet de visualiser les niveaux bruts de lumière que

lit le capteur CCD. Une fois que vous avez installé et câblé le capteur, assurez-vous que la carte KL25Z est

branchée à votre PC via le câble USB, puis lancez l’outil de configuration dans Windows. L’application

devrait trouver et montrer votre contrôleur dans la liste déroulante. Cliquez sur le bouton « View CCD

exposure2 » pour faire apparaitre le tableau de pixels. Vous visualiserez une représentation graphique de

lecture des pixels par le capteur, et la luminosité de chaque pixel en niveau de gris. Noir signifie que le

pixel ne voit aucune lumière, blanc signifie que le pixel est saturé de lumière, tandis que les nuances de

gris3 montrent les niveaux intermédiaires de luminosité.

Chaque pixel est mis à jour de façon continue, donc si le capteur semble fonctionner correctement, vous

pouvez essayer de manipuler le lance-bille. L’affichage à l’écran doit suivre les mouvements du lance-bille

(vous devez voir la zone sombre se réduire alors que vous tirez le lance-bille vers l’arrière). Par contre, si

l’affichage initial semble trop sombre ou trop clair, faites des ajustements sur la source de lumière, vous

devriez ressentir les effets se répercuter immédiatement à l’écran.

Idéalement, lorsque le lance-bille est au repos, vous devez avoir une petite zone étroite de pixels blancs

(ou quasi blancs), représentant la zone au bout du lance-bille où il n'y a pas d'ombre, le reste étant noir (ou

quasi noir) et représentant la zone dans l’ombre de la tige du lance-bille. Il devrait y avoir une jolie

2 NdT : Visualiser les données d’exposition du capteur CCD

3 NdT : Rien à voir avec les 50 célèbres de E. L. James …

Page 16: Le contrôleur Pinscape

frontière nette entre les 2. Si les pixels sont tous noirs, le capteur est sous-exposé (vous avez besoin de plus

de lumière). Si les pixels sont tous blancs ou presque, le capteur est surexposé, vous devez réduire la

luminosité de votre source de lumière ou l’éloigner du capteur. Si la couleur des pixels semble

complètement aléatoire, cela peut indiquer un problème de câblage.

Lors de mes essais, le capteur a montré qu’il était très tolérant dans des conditions de basse luminosité,

mais il peut par contre être très vite surexposé avec un peu trop de lumière. Assurez-vous que le capteur

n’est pas exposé à la lumière ambiante extérieure à la caisse du flipper. Cela ne devrait pas se produire si

votre flipper est bien clos, mais si vous devez effectuer des tests à l’extérieur, posez quelque chose

d’opaque sur le dessus du capteur pour bloquer la lumière ambiante. Essayez d’ajuster la distance et la

luminosité de votre source de lumière. Plus elle est tamisée, mieux c’est. Si vous utilisez quelque chose de

plus lumineux qu’une paire de petites leds, essayez de couvrir partiellement la source lumineuse pour la

rendre plus tamisée.

Si vous n’obtenez aucun meilleur résultat en ajustant la source lumineuse, vérifiez à nouveau votre

câblage, pour vous assurer que toutes les terminaisons sont proprement connectées comme sur le schéma.

Vous pourriez aussi vérifier vos soudures et qu’elles sont restées correctement fixées lorsque vous avez

procédé à l’installation.

Si le statut brut des valeurs de pixels semble correct, la partie suivante à vérifier est que tout fonctionne au

niveau du Joystick USB. Ouvrez « configuration des contrôleurs de jeu USB » dans le panneau de contrôle

de Windows, puis ouvrez le contrôleur Pinscape. L’affichage des positions X/Y du Joystick doit

correspondre aux secousses du flipper (c’est l’accéléromètre). Quand vous manipulez le lance-bille, vous

devriez voir l’axe Z changer. Quand le lance-bille est au repos, l’affichage de la position de l’axe Z doit

approximativement se trouver au centre (zéro), et quand il est tiré en arrière au maximum, l’axe devrait

être proche de son maximum dans la direction des valeurs positives.

Câbler le capteur lance-bille, partie II : La solution alternative avec potentiomètre

Si vous voulez utiliser un potentiomètre comme capteur de lance-bille, vous devez utiliser un

potentiomètre à « glissière ». Ce modèle possède un levier qui se déplace dans la longueur de l’appareil.

La course du levier doit être de 80mm ou plus, puisque c’est à peu près la distance dont peut bouger le

lance-bille. Vous avez besoin d’un potentiomètre à cône linéaire (« cône linéaire » signifie que la

resistance varie de façon linéaire avec le levier. L’autre type est cône audio, la résistance varie

exponentiellement. Le logiciel ne fonctionne qu’avec le type linéaire). Le taux global de la résistance doit

être d’environ 10KOhms.

Votre potentiomètre doit posséder trois terminaisons. Deux se trouvent aux extrêmités du potentiomètre, et

la troisième est « l’essuie-glace », qui se déplace le long de la résistance et produit la résistance variable.

La résistance entre les deux terminaisons fixes sera toujours constante. La résistance entre la terminaison

« essuie-glace » et l’une des terminaisons fixes varie lors du mouvement du levier vers l’avant et l’arrière

(si vous n’êtes pas sûr à quoi correspond quelle terminaison, vérifiez sur la fiche technique du

potentiomètre ou testez directement avec un ohmmètre).

Le câblage avec la carte KL25Z est simple. Vous avez besoin de 3 câbles entre le potentiomètre et la carte

KL25Z. D’abord, connectez la masse de la carte KL25Z (jumper J9 pin 14) à l’une des terminaisons fixes

du potentiomètre. Ensuite, câblez l’alimentation 3.3V (jumper J9 pin 4) à l’autre terminaison du

potentiomètre. Enfin, câblez le port PTB0 (jumper J10 pin 2) à la terminaison « essuie-glace » du

potentiomètre.

Page 17: Le contrôleur Pinscape

Monter le capteur du potentiomètre

L’idée de base est très simple. Il suffit juste de connecter le levier du potentiomètre à l’extrêmité du lance-

bille, de telle sorte que le levier bouge avec la tige du lanceur. Ensuite, il suffit de fixer le potentiomètre au

pincab pour le garder en place.

Faites à votre convenance pour organiser le montage. C’est à vous de voir en fonction du potentiomètre

particulier que vous utiliserez. Pour vous donner une idée, voici une image prêtée grâcieusement par

lemming77 de vpforums.org montrant sa configuration. L’entourage en plastique blanc est une impression

3D de sa propre conception : vous pouvez télécharger le fichier Sketchup depuis la page pinscape sur

mbed.org.

Page 18: Le contrôleur Pinscape

Vous remarquerez que la direction du potentiomètre a son importance. Montez-le de telle sorte que la

resistance s’acroisse lorsque vous tirez le lance-bille. Cela veut dire d’une façon générale que vous devriez

le monter avec la terminaison de fin située au bout du lance-bille. Mais les appareils diffèrent, donc

vérifiez les spécifications de votre propre appareil, et testez le avec un voltmètre (ou bien essayez juste de

le monter dans un sens et voyez ce que répond le logiciel. Si le mouvement du lance-bille à l’écran est à

l’envers, renversez le potentiomètre dans l’autre sens).

Essais et dépannage du potentiomètre

Avant de commencer, assurez-vous d’avoir personnalisé votre version du logiciel avec l’option du capteur

pour potentiomètre. Voir la section plus haut dans ce document à propos du fichier config.h. Editez le

fichier config.h sur mbed.org, mettez en commentaire la ligne où est écrit #define

ENABLE_CCD_SENSOR et décommentez la ligne où est écrit #define ENABLE_POT_SENSOR, puis

cliquez sur ‘Compile’ afin de construire et télécharger votre firmware personnel. Installez le binaire sur la

carte KL25Z en effectuant un drag’n drop comme décrit plus haut.

Une fois que tout est installé, câblé et que vous avez votre version du firmware avec potentiomètre

installée dans la carte KL25Z, allez dans le panneau de configuration de Windows et ouvrez « Configurez

les contrôleurs de jeux USB ». Double-cliquez sur « Pinscape Controller ». La position X/Y sur l’affichage

de la manette devrait montrer les secousses du pincab – c’est l’accéléromètre. Quand vous bougez le

lance-bille vous devriez voir l’axe Z changer. Quand le lance-bille est au repos, la position de l’axe Z à

l’affichage doit être approximativement au centre (zéro), at quand il est tiré en arrière au maximum, l’axe

devrait être proche de son maximum positif (côté droit de l’échelle).

Si l’axe Z bouge dans la direction opposée, vous avez monté le potentiomètre à l’envers. Remettez-le juste

à l’endroit.

Capteurs tous types : Installer le bouton de calibrage du lance-bille

Nous avons maintenant fait le tour des différents types de capteurs. Cette étape s’applique à n’importe quel

type de capteur. Mais c’est optionnel. Si vous n’installez pas de bouton de calibrage, vous pouvez utiliser

Page 19: Le contrôleur Pinscape

l’outil de configuration Windows pour activer le mode calibrage. Ce n’est pas aussi ‘luxueux’, mais cela

fonctionne quand même et économise du stress à installer encore plus de matériel.

Dans mon pincab, j’ai installé le bouton de calibrage sur l’intérieur de la « coin door4 », dans un petit coin

de mes propres boutons de service. Mes boutons supplémentaires sont : un bouton lumineux pour activer

et désactiver le mode ‘monnaie virtuelle’ (quand il est activé on peut appuyer sur le bouton de rejet de la

monnaie et simuler l’insertion d’une pièce dans la fente), un bouton de calibrage du lance-bille, un bouton

de Reset du PC, relié à ma carte mère, pour faire un hard reset du PC si Windows se met à planter

(Etonnament, je n’ai pas encore eu à l’utiliser en un an de temps de travail sur le projet, Vive Windows

7 !).

J’ai trouvé des boutons-poussoir avec des Leds lumineuses intégrées, qui ressemblent à celles que

Williams utilise pour ses boutons de service à l’intérieur du « coin door ». Mon bouton « mode monnaie

virtuelle » s’allume en rouge quand il est allumé, et mon bouton de calibrage lance-bille s’allume en bleu

quand il fournit un retour d’information. J’ai monté ces boutons sur une réglette que j’ai fabriquée à partir

d’un morceau de métal. Ca ressemble beaucoup à un vrai, et les fonctionnalités sont exactement ce que je

recherchais.

A gauche : l’intérieur du coin door. Mes boutons

de service supplémentaires sont dans

l’emplacement clair en haut à droite. Cet

emplacement est normalement réservé pour un

récepteur de billets, dont je n’ai pas l’utilité.

A droite : un agrandissement sur mes boutons

personnalisés. Le bouton du milieu, bleu lumineux

est le bouton de calibrage du lance-bille.

Si vous tenez à installer le bouton de calibrage, je vous recommande de le placer quelque part à l’intérieur

du pincab, ou éventuellement en dessous, afin d’éviter que des membres de la famille ou bien des invités

curieux ne soient tentés d’appuyer dessus pour voir à quoi ça sert.

Brancher un simple bouton sans indicateur led est facile. Il suffit juste de câbler un switch temporaire entre

le point PTE29 de la carte KL25Z (Connecteur 9 du Jumper J10) et la masse (connecteur 14 du jumper

J9).

Si vous utilisez un bouton simple, vous pouvez toujours obtenir la même impression qu’avec un indicateur

led, en observant la led de diagnostic de la carte KL25Z. Il fournira les mêmes indications de clignotement

que le bouton indicateur fournirait lorsque vous appuierez dessus et le maintiendrez enfoncé.

Si vous voulez une version complète identique à la mienne, commandez un bouton lumineux à partir de

ma liste de pièces et fabriquez le circuit décrit ci-dessous. Le transistor est utilisé pour augmenter les

faibles 4mA de courant que peut fournir la carte KL25Z, à un niveau de 20mA nécessaires pour alimenter

4 NdT : Littéralement: Porte-monnaie ! lol

Page 20: Le contrôleur Pinscape

la led. J’ai fabriqué ce tout petit circuit sur une carte perforée de 1 x 1cm et je l’ai placé au milieu d’un

groupe de câbles entre le switch et la carte KL25Z.

Sur le côté de la carte KL25Z, j’ai soudé 4 câbles directement sur les plots des jumpers, et j’ai connecté les

autres extrémités à une prise Molex 4 connecteurs, comme sur le schéma. De même, j’ai soudé les câbles

aux terminaisons du switch et reliés à la fiche 4 connecteurs. Peut-être que vous préférerez souder un

connecteur vertical sur les plots de la carte KL25Z, au lieu de souder directement (pour les échantillons de

pièces, consultez la liste des pièces dans la section LedWiz, qui utilise le type de connecteurs dont je

parle).

La raison pour laquelle j’ai soudé directement plutôt que d’utiliser ces connecteurs est dû à l’arrangement

de l’ensemble des câbles sur cette carte KL25Z particulière, il est impossible d’obtenir un arrangement

convenable afin d’obtenir des connecteurs indépendants pour le switch par rapport au propre connecteur

du capteur CCD. Le capteur CCD et le switch utilisent tous les 2 un mélange de connexions issues des

jumpers J9 et J10. Si j’avais pu connecter correctement un périphérique sur J9 et un autre sur J10, j’aurais

utilisé des prises connecteurs, mais en l’état j’aurais dû entrecroiser certaines fiches et prises pour rendre

les 2 périphériques indépendants. Je ne voulais pas 2 jeux de connecteurs, j’ai donc soudé directement à la

carte KL25Z. Vous avez toujours la possibilité de retirer la carte KL25Z du pincab sans enlever d’autres

composants, à partir du moment où tout est connecté avec des prises ; vous avez juste quelques câbles qui

pendront à ce moment.

Dans le schéma ci-dessus, j’ai placé un circuit transistor entre la carte KL25Z et la prise, et la résistance de

led côté switch. Il y a une bonne raison à cela. Le circuit transistor fonctionnera avec n’importe quel

indicateur de lumière (jusqu’à 600mA), mais la résistance de 82Ω est ajusté à la led particulière pour ce

bouton particulier. Si vous désirez opter pour un switch ou indicateur différent, la valeur de la résistance

devra probablement être ajustée en conséquence ; c’est pour cela que j’ai donc effectué un regroupement

physique de cette partie du circuit. Cela rend le switch à indicateur plus modulaire. Electriquement bien

sûr, cela ne fait aucune différence de placer le connecteur d’un côté ou de l’autre des composants.

Calibrer le lance-bille

Page 21: Le contrôleur Pinscape

Le capteur du lance-bille (peu importe le type que vous utilisez) doit être calibré avant tout, dès la

première installation. Cela permet à l’application de mesurer la zone de mouvement et de trouver la

position de repos (lorsque le lance-bille ne bouge plus), afin d’envoyer de façon précise un point zéro et

une distance de rétractation à Visual Pinball.

Les résultats du calibrage sont stockés dans une mémoire flash non-volatile de la carte KL25Z, de telle

sorte que vous ne devriez pas avoir à répéter cette procédure lorsque vous éteignez le PC ou lorsque vous

déconnectez la carte KL25Z. L’enregistrement de la mémoire flash ‘survit’ aux cycles d’alimentations et

de déconnexions. Cependant, vous devrez effectuer un nouveau calibrage, à chaque fois que vous

réinstallerez l’application dans la carte KL25Z (mises à jour incluses), car l’installation de nouvelles

applications dans la carte efface entièrement la mémoire flash. Vous devriez aussi effectuer un nouveau

calibrage pour le cas où vous enlèveriez le capteur CCD ou le lance-bille (les positions relatives bougeront

probablement un peu quand vous remettrez tout en place, c’est donc une bonne idée d’effectuer un

nouveau calibrage pour s’assurer que le point zéro est bien positionné).

La procédure de calibrage prend environ 20 secondes. Si vous avez installé un bouton de calibrage,

appuyez et maintenez-le enfoncé. Il se mettra à clignoter (tout comme la led de diagnostic sur la carte

KL25Z) pendant à peu près 2 secondes puis restera allumée fixe (Il y a un délai simplement pour éviter de

déclencher un calibrage au cas où vous appuieriez brièvement sur le bouton accidentellement). La lumière

fixe indique que le calibrage est en cours. Cela dure environ 15 secondes. Manipulez simplement le lance-

bille en tirant vers l’arrière jusqu’au bout, maintenez quelques secondes, puis relâchez progressivement

jusqu’à la position de repos. Ne le laissez pas rebondir depuis la position comprimée. Et ne le poussez pas

au-delà de sa position normale de repos. A la fin des 15 secondes, la lumière du bouton s’éteindra (la led

de diagnostic de la carte KL25Z reviendra à son état normal clignotant habituel).

Si vous n’avez pas installé de bouton de calibrage, lancez l’outil de configuration depuis Windows et

sélectionner l’option en mode de calibrage du lance-bille. La led de la carte KL25Z s’allumera

immédiatement en bleu fixe pour indiquer que le calibrage est en cours. Effectuez les mêmes

manipulations avec le lance-bille que celles expliquées dans le paragraphe précédent.

Pendant le calibrage, L’application mémorise les extrémités sur le parcours du lance-bille. Il utilise la

position la plus éloignée en avant pour déterminer le point zéro, et utilise la position la plus rétractée en

arrière pour déterminer l’amplitude totale. Cela permet ensuite d’envoyer les positions précisément

alignées avec les points de références dans le lance-bille simulé par Visual Pinball.

Configurer un pseudo bouton « Launch Ball »

Zeb de zebsboards.com a imaginé une solution intelligente pour son kit lance-bille qui permet d’utiliser le

lance-bille comme un bouton « Launch Ball » pour les tables sans lance-bille comme Medieval Madness

ou Terminator 2 : Judgment Day. Le logiciel Pinscape a emprunté l’idée de Zeb afin d’offrir la même

fonctionnalité. Cette section explique comment la configurer.

Voici comment cela fonctionne. Pour les tables sans lance-bille, quand vous tirez et relâchez le lance-bille,

le logiciel Pinscape Controller simule l’appui sur le bouton « Launch Ball ». Il se passe la même chose si

vous poussez juste un peu le lance-bille, en utilisant le piston du lance-bille comme un bouton poussoir.

Comment le logiciel sait que la table est une table sans lance-bille ? C’est la partie la plus maline. Zeb a eu

l’idée d’un périphérique à retour comme une fausse LedWiz pour signaler que l’on joue sur une telle table.

Ce faux périphérique est maintenant en standard dans l’outil de configuration du DOF – c’est celui qui se

nomme « ZB Launch Ball ». La liste des tables DOF l’active dans les tables concernées. Le Pinscape

Controller est un emulateur LedWiz, et donc si vous affectez « ZB Launch Ball » à un port du Pinscape

LedWiz, le logiciel sera capable de dire quand cette sortie sera activée.

Page 22: Le contrôleur Pinscape

Pour la paramétrer, vous devez configurer le logiciel Pinscape, Visual Pinball, et le DOF :

1. Editer le fichier de configuration config.h du Pinscape Controller, comme décrit plus haut

dans ce document. Recherchez la section intitulée « Pseudo ‘Launch Ball’ button ». Vous

trouverez la définition pour les numéros de ports de la LedWiz pour la sortie du ZB Launch

Ball, ainsi que le numéro du bouton de joystick pour l’entrée. On utilise par défaut le port

LedWiz 32, et le bouton joystick 24. Si nécessaire, changez ses numéros pour correspondre à

vos propres paramètres. Notez que le port de sortie 32 est une bonne configuration en général,

parce que ce port n’est en général attaché à aucune terminaison de sortie – il n’y a pas assez de

terminaison sur la carte KL25Z pour remplir les 32 ports. Et si vous ne câblez aucun bouton

physique à la carte KL25Z, n’importe quelle entrée de bouton fonctionnera pour un bouton

virtuel, donc le 24 est aussi bon qu’un autre. Mais si vous devez câbler des boutons

physiquement à la carte KL25Z, vous devrez changer le bouton 24 par celui auquel vous avez

physiquement relié le bouton Launch Ball, utilisez juste un numero que vous n’utilisez pas

pour un bouton réellement existant.

2. Ouvrez l’éditeur de Visual Pinball, et accédez à la boite de dialogue ‘Preferences | Keys’.

Rechercher l’item Plunger. Ouvrez la liste déroulante contenant les numéros de bouton sous

cet item. Choisissez le bouton 24 (ou le bouton que vous avez choisi au dessus si vous avez

modifié la configuration par défaut dans le fichier config.h). Notez que si vous utilisez des

entrées clavier, vous pouvez aussi laisser la touche Entrée (ou celle que vous utilisez) activée.

VP gérera sans broncher aussi bien le joystick que les touches clavier pour un même contrôle.

3. Ouvrez l’outil de configuration du DOF dans votre explorateur. (Si vous n’utilisez pas le DOF,

et bien vous devriez. Si vous n’avez pas encore effectué votre configuration mais que vous

l’avez planifiée plus tard, pensez à revenir à cette étape en temps utile).

a. Si vous n’avez pas encore ajouté le Pinscape Controller à la configuration de votre pincab,

allez à la page « My Account ». Mettez « Number of FRDM-KL25Z Devices » à 1. Cliquez

sur « Save Settings ».

b. Allez à la page « Port Assignments ». Sélectionnez l’item « FRDM-KL25Z 1 » dans la liste

déroulante des périphériques. Ouvrez la liste déroulante pour choisir « Port 32 » (ou le port de

sortie que vous avez choisi précédemment, si vous avez changé l’assignation dans le fichier

config.h). Poistionnez le à « ZB Launch Ball ». Sauvergardez à nouveau la configuration, puis

cliquez sur « Generate Config » pour créer et télécharger vos nouveaux fichiers DOF.ini.

Copier les fichiers .ini dans votre dossier DOF.

Pour tester, ouvrez une table qui n’utilise pas de lance-bille comme Medieval Madness, puis essayez

d’envoyer une bille en utilisant votre lance-bille. Notez que pour que cela fonctionne, il faut que la table

ait été configurée pour utiliser le DOF. Je ne vais pas développer ce point qui fait partie d’un autre projet

logiciel. Passez par Google ou demandez sur vpforums.org si vous avez besoin d’informations.

Modifier les tables VP pour les faire fonctionner avec le lance-bille mécanique

Certaines tables Visual Pinball actuelles fonctionnent avec un lance-bille mécanique sans configuration

supplémentaire. D’autres non. Heureusement, un peu de paramétrage peut être ajouté à la plupart des

tables avec un minimum d’effort. Ce n’est pas une science exacte, et il y a tellement de différences entre

les tables qu’il est impossible de décrire une procédure unique. Vous devrez donc adapter une procédure

générique à chacune de vos tables, cette procédure pouvant ne pas fonctionner totalement sur toutes les

tables. Et, bien sûr, vous devrez répéter cette procédure sur chacune de vos tables.

Voici un aperçu de mon approche. Visual Pinball a une gestion intégrée du lance-bille dans une classe

d’objets, qui gère le lance-bille mécanique. Quand cet objet est utilisé pour gérer l’affichage du lance-bille,

la table fonctionne directement sans configuration particulière. Mais la plupart des tables proposées ne

fonctionnent pas ainsi. A la place, elles utilisent un script et des objets personnalisés pour gérer l’affichage

du lance-bille. En général, ces scripts n’utilisent pas les entrées Joystick, et le lance-bille mécanique ne

fonctionnera pas. Cependant, ces tables possèdent généralement les objets intégrés pour la gestion du

lance-bille, qu’ils utilisent comme une aide pour les scripts. Les objets sont souvent cachés, ou bien placés

Page 23: Le contrôleur Pinscape

en dehors de la zone d’affichage, de telle sorte qu’ils ne peuvent pas être visualisés, et qu’ils n’entrent

jamais en contact avec la bille dans la simulation. Mon approche pour « réparer » ces tables consiste à

repérer l’objet lance-bille intégré et de le déplacer de telle manière qu’il soit en position pour frapper la

bille et la lancer. L’objet lance-bille intégré peut généralement être laissé caché de sorte que les visuels

personnalisés sont encore utilisés, sans fournir directement la physique de lancement.

Pour commencer à modifier une table, ouvrez-là dans l’éditeur de Visual Pinball.

Cherchez et sélectionnez l’objet intégré lance-bille, si il y en a un. La façon la plus simple d’opérer sur des

tables complexes consiste à utiliser la commande ‘Select Element’ (Ctrl-Shift-E), puis de trouver l’objet

appelé ‘plunger’ dans la liste. Si la table ne possède pas d’objet appelé ‘plunger’, vérifiez qu’il n’y ait pas

un autre objet avec un nom similaire, tel que ‘Plunger1’. Si vous ne trouvez rien, il se peut que cette table

fasse partie des rares (heureusement) tables nécessitant une configuration non décrite ici.

Vous devriez apercevoir un rectangle en surbrillance montrant où se situe le lance-bille sur le schéma de la

table. Si le lance-bille ne se trouve pas à sa place habituelle, c’est que vous êtes en présence d’une table

avec l’objet caché ou bien qui n’existe qu’à des fins de script. Cette table est conçue pour que l’objet ne

touche jamais la bille. Dans ce cas, ce que je fais tout de suite est de déplacer l’objet à sa position normale

pour qu’il puisse frapper la bille quand il sera relâché. C’est en contradiction avec les intentions de

l’auteur de la table, et peut casser leur script sur le lance-bille. Mais souvenez-vous toujours, leur script ne

fonctionne pas avec notre lance-bille mécanique, donc nous ne déclencherons pas plus leur script, de toute

façon.

Ensuite, nous devons vérifier certaines propriétés de l’objet lance-bille. Si le panneau des options n’est pas

déjà affiché sur le côté droit de la fenêtre, cliquez sur le bouton ‘Options’ dans la palette des outils à

gauche pour le faire apparaitre.

Dans le panneau des options, cochez la case ‘Enable Mechanical Plunger’. Ceci contrôle la gestion du

Joystick intégré (quand il est désactivé, VP ignore les entrées Joystick pour cet objet, nous devons donc

nous assurer qu’il est activé). De plus, mettez ‘Type’ à ‘PlungerTypeModern’, si ce n’est pas le cas, pour

le cas où nous déciderions de l’utiliser dans les visuels. (le type ‘Modern’ ressemble à un vrai lance-bille,

le type ‘Orig’ donne un style bande-dessinée). Enfin ‘Park Position’ doit être positionné à 0,16667.

Nous sommes prêts à faire des essais. Appuyez sur F5 pour lancer la table.

Si le lance-bille à l’écran suit les mouvements de votre lance-bille mécanique, essayez de démarrer une

partie et de lancer une bille. Sur certaines tables, cela fonctionnera tout de suite, et ce sera fini. Sur

d’autres, le lance-bille bougera, mais n’aura aucun effet sur la bille.

L’étape suivante, si le lance-bille ne frappe pas la bille, consiste à essayer de déplacer un peu l’objet lance-

bille. Vous pouvez soit déplacer l’objet à la souris, soit taper une nouvelle valeur Y dans le panneau des

options. Essayer de le déplacer d’environ 40 comme premier test, puis relancez la table pour voir si cela

fait une différence. Vous devrez peut-être recommencer plusieurs fois de zéro avant d’obtenir la bonne

position.

Si vous arrivez à faire réagir la bille avec le lance-bille, mais que la vitesse de lancement est trop lente ou

trop rapide, ajustez la valeur ‘Mech Strength’ dans les propriétés de l’objet lance-bille. Plus la force est

haute, plus le lancement sera rapide.

Si vous arrivez à faire fonctionner le lancement, mais que le visuel montre 2 objets lance-bille, l’un au-

dessus de l’autre, la table utilise alors son propre script pour afficher son propre visuel personnalisé pour le

lance-bille. Quand nous avons déplacé l’objet lance-bille intégré à la même position, nous avons créé un

double visuel. Le visuel personnalisé est généralement le plus authentique des 2, mais pas toujours. Si

vous préférez, le visuel personnalisé, sélectionnez à nouveau l’objet lance-bille intégré et décochez

‘Visible’ dans ses propriétés. Il restera ‘physiquement’ présent dans la simulation, mais ne sera plus

Page 24: Le contrôleur Pinscape

affiché. Le visuel personnalisé n’est souvent pas animé de façon aussi souple que le lance-bille réel, mais

vous préférerez peut-être le cacher et utilisé le visuel intégré. Dans ce cas, il faudra que vous identifiiez

l’objet personnalisé (ce qui n’est pas toujours facile) pour décocher la case ‘Visible’.

Câblage des entrées de boutons dans le flipper

Vous pouvez optionnellement utiliser le contrôleur pour relier les boutons de votre pincab (boutons de

flippers, bouton Start, etc …) à votre PC. Dans ce cas, vos boutons apparaitront dans votre PC comme des

boutons de Joystick. Visual Pinball sait gérer jusqu’à 32 boutons de joystick, et vous permet d’assigner

une fonction à chacun d’eux en utilisant la boite de dialogue ‘Keys’.

Pour câbler un bouton, connectez simplement une terminaison du switch du bouton à la masse de la carte

KL25Z (Connecteur 12 ou 14 du jumper J9), puis connectez l’autre terminaison du switch sur le

connecteur comme cela est décrit sur le schéma ci-dessous, pour le numéro de bouton choisi.

Notez que chaque bouton à une terminaison connectée à la masse de la carte KL25Z, ce qui permet de

fabriquer une chaine de masse pour connecter les boutons les uns aux autres. C’est beaucoup mieux que de

faire courir autant de câbles que de boutons jusqu’à la masse de la carte KL25Z, vous pouvez faire courir

un câble d’un bouton à l’autre, jusqu’à arriver à la masse. Vous économiserez du câble, par rapport au

nombre de boutons que vous aurez envie de mettre dans votre pincab. L’autre terminaison de chacun des

boutons sera reliée à une entrée spécifique de la carte KL25Z, il faudra donc faire courir un câble pour

chaque bouton jusqu’à la carte.

Pour tester le câblage des boutons, vous pouvez utiliser l’option ‘Gérer les contrôleurs de jeux USB’ dans

le panneau de contrôle de Windows. Double-cliquez sur l’entrée ‘Pinscape Controller’. Vous verrez

s’afficher le statut des 32 boutons. Quand vous appuierez physiquement sur un bouton de votre pincab, le

bouton de joystick correspondant devrait s’allumer dans le panneau d’affichage.

Après avoir physiquement câblé vos boutons, vous devrez les configurer dans Visual Pinball. Pour ce

faire, ouvrez VP sans charger de table, et utilisez ‘Preferences Keys’ dans le menu pour ouvrir la

fenêtre de dialogue du clavier. Chacune des fonctions (Flipper Gauche, Flipper Droit, Start, etc …)

possède une liste déroulante associée. Pour chaque bouton, repérez la fonction que vous voulez lui

assigner, cliquez sur la liste déroulante, et choisissez le numéro du bouton correspondant au connecteur de

la carte KL25Z auquel vous avez relié le bouton.

Voici les correspondances des boutons par défaut. Vous pouvez les changer, mais pour cela, il vous faudra

éditer le code source de l’application du contrôleur. Vous êtes libre de le faire puisque le projet est

OpenSource. Notez que bien que le rapport USB permet de gérer 32 boutons, nous n’en avons assigné que

24 par défaut, car le nombre de connecteurs de la carte KL25Z est limité. Si vous ne désirez pas utiliser les

fonctionnalités LedWiz, vous pouvez prendre les ports normalement destinés à l’émulation LedWiz pour

les réassigner aux entrées de boutons. Vous trouverez les instructions pour réassigner les entrées dans les

commentaires du fichier de configuration config.h sur le dépôt de mbed.org. Regardez la définition du

tableau buttonMap[].

Page 25: Le contrôleur Pinscape

Affectation des entrées boutons

Numéro

bouton

Nom

du Port

Jumper/

Pin No.

1 PTC2 J10 pin 10 2 PTB3 J10 pin 8

3 PTB2 J10 pin 6

4 PTB1 J10 pin 4

5 PTE30 J10 pin 11

6 PTE22 J10 pin 5

7 PTE5 J9 pin 15

8 PTE4 J9 pin 13

9 PEE3 J9 pin 11

10 PTE2 J9 pin 9

11 PTB11 J9 pin 7

12 PTB10 J9 pin 5

13 PTB9 J9 pin 3

14 PTB8 J9 pin 1

15 PTC12 J2 pin 1

16 PTC13 J2 pin 3

17 PTC16 J2 pin 5

18 PTC17 J2 pin 7

19 PTA16 J2 pin 9

20 PTA17 J2 pin 11

21 PTE31 J2 pin 13

22 PTD6 J2 pin 17

23 PTD7 J2 pin 19

24 PTE1 J2 pin 20

Fabriquer les pilotes de sorties LedWiz

Si vous avez acheté les pièces de ma liste d’achat pour l’étage de sortie de l’émulation de la LedWiz, vous

devriez pouvoir fabriquer un pilote de sortie pour chacun des ports qui pourra gérer à peu près tous les

périphériques que voudrez lui faire ‘avaler’. Sans vous soucier d’utiliser un relais pour contrôler les

courants forts. Le MOSFET spécifié dans ma liste d’achat peut gérer des courants de 20mA et des tensions

allant jusqu’à 55V en DC. Cela permettra de générer suffisamment de courant pour des moteurs de shaker,

des knockers, des contacteurs, voire même des bobines de flipper. C’est suffisamment rapide pour

traverser des signaux PWM, de telle sorte qu’on peut contrôler la luminosité des leds flash ou la vitesse

d’un moteur shaker. (Il n’y a pas besoin de fabriquer un ‘dual H bridge’ comme vous avez pu le lire sur les

forums à propos de la vitesse des moteurs shaker). Les tensions et les courants forts sont isolés de la carte

KL25Z (et de la carte-mère du PC) avec un optocoupleur, ce qui limite les risques qu’une surcharge de

tension traverse la protection, même si quelque chose dysfonctionnait du côté des hautes tensions. (Vous

pouvez aussi placer des fusibles en ligne sur chaque périphérique pour protéger votre alimentation externe

contre des courts-circuits ou dysfonctionnement des périphériques).

Gros avertissement : Ne reliez rien qui utiliserait du courant AC sur ce circuit. Les circuits MOSFET sont

strictement destinés pour contôler les périphériques en DC. Si vous devez relier un périphérique AC,

mettez un relais en sortie et connectez le AC avec le relais.

Page 26: Le contrôleur Pinscape

Voici un schéma de mon circuit pour les périphériques en sortie. Je vous recommande de le fabriquer sur

une carte perforée afin de correctement mettre chacun des composants à sa place. Virtuabotix a une bonne

sélection de cartes de tailles variées à des prix raisonnables. J’ai utilisé environ 10 de ces circuits sur mon

propre pincab pour piloter des périphéirques divers, certains avec beaucoup de puissance, et cela a toujours

correctement fonctionné.

Les connecteurs entrée/sortie montrés sur la puce ULN2803A sont donnés à titre d’exemple. Cette puce

possède 8 blocs identiques, arrangés entre entrées et sorties pour que les connecteurs correspondent sur les

côtés opposés de la puce. Dans ces conditions, vous pouvez donc fabriquer 8 copies du circuit ci-dessus

avec une seule puce ULN2803A. Il suffit juste de câbler chacun des circuits sur une paire séparée de

connecteurs de la puce ULN2803A.

Le « +V for load » est la charge de tension positive à adapter à votre propre charge. En supposant que vous

utilisiez le composant BUK9575-55A, Vous pouvez monter jusqu’à 55V en tension, et 20A en courant.

Vous devez insérer une diode (les 1N4007 fonctionnent dans la plupart des cas) entre les terminaisons de

charge pour toute sorte de périphérique à induction (un relais, un moteur, un contacteur, un solénoïde, un

knocker, etc …). Connectez la diode en inversant la polarité : le « trait » sur la diode doit être relié sur la

terminaison positive (+V) de votre charge.

Voici comment fonctionne le circuit. Le ULN2803A amplifie le signal provenant des connecteurs pin de la

carte KL25Z (On = +3.3V, Off = 0V) jusqu’au niveau désiré pour l’optocoupleur PC817. L’optocoupleur

déplace les commutateurs du MOSFET BUK9575-55A sur On et Off. Le MOSFET fournit la charge

actuelle commutée.

Pour des petites charges, comme celles d’une Led de 20mA (ou quelques-unes), vous pouvez directement

utiliser le câble de charge sur la sortie du ULN2803A, sans passer par l’optocoupleur et le MOSFET. Le

ULN2803A peut gérer jusqu’à 500 mA par sortie, ce qui permet de piloter des petites charges directement,

tout en étant sécurisé. Pour des charges plus importantes, utilisez la totalité du circuit comme indiqué sur

le schéma.

Voici une image de ma carte de pilotage. Vous remarquerez qu’il y a deux ULN2803A, pour 16 sorties,

mais seulement 10 opto et MOSFETs. La raison est que j’utilise directement 6 canaux depuis les

Darlington, pour les lumières de mes boutons flippers et magna save. Chaque canal de couleur sur mes

boutons de flipper possède 4 leds de 20mA (2 de chaque côté), pour un total de 80mA. C’est bien en

dessous de la limite des 500mA pour les Darlington. Les sorties MOSFET pilotent un ventilateur, moteur

Page 27: Le contrôleur Pinscape

gear (le plus gourmand dans mon système, bizarrement – il utilise 4A), 2 gyrophares type police, des

rubans leds sous le pincab, et 2 contacteurs.

Le circuit ci-dessus n’est qu’une des possibilités pour piloter des charges importantes avec la carte KL25Z.

Les constructeurs de pincab utilisent plutôt des relais à la place, parce qu’ils paraissent meilleur marché et

plus simple que les circuits MOSFET, et qu’ils peuvent supporter beaucoup de courant. Je préfère les

MOSFETs parce qu’ils ne font pas de ‘clic’, il n’y a pas d’usure mécanique, et ils peuvent gérer des

signaux PWM. Ils peuvent être moins chers que des relais en ce moment. Le mauvais côté, c’est que c’est

un petit peu plus complexe à assembler, et que les circuits MOSFETs comme celui-ci ne peuvent pas être

utilisés en AC.

Notez que si vous voulez utiliser la carte KL25Z pour contrôler des relais, vous devrez toujours au moins

utiliser les Darlington, parce que les sorties de la carte KL25Z ne peuvent même pas supporter la charge de

courant même pour une petite bobine relai. Vous pouvez piloter un relai depuis une sortie Darlington pour

autant que le courant d’activation de la bobine sur le relais soit en dessous de 500mA.

Page 28: Le contrôleur Pinscape

Répartition des connecteurs pour les ports de sortie de l’émulation LedWiz

Le schéma ci-dessous montre comment les connecteurs de sortie de la carte KL25Z sont assignés à des

numéros de port dans l’application pour l’émulation de la LedWiz. Dans la répartition des ports ci-

dessous, les ports 1-10 sont en mode PWM. Les autres ports sont seulement des commutateurs 100% On

et Off.

Répartition des connecteurs LedWiz

Vous remarquerez certainement que les numéros de port LedWiz ne sont pas distribués dans un ordre

séquentiel sur les connecteurs physiques des jumpers. J’aurais bien voulu que ce soit ainsi, mais ce n’était

pas possible de le faire et de garder les ports PWM regroupés dans un seul bloc pour le schéma de

numérotation LedWiz, ce qui semblait plus important. Les ports PWM sont spécifiquement utiles pour des

périphériques tels que les Leds qui peuvent bénéficier du contrôle de luminosité, surtout dans le cas des

Leds de type RGB. Une simple Led RGB se présente comme 3 périphériques différents pour la LedWiz,

parce que chaque couleur a besoin de sa propre sortie. Pour simplifier la configuration dans l’application

LedWiz

Port No.

KL25Z

Jumper-Pin

KL25Z

Pin Name 1 J1-2 PTA1

2 J1-4 PTA2

3 J1-6 PTD4

4 J1-8 PTA12

5 J1-10 PTA4

6 J1-12 PTA5

7 J2-2 PTA13

8 J2-4 PTD5

9 J2-6 PTD0

10 J2-10 PTD3

11 J2-8 PTD2

12 J1-14 PTC8

13 J1-16 PTC9

14 J1-1 PTC7

15 J1-3 PTC0

16 J1-5 PTC3

17 J1-7 PTC4

18 J1-9 PTC5

19 J1-11 PTC6

20 J1-13 PTC10

21 J1-15 PTC11

22 J2-18 PTE0

23

24 - -

25 - -

26 - -

27 - -

28 - -

29 - -

30 - -

31 - -

32 - -

Page 29: Le contrôleur Pinscape

côté PC, les 3 canaux de couleurs d’une Led RGB doivent être regroupés dans un bloc séquentiel de

numéros des ports. La carte KL25Z ne permet qu’à certaines connexions d’être utilisées comme sortie

PWM, et donc pour garder les ports PWM ensemble dans la numérotation LedWiz, j’ai dû disperser un

peu la numérotation LedWiz pour m’affranchir des limites de la carte KL25Z.

Vous remarquerez aussi que certains numéros de ports LedWiz ne sont pas assignés. Cela est dû au

nombre limité de connecteurs que possède la carte KL25Z, il a donc fallu économiser sur les différentes

fonctionnalités (Lance-bille, émulation LedWiz, entrées boutons). Je comprends qu’il est difficile

d’utiliser ce contrôleur comme une véritable solution de remplacement à la LedWiz à cause du nombre

limité de ports PWM existants, et donc ceux qui voudront utiliser l’émulation LedWiz l’utiliseront pour

quelques sorties additionnelles, et dans ce cas tout devrait correctement fonctionner puisqu’il y a moins de

sorties que les 32 au total. Cependant, si voulez vraiment les 32 ports de sortie au total, cela est possible à

condition de sacrifier quelques boutons en entrée.. Dans ce cas, vous pouvez prendre les terminaisons

assignées aux boutons par défaut dans le fichier de configuration, et les réassigner comme ports LedWiz.

Vous trouverez les instructions pour redistribuer les terminaisons en sorties LedWiz dans les

commentaires du fichier de configuration (config.h). Cherchez le tableau de définition LedWizPortMap[].

Limitations de l’émulation LedWiz

Je voudrais revenir sur un point que j’ai soulevé dans l’introduction : l’émulation LedWiz du contrôleur

Pinscape a ses limites. Les voici en détails :

Le mode PWM n’est disponible que sur 10 ports. (PWM signifie Pulse-With-Modulation, et est

utilisé pour le contrôle de la luminosité des lampes, ou la vitesse des moteurs). C’est une

limitation matérielle : La carte KL25Z ne peut fournir que 10 canaux PWM. J’ai relié les ports

virtuels 1 à 10 de la LedWiz aux sorties PWM. Vous pouvez réarranger les ports si vous le

désirez, en modifiant le code source. Mais vous n’aurez toujours pas plus que 10 ports PWM.

Le contrôleur accepte les commandes pour gérer le niveau d’intensité sur tous les ports, mais il

ignorera ces niveaux sur les ports non-PWM. Les ports non-PWM peuvent toujours être

basculés en On et Off, bien sûr, et sont donc parfaitement adaptés pour les périphériques tels que

les contacteurs, qui n’ont pas besoin de niveaux d’intensité. Si vous voulez connecter un moteur

shaker ou des Leds flash, utilisez l’un des ports PWM pour ce périphérique.

Le contrôleur Pinscape ne supporte aucun des modes flash lights de la LedWiz. Ces modes

permettent à l’hôte de définir des modèles clignotants pour des lumières, sans avoir à envoyer

de commandes de contrôles en continue pour les faire flasher. Ils sont utilisés par certaines

applications tierces, comme Led-Blinky. Cependant, je ne crois pas que DirectOutput

Framework utilise ce mode, donc si vous utilisez le DOF (ce que vous devriez faire), cette

limitation ne devrait pas vous gêner. Cela ne gêne pas non plus pour les périphériques tels que

contacteurs ou knockers, puisque vous ne les mettrez en mode flash.

Travaux futurs

Voici quelques idées d’améliorations futures pour le projet.

Plus de types de capteurs. Certains concepteurs de pincab sont arrivés avec des idées très intelligentes

pour les capteurs de lance-bille. J’adore particulièrement le capteur CCD, mais il a ses petits défauts,

comme son prix par exemple. Quelques idées sont intéressantes comme le LVDT (Linear Variable

Differential Transformers5, qui utilise l’inductance magnétique pour capturer la position), les

5 NdT : Transformeur Différentiel Variable Linéaire

Page 30: Le contrôleur Pinscape

encodeurs linéaires (périphériques de quadrature tels que les encodeurs magnétiques ou optiques, qui

capturent les positions de manière très précise et qui sont communément utilisés dans les

imprimantes et dans la robotique), et les encodeurs de souris optique (bien que je ne sois pas sûr que

ce soit suffisamment rapide pour être utilisé lors du mouvement de relâchement du lance-bille). Je

préfère les solutions qui n’impliquent pas de contacts mécaniques avec la tige du lance-bille et qui ne

souffrent pas de problèmes de dérive du calibrage, et à ma connaissance le seul périphérique qui

répond à ces exigences est le capteur CCD, mais d’autres solutions s’en rapprochent et peuvent avoir

des avantages par rapport au capteur CCD.

Composants externes de contrôle PWM. On pourrait détacher les fonctionnalités d’émulation

LedWiz sur un composant PWM séparé, ce qui permettrait de s’affranchir de la limite des 10 canaux

actuels, et avoir autant de canaux PWM que désiré. Cela serait relativement facile de créer un

contrôleur PWM de 48 voire 64 canaux de cette façon, ce qui pourrait rendre la carte KL25Z capable

de devenir l’unique contrôleur pour tous les périphériques dans un flipper totalement équipé. Cela

supposerait plus de matériel externe, bien sûr, mais peut-être pas tellement plus que ce qui est déjà

nécessaire pour le circuit d’amplification de puissance. Dans les faits, un contrôleur PWM prendrait

essentiellement la place des Darlington, et éliminerait le besoin de resistances de limitation de

courant séparées pour chaque optocoupleur (puisque les contrôleurs PWM sont aussi typiquement

des périphériques de courant constant), nous pourrions donc nous retrouver avec un nombre encore

plus faible de composant par canal comme nous en avons actuellement.