Back in the 1980’s computers were a good deal simpler than they are now. This of course limited their capabilities but it also allowed people to fully understand what exactly was going on inside. Today, this is less easy as computers are extremely complex from a software and a hardware perspective. One area that still retains some of the innocence of the early days is embedded systems. Today’s low-end microcontrollers (MCU’s) are similar in specification and complexity to the home computers of the 1980’s. This makes them very attractive for re-inventing some of the classic programs of that time.
In a previous blog post I discussed a simple RPG called “MicroRealms”.
Here you will find a “Simon” lookalike.
This series of posts will describe a game inspired by Space Invaders and implemented on the LPC1114FN28 microcontroller. I will start with a description of the hardware platform and then later delve into the software and any problems encountered.
MCU Invaders hardware
The hardware consists of an LPC1114 MCU, a 320×240 colour LCD display, some buttons, resistors and finally a USB to serial interface to allow the MCU to be programmed.
The display is driven over the SPI bus and runs at approx 25MHz (this is beyond the official specification but it seems to work fine). The buttons allow you move a defender left and right at the bottom of the screen and a “fire” button allow you launch missiles at the invader.
The MCU is programmed using ISP or IAP – i.e. programs are downloaded via its UART after it is reset into “ISP mode” (hold down Reset and ISP buttons, release Reset and then release ISP). The completed circuit is shown in the picture below.
I got the display from dx.com and I note that it is now out of stock. The original supplier ElecFreaks still has plenty of them available.
The next post will describe the code in detail bit in case you can’t wait that long you can find it over on github.