Kategoriarkiv: I-PAC

I-PAC

I-PAC er en såkaldt Encoder. Den kan omsætte digitale joysticks og knapper til tastaturtryk.

ipac2_diag

I-PAC 2

Overfor en PC eller Raspberry optræder den simpelthen som et tastatur.

Der findes en række andre encodere på markedet, men I-PAC er plug’n'play til MAME projekter. Jeg er ikke stødt på andre encodere som fungerer ud af boksen uden drivere eller andre omveje, som jeg tror på vil fungere med Pi.

Ultimarc, som leverer I-PAC har gennem længere tid leveret to ud gaver: I-PAC 2 og I-PAC 4, svarende til antal 2-player og 4-player systemer. I-PAC 2 har 32 inputs som er nok til 2 joystick og tilhørende knapper. De gamle I-PAC’s har udgang via PS/2 stik og det vil kræve en PC/2 til USB konverter for at virke med Raspberry Pi.

ipacve_top

I-PAC VE

For nyligt har Ultimarc også lavet en version af I-PAC 2 som har USB udgang: I-PAC VE (Value Edition). Det lyder som den vi skal bruge til vores projekt. Den er oven i købet lidt billigere.

I-PAC VE har dog en begrænsning i forhold de oprindelige I-PAC 2/4, i det den ikke indeholder en EEPROM. Man kan omprogrammere hvilke keyboard taster, der skal sende til computeren, anhængig af hvilken port der aktiveres. Det kan I-PAC VE også, men denne indstilling forsvinder igen så snart strømmen forsvinder.

Heldigvis er I-PAC allerede forprogrammeret til netop MAME, så hvis vi blot forbinder knapper og joystick til de anvisninger der er på printet, så burde det slet ikke være nødvendigt at programmere I-PAC’en. Skulle der være en enkelt knap vi ønskede anderledes, f.eks. en reset eller pause knap, så er der en konfigurations fil til MAME, hvor man også kan ændre på tasterne. Dette gemmes på SDkort og forbliver efter sluk af strøm.

I-PAC 2/4 fås hos forhandlere i Danmark, men ikke I-PAC VE. Jeg har dog fundet en i Tyskland der har den, så vi kan slippe for amerikansk told.

Jeg er i tvivl om Raspberry Pi kan trække en I-PAC uden en strømforsynet USB-hub. Jeg kan ikke finde information om, hvor meget strøm I-PAC bruger, men véd, at Pi model B kan leverer 300 mA, og model A vist leverer 500 mA. Men mon ikke det skulle være rigeligt.

Kilder

GPIO vs I-PAC

Joystick og knapper skal tilsluttes til Raspberry Pi for at kunne virke i MAME. Den nemme løsning er at købe et I-PAC kort, som emulerer tasterne på et keyboard (læs mere her).

Men et I-PAC kort koster næster det samme som hele Raspberry Pi’en og Pi’en har jo sine egne input/output porte (GPIO General Purpose Input/Output) i forvejen. Så hvorfor ikke spare I-PAC og bruge GPIO’erne?

GPIOs

The layout of the Raspberry Pi P1 pin-header seen from the top, containing pins useable for general purpose I/O

Raspberry Pi er født med 17 porte, som kan bruges. Ganske vist er nogle porte som standard reserveret til særlige formål, f.eks. seriel kommunikation, men det kan ændres programmeringsmæssigt.

Et joystick kræver 4 porte og hvis vi skal have 4 knapper til hver spiller og to spillere, så er vi allerede oppe på 16 porte. Og så mangler vi stadig Coin-, 1-player/2-player, reset (til skift af spil). Dermed er vi allerede mindst 3 porte bagud.

Det findes der råd for. Hvis man ikke bruger kameraporten på Pi, så er der 4 porte mere at hente der, hvis man kan komme til stikkene. Der er også 4 porte mere på undersiden af Pi, men der skal loddes pinde på først, før de kan forbindes. Så teknisk set er der porte nok til en fuld MAME konfiguration med 2-player.

Næste udfordring er så, at MAME er programmeret til at reagere på keyboardtaster, ikke GPIO’er. Der findes forskellige, som har skrevet joystick drivere til MAME mod GPIO, f.eks. Adafruit (se kilde nedenfor). De benytter kun et joystick og kan dermed holde sig inden for alm GPIO på Pi’en. Om vi kan udvide dette til to joysticks, ved jeg ikke, men det er da en udfordring. Under alle omstændigheder vil det være en usikkerhed for projektet, indtil det efterforsket og afprøvet.

Men hvad der bekymrer mig mere, er at jeg mere end ét sted har læst, at brugen af GPIO påvirker performancen på Pi’en. En skriver at han oplever lack i joysticket, en anden skriver at Pi’en har rigeligt at se til i forvejen, så hvis man softwaremæssigt skal polle GPIO’erne, så vil det påvirke performance af spillet.

Det er selvfølgelig påstande, som skal testes, hvis vi ønsker at gå den vej. Personligt, vil jeg være mere tryg ved at overlade styring af knapper/joystick til et separat board. Det giver også de fleksibiliteter,  at man uden videre kan opgradere til nyere MAME version uden omprogrammering, eller man kan udskifte Pi’en med et andet board eller PC, hvis man ønsker, og samtidig bibeholde I-Pac og knapper uden ændringer.

Kilder