Conway's Game of Life on Arduino by anachrocomputer

[raw]
made by anachrocomputer for MINI37 (-)
The Game of Life was first described By John Conway in the October 1970 issue of Scientific American, as a mathematical game. Many implementations have been written on all kinds of computers, large and small. I remember one version on the Commodore PET in about 1979. My program runs on the 16MHz AVR microcontroller in the Arduino, and achieves about ten generations per second. The resolution of the screen is 96x68 pixels, monochrome.

Feedback

Connors
28. Sep 2012 · 15:50 UTC
I just googled "Arduino" and I am now intrigued and I'd like to know more. This sounds like the kind of thing we used in a Robotics class I took my senior year of highschool. But I don't have one to use on my own.
🎤 anachrocomputer
28. Sep 2012 · 17:09 UTC
Well, you've probably already found the main Arduino homepage at http://www.arduino.cc so I'll say a bit about the chip. The Arduino is based on the Atmel ATmega328, which is an 8-bit RISC processor -- so we're in the realms of the NES or SNES here, as an 8-bit CPU! It runs at 16MHz and most instructions execute in one cycle, making it quite a bit faster than the 6502 in the NES. But there's only 2K of RAM in the chip, which was certainly a limiting factor for me with the Life program, because I needed two bit-maps of cells of 864 bytes each. The basic Arduino has no display, but there are many add-on LCD and video board for it. I used an LCD from an old Nokia phone, the 1202. It's quite simple to interface and because it's monochrome, the bit-map is small enough to be manageable on the Arduino. The code is written in C via the Arduino's IDE and the GCC compiler. All the object code is written into the Flash memory of the Arduino -- there's room for 32k of object code, which in my case includes a rudimentary font for the LCD.

Hope that gives you a flavour of the Arduino and the Atmel processor chip!
ratking
29. Sep 2012 · 21:45 UTC
If I ever get around to get a display for my Arduino I will try this out!