TCTEDG (ou The Cheapest Target Electronic Dart Game) ou RaspyDarts

TCTEDG (ou The Cheapest Target Electronic Dart Game) ou RaspyDarts

Rémi Delcelier 17 juillet 2020
Print Friendly, PDF & Email

Version du tutoriel

DateAuteurTypeVersion
29/06/2020Rémi D.Création0.0
30/06/2020Rémi D.Modification1.0
03/07/2020Rémi D.Modification1.1
08/07/2020Rémi D.Modification1.2
16/07/2020Rémi D.Création de la page dans MTC1.2b
21/07/2020Rémi D.Modification et ajout de la partie configuration de pyDart1.2b
31/07/2020Ré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émarrage1.2c

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 ».

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 LinuxUn 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, …, } × { 1, …, p}, et étant deux naturels, habituellement présentée sous la forme d’un tableau rectangulaire à lignes et 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éeABC
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

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\ENTREE9
14 DoubleBulleyes
12 11 Bulleyes5 820 167 119 183 417 132 610 15
Triple_SupTriple 9Triple 12Triple 5Triple 20Triple 7Triple 19Triple 3Triple 17Triple 2Triple 10
Double_SupDouble 9Double 12Double 5Double 20Double 7Double 19Double 3Double 17Double 2Double 10
Simple_SupSimple 9Simple 12Simple 5Simple 20Simple 7Simple 19Simple 3Simple 17Simple 2Simple 10
BullDouble BullBull        
Simple_InfSimple 14Simple 11Simple 8Simple 16Simple 1Simple 18Simple 4Simple 13Simple 6Simple 15
Double_InfDouble 14Double 11Double 8Double 16Double 1Double 18Double 4Double 13Double 6Double 15
Triple_InfTriple 14Triple 11Triple 8Triple 16Triple 1Triple 18Triple 4Triple 13Triple 6Triple 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 :

TypeNomNuméroCouleur
SORTIEPIN_TRIPPLE_INF2Jaune
SORTIEPIN_DOUBLE_ INF3Vert
SORTIEPIN_SINGLE_ INF4Bleu
SORTIEPIN_BULL17Violet
SORTIEPIN_SINGLE_SUP27Gris
SORTIEPIN_DOUBLE_SUP22Blanc
SORTIEPIN_TRIPPLE_SUP10Noir
ENTREEPIN_9_14_B9Marron
ENTREEPIN_11_12_SB11Rouge
ENTREEPIN_8_55Orange
ENTREEPIN_16_206Jaune
ENTREEPIN_15_1013Vert
ENTREEPIN_2_619Bleu
ENTREEPIN_17_1326Violet
ENTREEPIN_3_418Gris
ENTREEPIN_19_1823Blanc
ENTREEPIN_7_124Noir
MASSEGND39 en fond grisnoir

« 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 indiquer sur quelle pin est relié le bouton (entendra par là de remplacer la valeur ‘False’ par le numéro de la pin dans le fichier de test, plus bas dans le tuto).
Les boutons ont comme fonction :

PIN_NEXTPLAYERPasser au joueur suivant
PIN_BACKUPBUTTONRevenir à la manche précédente
PIN_VALIDATEValider / touche Entrée
PIN_CANCELAnnuler / touche Echap
PIN_UPFlèche du haut
PIN_DOWNFlèche du bas
PIN_PLUSMoins de joueur (menu nombre de joueur)
PIN_MINUSPlus de joueur (menu nombre de joueur)

pyDarts, réclame des boutons d’actions, il suffira d’appuyer sur la touche ‘Espace’ pour passer la demande des 4 boutons de services.

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’OS 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’OS pour le Raspberry ! Il se nommait « Raspbian » mais il a été renommé en « Raspberry Pi OS ». Pour se faire, direction le site web de Raspberry : https://www.raspberrypi.org/downloads/raspberry-pi-os/

Je vous conseille de prendre la version complète avec interface graphique, il faut télécharger la version « zip » :

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 de l’OS via le bouton :

. Il faudra au préalable dézipper l’image de l’OS avec 7zip par exemple.

Vous devriez obtenir ceci :

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 !

Mise en place de Raspberry Pi OS

La carte mini SD insérée à son emplacement, il ne reste qu’à attendre que notre Raspberry Pi démarre.

