Conway’s game of life on ArduinoA 48x32 led matrix controlled by an Arduino able to project output from arbitrary sources (e.g. game of life)
GoalTo make a led matrix on which Conway’s game of life can runAnd enable it to display other stuff, likeTicker tapeClockTemperatureMenu navigation?
Conway’s game of lifeWorld is a grid(x, y)Each cell is alive or deadEach iteration for each cell = grid(x, y):If cell is alive,It dies from loneliness if it has < 3 alive neighborsIt dies from food shortage if it has > 4 alive neighborsIt stays alive if it has 3 alive neighborsIf cell is dead,It reincarnates if it has exactly 3 alive neighbors
SetupArduino3 Led matrices (3 x 4x2(8x8), incl 2 controllers)BreadboardWires, some resistors, leds and buttonsFor funThermometerClock
Arduino specs
ARDUINO SPECSMicrocontroller: ATmega2560Flash memory: 256 kB(of which 8 kB is used by bootloader)SRAM: 8 kBEEPROM: 4 kBClock speed: 16 MHz
Arduino specs54 digital input/output pins16 analog inputs4 UARTs (serial ports)16 MHz crystal oscillatorUSB connectionICSP headerReset button
Arduino specs54 digital input/output pins16 analog inputs4 UARTs (hardware serial ports)16 MHz crystal oscillatorUSB connectionICSP headerReset button
Arduino specs54 digital input/output pins16 analog inputs4 UARTs (hardware serial ports)16 MHz crystal oscillatorUSB connectionICSP headerReset button
Arduino specs54 digital input/output pins16 analog inputs4 UARTs (hardware serial ports)16 MHz crystal oscillatorUSB connectionICSP headerReset button
Arduino specs54 digital input/output pins16 analog inputs4 UARTs (hardware serial ports)16 MHz crystal oscillatorUSB connectionICSP headerReset button
Arduino specs54 digital input/output pins16 analog inputs4 UARTs (hardware serial ports)16 MHz crystal oscillatorUSB connectionICSP headerReset button
Arduino specs54 digital input/output pins16 analog inputs4 UARTs (hardware serial ports)16 MHz crystal oscillatorUSB connectionICSP headerReset button
Arduino specs54 digital input/output pins16 analog inputs4 UARTs (hardware serial ports)16 MHz crystal oscillatorUSB connectionICSP headerReset button
Arduino specs54 digital input/output pins16 analog inputs4 UARTs (hardware serial ports)16 MHz crystal oscillatorUSB connectionICSP headerReset button
Wiring the systemSolder?
Wiring the systemSolder?
Wiring the systemBreadboard!
Wiring the systemBreadboard!
Wiring the systemBreadboard!
ButtonsInitialize game of life world
ButtonsInitialize game of life world
LED boards
LED boards?
LED boardsNo memory on controller boardConsequence: fast refresh rate neededExternal power supply (5V)16 pin connector
LED BOARDS
LED BOARDS
LED BOARD PROTOCOLSerial data transferDevided into 2 halves (UDAT, LDAT)Clock and A[2..0] to control the ledsNo state-memory
LED BOARD PROTOCOL
LED BOARD PROTOCOL examplePsuedo-code for controlling the LED-board
THERMOMETERComponent: DS1820
Clock (RTC)Solder time!
Programming arduinoDownload SDK from Arduino website.Based on Processing SDKWrite program:void Setup() {}void Loop() {}Upload to Arduino (USB) and runMonitor by serial data transfer (USB)
Programming arduinoProblem #1:Memory too small to hold 2xLED matrix array representationAND a 3x5 font mapProblem #2:Arduinotoo slow to fluently display Game of Life
DEMO
More infoConway’s Game of Lifehttp://www.edesign.nl/2010/04/22/the-game-of-office-decoration/Arduino Megahttp://arduino.cc/en/Main/ArduinoBoardMega2560

Conway’s game of life on arduino