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...
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?
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.
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
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.
Pucks and Mallets
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 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
- 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 SIDEs, so they know who to "credit" upon "pickup" of whatever power-up/caltrop they currently represent.
No freakin' IdeaSome 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.
- 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
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.
What the brain requirements are will become clearer as the project develops.