Difference between revisions of "Projets:Perso:2012:StickArcade"

From Electrolab
Jump to: navigation, search
(Input Multiplexing)
(Input Multiplexing)
 
(12 intermediate revisions by one user not shown)
Line 24: Line 24:
  
 
==Input Multiplexing==
 
==Input Multiplexing==
[[File:ArcadeStick_InputsBottom_Schematic.png|300px|left|thumb|Schematic of the module]]
+
 
 
Since I am using an Arduino diecimila, there is not enough I/o pins to manage 30 input buttons.
 
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.
 
So multiplexing is needed to make it all fit in.
Line 30: Line 30:
 
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).
 +
  
 
Status : In Progress
 
Status : In Progress
 +
 
The first module has been soldered and tested
 
The first module has been soldered and tested
* Module is working  
+
 
* Modules are daisy chain-able
+
{| 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.
 
Toggling an input on is made by connecting +5v to an input pin.
  
 
+
{| border="0"
[[File:ArcadeStick_InputsBottom_Mask.png|300px|right|thumb|Module mask, made with hobbyist design rules]]
+
|[[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:Module_ProofOfConcept.jpg|300px|center|Proof of concept for the bottom of a module]]
+
|[[File:ArcadeStick_InputsBottom_Schematic.png|200px|right|thumb|Schematic of the module]]
[[File:Arcade_ShiftRegisterModule_bottom_Etched.jpg|300px|center|thumb|the first shift Register module bottom pcb (need 5)]]
+
|}
[[File:ArcadeStick_InputModuleBottom_Soldered.jpg|300px|center|thumb|The same module, soldered and working]]
+
{| 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 ==
 
== Connector Board ==
Line 53: Line 75:
 
** 8 power connectors (faston)
 
** 8 power connectors (faston)
 
** 8 labelled input 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 20: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

Projet Stick Arcade 2 Players (For Mame)
  • Stick Arcade USB for 2 players
  • 2 sticks + 8 buttons for each player (30+ buttons total)
  • USBHID / Arduino / Woodworking



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.

Components Placement
Module mask, made with hobbyist design rules
Schematic of the module
Proof of concept for the bottom of a module
the first shift Register module bottom pcb (need 5)
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

Components Placement
Components Placement
Task Status
Prototype Done
Make a "real" module TODO
Test real module TODO

USB HID

Todo

Ressources

connecting the 74HC165N