Table des matières:
- Fournitures
- Étape 1: Préparer la carte et l'environnement Arduino
- Étape 2: Télécharger
- Étape 3: Imprimer
- Étape 4: Câblage
- Étape 5: Assemblage final
- Étape 6: Modes de fonctionnement
- Étape 7: Pong
Vidéo: Contrôleur de jeu USB Paddle : 7 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
Mon fils passait une soirée de jeux vidéo rétro pour son anniversaire, et le matin du jour, j'ai décidé de voir si je pouvais fabriquer une paire de contrôleurs de jeu USB pour Pong à l'aide d'une imprimante 3D et de l'électronique de ma réserve. Bien que j'aie réussi à les faire fonctionner à temps, les gens étaient trop occupés avec d'autres jeux pour Pong à la fin.
Les contrôleurs peuvent être utilisés pour Pong avec l'émulateur de niveau circuit DICE ou avec ma version pygame assez précise, pour les jeux Atari 2600 avec un émulateur et pour une fonctionnalité de type Etch-a-Sketch avec un programme de peinture comme Tux Paint.
Il existe trois modes commutables:
- Émulation de la pagaie Stelladaptor: ils devraient fonctionner avec tous les logiciels d'émulation Atari 2600 qui prennent en charge le Stelladaptor; en mode Stelladaptor, les palettes fonctionnent comme un joystick à deux axes et deux boutons, chaque palette contrôlant un axe et un bouton
- émulation de double joystick: chaque palette fonctionne comme un joystick avec un seul bouton (le mouvement de la palette se traduisant par un mouvement sur les deux axes du joystick)
- souris: chaque palette contrôle une direction de mouvement pour une souris absolue, et les boutons sont des boutons de souris; avec un programme de peinture, vous pouvez obtenir un appareil de haute technologie similaire à un Etch-a-Sketch.
Fournitures
Tu auras besoin de:
- pilule bleue stm32f103c8t6
- 2x potentiomètre linéaire (je recommanderais 20K-100K)
- 2x micro-interrupteur de largeur 12 mm avec bouton
- Imprimante 3D
- divers (filament, fils, soudure, fer à souder, colle chaude)
Étape 1: Préparer la carte et l'environnement Arduino
- Soudez les six broches d'en-tête au milieu de votre carte stm32f103c8t6.
- Vérifiez la résistance entre A12 et 3,3V. Il devrait être de 1,5K pour une compatibilité USB plus complète. De nombreuses cartes ont à la place 10K. Si vous en faites partie, soudez idéalement une résistance de 1,8K de A12 à 3,3V, bien que vous ayez peut-être de la chance et que vos ordinateurs fonctionnent avec le 10K.
- Installez un chargeur de démarrage. Il y a des instructions à l'étape 2 de ce Instructable. Une chose à noter est la taille du flash signalée par le démonstrateur STM. S'il s'agit de 32 Ko, vous avez un faux stm32f103c8 qui est probablement un stm32f103c6 renommé. Ce projet devrait toujours fonctionner avec cela, mais notez que vous avez le faux tableau pour une étape future.
- Installez Arduino, Arduino Zero et le noyau basé sur libmaple de Roger en suivant les instructions de l'étape 3 de l'Instructable que vous avez utilisé à l'étape précédente. Ignorez les instructions de la bibliothèque à cette étape.
- Téléchargez la dernière version de ma bibliothèque USB Composite et décompressez-la dans votre dossier Arduino/Libraries.
- Téléchargez mon croquis de paddlecontrollers et décompressez-le dans votre dossier Arduino.
- Dans Arduino, allez dans Outils | Conseil | Série générique STM32F103C, à moins que vous n'ayez la fausse carte c6, auquel cas choisissez plutôt Generic STM32F103C6/fake STM32F103C8. Si vous n'êtes pas sûr de ce que vous avez, choisir la fausse option est en fait plus sûr.
Étape 2: Télécharger
Branchez la carte dans l'adaptateur USB de votre ordinateur, chargez le croquis du paddlecontroller et cliquez sur le bouton Télécharger (flèche pointant vers la droite). Si tout se passe bien, le croquis devrait être téléchargé et le tableau devrait apparaître sur votre ordinateur sous la forme d'un joystick à deux axes et à deux boutons appelé "Stelladaptor". Sous Windows, vous pouvez le vérifier avec Windows-R, joy.cpl[enter].
Bien sûr, cela ne fera rien tant que le reste du matériel n'est pas assemblé.
Étape 3: Imprimer
- Téléchargez les fichiers stl et/ou scad depuis ma page Thingiverse pour ce projet. Veuillez noter que le bouton de la palette est modifié à partir d'ici.
- Si la largeur de votre boîtier de microrupteur est différente de 12 mm, vous devrez ajuster le paramètre de largeur du bouton dans le fichier paddlemain-standalone.scad. Vous pouvez le faire dans OpenSCAD ou dans Thingiverse Customizer.
- Vous devrez peut-être ajuster les mesures dans le fichier paddleknob.scad pour les adapter à votre potentiomètre.
-
Imprimez ces fichiers (ne faites qu'une seule copie des fichiers "2x" si vous ne voulez qu'une pagaie). J'ai utilisé du PLA, mais l'ABS devrait aussi bien fonctionner.
- 2x paddlemain.stl
- 2x paddleknob.stl
- 1x paddleconverter.stl
- 1x support pcbnarrower.stl
- 2x buttoncap110.stl (facultatif)
- 1x 12.stl (facultatif; imprimer dans une couleur différente et coller pour étiqueter les deux palettes)
Étape 4: Câblage
Vous devrez faire passer quatre fils de la carte stm32f103c à chaque contrôleur de palette. Vous pouvez utiliser de vieux cordons USB pour ces fils. Il m'est arrivé d'avoir de beaux fils autonomes à partir d'un câble Ethernet que j'ai lié avec un film rétractable.
Chaque palette a un microrupteur et un potentiomètre. Utilisez un multimètre pour identifier une paire de broches adjacentes (non diagonales) sur le microrupteur qui sont connectées/déconnectées en appuyant sur le bouton. Je vais étiqueter ces broches S1 et S2 dans le schéma. Les trois broches du potentiomètre que j'ai étiquetées P1, P2 et P3 de haut en bas, en regardant du dessous du potentiomètre, avec les broches pointant vers la droite.
Poussez les quatre fils de la planche à travers le trou sur le côté du boîtier de la pagaie (paddlemain.stl).
Lors de la connexion des fils au microrupteur, poussez d'abord les fils à travers les trous sur le côté du boîtier de la palette et soudez au commutateur pendant que le commutateur se trouve à l'extérieur du boîtier. Tirez ensuite l'interrupteur vers le boîtier, en faisant en sorte que les broches et les fils attachés s'insèrent dans les trous. J'ai coupé les épingles inutiles.
Les deux pagaies:
- P1 à S1
- P1 à carte 3.3V (3.3)
- P3 à bord GND (G)
Pagaie 1:
- P2 à bord A1
- S2 à bord A2
Pagaie 2:
- P2 à bord A3
- S2 à bord A4
Testez maintenant les connexions en vous connectant à votre ordinateur et en utilisant un programme de test de joystick. Sous windows, Windows-R, joy.cpl[enter], sélectionnez Stelladaptor, cliquez sur Properties. La palette 1 doit contrôler l'axe X et le premier bouton; la palette 2 doit contrôler l'axe Y et le deuxième bouton.
Étape 5: Assemblage final
Les micro-interrupteurs peuvent être collés (la colle chaude a fait le travail pour moi) dans leurs emplacements sur le côté de la boîte à palettes. Les capuchons des boutons peuvent être enclenchés, avec un peu de colle chaude pour plus de stabilité.
Le potentiomètre se fixe au grand trou en haut de la boîte à palettes. Le bouton doit glisser et coller. Agrandissez les trous avec une perceuse au besoin. Poussez le couvercle inférieur en ajoutant un peu de colle chaude si vous le souhaitez.
Le panneau de pilule bleu s'insère à l'intérieur de la glissière PCB, qui se visse ensuite au bas du boîtier du convertisseur, qui a également un couvercle qui peut le recouvrir.
J'ai ajouté un peu de Shoe Goo où les fils rencontrent le boîtier pour protéger les fils. Et j'ai collé des étiquettes "1" et "2" sur les palettes.
Étape 6: Modes de fonctionnement
Les palettes ont trois modes de fonctionnement. Vous pouvez changer le mode de fonctionnement en appuyant sur une combinaison particulière de boutons tout en les branchant sur un port USB, en les relâchant une fois que les LED de la carte cessent de clignoter. Une fois que vous avez changé de mode de fonctionnement, il sera enregistré dans la mémoire flash et restera jusqu'à ce que vous le changiez. (Donc, si vous ne voulez pas changer de mode, n'appuyez sur aucun bouton pendant que vous branchez les palettes sur un port USB.) Voici les options:
- Bouton de palette gauche uniquement: un joystick à deux axes et deux boutons, chaque axe et bouton étant contrôlés par une palette. De plus, les palettes s'identifient comme un Stelladaptor, un adaptateur USB abandonné pour les contrôleurs Atari 2600, et donc les émulateurs Atari 2600 comme Stella et Z26 qui sont compatibles Stelladapter devraient fonctionner parfaitement.
- Les deux boutons de palette: chaque palette affiche un joystick distinct. Le joystick a un bouton opérationnel, et tourner la palette déplace le joystick en diagonale, de sorte que l'axe X ou Y fonctionne pour la palette.
- Bouton de palette droit uniquement: les palettes s'affichent sous la forme d'une souris absolue à deux boutons. Vous pouvez maintenant l'utiliser de la même manière qu'un Etch-a-Sketch avec un programme de dessin.
Étape 7: Pong
Pong était le grand jeu de pagaie original. Je recommande la version originale, car les clones n'incluent souvent pas toutes les belles fonctionnalités subtiles, comme les changements de vitesse avec des coups répétés, l'angle change en fonction de la partie de la raquette qui frappe la balle, ou la position subtile mais pas facilement prévisible du service après un raté. Pour une analyse minutieuse de l'original, voir ici.
L'une des meilleures façons de jouer à Pong est d'utiliser l'émulateur de niveau circuit DICE si votre ordinateur est suffisamment rapide pour l'utiliser à pleine vitesse. (Mon ordinateur portable Windows l'est, mais le Raspberry PI 3+ est beaucoup trop lent.) Je recommande la version 0.8.
Si vous utilisez le mode Stelladaptor dans les palettes, allez dans Paramètres | Configurez les entrées… dans DICE et choisissez Joystick 1 et Absolute pour Player 1 Paddle, et réglez à la fois Horizontal et Vertical sur Joy 1 X-Axis. Faites ensuite la même chose pour Player 2 Paddle, sauf avec l'axe Y.
Si votre ordinateur est trop lent pour DICE, j'ai créé une version Python3+pygame dont les timings et les fonctionnalités sont censés être très proches du Pong original (je remercie le Dr Hugo Holden de l'aide à cet égard).
Conseillé:
Contrôleur de jeu Arduino Rhythm (pour mon propre jeu): 6 étapes
Contrôleur de jeu de rythme Arduino (pour mon propre jeu) : dans ce instructable, je vais vous montrer comment je construis ce contrôleur de jeu de rythme à partir de zéro. Cela implique des compétences de base en menuiserie, des compétences de base en impression 3D et des compétences de base en soudure. Vous pouvez probablement construire ce projet avec succès si vous n'avez aucun ex
Contrôleur de jeu DIY basé sur Arduino - Contrôleur de jeu Arduino PS2 - Jouer à Tekken avec la manette de jeu DIY Arduino : 7 étapes
Contrôleur de jeu DIY basé sur Arduino | Contrôleur de jeu Arduino PS2 | Jouer à Tekken avec la manette de jeu DIY Arduino : Bonjour les gars, jouer à des jeux est toujours amusant, mais jouer avec votre propre contrôleur de jeu personnalisé DIY est plus amusant. Nous allons donc créer un contrôleur de jeu utilisant arduino pro micro dans cette instructables
Contrôleur de jeu Arduino + jeu Unity : 5 étapes
Contrôleur de jeu Arduino + jeu Unity : dans cette instructable, je vais vous montrer comment créer/programmer un contrôleur de jeu arduino qui peut se connecter à l'unité
Contrôleur de jeu USB pour appareil d'exercice : 8 étapes (avec photos)
Contrôleur de jeu USB pour machine d'exercice : pour encourager l'exercice en soi et en famille, j'ai créé un adaptateur qui émule un adaptateur de contrôleur de jeu USB standard, mais contrôle la vitesse de déplacement du jeu en pédalant sur une machine elliptique ou un vélo d'appartement. C'est particulièrement agréable pour les jeux de course. Il cer
Contrôleur de jeu Arduino avec lumières répondant à votre jeu Unity :: 24 étapes
Contrôleur de jeu Arduino avec des lumières répondant à votre jeu Unity :: Tout d'abord, j'ai écrit cette chose en mots. C'est la première fois que j'utilise instructable, donc chaque fois que je dis : écrivez le code comme si sachez que je fais référence à l'image en haut de cette étape. Dans ce projet, j'utilise 2 arduino pour exécuter 2 bits séparés