Il s’agit d’un Raspberry Pi 3 B, il ne dispose pas d’option permettant « l’overclocking »

Une fois le Raspberry mis en route, tout devrait s’initialiser :

Et maintenant laisser vous guider par ces magnifiques screenshots :

Cliquer sur « Next »
On sélectionne les bons paramètres de langues…
… ce qui devrait donner ceci
On attend
On change le mot de passe par défaut !!! (Et on ne l’oublie pas)
On clique sur « Next » (sauf si on veut des bandes noires tout autour du ‘Bureau’)
On va maintenant paramétrer la connexion Wifi…
… une fois la clé saisie, on clique sur « Next » et on attend
On attend
Ici on va exécuter les mises à jours pour notre Raspberry, donc on fait « Next »
On attend
On attend (c’est long des fois)
Notre Raspberry est à jour !!!
On clique sur « Restart » et on attend

PARAMETRAGE TRANSFERT ET AFFICHAGE DISTANT


Une fois le Raspberry redémarré, on va cliquer sur « LXTerminal » pour faire des derniers réglages

Il suffit de taper la ligne suivante : sudo raspi-config (et d’appuyer sur « Entrée »)

Ce qui va afficher la fenêtre suivante :

Il faut mettre la surbrillance rouge sur « Interfacing Options » (on appuie sur « Entrée »)
On va activer le SSH, donc on met la surbrillance dessus (on appuie sur « Entrée »)
Et on dit « Oui » (On appuie sur « Entrée »)


On revient à cette fenêtre et on va activer maintenant le « VNC », donc il faut mettre la surbrillance rouge sur « Interfacing Options » (on appuie sur « Entrée »)

On va activer le VNC, donc on met la surbrillance dessus (on appuie sur « Entrée »)
Et on dit « Oui » (On appuie sur « Entrée »)

Et on oublie surtout pas de prendre l’adresse IP du Raspberry en mettant simplement la souris en survol sur

 ; on en aura besoin pour la suite !!!

REALVNC AFFICHAGE DISTANT

« Dis donc Jamy, à quoi peuvent bien servir ces deux options ??? »

Alors le SSH sert à activer une liaison utilisable par les logiciels tels que « Putty » (pour exécuter des commandes depuis un ordinateur sur le même réseau) ou « FileZila » (qui nous sera utile pour télécharger le(s) logiciel(s) pour notre cible). Et le 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 milles mots :

Ici il s’agit de RealVNC Viewer, pratique non ?

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 :

On valide avec un appui sur « Entrée »


Il nous demande ici nos identifiants qui sont « pi » et votre mot de passe qu’il ne fallait pas oublier !

On valide et vous voilà sur le bureau de votre Raspberry Pi !


On va aussi installer quelques soft pour pouvoir utiliser pyDarts sans problème, pour cela, exécuter les commande ci-dessous, pour cela cliquer sur « LXTerminal » puis taper les commandes suivantes :

sudo apt full-upgrade
sudo apt-get install netifaces*
sudo pip3 install pyttsx3

AUDIO

On va aussi en profiter pour régler la sortie audio du Raspberry Pi, oui car le Rapsberry peut « diffuser » sa sortie audio soit via HDMI soit via sa prise jack. Pour se faire deux solutions :
–  via le bureau faire un clic droit sur l’icône

, puis on sélectionne la sortie voulue :

– via « LXTerminal » et la commande « sudo raspi-config » :


On va cliquer sur « LXTerminal »

Il suffit de taper la ligne suivante : sudo raspi-config (et d’appuyer sur « Entrée »), puis on navigue vers « Advanced Options » :

Puis « Audio » :

Et enfin on choisit la sortie que l’on veut, on valide avec la touche « Entrée » et on sélectionne « Finish »

OFFRONS LA PAROLE A NOTRE RASPBERRY

Pour l’utilisation de pyDart, il sera utile de faire « parler » notre Raspberry, pour se faire, ouvrez un terminal « LXTerminal » :

