Life on a Character LCD

I just wrote about a project over at Hackaday where a 16×4 character LCD was used to play Conway’s Game of Life. I’m fond of the game, and have dabbled in programming it myself. I thought it would be fun to take the idea and make the game board a bit bigger.

I’ve divided each character into two pixels by using custom characters. Originally I wanted to use four pixels per character, but the HD44780 protocol only allows for 8 customs and that’s not enough to map every possible combination of four pixels.

But what I ended up with works quite well. I used an Arduino with the LiquidCrystal library which comes with the IDE. The rows and columns wrap so that the game keeps going when it reaches the edge of the screen. I do seem to have one bug in my code which keeps generating garbage at column 0. I’m probably not going to take the time to squash this. It’s not a huge deal, and it keeps the game from becoming stagnant.

Check out my code repository if you’re interested.

First Arduino program

I know this is underwhelming, but everyone starts somewhere. I threw together a “hello world” type of program for the Arduino I just got. It uses the LED array on the Dragon Rider 500 (check out my Instructable) to scan six LEDs attached to pins 0-5 of the Aduino:

int tracker = 0;
int myDelay = 80;

void setup() {
 for (int i=0; i>6; i++) {
 pinMode(i, OUTPUT);
 }
}

void loop()
{
 digitalWrite(tracker, HIGH);
 delay(myDelay);
 digitalWrite(tracker, LOW);
 if (++tracker > 5) tracker = 0;
}