まこと の ブログ

MaKoTo no burogu — Journal de bord…

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé - Électronique

Fil des billets - Fil des commentaires

jeudi, 3 novembre 2022

IR « Light » Gun avec Arduino (prototype)

Certains jeux vidéos d'arcade sont jouables uniquement avec certains accessoires.
Un volant et des pédales, un tapis de danse, des boutons à frapper, etc, tout ce qui fait le charme des bornes dédiées.
Parmi elles, il y a les jeux de flingues qui sont particulièrement amusants, mais les évolutions technologiques ont rendu les pistolets optiques obsolètes, car inopérant par la disparition du téléviseur à tube cathodique.

De plus, aucun émulateur n'est capable de faire fonctionner un pistolet optique, et ce même si on utilise une télé à tube.
En fait les émulateurs simulent le déplacement du réticule de visée soit par les mouvements de la souris, soit par les mouvements d'un joystick analogique. (mame permet les deux)

Pour résumer, la problématique :
- Dans le cas des jeux originaux, sur console ou arcade, le pistolet optique ne fonctionne pas sur une télé LCD.
- Dans le cas des jeux émulés, console ou arcade, le pistolet optique n'est pas supporté par l'émulateur.

Les solutions disponibles :
- Dans le cas des jeux originaux, certains jeux d'arcade utilisent les coordonnées X,Y d'un potentiomètre analogique pour déplacer le réticule de visée.
- Dans le cas des jeux émulés, on peut utiliser la souris ou un joystick analogique pour déplacer le réticule de visée.

  • Par le passé (oui il y a quasi 10 ans…) j’avais expérimenté ici ce pistolet infra-rouge G2N pour un appareil fonctionnel qu’il restait à finaliser, chose que je n’ai pas pris le temps de faire, emporté par d’autres sujets… (j’ai supprimé la série de billets pour plus de clarté)
  • Depuis, une nouvelle version plus simple à mettre en œuvre a fait son apparition, et après avoir réalisé rapidement un module de test fonctionnel, je me suis rendu compte qu’il me faudrait adapter le code et le hardware à mes besoins.

Je vais donc décrire ici toute la documentation utile à la réalisation de ce pistolet Infra-Rouge maison.


Schéma de principe :


Un simple Arduino Pro Micro 5V constitue le cœur du système de traitement de la donnée.
Il est chargé via le bus I²C, de récupérer les informations de positionnement en X et Y d'une caméra infra-rouge disposée dans le pistolet, par rapport à deux références infra-Rouge accrochées au dessus de l'écran.
L’Arduino fait ensuite l'interface avec l’ordinateur de jeux en transposant tout ceci en « HID Device », Joystick et Souris USB (oui, simultanément), afin de déplacer le réticule des jeux de tir.

Dans le pistolet nous retrouvons donc une caméra IR volée dans une Wiimote, à laquelle nous avons joint quelques composants essentiels.
Tout d’abord un LM317 et ses satellites permettant de fabriquer le 3,3V nécessaire au bon fonctionnement de la caméra, à partir du 5V fournit par le port USB.
Un crystal à 24 ou 25 Mhz, un circuit de reset et une conversion de niveaux logiques 3,3V <-> 5V, afin que l’Arduino puisse bien s’entendre avec la caméra sur le bus I²C.
Reste à déporter aussi quelques entrées de l’Arduino pour y raccorder des boutons faisant offices de gâchette et autre choses utiles.
Je pense qu'on pourrait se passer des conversions de tension et de niveaux logiques en 3,3V en utilisant directement un Arduino Pro Micro 3,3V, mais le fait est que je n'en disposais pas lors de la réalisation de ce sujet… À essayer à l'occasion.

Gun PCB :

On doit pouvoir se débrouiller facilement avec l’électronique disponible sous forme de modules (Arduino, Logic level converter…) et une carte perforée à souder pour fabriquer une plaquette sur mesure pour aller dans le flingue.

  • Pour autant on pourrait aussi avoir envie de router une plaquette soit-même, aussi j’ai entrepris de dessiner ce schéma que d’aucun préféreront sans doute au crobar Fritzing précédent.