Puis tapons quelques lignes pour installer le tout (il faudra à chaque fois valider la ligne de commande en appuyant sur « Entrée » :

sudo apt update

sudo apt install espeak

Nous allons créer un dossier espeak dans le répertoire de l’utilisateur télécharger un fichier audio et le jouer pour vérifier que tout fonctionne correctement :

mkdir /home/pi/espeak

cd /home/pi/espeak

wget https://raspberry-pi.fr/download/espeak/test.mp3 -O test.mp3

ffplay -nodisp test.mp3

Vous devriez entendre de la musique, maintenant faisons parler le Raspberry :

espeak -a 200 -v fr+f3 "Le groupe monte ton cab est le meilleur groupe possible sur Facebook." --stdout | aplay

La voix est immonde pas vrai ?? On va améliorer cela :

cd ~/espeak

wget https://raspberry-pi.fr/download/espeak/mbrola3.0.1h_armhf.deb -O mbrola.deb

sudo dpkg -i mbrola.deb

sudo apt install mbrola-fr1

Et on refait parler de nouveau notre Raspberry :

espeak -a 200 -v mb-fr1 -s 150 " Le groupe monte ton cab est le meilleur groupe possible sur Facebook." --stdout | aplay

Notre Raspberry à une bien meilleure voix !!

Modifier le mot de passe ‘root’ pour pouvoir se connecter avec

Tout d’abord, ouvrez une fenêtre “LXTerminal”

Puis taper la commande :

sudo passwd root

Il suffit après de choisir son mot de passe. Les prochaines connexions, vous pourrez vous connecter en ‘root’ pour avoir tout les droits.

Avoir tous les droits pour un utilisateur

Sur tout OS Linux qui se respecte, il est possible de devenir “super utilisateur” et donc de n’avoir aucun souci pour exécuter des programmes. C’est ce que nous allons faire en tapant quelques lignes. Tout d’abord, ouvrez une fenêtre “LXTerminal”

Cette image a un attribut alt vide ; le nom du fichier est image-74.png

Ceci fait, taper cette ligne de code :

sudo visudo

Rendez-vous en bas de l’écran avec les flèches directionnelle

Une fois en bas de l’écran, ajouter cette ligne :

pi ALL=(ALL) NOPASSWD: ALL

Faite “Ctrl+X” pour quitter et valider pour l’enregistrement en appuyant sur la touche “O”.

Voilà, vous êtes super utilisateur !

Se connecter automatiquement avec un compte voulu

Tout d’abord, ouvrez une fenêtre “LXTerminal”

Puis taper la commande

sudo nano /lib/systemd/system/getty@.service

Rechercher la ligne débutant par ExecStart=-/sbin/agetty, puis ajouter juste après -a root (pour se connecter avec ‘root’ dans cet exemple)

Dans cette exemple, au rédémarrage du Raspberry je serais connecter en tant que ‘root’. /!\ Si vous vous connectez avec VNC Viewer ou équivalent, c’est l’identifiant de connexion de ce dernier qui prime /!\

Quelques librairies à installer en plus

Tout d’abord, ouvrez une fenêtre “LXTerminal”

Puis taper la commande (ou les commandes)

  • Pour pouvoir simuler des appuis clavier pour nos boutons physique : sudo pip3 install pyautogui

Logiciels

Alors pour commencer, ou plutôt pour l’instant, on va s’assurer que tout fonctionne bien ! Via une petite application en « ligne de commande ».

Après, j’essaye de rentrer en contact avec les deux développeurs pour implémenter la prise en compte des GPIO du Raspberry dans leur logiciel « pyDarts » ; oui Python n’est pas mon point fort, je suis ce que l’on appelle : « un pur développeur Microsoft ». Python fait partie de ses ovnis que je regarde de loin. Je vous rassure, un langage de développement « s’apprend vite », et je ne suis pas du genre à mettre les bras dans le lit surtout quand ça me plait, mais si je peux me faire aiguiller par ceux qui ont le nez dedans ça ira beaucoup plus vite. Donc comme on dit : « Wait and see ».

FILEZILA : TRANSFERT DE FICHIER

Alors comme vu au-dessus, nous avons activé le SSH sur le Raspberry ; donc nouvelle étape : installation de FileZila ! Rien de compliqué de nouveau, 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) !


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

Pour l’arborescence du côté du Raspberry Pi, on va naviguer jusqu’au dossier « Desktop ». Une fois ceci fait, on va glisser/déposer du côté gauche vers le côté droit le fichier « TCTEDG.py ».

On vient d’envoyer notre premier programme sur le Raspberry Pi ! Et si non vérifie avec RealVNC Viewer, on voit ceci :


Notre programme est ici !

