Getting really fancy

 So far, we've focused on creating an "input device" for tracking pieces moving around a playing surface.
One of the things we really wanted to focus on - and have refused to budge on, over ten years of development - is that the "augmented board" really shouldn't get in the way of the game.

We don't want the board to just be an input device for playing a video game.

The idea has always been to keep the action on the board, not on the screen. We even spent some time investigating having a blank screen app, and game action prompts being audio-only. But that made things difficult when trying to explain "you need you place something here on this square" and a tabletop game skirmish game could quickly begin to feel like a chess board, with instructions like "place something on square A4".

Having to stop the flow of the game, for someone to count out rows and columns on an (imaginary) grid over an irregular playing surface, in order to place a piece on the board, was just too cumbersome.

So we left in-game graphics/visuals in the app.
When a piece needs to be placed on the board, it is highlighted on the app-version of the game board, and the game should wait until it has received a signal to say something has been placed in that square, on the physical board.

But going with smaller board sections (instead of those massive 16 x 16 panels from a few years ago) has also given us a fantastic opportunity to create a "two-way" board.

As well as being an input device, for the player to tell us from which square they've picked up/put down a playing piece, we could make each square light up (with something like a WS2812B RGB LED) to indicate that the player needs to do something on a particular square.


We've used these things successfully in many different projects, including a light-up guitar fretboard - that thing had 16 x 6 = 96 individually, hand-wired LEDs. Here, we'd only need sixteen!

(early development of a full RGB light up fretboard)

But even better still - we don't need to make a single, massive(ish) PCB in order to make this work (and, indeed, if we're determined to stick with the open-source, make-it-yourself-at-home route, that approach would make things impractical).

What we can do is use pre-made RGB LED strips, readily available from all good online retailers (cough, and Amazon, cough).




We're trying the 30 LEDs per metre, non-waterproof version, which places the LEDs at 1000/30 = 33.3mm apart. This is slightly smaller than our preferred scale of 38.1mm squares (each square being one and an half inches in size) but for the sake of simplifying construction, we'll give it a go.

If we build a few and then decide that each square is too small, we can always separate each LED from the strip, and simply connect them back up again with short lengths of wire. But hopefully that won't be necessary and we can use the LED strips as they are sent.

Cutting the strip really is as simple as using a pair of scissors and cutting across the contacts at each cutting point


And then placing the strips down, in a "snake-like" pattern, to enable the ends to be connected easily, while maintaining a single, continuous strip of LEDs. Note that each strip has a "direction" - the centre pin, labelled DO above is "data out". On the other side of the same pin (obscured by the scissors in the photo above) is the label DI (for data in).
It's important to wire the cut-up sections so that data "flows out" of one strip and "into" the next. So at the "end" of each strip, we should have a data out pin, and that needs to be connected to the data in of the next strip


This does mean, however, that our LED numbering doesn't really follow a simple x/y type pattern; we can't just say "column x, row y" and make an LED light up, we need to "map" the LED positions in the grid, to their "index number" in the continuous linear sequence:


This is something we'll need to keep in mind, should we ever have the crazy idea of changing our minds once again and going for a large grid/playing area! 
It's quite possible that should we need to build a larger area (say 8 x 8) we could place the LEDs in "clusters" of 16 (in a 4 x 4 grid arrangement) and thus the same firmware (and LED placement lookups) could be used. The nice thing about keeping to 4x4 grids is that every LED is addressable using a single ASCII character (e.g. if numbered from 0-15 instead of 1-16, we can use the characters 0-9 and A-F and a single hexadecimal value to point to the LED we wish to activate).



Comments

Popular posts from this blog

Understanding the hall sensor input matrix

Wireless means one wire less

Fewer pins = better?