This projects started out as a simple 8x8 matrix, which is fairly simple. Using an Arduino and 2 74HC595 shift registers, I was able to acheive a very high framerate without any flicker on the LED matrix. Usually, to drive an LED matrix like this, each LED is driven one by one, resulting in 64 loops for one screen refreshment. I drive one colum at a time, resulting in 8 loops for one screen refreshment, thus the time needed for this refreshment is 8 times smaller. Also, using the regular shiftout and digitalWrite was banned from my code, since I only use low(er) level C commands, such as PORTB |= _BV(PB0) to set pin 8 at HIGH, and PORTB &= ~_BV(PB0) to set pin 8 low. This instruction needs 1/8th of the time of digitalWrite.
The result of all this experimenting led me to the idea of making a clock out of it, since 8x8 is enough pixels to display text. I also realised I was only using 5 pins of the arduino; 3 for the daisy chained shift registers, and 2 for two buttons (one to set the mode of the clock, one to switch to settings), the code only took up 7kB and the speed was only 16MHz. This mad me think of porting it to a ATtiny85, which I did. After some troubles to link the compiler correctly to the Arduino IDE, I managed to realise this idea. The alfa-stage prototype is now running on a breadboard, with this ATtiny85 and 2 74HC595's.
I couldn't resist to make a 3D render of what it should become when finished, and this step isn't far away anymore.
A friend of mine made the aluminum base, and I created a small but working protoboard, ported the source to ATtiny85, the LED's arrived yesterday, and everything is set up to be finished.
As you may have noticed here, it is already finished, code can be downloaded below.
I guess I included all header files that are needed, the other ones are from playground or standard with the arduino installation.
This is a paint/drawing program using an Arduino UNO and the MI0283QI-2 and mSD-shield from Watterott.com
It features different colors, different penstyles and different pensizes. i programmed a custom GUI for it so everything should fit nicely.
the program can be found below, and the libs on watterott.com
This periodic table of the elements can easily be used. Just click on any atom you want, and the most important specifications will be shown: Atomic number, relative weight, type, ionization energy, elektronegativity, melting point, boiling point, density at 20°C, electron configuration, discovery information, number of natural isotopes, oxidation states, crystal structure, group, period and radioactivity. The crystal structure comes with a nice 3D representation to improve the understanding.
Osmos, a game of life. You are a cell, and you have one goal: becoming the master of your environment. Do this by completing different tasks.
These tasks are e.g. becoming the biggest of them all, another one is to absorb the Biophobes. This are AI driven cells that grow faster. This because they can 'see' their environment. When they see a smaller cell they absorb it, if a bigger one comes next to one of them, they flee.
It is my entry for the Omnimaga Contest 2012: Artificial Intelligence
More info on omnimaga.org.
view the video on the video page, or on http://www.youtube.com/watch?v=Pq6CxkPAgq8