Difference between revisions of "Projets:Perso:2012:StickArcade"
(→Input Multiplexing) |
|||
(32 intermediate revisions by one user not shown) | |||
Line 24: | Line 24: | ||
==Input Multiplexing== | ==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. | The multiplexing part is designed to be modular. | ||
* Each board is based on a 74hc165N PISO shift register. | * 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. | * 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). | * A module handles 8 inputs and uses 4 wires of the arduino (+ power and ground). | ||
− | [[File:ArcadeStick_InputsBottom_Mask.png| | + | |
− | [[File:ArcadeStick_InputsBottom_Schematic.png| | + | Status : In Progress |
− | [[File:Module_ProofOfConcept.jpg| | + | |
− | [[File:Arcade_ShiftRegisterModule_bottom_Etched.jpg| | + | The first module has been soldered and tested |
− | [[File:ArcadeStick_InputModuleBottom_Soldered.jpg| | + | |
+ | {| 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== | ==USB HID== | ||
Todo | 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