sorry if this is a very general question, i thought somebody with good knowledge will point me in the right direction.
i want to read data from 361 sensors under a GO-game board back to the computer. i'm not even sure what sensors to use to be able to read black or white stones put on the crossings on the 19x19 grid, but i'm looking for any ideas how to go about this. is arduino a possibility? how many arduinos can one use on a single computer? as many as USB ports one has? i was looking at illuminato with 42 digital I/O (+6 analogue), but this would still take 8 of them. any had a similarly sized project before and would like to share any solutions?
With external shift registers, ICs, the 361 inputs would not be such a problem and no micro chip will have that many inputs standard anyway. The biggest hurdle will be the sensor design itself. Not only does it have to sense a piece being present on a square but which of two two colors it might be. May have to place something into the stones themselves?
This will take some creative thinking and most likely a fat wallet also ;)
thanks for reply retrolefty. i think i will have to do some reading on shift registers, but as i understand at the moment it's a way to read multiple sensors into single input?
i discovered "reflectance sensor that carries a single infrared LED and phototransistor pair in an inexpensive, tiny 0.5" x 0.3" module" at polulu [http://www.pololu.com/catalog/product/959]. maybe this could work out, althouth 361 of them is quite a lot. it kills about half of my budget.
That sensor requires an actual I/O line, and accurate timing of the capacitor discharge once you switch to input mode. It's very unlikely you could successfully control those with shift registers.
Additionally, it's infrared. Your black or white stone might look the same in terms of infrared reflectance.
Yes, you would read in a serial bit stream from the shift registers that would represent the state of all the squares into a signle input pin on the microprocessor and then store them into an array in your software program.
That sensor you show might not be any good at discriminating between colors just the presence of a stone or not and the size doesn't look to compatable with the large number of squares you have to sense. I'm not sure what would work on a budget basis.
I would think you could use phototransistors for your sensors, they work by emitting infrared light, and then reading how much of the light is reflected back. So it will be able to detect if an object is there or not. It will also read a different value based on the color of the stone because different colors reflect the IR light better. This is an example of what I mean.
Guess i was a little behind on that post... However I do think you could tell the difference between the colors depending on the finish of the stone ie Rough or Glossy.
If you're already using a computer, why not build a transparent Go board out of acrylic, and put a webcam underneath it. Then use image analysis to determine the stone placement. Look at some of the existing multitouch projects for inspiration.
What is the purpose of porting the data back to the computer? What will the computer do with the data?
How about a web cam with 361 fiber optic cables piping a bit of light? That would be a LOT cheaper than 361 individual sensors especially if you could buy the plastic fiber opticsand acrylic board not necessary. I guess you would need a tiny drill hole in each square with the fiber inserted in it though. Note, I've never tried viewing fiber optic cable thru a webcam... just an idea.
Suggesting fiber optic definitely generates some new ideas for solving this problem...the webcam idea is pretty good, maybe it would even be possible to mechanically scan an array of fibers with phototransistors.
Well, you need to sense whether a stone is placed and what color it is. So right off the bat, you have twice the input variables or three states to consider.
If you go analog, you could use a hall effect sensor at each crossing: no field = no stone, weak field = white stone and strong field = black stone. And then make stones with two different sizes/strengths of magnets inside of them. A similar method could use photo detectors and translucent white stones (you may get interference from ambient light). You'll need 361 analog inputs, which is a pretty tall order. :o
A digital method could use tri-state logic and may require twice as many sensors.
Maybe a combination of a hall effect switch, LED and photo sensor, then put magnets in all stones: no field = no stone, field + light = white, field + dark = black.
To reduce the number of inputs required, you could scan across 19 rows of 19 inputs, since the playing surface will not change very fast compared to how fast a scan of the sensors could be completed.
how about this.
place a fibreoptic and a LED underneath every whole.
the fiberoptics go to a panel, where it is captures by a webcam or similar and sent to computer with processing.
as soon as a stone is placed (no matter if black or white), the fiberoptic will turn black, because the light is covered from the stone.
now the LED turns on and the fiberoptic gets a new color.
if the stone is while, enough light will be reflected and the fiberoptic turns white for a moment.
if the stone is black, not enough light is reflected, and the fiberoptic stays black. the stone must be matt for that matter.
here a quick and dirty sketch (http://img.skitch.com/20090307-p5nx28e2u7jh9ypfyps8j73fbd.jpg)
the LED could have a specific color, i.e. red.
then you'd have three fiberoptic states.
"white"/"bright" is ambient light -> no stone
"black" means no light reflected -> blackstone
"red" means red light reflected from white stone -> white stone
another way, without any fiber optics, would be a table (kinda microsoft surface like) solution.
it would need to have something other than stones, something that looks like a pin, or maybe stones with a pin attached.
the pins are black or white and have a flat bottom.
when the pin is put in the hole, a latch is moved (dont know how to describe it, but drawed it in the picture), and the flat surface of the pin is shown.
the surface of the board should have a different color than black or white (i choose red).
so when no pin is insert, the hole is covered with a red latch.
when the pin is insert, the latch is moved away and the pin color is revealed.
now you need to have enough light in the box/table and a webcam that captures the board from underneath.
since the camera is fixed, the position of the holes is also fixed and can be programmed in processing.
then you can check with processing if the "position" of the hole is red (no pin), white or black.
you can put a little computer (eeepc, or an intel atom board) inside the table and analyse the picture right inside the table.
here's a bit better sketch
you can see the latched that are just flipped down when a pin is insert.
i think brown would be a better color than red since it doesnt reflect that much and would maybe make the white pin look like a red pin.
i think this would be a good solution, since its easy to build, just drill holes and dumps in a wooden plate, and some kind of latch to each hole.
and all you'd need is a webcam and a computer. no need for complicated soldering or multiple arduinos etc.
thanks everyone for replies, especially fabiopigi, for all the effort.
i think i like the idea with fiberoptics and a webcam the most. it's true, i'd do most of processing in computer, so arduino is not totally necessary. ah, to explain a bit more, the basic idea is to make a kind of self-contained A/V instrument from a GO game. ideally it would produce audio (drone, glitches, noise, textures) and two VGA video outputs for projection while two (or even just one) would play the game. the audio/video would be produced with computer. i'm quite fluent with Pure Data, so that's my home programming enviro. this is meant to be some kind of performance.
i'll look into anyway how to work with fiberoptics. i would imagine to fix the cables into a mini grid at the end and try to read it with a webcam or directly with an image sensor. any thoughts on that? also, how would be possible to trigger the led on and off without a complicated circuitry at the point of placing the stone? this would be somehow mechanical i would presume. maybe the leds should be on all the time but shielded from the fiber, like fabiopagi has drew.