|
| Ma borne d'arcade Mahjong | |
| Auteur | Message |
---|
cauxim Padawan
Messages : 200 Réputation : 27 Age : 49 Inscrit le : 13/02/2014
gpd xd, Steam deck, rg300x, powkiddy a66, psVita
| Msg n°1 Sujet: Ma borne d'arcade Mahjong Mar 13 Avr 2021, 11:47 | |
| Voici ma borne d'arcade Mahjong [Vous devez être inscrit et connecté pour voir cette image]Bon c'est une construction assez classique: un bartop et un piédestal construit en bois MDF. Quelques boutons et stick commandés sur aliExpress branché sur une carte encodeur USb, le tout tournant sur un Raspberry 3. La particularité ici c'est la partie Clavier pour le Mahjong: [Vous devez être inscrit et connecté pour voir cette image]Pour Jouer au Mahjong avec l'émulateur Mame, on a besoin des lettres de A à N, Ainsi que de 5 touches pour les commandes "chi", "pon", "kan", "reach", et "ron". Pour les 5 touches il suffit de modifier les commandes dans Mame pour reconfigurer les touches, mais pour le clavier c'est une autre histoire. Déjà parce qu'il faut 14 touches supplémentaires, ce qui est supérieur aux entrées restantes sur la carte USB, et le Core Mame de retroarch n'accepte pas de configurer une seconde carte USB pour le joueur 1. Donc il faut un clavier réel, d'où l'idée d'utiliser une carte Arduino Leonardo, ou un clone comme la Pro micro dispo sur aliExpress pour 3€ environ. [Vous devez être inscrit et connecté pour voir cette image]En effet cette carte est doté d'un micro contrôleur Atmega32U4 qui est compatible avec la library Keyboard. Cette carte possède un émetteur-récepteur USB qui va nous permettre de simuler des touches de clavier. La Seconde idée est d'utiliser un seul port Analog pour toutes les touches, évitant ainsi d'avoir trop de câbles. l'avantage du port analogue c'est qu'on peut faire varier sa valeur. En faite l'idée est de séparer chaque touche par une résistance, et ensuite dans le programme Lire la valeur du port Analog pour retrouver la touche pressée. En branchant les touches comme ceci: [Vous devez être inscrit et connecté pour voir cette image]C'est assez simple à comprendre: Si vous lisez la valeur du port Analog A1 en appuyant sur le Bouton A - Code:
-
int valeur = analogRead(A1); Serial.println(valeur); La tension part du port VCC (+5V), passe par le bouton 'A' pressé, et arrive au port analog 'A1' en n'ayant rencontré aucune résistance, alors la valeur retourné est 1023. Si maintenant vous appuyez sur le bouton 'B', la tension va rencontrer une résistance de 300Homs et la valeur retourné sera de 993. Sur la touche 'C' elle va rencontrer 2 résistances, etc. Ensuite il suffit d'écrire un programme pour dire simplement que si la valeur du port Analog (A1) est 993 alors on a appuyé sur la touche 'B' du clavier, si la valeur est 964 alors on a appuyé sur la touche 'C' du clavier, etc. Bon pour être plus exact, et considérant que les résistances ont une marge d'erreur, on va plutôt chercher la touche pressé dans une fourchette de valeur: Exemple: si la valeur est comprise entre "985" et 995" alors c'est la touche 'B' qui est pressé. Voici à quoi peut ressembler le programme à insérer dans la carte: - Code:
-
#include <Keyboard.h>
int valeur;
void setup() { Serial.begin(9600);
//bouton N pinMode(6,INPUT);
}
void loop() { //BOUTON N boolean a=digitalRead(6); if(a==1){ Keyboard.begin(); Keyboard.press('n'); delay(100); Keyboard.releaseAll(); delay(100); Keyboard.end(); } valeur = analogRead(A1);
if(valeur>5){ Keyboard.begin();
if(valeur >1015){ Keyboard.press('a'); } else if(valeur > 995 && valeur < 1005){ Keyboard.press('b'); } else if(valeur > 975 && valeur < 985){ Keyboard.press('c'); } else if(valeur > 955 && valeur < 965){ Keyboard.press('d'); } else if(valeur > 935 && valeur < 945){ Keyboard.press('e'); } else if(valeur > 915 && valeur < 925){ Keyboard.press('f'); } else if(valeur > 900 && valeur < 910){ Keyboard.press('g'); } else if(valeur > 880 && valeur < 890){ Keyboard.press('h'); } else if(valeur > 865 && valeur < 875){ Keyboard.press('i'); } else if(valeur > 850 && valeur < 860){ Keyboard.press('j'); } else if(valeur > 835 && valeur < 845){ Keyboard.press('k'); } else if(valeur > 820 && valeur < 830){ Keyboard.press('l'); } else if(valeur > 805 && valeur < 815){ Keyboard.press('m'); } delay(50); Keyboard.releaseAll(); delay(50); Keyboard.end();
}
delay(10); }
Voila, si vous lisez correctement mon code, vous verrez que j'ai mis la touche 'N' sur un port simple. En effet au mahjong, on appuie facilement 40 fois sur la touche 'N' par manche. j'ai donc préféré le mettre seul, c'est plus rapide pour la lecture du code. Ensuite les valeurs ne correspondent pas à mon exemple, tout simplement parce que j'ai utilisé des résistances de 220 Ohms. Et pour finir j'ai enveloppé le code pour n'ouvrir la lecture clavier que si la valeur est supérieur à 5, inutile de lire en boucle si aucune touche n'est pressé (d'où l'utilité de séparer la touche 'N') Voila j'espère vous avoir éclairci sur la simulation d'un clavier. pensez y si à l'avenir vous voulez créer un cockpit pour un simulateur de vol, ou tout autre projet qui demande de nombreuses touches. |
| | | Caanunoo PANDORA Addict
Messages : 7498 Réputation : 838 Age : 51 Inscrit le : 10/03/2020
OpenPandora 1GHz & 600 MHz, GPD XD+, WIN 1, 2 & MAX, Micro PC, Old 3DS Luma, PS Vita Slim Hack 3.65, GPD XP & +, Old DS R4, NeoGeo X, AYN Odin Pro, GKD Mini Plus, Valve Steam Deck, Miyoo Mini +, Trimui Smart Pro, AYN Odin Pro 2, Retroid Pocket Flip, RP4Pro, RP2S ME, Anbernic RG Cube , Miyoo A30, ZPG A1 Unicorn, AYANEO Pocket AIR - Retro Edition, Anbernic RG406V
Localisation : Open-Consoles
Humeur : Splité (cf film "Split")
| | | | entropie Master Chief
Messages : 528 Réputation : 16 Age : 45 Inscrit le : 16/12/2014
Localisation : Ici et là
| | | | RatedR57 Membre Hyper Actif
Messages : 1828 Réputation : 61 Age : 44 Inscrit le : 16/11/2012
Megadrive, GameBoy et Playstation
Localisation : Tressange (57)
Humeur : Nostalgeek
| | | | cauxim Padawan
Messages : 200 Réputation : 27 Age : 49 Inscrit le : 13/02/2014
gpd xd, Steam deck, rg300x, powkiddy a66, psVita
| | | | ClementNerma Ultimate Retrogamer
Messages : 1071 Réputation : 77 Age : 24 Inscrit le : 10/09/2015
Switch Lite
Localisation : Quelque part dans le monde
Humeur : :D
| | | | k0en Team Open Consoles
Messages : 10797 Réputation : 365 Age : 43 Inscrit le : 25/01/2011
TO7-70
Localisation : Devant son écran
Humeur : Indécis
| Msg n°7 Sujet: Re: Ma borne d'arcade Mahjong Mer 14 Avr 2021, 14:25 | |
| Alors là, j'aurai jamais imaginé une borne Mahjong Bravo ! POur moi le Mahjong c'est une sorte de jeu de domino à assembler par paire et je suis en train de me dire qu'il y a des subtilités que je n'ai pas saisi |
| | | ClementNerma Ultimate Retrogamer
Messages : 1071 Réputation : 77 Age : 24 Inscrit le : 10/09/2015
Switch Lite
Localisation : Quelque part dans le monde
Humeur : :D
| | | | Caanunoo PANDORA Addict
Messages : 7498 Réputation : 838 Age : 51 Inscrit le : 10/03/2020
OpenPandora 1GHz & 600 MHz, GPD XD+, WIN 1, 2 & MAX, Micro PC, Old 3DS Luma, PS Vita Slim Hack 3.65, GPD XP & +, Old DS R4, NeoGeo X, AYN Odin Pro, GKD Mini Plus, Valve Steam Deck, Miyoo Mini +, Trimui Smart Pro, AYN Odin Pro 2, Retroid Pocket Flip, RP4Pro, RP2S ME, Anbernic RG Cube , Miyoo A30, ZPG A1 Unicorn, AYANEO Pocket AIR - Retro Edition, Anbernic RG406V
Localisation : Open-Consoles
Humeur : Splité (cf film "Split")
| Msg n°9 Sujet: Re: Ma borne d'arcade Mahjong Mer 14 Avr 2021, 15:53 | |
| - ClementNerma a écrit:
- C'est un jeu assez complexe effectivement, le principe est simple
Complexe...mais simple... Ceci est un paradoxe !!! J'en conclu que le mahjonj est complexe dans sa simplicité ou bien qu'il est facile dans sa complexité !!! |
| | | ClementNerma Ultimate Retrogamer
Messages : 1071 Réputation : 77 Age : 24 Inscrit le : 10/09/2015
Switch Lite
Localisation : Quelque part dans le monde
Humeur : :D
| Msg n°10 Sujet: Re: Ma borne d'arcade Mahjong Mer 14 Avr 2021, 16:15 | |
| - Caanunoo a écrit:
- ClementNerma a écrit:
- C'est un jeu assez complexe effectivement, le principe est simple
Complexe...mais simple... Ceci est un paradoxe !!! J'en conclu que le mahjonj est complexe dans sa simplicité ou bien qu'il est facile dans sa complexité !!! Non mais tu m'as compris quoi xD Ce que je veux dire c'est que le principe est simple mais que la multitude de règles et les subtilités font que c'est, au final assez complexe. Un peu comme le Poker par exemple, le principe est très simple, mais tu as plein de subtilités |
| | | Tryskel Petit scarabée
Messages : 70 Réputation : 1 Age : 40 Inscrit le : 28/01/2021
Localisation : Ostwald
| Msg n°11 Sujet: Re: Ma borne d'arcade Mahjong Mer 14 Avr 2021, 16:53 | |
| - k0en a écrit:
- Alors là, j'aurai jamais imaginé une borne Mahjong
Bravo ! POur moi le Mahjong c'est une sorte de jeu de domino à assembler par paire et je suis en train de me dire qu'il y a des subtilités que je n'ai pas saisi Ca, c'est comme le Solitaire aux cartes. Le mahjong se joue à quatre et est assez proche du rami dans certains de ses aspects, voilà plutôt à quoi ça ressemble [Vous devez être inscrit et connecté pour voir cette image]Du coup, on a une main de 13 tuiles maximum, on pioche une 14e, et on jette la moins intéressante pour construire au fur et à mesure sa main, d'où les 14 touches de A à N pour choisir la tuile qu'on veut jeter
Dernière édition par Tryskel le Mer 14 Avr 2021, 17:03, édité 1 fois |
| | | Gougoule Master Chief
Messages : 776 Réputation : 60 Inscrit le : 29/12/2012
| Msg n°12 Sujet: Re: Ma borne d'arcade Mahjong Mer 14 Avr 2021, 17:00 | |
| merci pour le partage et bravo pour la transparence des explications ! Beau boulot ! |
| | | entropie Master Chief
Messages : 528 Réputation : 16 Age : 45 Inscrit le : 16/12/2014
Localisation : Ici et là
| Msg n°13 Sujet: Re: Ma borne d'arcade Mahjong Mer 14 Avr 2021, 18:44 | |
| Si j'avais du temps et les connaissances techniques nécessaires, c'est un jeu de poker que je fabriquerais. j'adorerais avoir une petite borne pour jouer au poker... |
| | | Contenu sponsorisé
| | | | |
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| Derniers sujets | » Bartop tout assemblé...un rêve ?Aujourd'hui à 18:50 par fredkadelic » Salut à tousAujourd'hui à 13:17 par Atomes » Miyoo Mini +Aujourd'hui à 11:30 par probox4ever » AYN Odin 2 PortalHier à 15:01 par deemak » AYN Odin 2Hier à 13:35 par Timika » Noël entre membres du fofo le retour ?Hier à 11:46 par Atomes » La meilleure version de Skies of ArcadiaHier à 07:11 par Rival187 » RG-406VVen 15 Nov 2024, 23:36 par batpoigne » [rech] cartouches NES DD, tiger Heli et MegamanVen 15 Nov 2024, 15:49 par raphaelpp » Trimui Smart Pro Ven 15 Nov 2024, 08:56 par _n3o_ » [ANBERNIC RG ARC-D/S] OC-ARCPADVen 15 Nov 2024, 07:40 par batpoigne » Tuto : installer Android 11 sur la Retroid Pocket 2+Jeu 14 Nov 2024, 22:32 par plskthx » Indiana Jones et le Cercle AncienJeu 14 Nov 2024, 08:41 par fredkadelic » Specs Comparison toolJeu 14 Nov 2024, 00:20 par fredkadelic » Retroid pocket 5Mer 13 Nov 2024, 22:10 par Rival187 » Batocera ou autres sur Retroid pocket go?Mer 13 Nov 2024, 12:59 par Atomes » unico pocket licensed by SNKMar 12 Nov 2024, 21:30 par Caanunoo » Pourquoi peu de consoles sous Linux ?Mar 12 Nov 2024, 21:26 par Caanunoo » Soldes du 11.11Lun 11 Nov 2024, 19:30 par Timika » NeoGeo Pocket Boy 2024Dim 10 Nov 2024, 21:19 par Jutige |
La Timeline Open-Consoles |
|
|