Table des matières:

Contrôleur de jeu familial sans fil à 4 joueurs : 3 étapes
Contrôleur de jeu familial sans fil à 4 joueurs : 3 étapes

Vidéo: Contrôleur de jeu familial sans fil à 4 joueurs : 3 étapes

Vidéo: Contrôleur de jeu familial sans fil à 4 joueurs : 3 étapes
Vidéo: Un jeu brise glace - Sans matériel en respectant les gestes barrières 2024, Novembre
Anonim
Contrôleur de jeu familial sans fil à 4 joueurs
Contrôleur de jeu familial sans fil à 4 joueurs
Contrôleur de jeu familial sans fil à 4 joueurs
Contrôleur de jeu familial sans fil à 4 joueurs
Contrôleur de jeu familial sans fil à 4 joueurs
Contrôleur de jeu familial sans fil à 4 joueurs

Il s'agit d'un contrôleur de style arcade sans fil sur lequel 4 personnes peuvent jouer à la fois. Il est sans fil pour que vous n'ayez pas à connecter votre ordinateur à un contrôleur utilisé par des enfants de 5 ans. Ils tombent tout le temps et je ne veux pas qu'ils détruisent tous mes jouets lorsqu'ils trébuchent inévitablement sur un fil. Comme quelque chose d'une sitcom, je me disputais continuellement avec ma femme pour garder la boîte. Pour moi, cela semblait implorer d'être transformé en quelque chose alors que pour elle, c'était de la vilaine ordure. Puis, à l'improviste, Instructables a organisé un concours de vitesse basé sur du carton. Et c'est ainsi qu'en un après-midi l'argument a été réglé et ce projet est né.

Nous avons utilisé des bric-à-brac que nous avions autour de la maison pour donner vie au projet. L'idée était juste d'utiliser ce que nous avions déjà assis pour faire quelque chose de cool - heureusement, nous avions un ensemble de boutons d'arcade et un Raspberry Pi que nous avons achetés il y a longtemps pour faire une borne d'arcade. Pour couper, nous avons utilisé une scie et mon fidèle vieux couteau de poche.

Fournitures

1. Boîte en carton2. Polystyrène ou autre charge dense 3. Boutons d'arcade d'Ali Express ou d'Amazon 4. Raspberry Pi 3B+ 5. Un autre ordinateur + écran. 6. Couteau ou quelque chose pour percer des trous dans le carton 7. Ruban de masquage8. Peinture en aérosol

Étape 1: La construction

La construction
La construction
La construction
La construction
La construction
La construction

Nous avons rapidement dessiné un croquis de ce à quoi nous voulions que la chose ressemble, puis avons utilisé un couteau et une scie à bois pour couper le carton et la mousse de polystyrène à la bonne taille. Nous avons marqué le carton avec une bonne disposition des boutons/joystick et découpé les trous soigneusement avec un couteau. C'était un excellent exercice de mathématiques de base pour les enfants. Une fois le carton coupé, nous l'avons peint, puis nous avons mis tous les boutons en place. La principale chose intéressante que nous avons faite a été de coller trois couches de carton pour le dessus du contrôleur pour lui donner plus de rigidité. Cela rendait la coupe quelque peu difficile, mais fonctionnait parfaitement pour rendre le dessus presque aussi solide que le bois.

Le Raspberry Pi 3B+ possède quatre ports USB. Nous avons une famille de quatre et 4 jeux de boutons d'arcade ! C'était la prédestination.

Étape 2: La programmation

La programmation
La programmation
La programmation
La programmation
La programmation
La programmation
La programmation
La programmation

Le code de ce projet est simple et bogué. Tout se trouve ici:

github.com/melvyniandrag/SuperTuxJunkKartLes 4 contrôleurs sont connectés via usb à un raspberry pi. Sur le Raspberry pi, il y a un petit script python en cours d'exécution. J'ai utilisé la bibliothèque d'entrées Python pour obtenir les signaux des boutons et des joysticks. Le programme transforme ensuite le signal en un code ASCII court et l'envoie via une prise TCP via wifi à un PC exécutant un jeu (je l'appellerai le serveur de jeu). Par exemple, lorsque le joueur 0 déplace le joystick vers la gauche, les caractères '0XL' sont envoyés via le socket TCP au serveur de jeu. Pour les tests, j'ai exécuté SuperTuxKart sur mon thinkpad. Une petite application serveur s'exécute sur le thinkpad et écoute sur le socket TCP. Les codes qui proviennent du raspberry pi sur wifi sont traduits en appuis sur les boutons du clavier via la bibliothèque pyautogui. Ainsi, lorsque le joueur 0 sur le contrôleur en carton déplace le joystick vers la gauche et que le contrôleur émet « OXL », le serveur exécutant le jeu pense que le joueur a appuyé sur le bouton « 1 » du clavier. Le jeu doit être configuré pour reconnaître ces pressions sur le clavier, comme le montre l'écran d'options ici. Ce jeu fonctionne bien avec un ou deux joueurs, mais lorsque 4 personnes jouent agressivement à SuperTuxKart, le serveur commence à manquer certaines données du contrôleur. Je ne sais pas si c'est une erreur:1. Côté client (contrôleur)2. Côté serveur (thinkpad)3. Fonctionnalité Linux intégrée. Peut-être que mon ordinateur portable Ubuntu ne peut pas reconnaître un grand nombre de touches simultanées. Donc, si les joueurs 0, 1 et 2 se dirigent tous vers le haut et vers la gauche, cela signifie que 2 * 3 = 6 boutons sont enfoncés en même temps. Je ne sais pas si mon ordinateur (ou n'importe quel ordinateur) est conçu pour gérer cela. Habituellement, les touches de raccourci sont constituées de 3 boutons ou moins, par ex. CTRL + ALT + SUPPR. À l'avenir, je vais essayer de démarrer 4 sockets TCP, un pour chaque contrôleur, puis du côté serveur en créant une manette de jeu virtuelle. Je n'ai pas encore eu le temps de voir comment faire cela entre la parentalité, le travail et la découpe de cartons.

Étape 3: L'avenir

Il s'agissait d'une simple preuve de concept. À l'avenir, le code doit être amélioré. J'aimerais coder la connexion en tant que périphérique Bluetooth HID, mais bluez5 sous Linux prend un peu de temps pour travailler - c'est pourquoi je suis allé avec un socket TCP + Python. Aussi - avouons-le - le contrôleur a l'air comme diable. Avec plus de temps, j'investirais un peu plus d'énergie pour couper plus soigneusement. Ensuite, je mettrais plus de supports - les côtés de la boîte commencent à se déformer un peu. Pour ce que c'est et ce que ça coûte, cette chose a l'air assez bien. Je vais continuer à bricoler dessus pendant que nous regardons des films le soir.

Conseillé: