Difference between revisions of "Projets:Perso:2012:StickArcade"
(→Input Multiplexing) |
|||
(46 intermediate revisions by one user not shown) | |||
Line 4: | Line 4: | ||
|proposal_date= 20/02/2012 | |proposal_date= 20/02/2012 | ||
|abstract1=*Stick Arcade USB for 2 players | |abstract1=*Stick Arcade USB for 2 players | ||
− | |abstract2=*2 | + | |abstract2=*2 sticks + 8 buttons for each player (30+ buttons total) |
|abstract3=*USBHID / Arduino / Woodworking | |abstract3=*USBHID / Arduino / Woodworking | ||
|tags=Arcade;mame;usbhid;arduino;shift register; | |tags=Arcade;mame;usbhid;arduino;shift register; | ||
− | |where=@ | + | |where=@Work/Home |
|for_who=Gamers! | |for_who=Gamers! | ||
|official_electrolab_project= no | |official_electrolab_project= no | ||
Line 14: | Line 14: | ||
|estimated_time= a lot | |estimated_time= a lot | ||
}} | }} | ||
+ | ==Overview== | ||
+ | This project is about making a working, robust but "cheap" arcade stick. | ||
+ | The stick is to be plugged in USB to a computer in order to play Mame arcade emulator or other games. | ||
+ | |||
+ | This project is made of 3 parts: | ||
+ | * Input multiplexing modules : making it possible for a simple arduino or Atmega chip to hold 30+ almost simultaneous inputs from players | ||
+ | * USB HID Module : The device will create 2 gamepad HID and a keyboard HID on host computer | ||
+ | * Stick body : mainly wood/metalworking in order to get a sturdy case (the arcade stick has to be strong and durable) | ||
+ | |||
+ | ==Input Multiplexing== | ||
+ | |||
+ | Since I am using an Arduino diecimila, there is not enough I/o pins to manage 30 input buttons. | ||
+ | So multiplexing is needed to make it all fit in. | ||
+ | |||
+ | The multiplexing part is designed to be modular. | ||
+ | * Each board is based on a 74hc165N PISO shift register. | ||
+ | * Pull up resistors are made with a 8* 9Kohm resistor array but can be replaced by equivalent (or whatever) simple resistors | ||
+ | * These chips can be daisy chained giving a good opportunity to think about scalability. | ||
+ | * A module handles 8 inputs and uses 4 wires of the arduino (+ power and ground). | ||
+ | |||
+ | |||
+ | Status : In Progress | ||
+ | |||
+ | The first module has been soldered and tested | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Task !! Status | ||
+ | |- | ||
+ | |Prototype a working module || Done | ||
+ | |- | ||
+ | |Make a "real" module || Done | ||
+ | |- | ||
+ | |Test daisy chain-ability || Done (proto+clean) | ||
+ | |- | ||
+ | |Connect at least 2 "clean" modules || TODO | ||
+ | |- | ||
+ | |Improve stability when modules are chained || TODO | ||
+ | |- | ||
+ | |Module is compact and routing is elegant || TODO | ||
+ | |} | ||
+ | |||
+ | Toggling an input on is made by connecting +5v to an input pin. | ||
+ | |||
+ | {| border="0" | ||
+ | |[[File:ArcadeStick_InputsBottom_Mask.png|200px|right|thumb|Components Placement]] | ||
+ | |[[File:ArcadeStick_Main_Mask.png|200px|right|thumb|Module mask, made with hobbyist design rules]] | ||
+ | |[[File:ArcadeStick_InputsBottom_Schematic.png|200px|right|thumb|Schematic of the module]] | ||
+ | |} | ||
+ | {| border="0" | ||
+ | |[[File:Module_ProofOfConcept.jpg|200px|thumb|center|Proof of concept for the bottom of a module]] | ||
+ | |[[File:Arcade_ShiftRegisterModule_bottom_Etched.jpg|200px|center|thumb|the first shift Register module bottom pcb (need 5)]] | ||
+ | |[[File:ArcadeStick_InputModuleBottom_Soldered.jpg|200px|center|thumb|The same module, soldered and working]] | ||
+ | |} | ||
+ | |||
+ | == Connector Board == | ||
+ | The connector board is designed to sit on top of the input module, making it easy for buttons to be connected via Faston connectors. | ||
+ | * This board is powered by the +5v of the bottom board | ||
+ | * It presents | ||
+ | ** 8 power connectors (faston) | ||
+ | ** 8 labelled input connectors (faston) | ||
+ | |||
+ | CAUTION : Spacing between header pins may not be consistent with the input module. I need to check this | ||
+ | |||
+ | {| border="0" | ||
+ | |[[File:ArcadeStick_Connector_mask.png|200px|right|thumb|Components Placement]] | ||
+ | |[[File:ArcadeStick_Connector_Schematic.png|200px|right|thumb|Components Placement]] | ||
+ | |} | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Task !! Status | ||
+ | |- | ||
+ | |Prototype || Done | ||
+ | |- | ||
+ | |Make a "real" module || TODO | ||
+ | |- | ||
+ | |Test real module || TODO | ||
+ | |} | ||
+ | |||
+ | ==USB HID== | ||
+ | Todo | ||
+ | |||
+ | ==Ressources== | ||
+ | [http://www.kronosrobotics.com/an140/DAN140.shtml| connecting the 74HC165N] |
Latest revision as of 19:36, 4 March 2012
Stick Arcade 2 Players (For Mame) | |
---|---|
Auteur | Jnat |
Date de proposition | 20/02/2012 |
Tags du projet | Arcade;mame;usbhid;arduino;shift register; |
Lieu d'utilisation final | @Work/Home |
Utilisateur final | Gamers! |
Type de projet
Projet personnel de Jnat |
|
Overview
This project is about making a working, robust but "cheap" arcade stick. The stick is to be plugged in USB to a computer in order to play Mame arcade emulator or other games.
This project is made of 3 parts:
- Input multiplexing modules : making it possible for a simple arduino or Atmega chip to hold 30+ almost simultaneous inputs from players
- USB HID Module : The device will create 2 gamepad HID and a keyboard HID on host computer
- Stick body : mainly wood/metalworking in order to get a sturdy case (the arcade stick has to be strong and durable)
Input Multiplexing
Since I am using an Arduino diecimila, there is not enough I/o pins to manage 30 input buttons. So multiplexing is needed to make it all fit in.
The multiplexing part is designed to be modular.
- Each board is based on a 74hc165N PISO shift register.
- Pull up resistors are made with a 8* 9Kohm resistor array but can be replaced by equivalent (or whatever) simple resistors
- These chips can be daisy chained giving a good opportunity to think about scalability.
- A module handles 8 inputs and uses 4 wires of the arduino (+ power and ground).
Status : In Progress
The first module has been soldered and tested
Task | Status |
---|---|
Prototype a working module | Done |
Make a "real" module | Done |
Test daisy chain-ability | Done (proto+clean) |
Connect at least 2 "clean" modules | TODO |
Improve stability when modules are chained | TODO |
Module is compact and routing is elegant | TODO |
Toggling an input on is made by connecting +5v to an input pin.
Connector Board
The connector board is designed to sit on top of the input module, making it easy for buttons to be connected via Faston connectors.
- This board is powered by the +5v of the bottom board
- It presents
- 8 power connectors (faston)
- 8 labelled input connectors (faston)
CAUTION : Spacing between header pins may not be consistent with the input module. I need to check this
Task | Status |
---|---|
Prototype | Done |
Make a "real" module | TODO |
Test real module | TODO |
USB HID
Todo