J’entends dans mon oreillette que vous voulez ce fameux « TCTEDG.py ». Bon je vous le fourni ici : /!\EN COURS/!\ (Le fichier restera en ligne tant qu’il y aura au moins un téléchargement sur une période de 30 jours ! ☺)

Premiere application de test

Quouah ?!? Il y a un dossier avec plein de sous dossier avec dedans des choses, pas de panique, il suffit de dézipper le .zip sur votre ordinateur et de glisser déposer le tout sur le bureau du Raspberry Pi via FileZila !

Et ce qui donne sur le bureau du Raspberry :


On va doubler cliquer sur le dossier « TestCible »


On va sélectionner le dossier suivant notre type de nappe, donc ici « 7_10 »


On double clic sur « Test Cible 7_10 »


Ici on clique sur « Lancer dans un terminal »


Ceci devrait s’afficher !!


Bon test ! 😉

 


SI CA MARCHE PAS : Dans le cas contraire, double cliquez sur « TCTEDG_7*10.py » un éditeur (Thonny) devrait s’exécuter, cliquer sur la flèche verte et cela devrait lancer le script.

IL FAUT QUITTER L’APPLICATION EN UTILISANT LA COMBINAISON DE TOUCHE « CTRL+C »

Le résultat dépend des branchement que vous avez effectué ! Si vous avez fait le même branchement que moi, vous devrie avaoir le même résultat. 😉

=> Si vous n’avez pas les mêmes nappes que moi ou avoir fait les mêmes branchements :

– Pour ce qui est des nappes différentes que celle du tuto (donc différentes des nappes 7+10), il faut choisir le dossier correspondant à vos nappes. Dans le dossier est présent un fichier nommé « TCTEDG_x*x.py » (x*x étant les nappes en question), double cliquer dessus. Il va falloir maintenant remplacer la valeur « METTRE_VOTRE_VALEUR » par le chiffre correspondant au pin du Raspberry relié au fil de la nappe. Pour vous en sortir, référez-vous à la page 14 pour retrouver les différents numéros. Une fois toutes les pins des nappes indiqués, indiquez aussi les pins des 4 boutons.

– Pour ce qui est d’avoir choisir d’autres numéros de pins pour les nappes identiques au tuto, il suffit d’indiquer chaque numéro dans le fichier « TCTEDG_7*10.py » du dossier « 7*10).

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 indiquer sur quelle pin est relié le bouton (entendra par la de remplacer la valeur ‘False’ par le numéro de la pin).
Les boutons ont comme fonction :
PIN_NEXTPLAYER = Passer au joueur suivant
PIN_BACKUPBUTTON = Revenir à la manche précédente
PIN_VALIDATE = Valider / touche Entrée
PIN_CANCEL = Annuler / touche Echap
PIN_UP = Flèche du haut
PIN_DOWN = Flèche du bas
PIN_PLUS = Moins de joueur (menu nombre de joueur)
PIN_MINUS = Plus de joueur (menu nombre de joueur)

Strip Led / Led Strip

(A venir…)

Extension des GPIO (car oui on peut tout mettre)

(A venir…)

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, 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 de ce code 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 la version 1.3 de pyDarts (et n’étant pas développeur Python, il existe surement un moyen encore mieux).

Il faut d’abord récupérer les sources présentes ici : /!\EN COURS/!\ (Le fichier restera en ligne tant qu’il y aura au moins un téléchargement sur une période de 30 jours ! ☺)

On se retrouve de nouveau devant un dossier avec plein de chose ; pas de panique, il suffit d’ouvrir FileZila et de déposer le dossier directement sur le bureau du Raspberry.

Ceci fait, il va falloir paramétrer pyDarts pour qu’il communique avec notre cible. Si vous avez fait le petit logiciel de test du point de dessus, rendez-vous dans le dossier correspondant à vos nappes, puis de double cliquer sur le fichier « TCTEDG_x*x.py (x étant vos nappes), donc pour le tutoriel il faut choisir « 7*10 ». Vous devriez arriver devant cette fenêtre :

Il va falloir sélectionner les lignes comprises entre « DEBUT » et « FIN », puis les copier (ainsi que le « keymap » donc tout ce qu’il y a entre « DEBUT » et « FIN » quoi !) :

