ClusterPuck v1.0: Difference between revisions

From Knox Makers Wiki
Jump to navigation Jump to search
No edit summary
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
After many crazy brainstorming sessions we have agreed on a basic plan involving a
[[#The Table|translucent table surface]] with modular [[#Subsurface Interactive Display Elements (SIDE)|"smart" game elements]] and a [[#The Puck Return|puck return system]].


'''Table:'''
With this setup we can have several game modes
Table surface will be see through made of ?. hcp patterned holes at half inch pitch. There are some ideas to support the surface on the plenum with a pillar array that sits between the half inch pitch of the surface.
*'''Classic airhockey'''
*'''"Spell the word"'''- collect the needed letters before your opponent does (or co-op mode)
*'''"Pinball mode"''' - introduce gravity wells, deflection zones and puck mines.  
*'''"Capture the flag"''' - get the puck to hit the flag that is bouncing from zone to zone
*...
*The number of things you can do with these [[#Subsurface Interactive Display Elements (SIDE)|SIDEs]] is near infinite- add ideas as you come up with them...


LED matrix display surrounded by electromagnets to be added in modular fashion through the bottom plenum structure. These can show which "powerup" is currently active, display letter, act as "gravity wells" as well as "puck mines" (with enough capacitance). Issac has done some basic experimentation with coils that might be appropriate. We also need to come up a good name for the "power-up zones".


'''Pucks will be smart and need to:'''
=Project management=
*Know which mallet last hit it (through some sort of magic electric contact- Adan assures us this can be done)
*be able to transfer this identity to the "power-up zones". IR has been suggested but there might be problems if the table is to be placed outside, such as at a makerfaire. Experimentation is warranted.


So as not to spam the GGroup with Pucktalk, we will be using the [[http://knoxmakers.org/forum/viewforum.php?f=94 forum]] to discuss the project.
This wiki will be used to maintain a "state of the plan" and provide overview.
Periodic updates will be posted to the [[https://knoxmakers.org/Group Google Group]] to keep people informed, gain insight and recruit more people to join the effort.


==Pucks==
Here's how we're talking about doing it: Ye Olde Divide And Conquer.
===3D Printed Pucks===
We'll split it all up into modular efforts.
[[File:knoxpuck.jpeg|thumb|alt=puck|3D printed puck with KnoxMakers logo]]
There'll be less need to gather all interested parties on the same day and the same time.  
Puck design looks good and we have some numbers and dimensions to run with:
And by working on it as modules we'll be even more likely end up with a product that has modular upgradability and hackability.


{| border="1" style="margin: 1em auto 1em auto;"
Aim is to have a working version ready by: ?Makerfaire?
|-
! scope="row" |Diameter
|
|-
! scope="row" |Thickness
|~0.18"
|-
! scope="row" |Weight
| 12 g?
|-
! scope="row" |File
|
|}


[http://blog.thingiverse.com/2012/08/22/lost-and-found-air-hockey-edition/ Thingiverse] has some models for 3D printed pucks but we wanted some with the Knoxmakers logo on it. Adan is busy making some prototypes based roughly on the specifications of the pucks that came with the table.
==The Table==
Adan has agreed to lead the charge with the table/surface/plenum structure design and fabrication.
The plan is to have a holes at half inch pitch (hcp).  
There are some ideas to support the surface on the plenum with a pillar array that sits between the half inch pitch of the surface.


===Pucks with Embedded Magnets===
==Air Suppy/Control==
Laz and Dr. Strangegun are looking for the right fan for the job.
 
Update: Strangegun has supplied a 650cfm 10" automotive cooling fan. Testing showed an initial 5.5A (12v) starting requirement that rapidly falls off. A PWM circuit hooked to an air meter (sprung flap on a potentiometer) may be the easiest method of control.
 
==Subsurface Interactive Display Elements (SIDE)==
Issac has proposed a fastastically cool module that is extremely versatile and can lead to many different types of gameplay.
It consists of LED matrix display surrounded by an electromagnet to be added in modular fashion through the bottom of the plenum chamber.
These can show which "powerup" is currently active: display letters, points, gravity wells, deflection zone or puck mines; as well as interact with the pucks via the electromagnet (sensing and deflectign).
 
* LED matrix. 8x8 seems like a reasonable resolution for pictographs representing powerups/caltrops. RGB would be nice but drives up price and complexity substantially. A bicolor display (128 LEDs) would give us three usable colors (red, yellow, green) and seems a decent compromise. I've ordered a couple of different kinds to experiment with. Matrix will probably be roughly 1" square. (Sound okay?) Also in this category is support circuitry. Probably three shift register ICs per module, one capable of medium current handling.
 
* Electromagnet. For interaction with pucks. Originally envisioned as air core solenoid, wound around the LED matrix for symmetry/coverage. Preliminary experimentation yielded so-so results. Doug suggested using a metal core, which I originally rejected as undesireable. Further research suggests Doug's idea is superior. Now thinking perhaps the electromagnetic unit should be discrete to allow it to have a core, positioned to one side of display. Not sure if we can achieve sufficient field strength to render other-than-central placement irrelevant. It may be possible to use the electromagnet in both a general field-on-altering-puck-dynamics mode and a madly-accellerating-puck mode. The former would involve simply energizing the coil, whereas the latter would involve pre-charging a capacitor to a substantially higher voltage, then dumping the cap through the coil at just the right moment to produce a powerful pulse of propulsion.
 
* IR receiver. Probably a photodiode, facing up to recieve puck ID. Maybe use carrier frequency and/or IR filter to reduce susceptibility to interference.
 
* Puck proximity detector. Must discriminate between near-miss and hit between SIDE and puck. IR receiver might be sufficient in itself if beam is narrow enough, but such a narrow beam may make reduce transmission time too much when puck is moving fast. Maybe better to allow IR wider coverage so identification of puck owner can begin before "contact" and continue afterwards, and register "hit" with separate sensor. Thinking maybe Hall effect sensor to detect puck's permanent magnet. I have some onhand we can experiment with.
 
* Brains. Probably Atmega168. Could get by with fewer pins, but will need EEPROM storage for glyph data. Could be offboard memory but would complicate things. Experimentation will guide us in terms of required speed/memory.
 
Trying to keep cost of individual SIDE as low as practicable because we'll want many of these -- as many as we can afford and feel like building, I think. The more densely we populate the play surface with SIDEs, the more varied and complex the gameplay can be.
 
My preference would be for the modules to connect to a data bus which also incorporates the "main brain" (MB). Upon powerup, the MB would enumerate the installed SIDEs. This configuration would allow us to add and remove SIDEs as we go, without having to rewrite any code when we make physical changes.
 
SIDEs would lack individual identities, being discriminated by the type of area in which they are located ("zone") and which player's territory they are in ("side").
 
"Zones" would be:
 
# Neutral -- located in the middle of the play field
# Home -- located in a player's territory, in the area between "Neutral" and "Goal"
# Goal -- located just in front of a player's goal
# Alt Goal -- located to the side of a player's goal
 
[[File:zones.jpg|center|alt=zones]]
 
The MB would activate SIDEs somewhat randomly, choosing them based on their "zone" and "side." If MB decides to offer a special prize to the Red player, for example, it would randomly choose one of the Alt Goal SIDEs on the Blue side of the table. Or if the Blue player hits a "caltrop" pickup, all of the Red Home Zone SIDEs would go into caltrop mode, electromagnetically repelling the puck.
 
For simplicity, I'm imaging a single software image for all SIDE modules. Jumpers on the SIDE board would allow us to "tell" the individual module if it's on the "red side" or "blue side" of the table and what kind of zone it's in.
 
====Side Graphics====
 
[[File:zones.png|center|alt=zones]]
[[File:SIDEgraph.png|center|alt=zones]]
 
==Pucks and Mallets==
 
====The Problem====
To have the table be able to make the best possible use of the game elements one problem exists.
For the powerups to be collected, pucks need to be related to which mallet struck it last.
Currently the thought on how best to do this is have the puck know which mallet struck it last and communicate this to the powerup it hits via IR.
The communication aspect can probably be taken care of with IR communication, telling the puck who hit it seems to be the major challenge
 
The puck will need to contain:
#An embedded permanent magnet for interaction with [[#Subsurface Interactive Display Elements (SIDE)|SIDEs]]
#The ability to know which mallet struck it last
#The ability to communicate to the ClusterPuck brains which mallet struck it last
#The ability to communicate to the ClusterPuck players which mallet struck it last
#A power source
#The ability to charge while the puck is in the return chute
#Brains
 
====Proposed solutions====
[[File:knoxpuck_magnet_pic.jpg|thumb|alt=puck with magnet|3D printed puck with KnoxMakers logo and embedded magnet]]
[[File:knoxpuck_magnet_pic.jpg|thumb|alt=puck with magnet|3D printed puck with KnoxMakers logo and embedded magnet]]
Printed prototype with an embedded NdFeB magnet has been made and tested. Puck floats great, deflects great too.
#Pucks will be 3D printed and Adan has already demonstrated that embedding a magnet can be easily achieved.
 
# Downward pointing IR LED to broadcast identity downward to [[#Subsurface Interactive Display Elements (SIDE)|SIDEs]], so they know who to "credit" upon "pickup" of whatever power-up/caltrop they currently represent.  
'''Specs for the puck:'''
#<s>'''No freakin' Idea'''</s> Some ideas:
#* A piezo disc to detect a strike and a fine, lightweight coil around the perimeter to inductively couple with the mallet and receive the ID code.
#* [[File:laserpuck.jpg|alt=another implementation]]
#*Double contact rings on the puck with matching rings on the mallet. One mallet is wired with the top ring as the positive, the other wired with the bottom ring positive.
#*Low power radio transmitters or oscillators in the mallets, two differing frequencies with a contact ring as the antenna. Receiver in the puck with the antenna in it's contact ring, so direct contact with a mallet provides a large signal spike, of which the circuit in the puck can discriminate between frequencies and do whatever else it should.
#Probably/maybe supercapacitor
#Assign players a colour and use LEDs, maybe SMD LEDs. Could be accomplished with a single top-mounted LED but would look neater around the rim as a continuous glow.
#Several solution possible, design will have to wait till puck design is further along but likely to be with contact rings so pucks can be stacked.
#Atmel ATtiny, probably
[[File:Farfetched_puck_commo.jpg|thumb|alt=example farfetched idea for puck-mallet communication]]


{| border="1" style="margin: 1em auto 1em auto;"
==The Puck Return==
|-
The planned puck return consists of a way for the pucks to be collected to a central location under the table,
! scope="row" |Diameter
a chute to bring them to the surface, charge the electronics and then fire back onto the table in a random direction.
|
|-
! scope="row" |Thickness
|~0.18"
|-
! scope="row" |Weight
| 12 g?
|-
! scope="row" |File
|
|}


'''Specs for the magnet:'''
Strangegun: A reminder that there are several 24VAC 'chain track' mechanisms from the vending machine in the back corner, that could be adapted to drive a conveyor return.


{| border="1" style="margin: 1em auto 1em auto;"
==The Brains==
|-
What the brain requirements are will become clearer as the project develops.
! scope="row" |Diameter
[[File:brains.png|center|alt=brains]]
|0.5"
|-
! scope="row" |Thickness
|0.1"
|-
! scope="row" |Weight
|~3g
|}

Latest revision as of 03:57, 9 February 2013

After many crazy brainstorming sessions we have agreed on a basic plan involving a translucent table surface with modular "smart" game elements and a puck return system.

With this setup we can have several game modes

  • Classic airhockey
  • "Spell the word"- collect the needed letters before your opponent does (or co-op mode)
  • "Pinball mode" - introduce gravity wells, deflection zones and puck mines.
  • "Capture the flag" - get the puck to hit the flag that is bouncing from zone to zone
  • ...
  • The number of things you can do with these SIDEs is near infinite- add ideas as you come up with them...


Project management

So as not to spam the GGroup with Pucktalk, we will be using the [forum] to discuss the project. This wiki will be used to maintain a "state of the plan" and provide overview. Periodic updates will be posted to the [Google Group] to keep people informed, gain insight and recruit more people to join the effort.

Here's how we're talking about doing it: Ye Olde Divide And Conquer. We'll split it all up into modular efforts. There'll be less need to gather all interested parties on the same day and the same time. And by working on it as modules we'll be even more likely end up with a product that has modular upgradability and hackability.

Aim is to have a working version ready by: ?Makerfaire?

The Table

Adan has agreed to lead the charge with the table/surface/plenum structure design and fabrication. The plan is to have a holes at half inch pitch (hcp). There are some ideas to support the surface on the plenum with a pillar array that sits between the half inch pitch of the surface.

Air Suppy/Control

Laz and Dr. Strangegun are looking for the right fan for the job.

Update: Strangegun has supplied a 650cfm 10" automotive cooling fan. Testing showed an initial 5.5A (12v) starting requirement that rapidly falls off. A PWM circuit hooked to an air meter (sprung flap on a potentiometer) may be the easiest method of control.

Subsurface Interactive Display Elements (SIDE)

Issac has proposed a fastastically cool module that is extremely versatile and can lead to many different types of gameplay. It consists of LED matrix display surrounded by an electromagnet to be added in modular fashion through the bottom of the plenum chamber. These can show which "powerup" is currently active: display letters, points, gravity wells, deflection zone or puck mines; as well as interact with the pucks via the electromagnet (sensing and deflectign).

  • LED matrix. 8x8 seems like a reasonable resolution for pictographs representing powerups/caltrops. RGB would be nice but drives up price and complexity substantially. A bicolor display (128 LEDs) would give us three usable colors (red, yellow, green) and seems a decent compromise. I've ordered a couple of different kinds to experiment with. Matrix will probably be roughly 1" square. (Sound okay?) Also in this category is support circuitry. Probably three shift register ICs per module, one capable of medium current handling.
  • Electromagnet. For interaction with pucks. Originally envisioned as air core solenoid, wound around the LED matrix for symmetry/coverage. Preliminary experimentation yielded so-so results. Doug suggested using a metal core, which I originally rejected as undesireable. Further research suggests Doug's idea is superior. Now thinking perhaps the electromagnetic unit should be discrete to allow it to have a core, positioned to one side of display. Not sure if we can achieve sufficient field strength to render other-than-central placement irrelevant. It may be possible to use the electromagnet in both a general field-on-altering-puck-dynamics mode and a madly-accellerating-puck mode. The former would involve simply energizing the coil, whereas the latter would involve pre-charging a capacitor to a substantially higher voltage, then dumping the cap through the coil at just the right moment to produce a powerful pulse of propulsion.
  • IR receiver. Probably a photodiode, facing up to recieve puck ID. Maybe use carrier frequency and/or IR filter to reduce susceptibility to interference.
  • Puck proximity detector. Must discriminate between near-miss and hit between SIDE and puck. IR receiver might be sufficient in itself if beam is narrow enough, but such a narrow beam may make reduce transmission time too much when puck is moving fast. Maybe better to allow IR wider coverage so identification of puck owner can begin before "contact" and continue afterwards, and register "hit" with separate sensor. Thinking maybe Hall effect sensor to detect puck's permanent magnet. I have some onhand we can experiment with.
  • Brains. Probably Atmega168. Could get by with fewer pins, but will need EEPROM storage for glyph data. Could be offboard memory but would complicate things. Experimentation will guide us in terms of required speed/memory.

Trying to keep cost of individual SIDE as low as practicable because we'll want many of these -- as many as we can afford and feel like building, I think. The more densely we populate the play surface with SIDEs, the more varied and complex the gameplay can be.

My preference would be for the modules to connect to a data bus which also incorporates the "main brain" (MB). Upon powerup, the MB would enumerate the installed SIDEs. This configuration would allow us to add and remove SIDEs as we go, without having to rewrite any code when we make physical changes.

SIDEs would lack individual identities, being discriminated by the type of area in which they are located ("zone") and which player's territory they are in ("side").

"Zones" would be:

  1. Neutral -- located in the middle of the play field
  2. Home -- located in a player's territory, in the area between "Neutral" and "Goal"
  3. Goal -- located just in front of a player's goal
  4. Alt Goal -- located to the side of a player's goal
zones

The MB would activate SIDEs somewhat randomly, choosing them based on their "zone" and "side." If MB decides to offer a special prize to the Red player, for example, it would randomly choose one of the Alt Goal SIDEs on the Blue side of the table. Or if the Blue player hits a "caltrop" pickup, all of the Red Home Zone SIDEs would go into caltrop mode, electromagnetically repelling the puck.

For simplicity, I'm imaging a single software image for all SIDE modules. Jumpers on the SIDE board would allow us to "tell" the individual module if it's on the "red side" or "blue side" of the table and what kind of zone it's in.

Side Graphics

zones
zones

Pucks and Mallets

The Problem

To have the table be able to make the best possible use of the game elements one problem exists. For the powerups to be collected, pucks need to be related to which mallet struck it last. Currently the thought on how best to do this is have the puck know which mallet struck it last and communicate this to the powerup it hits via IR. The communication aspect can probably be taken care of with IR communication, telling the puck who hit it seems to be the major challenge

The puck will need to contain:

  1. An embedded permanent magnet for interaction with SIDEs
  2. The ability to know which mallet struck it last
  3. The ability to communicate to the ClusterPuck brains which mallet struck it last
  4. The ability to communicate to the ClusterPuck players which mallet struck it last
  5. A power source
  6. The ability to charge while the puck is in the return chute
  7. Brains

Proposed solutions

Error creating thumbnail: File missing
3D printed puck with KnoxMakers logo and embedded magnet
  1. Pucks will be 3D printed and Adan has already demonstrated that embedding a magnet can be easily achieved.
  2. Downward pointing IR LED to broadcast identity downward to SIDEs, so they know who to "credit" upon "pickup" of whatever power-up/caltrop they currently represent.
  3. No freakin' Idea Some ideas:
    • A piezo disc to detect a strike and a fine, lightweight coil around the perimeter to inductively couple with the mallet and receive the ID code.
    • another implementation
    • Double contact rings on the puck with matching rings on the mallet. One mallet is wired with the top ring as the positive, the other wired with the bottom ring positive.
    • Low power radio transmitters or oscillators in the mallets, two differing frequencies with a contact ring as the antenna. Receiver in the puck with the antenna in it's contact ring, so direct contact with a mallet provides a large signal spike, of which the circuit in the puck can discriminate between frequencies and do whatever else it should.
  4. Probably/maybe supercapacitor
  5. Assign players a colour and use LEDs, maybe SMD LEDs. Could be accomplished with a single top-mounted LED but would look neater around the rim as a continuous glow.
  6. Several solution possible, design will have to wait till puck design is further along but likely to be with contact rings so pucks can be stacked.
  7. Atmel ATtiny, probably
Error creating thumbnail: File missing

The Puck Return

The planned puck return consists of a way for the pucks to be collected to a central location under the table, a chute to bring them to the surface, charge the electronics and then fire back onto the table in a random direction.

Strangegun: A reminder that there are several 24VAC 'chain track' mechanisms from the vending machine in the back corner, that could be adapted to drive a conveyor return.

The Brains

What the brain requirements are will become clearer as the project develops.

brains