- Version du tutoriel
- Remerciements
- Présentation du TCTEDG
- RASPBERRY PI, GPIO, PULL-UP/PULL-DOWN, MATRICE
- Liste de course
- Electronique
- Informatique
- PyDarts
- Trucs et Astuces
- REALVNC AFFICHAGE DISTANT
- FILEZILA : TRANSFERT DE FICHIER
- Bien démarrer pyDarts trucs et astuce
- Mettre des noms par défaut
- Mettre ses propres options de jeu par défaut
- Ne pas passer au joueur suivant automatiquement
- Passer du plein écran au mode fenêtre (et inversement)
- Modifier la police d'écriture
- Utilisez un autre jeu de couleurs
- Utiliser un son personnalisé pour votre joueur
- Utiliser des images et des sons personnalisés
- Modification du fichier '/home/pi/.pydarts/pydarts.cfg"
- Et pour compléter
Version du tutoriel
Date | Auteur | Type | Version |
29/06/2020 | Rémi D. | Création | 0.0 |
30/06/2020 | Rémi D. | Modification | 1.0 |
03/07/2020 | Rémi D. | Modification | 1.1 |
08/07/2020 | Rémi D. | Modification | 1.2 |
16/07/2020 | Rémi D. | Création de la page dans MTC | 1.2b |
21/07/2020 | Rémi D. | Modification et ajout de la partie configuration de pyDart | 1.2b |
31/07/2020 | Rémi D. | Ajout de la gestion des boutons physiques + configuration de pyDart (image, font, etc) + gestion des boutons physiques + gestion des droits utilisateurs et choix de la sessions automatiquement au démarrage | 1.2c |
01/09/2020 | Rémi D. | Nettoyage du tuto principal + Création de deux nouveaux tuto (Extension GPIO et Ledstrip) | 1.3 |
24/09/2020 | Rémi D. | Nettoyage du tuto principal + Création de l’image « toute faite » | 1.4 |
Remerciements
Ça ne se fait pas toujours, mais je tiens à remercier mes trois relecteurs de pré-version du tuto « Frédéric Vicente », « Anthony Matray », « JP Renaud », « Vinz Oué » et « Dimitri Pierret ».
Mais aussi tout ceux de notre groupe Messenger dartcab !
Présentation du TCTEDG
Hormis le nom qui déboite grave, The cheapest target electronic dart game (en bon français : La cible de fléchette électronique la moins cher), c’est un petit projet qui s’est vu naître sur la page du groupe « Monte ton cab ».
Bref, le domaine de la cible de fléchette connectée est vaste, allant de 150€ à plus de 450€… Un coût non négligeable pour se faire plaisir entres amis, alors qu’une cible électronique chez Décathlon coute, pour la moins cher, 20€…
Je me suis donc penché sur « Comment t’y qu’sa peut ben fonctionner une cible ? »
Après quelques démontages de cible électronique, je me suis aperçu qu’il s’agissait « toujours » de la même chose, donc quoi de mieux pour récupérer les infos… Un Raspberry pi ! Coup de bol, j’ai des Raspberry de dispo !
Autre chance, les cibles semblent fonctionner comme fonctionne les claviers, j’entends par là, il s’agit d’une matrice et l’on pourra récupérer le tout via les GPIO du Raspberry (ne vous inquiétez pas, j’y reviens après).
Il nous faudrait quelques résistances pull-down aussi, mais qu’est-ce donc ? Pareil, lisez de nouveau « l’entre parenthèses » du dessus !
Il va nous falloir un petit peu de code, des petites lignes de commande et ça fait « bim bam boum ».
Juste avant, ce tuto s’oriente précisément sur les cibles ayant des nappes 10 + 7 (et encore plus précisément sur la cible Décathlon à 20€) ; Frédéric cité plus haut m’a fait remarquer que sur ses cibles à lui (plus ancienne que les miennes) il avait des nappes 8 + 8 ; j’ai eu beau démonter des cibles plus récentes, je ne suis pas tombé sur ce cas. Je regarderais par la suite pour le mappage de ces nappes.
Bon assez de bla bla pour remplir la première page, rentrons dans le sujet !
RASPBERRY PI, GPIO, PULL-UP/PULL-DOWN, MATRICE
RASPBERRY PI, kézako ?
TOUT DROIT SORTI DE L’IMAGINATION D’UN CONCEPTEUR DE JEUX VIDEO NOMME DAVID BRABEN ET DE SA FONDATION, RASPBERRY PI FOUNDATION, LE RASPBERRY PI EST UN NANO-ORDINATEUR DE LA TAILLE D’UNE SIMPLE CARTE DE PAIEMENT ET QUI ETAIT INITIALEMENT DESTINE A FAVORISER L’APPRENTISSAGE DE L’INFORMATIQUE CHEZ LES JEUNES. PRESENTATION D’UN CONCEPT PLUS QU’INNOVANT.
Le Raspberry Pi (RPI pour les intimes) est une curiosité technologique des plus fabuleuses. En effet, il s’agit d’un tout petit appareil faisant office d’ordinateur et ayant la forme d’une seule et simple carte mère. Que l’on puisse regrouper dans un espace aussi petit les capacités d’un ordinateur relève de l’ingéniosité et c’est précisément ce que recherchait David Braben en confectionnant le Raspberry Pi. En le souhaitant pratique à manipuler de par sa taille et son faible poids, peu cher et facile à utiliser tout en préservant une très bonne performance de l’ensemble, il désirait offrir aux plus jeunes générations la possibilité de s’initier à l’informatique de manière ludique et efficace. De plus, le fait qu’il soit livré tel quel impose à l’utilisateur de construire peu à peu son ordinateur en ajoutant au fur et à mesure le matériel adéquat pour le faire fonctionner.


