|
| 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, 09: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 : 7508 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 : 1072 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 : 10807 Réputation : 366 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, 12: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 : 1072 Réputation : 77 Age : 24 Inscrit le : 10/09/2015
Switch Lite
Localisation : Quelque part dans le monde
Humeur : :D
| | | | Caanunoo PANDORA Addict
Messages : 7508 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, 13: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 : 1072 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, 14: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, 14: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, 15:03, édité 1 fois |
| | | Gougoule Master Chief
Messages : 778 Réputation : 60 Inscrit le : 29/12/2012
| Msg n°12 Sujet: Re: Ma borne d'arcade Mahjong Mer 14 Avr 2021, 15: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, 16: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 | » "a supprimer" vu que je fais mal à certains rageux ici...Hier à 23:40 par hdx » NOEL DU FOFOHier à 23:32 par kristof37 » Trimui Brick , La petite soeur de la Smart ProHier à 22:51 par Timika » ROG ALLY XHier à 22:23 par foudufam » Hello l'équipe !Hier à 17:42 par Jtecouine69 » Retroid pocket 5Hier à 16:43 par goldenboy92 » NeoGeo Pocket Boy 2024Hier à 10:42 par Jutige » Quelle possibilités pour mon mini PC beelink ser5Mar 03 Déc 2024, 18:49 par Rival187 » ES-DE pour androidMar 03 Déc 2024, 18:11 par Pounours » Mini PC pour remplacer mon Beelink GT KingMar 03 Déc 2024, 17:10 par goldenboy92 » Anbernic RG-406 HMar 03 Déc 2024, 15:32 par Rival187 » Pourquoi peu de consoles sous Linux ?Mar 03 Déc 2024, 06:59 par Timika » Miyoo Mini FlipLun 02 Déc 2024, 20:08 par Veuks » Upgrade Powkiddy A13Lun 02 Déc 2024, 20:05 par Jutige » La meilleure version de Skies of ArcadiaLun 02 Déc 2024, 16:42 par Rival187 » Trimui Smart Pro Calibrage des joysticksLun 02 Déc 2024, 13:54 par Alphonse » encore un wip !Lun 02 Déc 2024, 12:13 par arnodaro » Trimui smart pro petite aide svpDim 01 Déc 2024, 19:27 par namassepasmousse » Quelle solution "Emulationstation" sous android ?Dim 01 Déc 2024, 14:15 par arnodaro » Anbernic RG35XXSP, au format d'une GBA SP Dim 01 Déc 2024, 12:22 par stphmlt |
La Timeline Open-Consoles |
|
|