Hello, pour mon premier post sur le forum, je vous présente mon projet de Panel.
Pour la ptite histoire, mon objectif est de recréer le panel pneumatique mythique de Street Fighter 1 en remplaçant le système à air comprimé par des capteurs de pression FSR pilotés par un Raspberry Pi Pico sous CircuitPython, exposé en USB HID pour MAME, afin de retrouver la courbe de résistance et la sensation progressive des coups d’origine, mais avec une électronique moderne, simple, reproductible et sans mécanique fragile.
Techniquement, ça marche comme des triggers, mais j'ai vraiment collé à la logique Street Fighter donc ça sature vite à 255 et la force et la durée d'appuie sont pris en compte pour diviser en trois segments qui vont envoyer donc un des 3 coups possible, et donc simuler l'appui d'un des trois boutons Kick ou un des trois boutons Punch, pour la version analogique de SF.
Panel SF1 Pneumatic – Version DIY FSR (Pico)
L’idée est simple :
Recréer les boutons pneumatiques de Street Fighter 1… sans compresseur, sans système à air fragile, sans pièces introuvables.
Full DIY : composants faciles à trouver, réparable et reproductible
C’est pas une réplique musée.
C’est une version moderne propre et assumée.
Le but
Jeu : Street Fighter 1 (sfjan sous mame64)
Objectif : reproduire l’intensité des coups (poing/pied) en analogique via pression.
Matos utilisé
Raspberry Pi Pico en USB HID (CircuitPython)
2 capteurs FSR (analogiques)
2 gros boutons arcade 100 mm
2 caches poussière de phare voiture 100 mm (ça fait dôme en caoutchouc)
Le bouton ne sert plus en digital. Il devient juste un poussoir mécanique.
Le microswitch d’origine n'est pas appuyé car le truc en plastique qui appuyait dessus est coupé pour ne plus cliquer. Il sert juste de support.
FSR placé sous le plunger, un peu de mousse entre les deux.
Branchement
FSR Punch → GP26 (A0)
FSR Kick → GP27 (A1)
Alim en 3.3V uniquement (pas 5V !)
Joystick sur GP18–21
Start / Select sur GP16–17
Tout en pull-up interne, appui = GND.
Windows
Win+R → joy.cpl
Le Pico apparaît en joystick.
A0 = Punch
A1 = Kick
Les axes partent du minimum et montent avec la pression.
Ils ne sont pas centrés, c’est normal pour SF1.
MAME (sfjan)
Dans le jeu :
TAB → Analog Input Adjustments
Réglages conseillés :
Sensitivity : 100
Reverse : Off
Auto-centering : 50
Increment : 25
Comment ça marche
Le FSR lit la pression
CircuitPython transforme ça en axe analogique
Le Pico envoie ça en USB
MAME interprète ça comme l’intensité des coups
Résultat :
Compression progressive, vraie sensation analogique…
Sans air, sans compresseur
Le projet est là :
https://github.com/Nelfe80/RetroBat-Mul ... _pneumatic