Les variables comprise entre les ligne 42 et 49 incluses sont utilisés pour les boutons physiques, si vous décidez de ne pas en mettre, laisser la valeur “False” (sans les “)

Puis il faut vous rendre dans le dossier « pydarts » qui doit être sur le bureau du Raspberry :

Puis double cliquez sur le dossier « include ». Vous devriez voir un dossier « CRaspberry », double cliquer dessus et coller les informations entre les balise “INSEREZ ICI” et “FIN” :

Maintenant que cela est fait, pyDarts est en mesure de se servir de la cible reliée au Raspberry ! (Et vous êtes devenu un petit peu développeur aussi, mais un petit peu hein !).

Il faut cliquer sur le fichier « RaspyDarts.sh » et sélectionner « Exécuter » :

 

Si tout c’est bien passé, pyDarts devrait s’exécuter en plein écran et vous devriez avoir le son en plus !


SI CA MARCHE PAS : Dans le cas contraire, double cliquez sur « pydart.py » (dans le dossier ‘pydarts’) un éditeur (Thonny) devrait s’exécuter, cliquer sur la flèche verte et cela devrait lancer le script.

Si tout s’est bien passé, pyDarts devrait démarrer !

Place maintenant à la configuration… et au plaisir !


Appuyez sur la touche correspondante au « Raspberry GPIO » (ici F3)


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)


C’est un peu long


Il faut faire aussi les Doubles !


Il faut faire aussi les Triples !


Place aux valeurs du centre !

Pour les boutons d’action de pyDarts, passer les en appuyant sur la touche ‘Espace’


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 la touche « F » correspondante ; et après ajouter/supprimer/mélanger l’ordre des joueurs


On règle les options que l’on veut


Et place au jeu !

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 /!\

Exécuter pyDart au démarrage de Raspberry
1ère possibilité

Dans le répertoire pyDarts se trouve un dossier “installation“, exécuter une fenêtre “LXTerminal”

Cette image a un attribut alt vide ; le nom du fichier est image-125.png

Puis taper la commande suivant sudo /home/pi/Desktop/pydarts/installation/install.sh

Cette commande lancera un fichier qui installera pydarts. Maintenant, pydarts se lancera à chaque démarrage du Raspberry !

/!\ Pour revenir au bureau du Raspberry, il faudra appuyer sur la touche “F12” car la touche “Echap” éteindra le Raspberry /!\

2ème possibilité

Tout d’abord, exécuter une fenêtre “LXTerminal”

Puis taper la commande suivante sudo nano /etc/rc.local

Puis rendez vous à la fin de la page et remplacez exit 0 par

cd /home/pi/Desktop/pydarts
sudo /usr/bin/python3 pydarts.py --fullscreen &

Il ne reste plus qu’à redémarrer le Raspberry et à admirer !

/!\ Pour revenir au bureau du Raspberry, il faudra appuyer sur la touche “F12” car la touche “Echap” éteindra le Raspberry /!\

Bien démarrer pyDart trucs et astuce

Lors de la modification de /etc/rc.local (ci-dessus), juste après /usr/bin/python3 pydarts.py --fullscreen et avant &, vous pouvez ajouter les paramètres suivant à la ligne séparé par un ” ” (espace) :
--forcecalibration : redémarrer la phase de calibration de la cible
--selectedgame=Ho_One : démarrer sur le jeu “Ho_One” (301, 501, etc)
--localplayers=Joueur1,Joueur2 = démarrer en ayant toujours “Joueur1” et “Joueur2” en joueur; bien évidement, vous pouvez mettre jusqu’à 12 joueurs et les noms sont libres mais sans accents

EXEMPLE: /usr/bin/python3 pydarts.py --fullscreen --localplayers=Joueur1,Joueur2 &

Pour voir l’ensemble des paramètres disponibles, ouvrez une fenêtre LXTerminal puis tapez la ligne de commande /usr/bin/python3 /home/pi/Desktop/pydarts/pydarts.py --help

Pour mettre vos sons et images, modifiaient les directement dans les dossiers /home/pi/Desktop/pydarts/sounds et /home/pi/Desktop/pydarts/images

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/.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/.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

Développement perso

Maintenant que je vous ai fourni de quoi vous occuper, je vais pouvoir me libérer du temps pour faire une application tablette/smartphone.

Amusez-vous bien !

Laisser un commentaire



Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.