1. Introduction

Dans les années 70, le jeu vidéo entre dans une période bien connue des plus de 50 ans, le jeu vidéo d'arcade. Une période qui commencerait d'après certains en 1978, lors de la commercialisation des bornes "space invaders" (cf. Figure 1) et qui se terminerait vers 1990, lorsque les consoles de jeu personnelles deviennent plus puissantes que les bornes d'arcades traditionnelles avec notamment la sortie de la "Super Nintendo" en 1991. Le terme "arcade" a depuis été assimilé à cette période du jeu vidéo et il est communément ajouté pour faire référence à un élément de cette période. On parle donc de "jeu vidéo d'arcade", de "borne d'arcade" mais aussi de "joystick d'arcade" ou "manette d'arcade", deux termes qui désignent les périphériques classiques utilisés par le joueur comme entrées lors de ses parties endiablées. Ce projet de manette d'arcade fait donc directement écho à cette période charnière de l'industrie vidéo-ludique. Les objectifs sont de constituer un artefact servant de périphérique d'entrée sur un ordinateur et adoptant le style esthétique "arcade". L'artefact final sera une manette avec 8 boutons et 1 joystick et le but du projet est donc de jouer à un jeu vidéo sur un ordinateur en utilisant cette manette.

SpaceInvaders.JPG Figure 1 : Borne d'arcade space invaders

Le projet se déroule en 2 parties, une partie hardware pour la construction de la manette et une partie software pour la programmation du code Python nécessaire pour le fonctionnement des boutons et du joystick.

2. Matériel

Voici tout le matériel spécifique utilisé lors du projet :

2.1 Hardware

1x Console gris foncé (216 x 130 x 77 mm) ABS IP 40, 363.8, Teko
2x Boutons d'arcade (24 mm) bleu
2x Boutons d'arcade (24 mm) jaune
2x Boutons d'arcade (24 mm) rouge
2x Boutons d'arcade (24 mm) vert
1x Joystick de manette PS2 avec bouton de sélection et panneau de dérivation
1x Profilé rond (40 mm) en hêtre plein
4x Vis à bois (2.5 mm)
4x Entretoises
4x Vis M2.5
4x écrous M2.5
Fil de cuivre (diamètre extérieur 1.1 mm) (longueur totale 42 cm)
9x Fil de cuivre (diamètre extérieur 1 mm) (longueur 14 cm) cosse mâle - femelle
1x Bombe de peinture noire satinée

2.2 Software

1x Ordinateur
1x Raspberry Pi 3 Model
1x carte micro SD
1x Raspberry Pi 7'' Touchscreen Display (194 x 110 x 20 mm) (800 x 480 pixels)
1x Câble plat d'affichage
4x Entretoises avec vis et écrous
2x Câble femelle - femelle
1x Clavier USB
1x Convertisseur analogique vers numérique (ADC) MCP3008
1x Mini Bread board (30 x 14)
10x Fil de cuivre (diamètre extérieur 1 mm) (longueur 14 cm) cosse mâle - femelle
13x Fil de cuivre (diamètre extérieur 1 mm) (longueur 14 cm) cosse mâle - mâle

2.3 Outils