Et justement, pour faire démarrer son Raspberry Pi personnel, plusieurs accessoires seront indispensables. Le plus important de tous, une carte mémoire SD ou MicroSD (4 Go ou plus de préférence) permettant d’accueillir le système d’exploitation de l’ordinateur. Sans cela, il vous sera impossible d’utiliser votre Raspberry Pi. Plusieurs systèmes d’exploitation officiels sont d’ailleurs optimisés pour les Raspberry Pi, comme Raspbian, le système d’exploitation de la fondation, ou encore Arch Linux. Un câble d’alimentation USB sera également obligatoire afin d’insuffler l’énergie électrique dont aura besoin le Mini-PC.
Afin de gagner en esthétique et de le protéger contre la poussière, un boitier dédié à l’ordinateur est par ailleurs fortement conseillé.
Côté spécifications techniques, le Raspberry est propulsé exclusivement par des processeurs ARM (ARM Cortex-A53 à 1,2 GHz pour le dernier modèle Pi 3 sorti en février 2016). Les premières versions proposaient également 256 Mo de mémoire vive mais cette dernière s’étale désormais jusqu’à 1 Go sur le dernier modèle Pi 3.
La manière d’utiliser son Raspberry Pi est extrêmement simple. Ainsi, différents ports disponibles sur le Raspberry Pi permettront de connecter du matériel indispensable pour pouvoir profiter de l’appareil. Grâce à sa connectique RCA ou HDMI, vous pourrez ainsi brancher votre nano-ordinateur directement à l’écran d’une télévision ou bien à celui d’un moniteur. La liaison HDMI sera bien entendu à privilégier car le son et la vidéo seront tous deux transportés, contrairement à une simple prise RCA.
Les ports USB du Raspberry Pi permettront quant à eux de brancher une souris ou un clavier, même si la dernière version Pi 3 propose désormais le Bluetooth 4.1 et le Wi-Fi 802.11n (!). Pour accéder à Internet, excepté le Wi-Fi sur le Pi 3, le Raspberry Pi propose un port Ethernet pour un câble RJ45. Une fois tous vos périphériques connectés, il vous suffira alors de naviguer sur votre nano-ordinateur et d’en profiter pleinement !
Le Raspberry Pi est donc un produit attirant de par son aspect « geek », très abordable, simple et rapide à utiliser.
[Merci à Aurélien de me mâcher tout le travail (https://www.fnac.com/Raspberry-Pi-qu-est-ce-que-c-est/cp31961/w-4)]
[Un peu de Wiki lecture https://fr.wikipedia.org/wiki/Raspberry_Pi]
GPIO, kézako ?
Les ports GPIO (anglais : General Purpose Input/Output, littéralement Entrée-sortie à usage général) sont des ports d’entrées-sorties très utilisés dans le monde des microcontrôleurs, en particulier dans le domaine de l’électronique embarquée, qui ont fait leur apparition au début des années 1980. Elles sont placées sur un circuit électronique afin de communiquer avec des composants électroniques et circuits externes. Il peut s’agir de détecteurs ou senseurs pour capter des données, ou encore de contrôler des commandes.
Un connecteur GPIO offre à une carte électronique la possibilité de communiquer avec d’autres circuits électroniques. Le GPIO est très présent dans les domaines de l’informatique, principalement embarquée, l’électronique, l’automatisme, la commande numérique, ou la robotique.
Dans les années 1980 il existait des cartes d’interfaces dédiées à ces ports.
Elle est présente en tout premier lieu sur les cartes comportant des microcontrôleurs, comme l’Arduino et son Atmel AVR ou des cartes proches (PCDuino) ou certaines cartes d’essai à DSP comme les STM32 Nucleo de ST Microelectronics, également compatibles Arduino, ou encore les DSP eux-mêmes comme le TMS320C6474 de Texas Instruments, intègrent des connecteurs ou des instructions spécifiques pour le GPIO. Le Raspberry Pi dispose d’un connecteur GPIO depuis sa première version, lui permettant ainsi d’être utilisé à la fois en tant qu’ordinateur personnel, et à la fois en tant que carte contrôleur pour des applications purement électroniques, à l’image de Stellaris Launchpad. [Je ne réinvente pas la roue et c’est trouvable ici : https://fr.wikipedia.org/wiki/General_Purpose_Input/Output]
PULL-UP/PULL-DOWN, kézako ?
Une résistance de rappel (en anglais pull-down resistor), ou une résistance de tirage (en anglais pull-up resistor), est une résistance dans un circuit électronique, située entre la source d’alimentation et une ligne, et qui amène délibérément cette même ligne soit à l’état bas (0 en électronique numérique) pour une résistance de rappel, soit à l’état haut (1 logique) pour une résistance de tirage. Il est important de préciser qu’il ne s’agit pas d’un type spécifique de résistance : Il s’agit d’une résistance commune. Sa place dans le circuit lui confère ce nom en raison de la fonction qu’elle remplit.
Les résistances de rappel sont normalement utilisées avec des sorties numériques à collecteur ouvert ou lorsqu’il est indésirable de laisser une ligne flottante dans un circuit. Par contre, elles augmentent la consommation énergétique du circuit.
Le niveau logique imposé par une résistance de rappel est parfois appelé niveau faible puisqu’une résistance de rappel ne peut fournir de courant. Un niveau imposé par une sortie active ou un interrupteur est appelé niveau fort. Conséquemment un niveau fort a préséance sur un niveau faible.
[Je ne réinvente pas la roue et c’est trouvable ici : https://fr.wikipedia.org/wiki/R%C3%A9sistance_de_rappel]
MATRICE, kézako ?
Bon, faisons simple, on prend notre petit Larousse et on y trouve :
« Mathématiques : Famille (αij) d’éléments d’un corps K, (i, j) ∈ { 1, …, n } × { 1, …, p}, n et p étant deux naturels, habituellement présentée sous la forme d’un tableau rectangulaire à n lignes et p colonnes [matrice de type (n, p)]. »
Piouloulou, c’est quoi tout ce charabia ?!? Alors une matrice, est en fait un tableau (comme le morpion) ; il y a des lignes et des colonnes et cela nous permets de déterminer les combinaisons pour savoir ce que l’on dit [cette phrase est vraiment tordue].
Exemple, on crée une matrice qui va nous permettre de déterminer si un utilisateur a tapé sur une lettre et de savoir, en plus, si ladite lettre en question est rouge ou blanche :
Sortie\Entrée | A | B | C |
Rouge | |||
Blanc |
Il faudra donc alimenter à tour de rôle les sorties « Rouge » et « Blanc » ; et de suivre veiller quand on récupérera cette alimentation sur les entrées. Puis on indique ce qui est touché (ex : Rouge A, Blanc C, etc).
« Mais dis donc Jamy, ça me rappelle quelque chose ça ?!? » Et si ça vous rappelle quelque chose, vous commencez à comprendre comment tout va fonctionner. Et pour ceux qui n’ont pas le déclic, j’ai ni plus ni moins expliqué comment fonctionne une cible de fléchette !
Liste de course
- Un ordinateur (pour installer Win32DiskImager)
- Une carte Mini SD pour pouvoir mettre l’image « préfaite » minimum 8 Go
- Un Raspberry Pi 3 Modèle B (mais un modèle B+, A, A+ ou Zero peut faire l’affaire et même une autre version de Rapsberry /!\ au nombre de GPIO /!\ trouvable sur Kubii.fr, Amazon, etc
https://www.amazon.fr/gp/product/B07BDR5PDW/ref=ppx_od_dt_b_asin_title_s00?ie=UTF8&psc=1) - Un écran pour le Raspberry
- Des hauts parleurs pour le Raspberry (du moins si vous voulez du son et si votre écran n’en a pas)
- Un clavier/souris ou un mini clavier combiné souris (exemple : https://www.amazon.fr/Rii-Nouveaut%C3%A9-Wireless-Fran%C3%A7ais-Ergonomique/dp/B07CCH6X56/ref=sr_1_3?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1&keywords=rii&qid=1593417687&sr=8-3)
- Des cartes de prototypage (moi j’ai ça en stock : https://www.amazon.fr/gp/product/B07R2394LY/ref=ppx_yo_dt_b_asin_title_o05_s00?ie=UTF8&psc=1)
- Des connecteurs FFC / FPC (moi j’ai eu du mal à en trouver, donc j’ai pris ça et j’ai bidouillé, mais vous pouvez aussi récupérer ceux soudé sur la carte électronique de la cible /!\ SAUF SI VOUS RECUPEREZ CEUX D’ORIGINE SUR LA CARTE ELECTRONIQUE /!\ : https://www.amazon.fr/gp/product/B01M5BHLZO/ref=ppx_yo_dt_b_asin_title_o07_s00?ie=UTF8&psc=1)
- Des résistances de 560 Ohms pour les Pull-down (https://www.amazon.fr/gp/product/B07ZTS1541/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&psc=1)
- Des breadboards avec cavalier et fil de cuivre coloré (moi j’ai ça en stock https://www.amazon.fr/gp/product/B07NVL88DW/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)
- Une cible de fléchette électronique (https://www.decathlon.fr/p/cible-de-flechettes-electronique-ed110/_/R-p-12793?mc=8295138 – https://www.amazon.fr/gp/product/B07TNHHVHM/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1)
- Un fer à souder
- Ou alors Joffrey Verhaeghe réalise des cartes de communication entre les cibles en nappe (7*10, donc comme la Décathlon) à 10 €, il suffit d’avoir des fils Dupont. Si intéressé contactez le sur Messenger ou via le groupe Facebook MonteTonCab :

Electronique
Si je ne vous ai pas encore perdu, alors c’est parfait ! On va enfin attaquer les choses sérieuses !
Cible électronique
Pour pouvoir récupérer les différents événements survenus sur la cible, il faut pouvoir accéder aux nappes.
Démonter l’arrière de la cible, plus précisément là où se trouve l’afficheur électronique et le compartiment à pile et/ou l’alimentation.
Dans le cas de la cible Décathlon à 20€, une fois démonté vous devriez voir ceci :

Sur la carte électronique (ici la partie marron), vous devriez repérer là où sont connectées les nappes de la cible. Déconnectées les délicatement, puis au choix, dessouder leurs connecteurs de la carte pour les réutiliser plus tard ou non. La carte électronique reste réutilisable en l’état, dans le cas d’un non dessoudage, en reconnectant simplement les nappes.
La manipulation faite, vous voilà avec vos deux nappes.

Coupez, percez l’arrière du plastique dur du compartiment, où se situe la carte électronique, pour pouvoir libérer et réutiliser les nappes.
ATTENTION de ne pas couper le plastique dur du derrière de la cible, cela pourrait altérer son fonctionnement !
ATTENTION aussi de ne pas détériorer les nappes ! On peut réparer une nappe, mais c’est long, minutieux et bien content quand on n’a pas à le faire !
ATTENTION il existe un ensemble de nappe différente (4+16, 7+10, 7+12, 8+8, 8+9, 8+10, etc). La nappe contenant le moins de fils est la nappe de sortie, l’autre en toute logique est l’entrée. Reste le cas de la 8+8, il faut trouver au voltmètre la nappe de sortie, qui est la seule alimentée sans AUCUN appui sur le zone de la cible. Le Tuto est lui fait avec une nappe 7+10 qui semble plus courante chez les cibles récentes…
Liaison entre la cible et le Raspberry
Maintenant que notre cible est prête, passons à la connexion entre cette dernière et le Raspberry. Si vous vous rappelez de la carte électronique de la cible, les nappes sont connectées à la carte via des connecteurs FFC / FPC et elle envoie de ce fait les informations à la carte.
« Mais dit donc Jamy, j’ai deux nappes, mais à quoi elles servent ? Comment elle fait la carte pour comprendre quelle partie est touchée ? »
Bon petit retour sur notre cible de fléchette…

Voici donc une cible de fléchette, elle est constitué de :
- Zone compte triple
- Zone compte double
- Zone compte simple
- Zone compte Bulleyes
- Zone compte double Bulleyes
La cible est numérotée de 1 à 20, la zone « Bulleyes » compte elle pour 25 et en toute logique, la zone « Double Bulleyes » compte pour 50.
Pour aller encore plus dans les détails, il y a 40 zones à valeur simple, 20 zones à valeur double, 20 zone à valeur triple, une zone « Bulleyes » et une zone « double Bulleyes » ; ce qui fait en tout 82 zones de valeur.
Bon comptons le nombre de piste sur nos nappes, 10 pistes sur une et 7 pistes sur l’autre ; ce qui fait en tout 17 pistes ! Mince, j’ai dû me tromper…
Ah, mais je vous ai parlé de matrice au début, non ? Alors détaillons plus la cible !

La détection des fléchettes se fait via les deux nappes (bon je l’ai déjà dit, mais on ne sait jamais). La cible est divisée en deux partie (sauf particularité du Bulleyes et double Bulleyes qui sont rattachées à la zone 11-12 et 14-9) pour la détection des valeurs ; il y a les zones 14-9-DoubleBulleyes, 11-12-Bulleyes, 8-5, 16-20, 7-1, 19-18, 3-4, 17-13, 2-6 et 15-10.
Il y a donc 10 zones, traduire en 10 pistes ; pile-poil le même nombre qu’une des deux nappes, étonnant hein !

Intéressons-nous maintenant au multiplicateur de chaque zone ; les multiplicateurs sont : « Simple », « Double », « Triple » et « Bull ».
Si on compte de nouveau notre cible on obtient 7 multiplicateurs, traduire en 7 pistes ; pile-poil le même nombre qu’une des deux nappes, étonnant de nouveau hein !
Ce qui nous donne notre matrice (« Sup » étant la partie supérieure du découpage de la cible, « Inf » en toute logique l’inverse) :
SORTIE\ENTREE | 9 14 DoubleBulleyes | 12 11 Bulleyes | 5 8 | 20 16 | 7 1 | 19 18 | 3 4 | 17 13 | 2 6 | 10 15 |
Triple_Sup | Triple 9 | Triple 12 | Triple 5 | Triple 20 | Triple 7 | Triple 19 | Triple 3 | Triple 17 | Triple 2 | Triple 10 |
Double_Sup | Double 9 | Double 12 | Double 5 | Double 20 | Double 7 | Double 19 | Double 3 | Double 17 | Double 2 | Double 10 |
Simple_Sup | Simple 9 | Simple 12 | Simple 5 | Simple 20 | Simple 7 | Simple 19 | Simple 3 | Simple 17 | Simple 2 | Simple 10 |
Bull | Double Bull | Bull | ||||||||
Simple_Inf | Simple 14 | Simple 11 | Simple 8 | Simple 16 | Simple 1 | Simple 18 | Simple 4 | Simple 13 | Simple 6 | Simple 15 |
Double_Inf | Double 14 | Double 11 | Double 8 | Double 16 | Double 1 | Double 18 | Double 4 | Double 13 | Double 6 | Double 15 |
Triple_Inf | Triple 14 | Triple 11 | Triple 8 | Triple 16 | Triple 1 | Triple 18 | Triple 4 | Triple 13 | Triple 6 | Triple 15 |
On sait maintenant quels est la valeur et son multiplicateur à l’endroit où la fléchette arrive !
« Dis donc Jamy, on a compris comment fonctionne la cible, on a obtenu notre matrice, maintenant on met comment les nappes sur le Raspberry ?? »
Alors pour le Raspberry, il faut que l’on repère les fameuses « pin GPIO », pour un Raspberry Pi 3 B, voici où elles sont :

On y trouve des pins GND (masse), des pins 5V, des pins 3.3V et des pins GPIO avec certaines ayant double utilité. On aura besoin d’une pin GND et de 17 pins GPIO.
Les numéros correspondent au numéro programmé dans le Raspberry (en couleur, fond orange) et non pas leur placement sur la carte (en fond gris) ; moi je me suis servie de :
Type | Nom | Numéro | Couleur |
SORTIE | PIN_TRIPPLE_INF | 2 | Jaune |
SORTIE | PIN_DOUBLE_ INF | 3 | Vert |
SORTIE | PIN_SINGLE_ INF | 4 | Bleu |
SORTIE | PIN_BULL | 17 | Violet |
SORTIE | PIN_SINGLE_SUP | 27 | Gris |
SORTIE | PIN_DOUBLE_SUP | 22 | Blanc |
SORTIE | PIN_TRIPPLE_SUP | 10 | Noir |
ENTREE | PIN_9_14_B | 9 | Marron |
ENTREE | PIN_11_12_SB | 11 | Rouge |
ENTREE | PIN_8_5 | 5 | Orange |
ENTREE | PIN_16_20 | 6 | Jaune |
ENTREE | PIN_15_10 | 13 | Vert |
ENTREE | PIN_2_6 | 19 | Bleu |
ENTREE | PIN_17_13 | 26 | Violet |
ENTREE | PIN_3_4 | 18 | Gris |
ENTREE | PIN_19_18 | 23 | Blanc |
ENTREE | PIN_7_1 | 24 | Noir |
MASSE | GND | 39 en fond gris | noir |
« Dis donc Jamy, on a compris comment fonctionne la cible, on a obtenu notre matrice, on connait les pins que l’on va utiliser, mais tu n’as toujours pas dit comment on met les nappes sur le Raspberry ?? »
Alors doucement encore un peu, on a effectivement vu la cible, vu les pins sur le Raspberry, voyons maintenant schématiquement ce que l’on veut :

Bon ce n’est pas jolie, mais c’est ce que l’on veut en final !
Bon, mettez votre plus beau fer à souder à chauffer, il va falloir bosser. Pour nos deux nappes, on aura besoin de :
- 2 plaques de prototypage (ou des breadboards)
- 17 connecteurs mâles

- 10 résistances de 560 ohms
- Soit les 2 connecteurs d’origine des nappes Soit les connecteurs FFC/FPC qu’il faudra recouper délicatement pour obtenir un connecteur 7 et 10 broches (pour info, les connecteurs 8 broches ne gêne pas pour les nappes 7 fils)
- Des fils de cuivres de couleur Mâle/ Mâle, Femelle/Mâle et Femelle / Femelle

- Des petits fils de cuivre OU le surplus des pates des resistances pour faire les liaison sur les cartes de prototypage
- Un voltmètre en position test de continuité pour vérifier les soudures
Nous allons devoir réaliser les deux cartes de liaison entre les nappes et le Raspberry. Il faudra être méticuleux et patient car ça peut être long à faire.
Pour dans toute la partie de réalisation il est important de faire attention au sens des nappes, pour se faire, délicatement avec votre ongle repérez où se situe le « début du rouleau de scotch », une fois repéré le « début du rouleau », le côté conducteur de la nappe est de l’autre côté.

Si on regarde de plus près la nappe on remarque le « début du rouleau de scotch » au niveau du cercle rouge et d’un seul côté de la nappe

Le côté « bombé » du connecteur doit aller sur la face conductrice de la nappe
Connexion entre la nappe et les sorties
Commençons par la carte qui s’occupera des sorties.
Elle recevra la nappe 7 fils, il suffit de souder le connecteur de nappe (en faisant attention au sens du connecteur) avec les 7 connecteurs mâles et de les relier entre eux avec des petits brins de fils (ou directement de souder les connecteurs mâles aux pattes du connecteur de nappe, mais attention à la fragilité).

Schéma ultra simplifié

Résultat final avec carte de prototypage (on distingue le « côté plat » du connecteur de nappe) (ATTENTION j’ai soudé un connecteurs 8 fils pour ma nappe 7 fils, une fois connectée la nappe ne bouge pas)

Connexion entre la nappe et les entrées
Cette carte est un peu plus technique, il faut en plus souder des résistances pull-down pour être sûr de bien détecter quand il y a eu une zone de touchée.

Schéma ultra simplifié
Il faut donc, en plus de vérifier le sens du connecteur et de souder les connecteurs mâles, ajouter les résistances reliées à la masse et prévoir un connecteur mâle pour les relier à la masse (GND).
Bien que les résistances ne soient pas polarisé, il est recommandé de mettre les bagues (dorées ou argentées) dans le même sens, c’est plus facile pour lire leurs valeurs.

Résultat final avec carte de prototypage (ATTENTION j’ai soudé deux connecteurs 8 fils pour ma nappe 10 fils, une fois connectée la nappe ne bouge pas)

Si vous faites attention au photo, vous remarquerez que les connecteurs des nappes sont en « miroir ». Les nappes ont bien souvent leur côté conducteur l’une face à l’autre.
J’ai aussi utilisé une couleur unique par broche et par carte, c’est plus facile pour se repérer.
Vous pouvez vérifier vos soudures avec un voltmètre en position « test de continuité » et débrancher vos fers à souder, ils ont bien le droit au repos maintenant.

Vous pouvez maintenant connecter les nappes sur leur carte respective et brancher chaque pin sur le Raspberry.
Ajout des boutons physiques
/!\ POUR L’UTILISATION DE BOUTON PHYSIQUE /!\ Cela dépend énormément des nappes utilisées ! Dans mon exemple les nappes utilisent 17 pins, il reste donc 7 pins utilisable pour les boutons physique.

Il faudra noter quelle(s) pin(s) est relié au(x) bouton(x).
Les boutons ont comme fonction :
Action du bouton | Description |
PIN_UP | Flèche du haut En mode édition de nom : valide la lettre |
PIN_DOWN | Flèche du bas En mode édition de nom : efface la lettre |
PIN_LEFT | Flèche gauche En mode édition de nom : permet de faire défiler les lettres |
PIN_RIGHT | Flèche droite En mode édition de nom : permet de faire défiler les lettres |
PIN_PLUS | Bouton ‘+’ (choix joueur) |
PIN_MINUS | Bouton ‘-‘ (choix joueur) |
PIN_VALIDATE | Validation En mode édition de nom : valide le nom du joueur |
PIN_CANCEL | Echap |
PIN_NEXTPLAYER | Joueur suivant |
PIN_BACK | Revenir à la manche d’avant |
PIN_GAMEBUTTON | Quitter la partie |
PIN_VOLUME_UP | Augmenter le son |
PIN_VOLUME_DOWN | Diminuer le son |
PIN_VOLUME_MUTE | Couper le son (mute) |
PIN_CPTPLAYER | DEPUIS v2.2 : Permet d’indiquer que le joueur est un « ordinateur » |
PIN_DEMOLED | Lance la démo pour les ledstrip (un ledstrip doit être configuré) |
Informatique
Bon, la partie électronique finie, passons aux choses sérieuses !
Préparation de la carte mini SD
Il va falloir télécharger le logiciel nous permettant de formater et de « faire » le nécessaire pour installer l’image toute faite du Raspberry, alors allons télécharger « Win32DiskImager » ici : https://sourceforge.net/projects/win32diskimager/

Je ne détaille pas comment installer Win32 Disk Imager (suivant, suivant, suivant, terminer).
Après avoir fini l’installation, il va nous falloir le plus important, l’image toute faite pour Raspydarts ! Téléchargez la ici:
Nous allons maintenant assembler le tout pour obtenir notre carte mini SD pour le Raspberry, rien de plus simple, exécuter tout d’abord le logiciel Win 32 Disk Imager :

Indiquer l’emplacement de l’image toute faite via le bouton :

Périphérique désigne l’emplacement de votre carte mini SD
Si tout est bon, il suffit de cliquer sur « Ecrire », de valider le message d’avertissement (bah oui on va écrire et formater la carte mini SD, donc les données s’il y a dessus on leur dit au revoir) et on attend !

Et voilà, l’écriture est finie !

PyDarts
pyDarts est un logiciel fonctionnant sur Linux/Windows, il a pour but de créer une cible connectée en utilisant la liaison sérié présente sur ce dernier, en soudant directement sur la carte électronique de la cible électronique, puis via l’USB de se brancher sur n’importe quel ordinateur.
Pour ma part, je trouve que cela est plutôt complexe et que l’on ne veut pas tous se connecter à un ordinateur portable ou ordinateur fixe ; cela peut-être bien dans le cas de la réutilisation de l’informatique présente dans un PinCab ou un PC fixe proche, mais ne va pas dans le sens de la mobilité comme l’offre VDarts par exemple.
J’ai donc réalisé le développement moi-même, j’insiste sur cela, car « poilou », l’un des développeurs, n’est pas responsable du code pour la partie Raspberry et cela ne fonctionne que via mes explications (donc il ne sait pas comment j’ai implémenté cela). Je lui ai fournis mon code, mais je ne sais pas s’il va le laisser comme cela, ou tout refaire dans une prochaine version de pyDarts (et n’étant pas développeur Python, il existe surement un moyen encore mieux).
Ceci fait, il va falloir paramétrer pyDarts pour qu’il communique avec notre cible.
Si tout s’est bien passé, pyDarts devrait démarrer !


Place maintenant à la configuration… et au plaisir !

Il va falloir indiquer les pins de sorties, puis les pins d’entrée et enfin les « options » que l’on veut ensuite.

Si vous avez suivie ce tuto, alors pour les pins de sorties il faudra faire :
2 – entrée – 3 – entrée – 4 – entrée – 17 – entrée – 27 – entrée – 22 – entrée – 10 – entrée – espace (espace sert à passer la dernière pin pour les sorties car ici nous en avons 7)

Puis pour les pins d’entrée il faudra faire :
9 – entrée – 11 – entrée – 5 – entrée – 6 – entrée – 13 – entrée – 19 – entrée – 26 – entrée – 18 – entrée – 23 – entrée – 24 – entrée – espace – espace – espace – espace – espace – espace (espace sert à passer les dernières pins pour les entrées car ici nous en avons 10)

A la demande « STRIP_LED
» faite espace (ou rendez-vous sur le tuto https://montetoncab.fr/tctedg-ou-the-cheapest-target-electronic-dart-game-ou-raspydarts-ajout-ledstrip/)

A la demande « EXTENDED_GPIO
» faite espace (ou rendez-vous sur le tuto https://montetoncab.fr/tctedg-ou-the-cheapest-target-electronic-dart-game-ou-raspydarts-ajout-extension-gpio/)
Enfin au différente demande des « PIN_ » indiquez les numéros des pins (fond orange) ou alors appuyez sur espace pour passer les demandes.
Une fois ceci fait, vous arrivez sur le calibrage de la cible :

Il suffit d’appuyer sur les zones demandées par pyDarts (elles doivent toutes fonctionner et c’est vérifiable avec le petit programme de test précédemment fourni)







Place au jeux !

/!\ Pour revenir au bureau du Raspberry, il faudra appuyer sur la touche « F12
» car la touche « Echap
» éteindra le Raspberry /!\
Il ne reste plus qu’à choisir ce sur l’on veut (exemple si « Partie simple » donc touche F1)

Pour donner un nom aux joueurs il suffit d’appuyer sur le « F » correspondant.
Si vous vous servez que des boutons physique : le bouton « Flèche de droite » pour changer le nom du joueur; on fait défiler les lettres avec les boutons « Flèche de droite ou de gauche » on valide la lettre avec le bouton « Flèche du haut » et on efface la lettre avec le bouton « Flèche du bas ». On valide le nom du joueur avec le bouton « Validate ».




Et voilà, maintenant on peut jouer tranquillement !
/!\ Pour revenir au bureau du Raspberry, il faudra appuyer sur la touche « F12
» car la touche « Echap
» éteindra le Raspberry /!\
/!\ Il semblerait que la sortie analogique des Raspberry pose problème, il est donc recommandé d’obtenir le son via le HDMI (et donc un écran ayant des haut parleurs ou alors un adaptateur HDMI vers HDMI/Audio ou équivalent) /!\
Trucs et Astuces
Tout d’abord, une fois sur la page d’accueil (là ou on propose une nouvelle partie ou de quitter) on appuie sur F12. Une fois sur le bureau, on amène la souris sur le bord supérieur droit, la barre de tâche doit apparaître et on va récupérer l’adresse IP (on le note dans un coin, ça nous sera utile) en mettant notre souris sur ce logo :

REALVNC AFFICHAGE DISTANT
« Dis donc Jamy, à quoi ça peut bien servir ??? »
VNC, c’est simplement le fait de pouvoir se connecter à distance pour éviter d’être à côté du Raspberry mais voir son bureau en étant tranquillement dans son bureau (tordue ma phrase), mais une image vaut mille mots :

Pour faire pareil que moi, il suffit de se rendre sur le site de RealVNC Viewer (https://www.realvnc.com/fr/connect/download/viewer/windows/) de télécharger et d’installer la version pour Windows

Une fois RealVNC Viewer d’exécuté, vous vous retrouvez face à cette fenêtre, il suffit d’insérer l’adresse IP obtenue avant :

Il nous demande ici nos identifiants qui sont « pi
» et mot de passe « Montetoncab
«
On valide et vous voilà sur le bureau de votre Raspberry Pi !

FILEZILA : TRANSFERT DE FICHIER
Il peut être utile d’installer Filezila sur son ordinateur, par exemple pour envoyer ses propres images, ses sons, etc. Rien de compliqué, on se rend sur le site de FileZila et on télécharge : https://filezilla-project.org/

Et on se retrouve devant cette interface :

On va renseigner ce qu’il nous demande (donc comme pour RealVNC Viewer, en fonction de l’adresse IP que l’on a sur notre Raspberry) !

On indique le port 22, ce qui correspond au port SSH.

Une fois connecté, on peut voir sur la gauche l’arborescence de notre ordinateur et à droite l’arborescence du Raspberry Pi.
Bien démarrer pyDarts trucs et astuce
Mettre des noms par défaut
Pour avoir des noms préinscrit pour vos partie, il suffit de modifier le fichier '/pydarts/raspydart.sh'
et d’y indiquer '--localplayers='
avec les noms voulu, comme ceci :

Mettre ses propres options de jeu par défaut
Par exemple, si la plupart du temps vous préférez jouer au Ho_One en commançant à 501 à la place de 301, et que vous préférez le jouez en 20 tours au lieu de 10, avec l’option “Double In” activée, écrivez simplement dans votre fichier pydarts.cfg
:
[Ho_One]
startingat:501
max_round:30
double_in:True
split_bull:False
etc...
Ne pas passer au joueur suivant automatiquement
Pour ne pas passer automatiquement au joueur suivant, direction le fichier config (/home/pi/.pydarts/pydarts.cfg
) et modifier la valeur solo
en la mettant à 0
. De base il est à 2000
(ce qui correspond à 2 secondes)
Passer du plein écran au mode fenêtre (et inversement)
Dans tous les menus et en jeu, utilisez la touche “f” ou double-cliquez pour échanger entre le mode plein écran et le mode fenêtré. C’est tout !
Modifier la police d’écriture
Il est possible de modifier la police d’écriture de pyDarts. Pour cela, une fois que vous disposez de la police d’écriture voulue (il y en a plein par exemple dans le dossier C:\Windows\Fonts
), rendez-vous dans le dossier ‘pydarts/fonts
‘ et déposer le fichier .ttf (en le renommant ‘MaPolice.ttf’ sans les ‘) dans ce répertoire. Au redémarrage de pyDarts, la police d’écriture sera prose en compte.
Utilisez un autre jeu de couleurs
Si le jeu de couleur par défaut ne corresponds pas à vos goûts, vous pouvez être intéressés par le changer. Pour faire ça, utilisez l’option en ligne de commande --colorset=nom_du_colorset
à la place du jeu de couleur par défaut, qui est le “clear”. (--colorset=clear
). Vous pouvez ajouter vos propres jeux de couleurs en modifiant le fichier “include/ColorSets.py
” et en ajoutant les vôtres.
/!\ La syntaxe de ce fichier et python et peut, en cas d’erreur, rendre votre jeu non fonctionnel !
Utiliser un son personnalisé pour votre joueur
Vous pouvez avoir un son personnalisé qui est joué quand c’est à votre tour de jouer… Trop bien, non? Pour faire ça, créez simplement un répertoire nommé “sounds dans votre répertoire /home/pi/.pydarts. Mettez dans ce répertoire un fichier son au format OGG VORBIS (”.ogg“), nommé comme votre joueur. Il sera utilisé pour appeler votre joueur à chaque tour et en cas de victoire !
Utiliser des images et des sons personnalisés
Vous pouvez remplacer les sons et images pyDarts par les vôtres, dans avoir a remplacer les fichiers originaux, et sans changer le code ! Pour faire ça, créez un répertoire nommé “sounds” et/ou “images” dans votre répertoire /home/pi/.pydarts. Déposez ici vos images avec le même nom et la même extension que les images originales, elles vont être utilisées automatiquement par le logiciel à la place de celles d’origine.
Modification du fichier ‘/home/pi/.pydarts/pydarts.cfg »
Le fichier de configuration de pydarts renferme plusieurs options (fullscreen, chemin http, etc), pour activer des options, pensez à retirer le #
en début de ligne.
Exemple : pour activer le fullscreen, il faut enlever le #
au début de la ligne ‘fullscreen
‘ est mettre ‘= 1
‘ = fullscreen = 1
Amusez-vous bien !
Et pour compléter
Ajouter des GPIO pour plus de boutons
Ajouter des Ledstrip pour plus de lumière
19 Responses
bonjour, est-ce que le logiciel Fonctionne sous autre chose q’un rpi 3, style banana pi m5 ou odroid c4 ?
?
Bonjour, tout d’abord je remercie pleinement les créateurs de ce tuto plus que très bien fait et vous souhaite une bonne année 2022.
Aujourd’hui, j’ai reçu toutes les composantes nécessaire à la réalisation de ce projet mais je n’ai pas d’alimentation déportée de 5v 10A.
C’est pourquoi, j’aurais voulu savoir si le port qu’il y a sur le raspberry pi 3a+ conviendra avec une alimentation 5v 2A (chargeur de smartphones)?
Étant ma première expérience en électronique, j’ai peur de griller les composantes avant même de les avoir utilisées.
Bonne journée à tous.
Hello !
Alors le port présent sur le Raspberry Pi accepte les alimentations officielles en 5V – 3A, donc oui, un 5V – 2A fonctionnera. Reste à savoir si cela sera suffisant pour alimenter le tout (sinon tu vas avoir un petit éclair jaune en haut à droite).
Si tu veux plus de renseignement, tu peux nous rejoindre soit sur le groupe Facebook Montetoncab soit sur le groupe Facebook RaspyDarts. Regarde aussi le site du projet, tu trouveras pas mal d’info : https://raspydarts.wordpress.com/
Bonne journée à toi !
Merci pour l’info, j’ai déjà rejoint les deux groupes, je poserai mes prochaine questions sur ceux ci. 😁
Excellent développement !!! Mais je ne connais pas le français. Comment puis-je traduire l’interface dans une autre langue? Pouvez-vous m’envoyer une liste de phrases et je traduirai en russe et en anglais?
Hello,
English language is already available in settings (this is a rewrite of pydarts). For the Russian language, we must see if the Cyrillic alphabet is not a problem.
Regards
Salut Rémi je viens de trouver le ton récapitulatif sur Facebook j’ai apparemment toutes les réponses, je m’y plonge de ce pas héhé.
merci
Bonsoir Rémi
J’ai branché ta carte + celle de Joffrey et paramétrer la cible décathlon 20€(avec un peu de mal les valeurs des pins entées/sorties sont différentes de ton tuto ) .
Quelques questions :comment rentrer dans le fichier config et le modifier, pas compris..
J’ai installé filezilla je vois bien mon Raspberry, mais impossible de transférer quoique que ce soit.
Messages d’erreur:
(Erreur : local: unable to open C:\pydarts.cfg
Erreur : Erreur critique lors du transfert du fichier)
Faut il y accéder par la consol du Raspberry si oui, comment.
J’ai installé Vnc Viewer nikel.
Et dernière question :j’ai paramétré pour l’instant avec le clavier/souris en sautant (échap) l’assignation des boutons
Et des Led.
Faudra-t-il refaire tout la config de zéro pour les paramétrer plus tard .
Par avance merci
Bonsoir Remy,
Je possède un minidard cpu hs et la matrice cible est différente peut on rentrer une autre matrice.
cdt jcd
Hello !
As-tu démonté ta cible pour voir le type de nappe ?
Avec le tuto, tu peux faire n’importe quel type de nappe.
Je reste à ta disposition si tu as des questions ! 😉
Bonjour Remy,
Voila c ‘est un limande aussi avec 20 points.
les contacts sont sur deux faces celle de face divise celle-ci en 4 zone et pas 2 comme le tuto.
Je suis entrain de repérer l’autre face.
Merci de ta réponse .
Je viens de définir la matrice elle est de 4×16.
La question est comment la modifier ou la rentrer dans le programme ci c est possible.
merci d avance.
bonjour Arlette je possede aussi une 4*16 et sa fonctionne parfaitement avec le logiciel par contre tu dois te créer la petite carte toi même car celle que remi propose c’est que pour la cible décathlon apres il suffi juste de te brancher sur les port gpio du raspberry et de suivre le tuto.
a défaut de me faire un pincab durant le confinement , je me suis dit je vais essayé de me faire un dartscab .
je tiens franchement a félicité remy D ainsi que toutes les personnes qui ont passer du temps pour faire ce tuto il est juste GENIAL!!!!!!!!!!! bravo a l equipe de Montetoncab
Merci pour ce super tuto !
[…] DARTSCAB […]
[…] DARTSCAB […]
[…] DARTSCAB […]
Tout simplement génial ! MERCI