Collectionneur de matériels Apple, j’avais quelques joysticks et paddles Apple à tester. Pour les non-initiés, ce sont des manettes de jeux des années 70/80.
Quand je dis "quelques", c’est une bonne trentaine, donc il me fallait un testeur rapide d’utilisation.
Ils ne sont pas dans un état "concours", ni même nettoyés, ce sont des éléments qui me servent pour les tests à l’atelier.
Comme je ne voulais pas risquer d’abimer un Apple IIe pour les tests, un court-circuit dans les vieux matériels étant vite arrivé, j’ai décidé de me construire un petit montage de test.
J’ai bien évidemment commencé par câbler sur une plaque Lab, et j’ai décidé, pour m’amuser, d’aller plus loin en construisant le circuit imprimé.
Le cahier des charges est rapidement fait :
Le cœur du montage est un Arduino. Mon premier montage est à base d’un Arduino Uno que j’avais déjà en stock, mais pour la seconde étape, pour gagner de la place, j’ai utilisé un Arduino mini.
Les joysticks et paddles utilisés avec les Apple II sont construits très simplement : deux potentiomètres pour les quatre directions, deux résistances, et deux boutons. Le schéma est à disposition :
Pour la petite histoire, les deux paddles étaient utilisés, l’un pour la direction nord-sud, et l’autre pour la direction est-ouest. Le joystick a réuni les deux en un avec une manette allant dans les quatre directions. Plus simple !
Le joystick est connecté simplement à l’ordinateur avec un connecteur DE-9M (9 broches mâles), alors que pour les paddles, il fallait ouvrir la machine et les connecter sur un support de circuit intégré à 16 broches, situé sur la carte mère.
Le montage permet de connecter l’un ou l’autre :
L’alimentation s’effectue avec un chargeur USB standard et un câble USC-C, en 5 Volts.
Des informations sont inscrites sur un écran 0.96 pouce, largement suffisant pour cette utilisation.
Le but est d’afficher une petite croix en fonction de la position des manettes.
Les positions mathématiques horizontales et verticales sont inscrites, tout comme l’état des boutons-poussoirs PB0 et PB1.
Deux petites LED supplémentaires s’allument lorsque les boutons sont appuyés.
J’ai noté une petite différence de position entre le joystick et les paddles, et j’ai donc rajouté un bouton pour sélectionner l’un ou l’autre, les calculs se font par programmation.
Voici le schéma du montage complet :
Le tout est placé dans un boitier de montage aux dimensions de 100x60x25 mm en ABS. Deux trous ont été faits manuellement pour laisser passer le câble USB-C de l’alimentation de l’Arduino, et le connecteur DE-9F.
Construction
Pour la liste des composants :
Le circuit imprimé a été fabriqué par JLCPCB https://jlcpcb.com.
Note 1 : les liens ci-dessus sont pour l’achat en lot, pas à l’unité, pour des questions de coûts.
Note 2 : les liens peuvent être morts, le vendeur AliExpress ayant peut-être arrêté la vente du produit voulu.
L’Arduino est directement soudé sur le circuit pour des gains de place en hauteur, car le boitier se referme, et l’ensemble est protégé quand il est rangé.
Les connecteurs permettent d’enlever et de remplacer rapidement l’Arduino en cas de défaillance. Ce ne sera pas le cas ici.
Coût
Le coût total, port compris, du circuit complet, revient à moins de 10 € l’unité.
En réalité, c’est plus compliqué de calculer, car j’achète les composants en lot qui me servent à faire d’autres montages. Pour vous donner une idée, j’ai acheté un lot de 1200 résistances à 5,79 € et un lot de 250 boutons-poussoirs à 4.09 €.
Donc, si vous commandez les composants à l’unité chez n’importe quel revendeur français ou étranger, le prix risque d’être différent (je n’ai pas fait la démarche).
Pour le circuit imprimé, la commande minimale chez JLCPCB est de 5 pièces. Là aussi, pour le prix, c’est assez changeant, car il y a des réductions en permanence, et selon les options choisies, les prix varient fortement.
J’ai fait fabriquer un premier jeu de 5 circuits, celui des photos, de couleur bleue avec quelques options, pour voir. Chaque circuit m’est revenu à 8,50 € (total de 42,37 €).
J’ai vu qu’il y avait eu un petit souci de sérigraphie, et j’ai donc refait fabriquer un autre jeu, sans aucune option, de couleur noire.
Chaque circuit m’est alors revenu à 0,92 €, port et taxes incluses à destination de la France (total de 4,59 €).
À noter que j’ai payé avec PayPal, et que le fabricant prend 0.53 € de frais supplémentaires.
Voilà le coût minimal de chaque montage, tout compris :
Programmation
L’application Arduido IDE a été utilisé. Rien de vraiment spécial dans la programmation de ce montage. Chaque ligne ou presque du programme est documentée.
Utilisation
Enfin elle arrive !
Rien de bien compliqué, soit on branche le Joystick sur le connecteur 9 broches sur le côté de la boite, soit on branche les paddles sur le support vert (avec le levier) du montage.
Ne pas oublier d’alimenter via le port USB-C avec n’importe quel chargeur ou ordinateur sous la main.
Et voilà, ne reste plus qu’à manipuler la manette pour voir la croix bouger sur l’écran.
Si on appuie sur un des deux boutons du joystick, la LED s’allume et l’information passe à "ON" sur l’écran.
C’est identique avec les paddles.
Petite vidéo pour expliquer le fonctionnement :
Conclusion
Pour moi, cela a surtout été une expérience amusante de faire ce petit montage. Cela faisait longtemps que je n’avais pas fait de circuit imprimé, le dernier en date remonte à quelques années en utilisant la bonne vieille méthode typon sur transparent -> insolation aux ultra-violets -> révélateur -> perchlorure de fer -> perçage ! Les anciens (électroniciens) savent de quoi je parle, y compris mes élèves en cours de technologie ! 😉
J’avoue avoir été bluffé par la qualité des circuits fabriqués par JLCPCB, sans compter le coût de revient vraiment exceptionnel.
J’ai appris tout un tas de trucs sur la fabrication, les composants, les logiciels, et je me suis bien amusé et ça, c’est le principal ! 🙂
Si un montage complet ou juste le circuit imprimé vous intéresse, contactez-moi, j’ai quelques pièces en stock.
Si vous voulez le fabriquer vous-même, les informations sont disponibles dans mon GitHub.
🤫