You will find installations of the Lights-On-Game everywhere, but for visually-impaired and blind people they are completely useless. That is why we added the audio feature so even blind users can participate in that game.
In case sombody would not know the game: the rules are this: you have a set of objects (eg. lights), mostly there are seven, some of them are in state TRUE (light is on) the rest is FALSE (off). Adjacent to each object there is a pushbutton. When you press one of the buttons, the state of its object gets inverted, but also the state of both of the objects neighbouring this object. As the objects are arranged in a circle, the first and the last object are neighbouring each other. And the goal is setting all objects to the TRUE state using a minimum number of keypresses. In a way, it is similar to real life, where each decision you take also has its side effects, often more than two.
The intension was not to use external hardware like SD media. Therefore, it was necessary to reduce the sound quality from 16 bit to only 8 bit in order to manage to get the audio data into the ROM of an ATmega2560. Once the audio data were converted und the software was written, the hardware was very easy: just connect the seven keys to the pins A1 to A7 and the speaker to pin-11.
If you still want to show the lights, there is a very easy way. You can get modules offering eight LEDs plus resistors, and you can insert them directly into pins 40 to 52 (only the even numbers) plus GND, not a single piece of extra hardware needed. Of course, they are not arranged in a circle.
One problem remains: you need to fix lables written in Braille code to the keys. But many blind people have tools to do so.
If you are translating the numbers into other languages, the used memory size might exceed 0x3C000 = 245,760 bytes, and you might run into a problem because some ATmegas come with the "wrong" bootloader "stk500boot_v2_mega2560.hex". In this case you have to go for the correct one that allows program sizes up to 0x3E000 and use a second Arduino to burn it.
Comments