1x Fraiseuse industrielle
1x Tournevis cruciforme n°1
1x Tournevis plat n°2
1x Cutter
1x Pince coupante
1x Scie à bois manuelle
1x Serre-joint
1x Papier de verre
1x Scie sauteuse
1x Perceuse
1x Fer à souder (avec fil d'étain)
1x Support de plaque pour soudure
1x Lime plate
1x Pied à coulisse électronique

3 Méthode

3.1 Hardware

3.1.1 Choix du design

Avant de se lancer dans la conception du projet il était important de savoir à quoi il ressemblerait. Un des objectifs de ce projet est d'obtenir un style arcade, il faut donc choisir l'esthétique de l'artefact. Le premier plan avait été réalisé lors du pré-projet (cf. Figure 2) et consistait en une manette de forme rectangulaire classique avec 10 boutons et 1 joystick. Le choix d'avoir 10 boutons était un moyen d'être sûr de ne pas en manquer sur certains jeux. Les manettes de PS3 possèdent un total de 16 entrées digitales mais les jeux classiques utilisent généralement entre 8 et 12 boutons. Cette décision était donc cohérente pour profiter des fonctionnalités minimums de la majorité des jeux sans surcharger la manette. La forme devait rester simple pour, premièrement, faire référence aux premières manettes (cf. Figure 3) mais aussi pour qu'elle soit posée sur un support (pas de tenue en main). De plus, les premières dimensions étaient bien trop petites étant donné qu'au début de mon projet je n'avais aucune idée de ce qu'il faudrait à l'intérieur pour qu'elle fonctionne.

SchemaManette1.jpg Figure 2 : Premier schéma du projet

ManetteNES.jpg Figure 3 : Manette NES

La première option était donc d'utiliser du bois pour créer le boitier mais cette option fut vite abandonnée car elle ne satisfaisait pas l'esthétique que je recherchais. La seconde option fut donc d'utiliser une imprimante 3D pour réaliser le boitier mais fut aussi abandonnée car la forme était trop simple et l'objet trop grand pour avoir besoin de le réaliser en imprimante 3D. Effectivement une impression aurait demandé une journée entière et faisait donc perdre trop de temps en sachant que le boitier ne serait sûrement pas parfait dès la première impression. L'option finale fut donc d'utiliser un boitier acheté sur Distrelec 1 qui possédait les dimensions requises pour ne pas être trop encombrant mais pour contenir suffisamment de matériel et qui avait l'esthétique recherchée (cf. Figure 4). Par rapport au schéma du pré-projet, l'artefact final aura les boutons et le joystick inversés étant donné que j'ai l'habitude d'utiliser le joystick de déplacement avec la main gauche, un détail auquel je n'avais pas pensé lors du premier plan. Un autre changement concerne le nombre de boutons qui est réduit à huit pour ne pas surcharger la manette. De plus, une "sortie de secours" est prévue pour accéder aux ports du Raspberry Pi 3 prenant la forme d'une ouverture sur le côté du boitier. Finalement, la dernière modification concerne l'agencement des boutons. Sur le premier schéma ils sont disposés en diagonale pour épouser la forme de la main. Une des modification prévue était même de les placer pour qu'ils suivent la courbe des doigts lorsque la main est posée sur une table mais le boitier choisi pour réaliser le projet n'avait pas assez de place pour agencer les boutons de cette manière et ce choix fut donc abandonné. Après toutes ces modifications le plan du projet initial avait donc bien changé (cf. Figure 5).

Boitier.jpg Figure 4 : Boitier pour la manette

SchemaManette2.jpg Figure 5 : Deuxième schéma du projet

3.1.2 Préparation du boitier

La première étape est la découpe des orifices qui accueilleront les boutons et le joystick. Lors de cette étape il faut porter attention à deux détails. Il faut que l'espace entre les boutons soit suffisant. En effet, cela peut paraître évident mais ceux utilisés dans ce projet fonctionnent avec un système de vis et d'écrou (cf. Figure 6) et l'espace minimum prévu n'est donc pas leur diamètre mais le diamètre extérieur des écrous il faut donc laisser 1cm d'espace entre chaque trou pour s'assurer que les écrous ne se chevauchent pas. Le second détail concerne le joystick, celui-ci est surmonté d'un chapeau noir mais le dessous est visible. Encore une fois un élément qui peut paraître anodin mais qu'il ne faut pas oublier. Le diamètre du trou doit donc être de la bonne taille pour qu'on n'aperçoive pas le mécanisme lorsqu'on oriente le joystick. Le plus facile est de mesurer le diamètre utilisé sur les manettes de Playstation 3 car ce sont les mêmes modèles. Une fois le plan de découpe réalisé (cf. Figure 7), les mesures sont reportées au stylo sur la plaque et elle est percée à l'aide d'une fraiseuse industrielle. Il n'est pas nécessaire d'utiliser un outil aussi sophistiqué mais l'occasion se présentant, cela permettait d'augmenter la précision des découpes pour être certain d'obtenir le résultat prévu. Pour finir la plaque est peinte en noir à la bombe pour créer un contraste avec les boutons colorés. La couleur noire fait aussi référence aux bornes d'arcades comme celle de "space invaders" (cf. Figure 1).

boutons.jpg Figure 6 : Boutons d'arcade 2

PlanTrous.jpg Figure 7 : Plan des orifices de la plaque

La deuxième étape est la préparation du support pour le joystick. Car celui-ci doit tenir sur quelque chose de solide pour éviter qu'il se décroche lors d'un mouvement trop violent. La solution trouvée est d'utiliser un support en bois pour pouvoir le découper à la scie et rectifier les imperfections si nécessaire. Le plus difficile dans cette étape porte sur l'angle du joystick par rapport au bas du boitier. Effectivement, celui-ci sort perpendiculairement de la plaque, il faut donc que le support ait une extrémité inclinée pour que le joystick se fixe droit. Pour déterminer l'angle il faut donc mesurer la profondeur du joystick puis l'espace entre le centre du joystick et le bas du boitier. Ensuite, il suffit de déterminer graphiquement les mesures des côtés (cf. Figure 8). La coupe du support en bois se fait à partir d'un profilé rond en hêtre plein avec un diamètre légèrement supérieur à celui du joystick et à l'aide d'une scie manuelle et d'un serre-joint pour tenir la barre en bois. La découpe respectait les mesures estimées de la Figure 8 mais le support était légèrement trop haut. Une fois le joystick fixé dessus, celui-ci frottait sur la plaque, il a donc fallu raboter le dessous du support de quelques millimètres avec du papier de verre. Maintenant que le joystick ne frotte plus, il faut coller le support au fond du boitier en faisant attention à ne pas mettre trop de colle pour ne pas rehausser le joystick et donc éviter qu'il frotte à nouveau. Finalement, il faut visser le joystick en orientant les PINs vers le bas (cf. Figure 9).

TrigoSupport.jpg Figure 8 : Mesures du support en bois

JoystickSupport.jpg Figure 9 : Joystick sur support en bois

La troisième étape consiste à préparer l'intérieur du boitier pour le Raspberry Pi. La gauche de la console étant occupée par le joystick, c'est donc le côté droit qui servira à accueillir le Pi 3. Les deux conditions à respecter était de surélever le Pi 3 à l'aide d'entretoises vissées au boitier. L'isoler permet de le protéger des éventuels dégâts que les composants pourraient subir et aussi de ne pas le placer trop bas pour éviter que le boitier devienne bancal avec des câbles réseau ou USB trop volumineux. La deuxième condition est son orientation, le Pi 3 doit avoir les ports USB et réseau adjacents à la face droite du boitier et son port d'alimentation doit pointer vers l'avant de la console pour avoir la place de faire passer le câble d'alimentation qui sortira sur le côté de l'ouverture (cf. Figure 10). Puis il faut prendre les mesures afin de découper au bon endroit l'ouverture pour les ports et les trous pour les entretoises. Pour finir, il suffit de découper les mesures prévues pour l'ouverture à l'aide d'une scie sauteuse et de percer les trous dans le fond pour visser les entretoises (cf. Figure 11). Pour tester les boutons et le joystick il est plus pratique de ne pas fixer directement le Raspberry Pi.

BoitierPi3.jpg Figure 10 : Orientation du Raspberry Pi 3

OuverturePortsPi.jpg Figure 11 : Boitier avec ouvertures pour le Pi 3

3.2 Software

3.2.1 Installation de Raspbian sur le Pi 3

La première étape est d'assembler le Raspberry Pi 3 avec l'écran 7'' afin d'obtenir un retour visuel sur les entrées du Raspberry Pi. Pour utiliser un Raspberry Pi il est possible de passer par un protocole Secure Shell depuis un terminal d'ordinateur mais une des bibliothèque Python utilisée pour le projet (pyautogui) pose problème lors d'une utilisation par ssh (Voir 3.2.2). Un écran permet d'utiliser le Pi 3 directement sur Raspbian et donc d'éviter le problème. Pour assembler l'écran avec le Raspberry Pi 3 il suffit de suivre la marche à suivre du site element14 2 jusqu'à l'étape 7.

Pi3etEcran.jpg Figure 12 : Raspberry Pi 3 avec écran

Une fois que le Pi 3 est fixé sur l'écran (cf. Figure 12), il faut installer un système d'exploitation pour y accéder. Le plus simple est d'installer Raspbian en utilisant NOOBS, un installeur de système d'exploitation. NOOBS (New Out Of the Box Software) peut se télécharger sur le site de raspberrypi 3 et l'installation est détaillée sur le même site internet 4.

3.2.2 Préparatifs

Le Raspberry Pi 3 est branché au touchscreen, Raspbian est installé, il faut donc tester si les boutons fonctionnent. Écrire sur le terminal demandera de brancher un clavier en USB. Si jamais le clavier n'est pas configuré dans la bonne langue, par exemple en AZERTY au lieu de QWERTZ, il faut se rendre dans /etc/defaults/ puis nano keyboard et changer le clavier dans la langue qu'on veut 5. Par exemple pour un clavier QWERTZ il faut XKBLAYOUT="de" afin d'obtenir un clavier allemand. Pour utiliser python3 il faut aussi modifier cela sur le terminal. Premièrement pour savoir quelle version Raspbian utilise par défaut, on utilise python --version. S'il utilise déjà python3 alors il n'y pas besoin de changer de version. Sinon il faut le modifier en suivant les instructions sur ce site 6. Finalement on crée un dossier "Python" pour stocker les fichiers qu'on utilisera. Ensuite, on peut déjà installer la bibliothèque requise pour le code des boutons et du joystick. La bibliothèque utilisée sera pyautogui pour l'installer il faut suivre la marche à suivre du site 7. Un des gros problème rencontré lors du projet concernait l'installation de cette bibliothèque. Effectivement, au début j'accédais au Raspberry Pi avec un protocole ssh ce qui provoquait une erreur lors de l'installation. D'après certaines sources 8, l'installation de pyautogui génère une "Key error" car python n'arrive pas à accéder au chemin absolu de certains fichiers de la bibliothèque. Pour remédier à ce problème il suffisait d'installer la librairie sans utiliser de protocole ssh 9.

3.2.3 Code pour les boutons

Le premier code créé avec nano test.py avait pour but de tester si les boutons fonctionnaient :

import RPi.GPIO as GPIO
import pyautogui

GPIO.setmode(GPIO.BCM)

BUTTON = 18

try:
GPIO.setup(BUTTON, GPIO.IN)
while True:
if GPIO.input(BUTTON) == GPIO.HIGH:
pyautogui.typewrite('a',interval=0.001)

except KeyboardInterrupt:
pass

except Exception as error:
print(error)

finally:
GPIO.cleanup()

Lorsque le programme est lancé avec python test.py il n'affiche rien tant que je n'appuie pas sur le bouton et lorsque j'appuie un "a" s'affiche. C'est donc bien le résultat recherché. Maintenant il suffit de répéter l'opération pour les 8 boutons, il faut donc créer 8 variables :

BUTTONRU = 18
BUTTONRD = 19
BUTTONYU = 20
BUTTONYD = 21
BUTTONBU = 22
BUTTONBD = 23
BUTTONGR = 24
BUTTONGL = 25

Le premier indice après "BUTTON" désigne la couleur du bouton (Red, Yellow, Blue, Green) et la deuxième sa position (Up, Down, Right, Left). Les PINs GPIO18-25 sont utilisés pour les boutons. Puis il faut répéter le code principale pour chaque variable en changeant les lettres qui apparaitront (RU = "a", RD = "b", YU = "c", YD = "d", BU = "e", BD = "f", GR = "g", GL = "h"). Une fois le code réalisé, on peut donc utiliser les touches "a" à "h" avec les boutons de la manette. Une fois que le code est prêt il faut brancher chaque bouton à son PIN correspondant (cf. Figure 13).

PlanCablageBoutons.jpg Figure 13 : Plan du câblage des boutons

Pour relier les boutons avec le Pi 3, il suffit d'utiliser des fils de cuivre avec cosse femelle - mâle. Les cosses mâle se soudent sur les boutons et les cosses femelles s'insère dans les PIN du Raspberry Pi. Le fil noir amène le GND à un seul bouton et est ensuite redistribué en série sur tout les autres boutons pour ne pas avoir à utiliser plusieurs PIN GND du Pi 3 ou de le redistribuer avec une breadboard, ce qui prendrait encore plus de place dans le boitier. Par contre cette configuration possède l'inconvénient que si l'un des boutons est endommagé tous ceux qui le suivent ne seront plus reliés au GND et ne fonctionneront donc plus.

3.2.4 Le Joystick

Réaliser un code pour le joystick s'avère un peu plus compliqué étant donné que celui-ci possède 2 axe et un bouton et donc qu'il ne fonctionne pas en digital mais en analogique. Il faudra donc utiliser un convertisseur analogique vers numérique (ADC) pour l'utiliser avec le Pi 3. Pour utiliser le convertisseur il faut donc un code spécifique. Les premiers essais en se référant aux guide d'utilisation de l'ADC 10 ne fonctionnant pas du tout, une autre solution fut envisager après avoir chercher un peu sur internet 11. En effet après avoir compris et testé le code utilisé par l'auteur de la page, le joystick fonctionnait bien de manière analogique et le code me donnait les valeurs des axes en temps réels variant entre 0 et 1023. Ensuite il fallait définir des conditions pour chaque axe :

vrx_pos < 250
vrx_pos > 750
vry_pos < 250
vry_pos > 750
swt_val < 1000

Puis on attribue une touche de clavier avec pyautogui pour chaque condition (respectivement gauche, droite, bas, haut et "i"). Les essais réalisé avec le script "joystick.py" était concluants mais pas fonctionnels. Effectivement, Il n'y avait que les touches gauche et bas qui fonctionnait ainsi que le bouton du joystick mais les conditions en dessous de 250 ne se lance pas.

3.2.5 Lancer les codes au démarrage

Le dernier programme a coder est celui qui lancera automatiquement les fichier python "buttons.py" et "joystick.py". Pour réaliser ceci, l'option envisagée était d'écrire un script auto.sh :

cd
cd Desktop
cd Python
python buttons.py
python joystick.py

Puis d'écrire un code dans le fichier crontab pour lancer le script auto.sh au démarrage du Pi 3. Les quelques essais réalisé avec cette technique ont été infructueux car il rentrait en conflit avec la bibliothèque pyautogui. L'erreur était exactement la même que celle qui apparaissait avec le protocole ssh.

3.3 Montage final

Une fois que les script sont installées (s'ils avaient fonctionné), que les boutons sont visser à la plaque et relier aux Raspberry Pi, que le joystick est fixé au support en bois sur le boitier et relier à la mini breadboard et que la mini breadboard est relié au Raspberry Pi, tout est prêt (cf. Figure 14). Il suffit donc de visser le Pi 3 aux entretoises et de refermer la plaque en faisant attention de ne pas décrocher de fil. Finalement, on peut visser la plaque au boitier et la manette est terminée.

MontageFinal.jpg Figure 14 : Ensemble du montage

4. Résultats

L'artefact est terminé mais les codes pour le fonctionnement des inputs ne sont pas valides.

ManetteFinale.jpg Figure 15 : Manette d'arcade terminée

5. Discussion

Les objectifs fixés ne sont pas tous remplis. Premièrement, l'objectif d'obtenir une manette avec un style "arcade"est atteint. Les boutons de couleurs et la plaque noire ainsi que la forme du boitier lui donnent l'aspect recherché. Pour l'aspect esthétique, le seul détail à modifier serait le choix du joystick pour prendre un vrai joystick style "arcade". Le second objectif était de pouvoir utiliser la manette comme périphérique d'entrée sur un ordinateur. Celui-ci n'a pas du tout été rempli pour plusieurs raisons. De nombreuses erreurs ont été commises lors du projet qui ont amené à l'échec de cet objectif.

La première, est une mauvaise planification du temps à disposition. Effectivement, la partie Hardware a été réalisée assez vite pour pouvoir passer le plus vite possible à la partie software qui semblait être la plus compliquée. Mais c'était sans compter sur le temps que prendraient la réalisation du boitier et la fin s'est donc faite dans la hâte. Cette mauvaise planification du temps à aussi menée à la seconde erreur majeure de ce projet. En effet, la partie codage a été accomplie dans de très court délais et cela a eu pour conséquence de ne pas prendre le temps de réaliser des sauvegardes externes des script et surtout des sauvegardes des versions précédentes de mes scripts. Car le script des boutons fonctionnait très bien lors des essais, le script des joystick était presque opérationnel mais en voulant précipiter les choses lors de la fusion des deux scripts, aucune sauvegarde des versions antérieures n'a été réalisée et après fusion des deux scripts python, le code ne fonctionnait plus du tout. C'est à ce moment que vient s'ajouter la troisième erreur de ce projet avec le choix de changer de bibliothèque pour essayer de régler le problème rapidement. Après avoir constaté que mon script python ne marchait plus, j'ai fait le choix de remplacer la bibliothèque pyautogui par uinput pour régler le problème mais ceci n'a fait que l'aggraver. L'installation de uinput n'a pas régler l'invalidité du script et a modifié l'état des PINs du Pi 3. Effectivement, avant d'installer uinput sur le Pi 3, un script "verif.py" avait été écrit sur la base du premier script (voir 3.2.3) et celui-ci fonctionnait. Mais après l'installation et les essais avec uinput, le script "verif.py" n'était plus valide. Par conséquent j'ai écrit un code pour vérifier l'état des PINs et utiliser la commande gpio readall pour lire l'état des PINs. Dans les deux cas tous les PINs affichaient la valeur 1 sans jamais changer d'état.

Après cette vérification j'ai donc émis l'hypothèse que l'installation de la bibliothèque uinput avait modifié un fichier qui avait un lien avec l'état des PINs. Ce que je n'ai pas réussi à confirmer étant donné que le problème est toujours présent. La seconde hypothèse que j'ai pu émettre après ces nombreuses erreurs concerne le code fusionné du joystick et des boutons. Ceux-ci fonctionnaient séparément mais une fois ensemble plus rien ne marchait. La cause la plus probable serait que le script se soit bloqué dans une boucle lors de la lecture du code. Effectivement, je n'étais pas totalement à l'aise avec les notations if, elif, else et while True. Il est donc possible que le script se soit bloqué en ne vérifiant que les conditions d'une partie du code. Finalement ne pas établir de sauvegardes externes que ce soit sur une clé USB ou sur le git m'a couté très cher. Le premier Raspberry Pi était alimenté par une batterie externe et celle-ci c'est déchargée lorsque j'étais absent ce qui a eu pour conséquence d'éteindre le Raspberry Pi et après ça il ne s'est jamais relancé. Une leçon que je ne compte pas oublier.

Par dessus ces erreurs, un bon nombre de complications se sont ajoutées. Notamment le problème d'installation de pyautogui qui a pris 2 jours avant de trouver une solution qui était simplement d'apprendre à faire une bonne recherche sur google. Quelques problèmes avec le language du clavier qui utilisait le format AZERTY alors que j'utilisais un QWERTZ, un problème qui fut relativement vite réglé. J'ai tout de même appris de nombreuses nouveautés comme l'utilisation de certaines commandes sous linux, changer la version de python, installer, comprendre et utiliser de nouvelles librairies, appréhender le fonctionnement d'un convertisseur analogique vers numérique et bien d'autre détails. Finalement, même si un des objectifs n'est pas rempli principalement à cause de l'organisation du temps, l'objectif esthétique est exactement comme celui désiré et est dû à une bonne planification et organisation de la méthode.

6. Conclusion

Pour synthétiser, la moitié des objectifs est rempli. La manette d'arcade possède le design désiré au début du projet (cf. Figure 5) mais elle n'est pas fonctionnelle. Dans son état actuel, il est impossible de jouer avec et donc le but final du projet n'est pas atteint. Ou en tout cas que partiellement atteint si l'on considère que les boutons fonctionnaient à un moment du projet mais ne possédant plus le code et n'ayant pas assez de temps pour trouver une solution avec les PINs bloqués le projet est un échec. Ou plutôt un échec partiel, car tout ceci n'était pas inutile. Outre l'énorme apport en autonomie et en apprentissage que ce projet m'a apporté il m'a aussi beaucoup passionné sans quoi j'aurais abandonné à la première difficulté. Je suis satisfait d'avoir trouvé des solutions a beaucoup de mes problèmes ou d'en avoir au moins trouvé ou cherché les raisons. De plus, cette expérience m'a permis de me remettre grandement en question sur la manière dont je gère le temps à ma disposition car mon projet n'était pas trop complexe pour moi et j'ai pourtant dû finir dans des délais très serrés. Finalement, ce travail m'aura permis d'appliquer les connaissances accumulées en cours d'informatique et de les mettre en pratique mais aussi de m'ouvrir à des horizons inexplorés en classe. Un homme sage disait que "le but des cours d'option informatique était de permettre aux élèves d'avoir les outils minimums pour faire ce qu'ils veulent", une phrase qui ne m'a jamais parue aussi vraie qu'après ce projet et qui me donne envie de réaliser bien d'autres conceptions personnelles une fois que cette manette marchera enfin.

Références

Achats

Joystick : https://www.play-zone.ch/de/elektronik-kit-zubehoer/arcade/joysticks/arduino-ps2-daumen-joystick-mit-select-button-breakout-board.html

Boutons : Bleu : https://www.play-zone.ch/de/elektronik-kit-zubehoer/arcade/arcade-buttons/arcade-button-24mm-blau-transparent-mit-led.html Jaune : https://www.play-zone.ch/de/elektronik-kit-zubehoer/arcade/arcade-buttons/arcade-button-24mm-gelb-transparent-mit-led.html Vert : https://www.play-zone.ch/de/elektronik-kit-zubehoer/arcade/arcade-buttons/arcade-button-24mm-grun-transparent-mit-led.html Rouge : https://www.play-zone.ch/de/elektronik-kit-zubehoer/arcade/arcade-buttons/arcade-button-24mm-rot-transparent-mit-led.html

Console : https://www.distrelec.ch/fr/console-gris-fonce-216-130-77-mm-abs-ip-40-teko-363/p/15027305?q=*&filter_Category2=Divers+bo%C3%AEtiers&filter_Buyable=1&page=46&origPos=46&origPageSize=50&simi=99.65

Raspberry Pi 3 Model B : https://www.raspberrypi.org/products/raspberry-pi-3-model-b/#buy-now-modal

Sites consultés

1 Acheter Console gris foncé 216 x 130 x 77 mm ABS IP 40, Teko, 363.8 | Distrelec Suisse Date d'accès : 2018-01-31 URLS : https://www.distrelec.ch/fr/console-gris-fonce-216-130-77-mm-abs-ip-40-teko-363/p/15027305

2 Raspberry Pi 7” Touchscreen Display | element14 | Raspberry Pi Accessories Date d'accès : 2018-01-31 URLS : www.element14.com/community/docs/DOC-78156/l/raspberry-pi-7-touchscreen-display#installI

3 Download NOOBS for Raspberry Pi Date d'accès : 2018-01-31 URLS : www.raspberrypi.org/downloads/noobs/

4 NOOBS - Raspberry Pi Documentation Date d'accès : 2018-01-31 URLS : www.raspberrypi.org/documentation/installation/noobs.md

5 Passer de qwerty a qwertz - Raspberry Pi Forums Date d'accès : 2018-01-31 URLS : www.raspberrypi.org/forums/viewtopic.php?f=65&t=127160

6 How to change from default to alternative Python version on Debian Linux - LinuxConfig.org Date d'accès : 2018-01-31 URLS : linuxconfig.org/how-to-change-from-default-to-alternative-python-version-on-debian-linux

7 Installation — PyAutoGUI 1.0.0 documentation Date d'accès : 2018-01-31 URLS : pyautogui.readthedocs.io/en/latest/install.html

8 dictionary - I'm getting Key error in python - Stack Overflow Date d'accès : 2018-01-31 URLS : stackoverflow.com/questions/10116518/im-getting-key-error-in-python

9 KeyError: 'DISPLAY' when installing pyautogui #161 - GitHub Date d'accès : 2018-01-31 URLS : https://github.com/asweigart/pyautogui/issues/161

10 MCP3008 | Raspberry Pi Analog to Digital Converters | Adafruit Learning System Date d'accès : 2018-01-31 URLS : learn.adafruit.com/raspberry-pi-analog-to-digital-converters/mcp3008

11 Using A Joystick On The Raspberry Pi Using An MCP3008, Matt Hawkins Date d'accès : 2018-01-31 URLS : www.raspberrypi-spy.co.uk/2014/04/using-a-joystick-on-the-raspberry-pi-using-an-mcp3008/