Collecting votes from over a hundred people in a hurry is a boring job and not very nerdy, but with a little electronics it can be automated completely, this page is about that automation.
The basic idea is to give every voter a potentiometer and then use a microcontroller to read the potentiometers and tabulate the results using a Java program running on a projector.
It's sort of hard to talk ethernet from a microcontroller, but I happened to have a stack of surplus Linksys WRT54g routers that are easy to modify to work as webservers that serve the data from the microcontrollers.
This shows the main components in the system notice that the microcontrollers are actually fitted inside the Linksys routers.
This is the controller that takes care of reading 32 potentiometers.
The 32 potentiometers per controller are distributed on two 8 conductor cables (we use cat5 because it's cheap and easy to get), this is how each 16 pot. cable must be wired:
Pot. | Plus | Minus |
---|---|---|
0 | Orange | Orange/White |
1 | Green | Orange/White |
2 | Blue | Orange/White |
3 | Brown | Orange/White |
4 | Orange | Green/White |
5 | Green | Green/White |
6 | Blue | Green/White |
7 | Brown | Green/White |
8 | Orange | Blue/White |
9 | Green | Blue/White |
10 | Blue | Blue/White |
11 | Brown | Blue/White |
12 | Orange | Brown/White |
13 | Green | Brown/White |
14 | Blue | Brown/White |
15 | Brown | Brown/White |
The center spacing between each potentiometer should fit the tables you are using to minimize the amount of snarl on the table, our tables are 70cm pr. seat, so we use something like 71-72 cm. per unit.
For a picture of the physical potentiometer construction, take a look at my gallery
The source code for the project is available for download and use under GPL v3 here: votron.tar.gz [12K]