Lire la suite...

samedi, 30 juillet 2022

TempéroClock

dsc03666.jpg

Étant donné que je m'amuse bien avec les capteurs de températures/humidités en ce moment, j'ai eu envie d'en ajouter un dans le salon/salle à manger/atelier/salle de jeu/dortoire à ratoux/chambre d'amis/biliothéque…

  • Et plutôt que d'entreprendre un nouvel afficheur, j'ai préféré utiliser celui que j'avais déjà, l'horloge de salon, elle même dérivée de l'horloge du WebRadioRéveilWifi, donc de conserver la même carte électronique, et simplement la modifier pour ajouter un capteur DHT11.
  • J'ai donc édité le schéma (projet kicad en annexe[1]) afin de documenter les modifications faites à la volée (comprendre charcutage de pistes au cutter, soudage de composants à la sauvage).


Ont donc été supprimé les leds alarmes et le buzzer, car finalement ça ne m'est pas utile, afin de disposer d'une sortie PWM de l'Arduino pour séparer la commande des deux leds constituant le « deux points » scindant heure et minutes.
Je n'ai pas de photos à montrer, j'ai refermé l'appareil là… flemme.

Le programme :

  • Le code est ici ou en annexe du billet[2], corrigé de quelques erreurs de jeunesse, mais je n'ai pas pris le temps de nettoyer le code et de commenter correctement, désolé…

  • Les boutons Alarmes ont donc été remplacées par :

- Un bouton « Temp/Humido » permettant de choisir d'afficher en permanence la température ou bien l'humidité (mise à jours toutes les 2 secondes).
- Un bouton « Caroussel » permettant d'afficher l'heure durant 8 secondes, puis de basculer 2 secondes sur la température, puis 2 secondes sur l'humidité.
- Le bouton « Horloge » permet comme auparavant de mettre à l'heure l'horloge en le combinant aux boutons « heures » ou « minutes », mais aussi de demander d'afficher uniquement l'heure.



- Pour le reste, les leds de l'horloge s'allument lorsque le capteur PIR détecte un mouvement, et ceci pour 3 heures durant, avant de s'éteindre.
- Pendant ce temps la photorésistance se charge d'ajuster l'intensité lumineuse des leds, plus forte s'il capte beaucoup de lumière et moins forte dans le cas contraire.



  • Une petite vidéo :

Notes

[1] À voir ci-dessous… Attention, je n'ai pas mis à jour le PCB, il n'y a que le structurel qui contient les modifications

[2] ci-dessous

samedi, 8 janvier 2022

Sound Voltex -1-


Sound Voltex… Qu'est-ce que c'est encore ça donc ?
Ben un autre jeu de rythme de Konami, que vous pourrez découvrir plus en détail sur le site https://bemani.fr/game/sdvx/.
Mais surtout une énorme borne d'Arcade, comme on peut l'admirer ci-contre… (non, calme-toi, je vais pas la fabriquer…)

Il semble en effet que je fasse partie des ces personnes qui aime ce type de jeu, et jusqu'ici je ne m'en étais pas vraiment rendu compte…
Je pensais jouer à « un peu tout », mais en fait le temps passant, certains genres ressortent bien plus maintenant qu'auparavant.
Et si je regarde ce que j'ai tâté pour 5 minutes, ou des centaines d'heures, nous avons tout de même DDR, Guitar Heroe, Oendan, Taiko no Tatsujin, jubeat, Beat Mania, Technika2, et Pop'n music.

Ainsi je suis un joueur de Shmup et chose pas si rare pour cette catégorie, aussi de jeux de rythmes. Il y a un lien entre ces deux genres, et celleux qui ont déjà entendu parler du concept de « zone » ou de « flow » comprendront je pense ce qu'il peut bien y avoir en commun entre un Shmup et un rhythm game.



  • Bref, séduit par l'originalité du contrôleur du jeu, j'ai voulu m'y essayer, en commençant doucement par quelque chose d'accessible pour moi, « sans dépenser un rond » ni traverser la moitié du pays pour trouver une borne jouable.

Un contrôleur fait maison :

J'ai donc repéré l’existence d'un mini-contrôleur, alias le « Pocket-SDVX », partagé sur le github de speedypotato.
Ni une ni deux, j'ai fouillé mes tiroirs à la recherche des composants nécessaires, et oui, j'avais souvenir de tout avoir sous la main, on va pouvoir le construire tout de suite !

  • Arduino Pro Micro, encodeurs, touches de clavier mécanique de récup, restait à imprimer les pièces de plastiques :


Lire la suite...

lundi, 5 avril 2021

jubeat -1-

Cela fait un peu plus de 6 ans maintenant, en décembre 2014, que j'ai découvert Jubeat en salle d'Arcade, et que j'ai été rapidement séduit par la rapidité de prise en main de ce jeu de rythme de Bemani (la branche Rhythm game de Konami).

Photo d'époque avec mon FirefoxOS sur OpenC (que j'utilise toujours…) qui galère sévère en basse lumière.

Et depuis que la salle a fermé, j'envisageais de me fabriquer une version portable de la borne, mais sans jamais lancer les choses sérieusement. J'avais quelques idées de façons de faire et elles nécessitaient l'emploi d'une découpeuse laser, j'avais d'ailleurs commencé à me renseigner sur l'engin en FabLab…
Mais bon, je pense que j'étais freiné par la complexité mécanique du panel 16 boutons à concevoir, on est ici pas face à la trivialité de confection d'un stick arcade.

  • J'avais tout de même trouvé pas mal de documentation sur des panels DIY, et on en trouve encore plus aujourd'hui, mais globalement la recette reste la même, à base de microswitch :

À l'époque, c'est sur NezBlog que j'ai eu l'inspiration, site Japonais malheureusement disparu, mais qui ne meurt pas complètement grâce à archive.org, voici donc, via archive.org les 4 pages du contrôleur aboutit en 2011 :

- jubeatコントローラ自作計画まとめ
- jubeatコントローラ自作計画まとめ(2)
- jubeatコントローラ自作計画まとめ(3)
- 自作jubeat用PIC回路図&ファームウェア
- La vidéo qui montre la progression de la construction, sur NicoNico Douga

  • Au même moment, je découvrais le panel DAO FB9, un clone du panel de la borne originale, pour ainsi dire, une copie parfaite, qui avait le mérite d'être portable, permettant d'y glisser un écran, malheureusement plus distribué depuis.

Séduit par ces solutions, je me disais que plutôt que de concevoir une borne encombrante, autant avoir un panel à plaquer sur mon écran d'ordi 24 pouces, orientable grâce à un bras ergotron, et le tour serait joué…

On pouvait lire par-ci par-la qu'il faisait 22 pouces, réglé en 1280x720 et que les touches du panel mesuraient 65 mm de côtés.

  • Grâce aux photos du FB9 sur le blog FlipFlop, j'ai pu comprendre que c'était sans doute du flan, et puis intrigué j'ai voulu vérifier, en mesurant comme j'ai pu à la salle, et j'avais noté des touches de 67 mm écartée de 13 mm, calculant alors un écran 26 pouces. (j'étais pas loin !)

  • En parallèle de ça, j'avais aussi expérimenté le logiciel, en découvrant des clones du jeu :

- Comme Youbeat (Jubeat se prononçant en fait Youbeat)
- Ainsi que Jubeat Analyser, qui permet carrément de créer ses propres pattern de jeux à plaquer sur des chansons. Je ne suis pas sûr d'ailleurs, mais je pense que Youbeat a été crée à partir de Jubeat analyser… À vérifier.
- Voici d'ailleurs un peu plus d'info sur l'état actuel de l'émulation via ce site.

  • Cependant j'avais pu dégotter une archive du jeu original — et qui fonctionnait — dans sa version « Knit », permettant alors de confirmer que le jeu tournait plutôt en 1360x768.

Souhaitant coller le plus à l'original, et pollué par ces info contradictoires, je ne comprenais plus rien, et ça a contribué à enterrer un peu plus l'étude qui partait mal…

Lire la suite...

- page 2 de 18 -