Home / Projects / BomberNome

BomberNome

For my ESE 519 ”Real-time Embedded Systems” (University of Pennsylvania, Fall 2011) final project, I worked in a three-person team with Monica Lui and Faqin Zhong on a hardware project dubbed “BomberNome”. The original project requirement was to make use of the ESE lab’s stash of monome boards in a creative and fun way. It turned out, however, there weren’t enough actual monome boards lying around (i.e. boards with each grid unit also connected to a switch and LED) but there were plenty of LED boards, so we instead decided to just hook up a bunch of these LED boards to make a nice LED “screen” to play the classical game, Bomberman (“BomberNome” being a portmanteau of “Bomberman” and “Monome”)


(Direct download)
Final demo of BomberNome, created using four 8×8 LED boards, a Freescale HCS12 microcontroller, three Firefly nodes, and a bunch of wires and inverters connected to two breadboards

The final end result was completed and demo’d with perfection (see above video). The hardest part of the project was figuring out the hardware port-pin mappings (so it’d all run on a single HCS12). The solution involved a bunch of 3-8 decoders, a lot of wiring, and some tricky switching logic. We also wanted to build some interesting multiplexer circuits to improve the LED brightness (it was either that or build/buy an external LED driver), but we ended up settling for a basic timed refresh due to lack of time (the lights had to be turned off for the demo so the LEDs could be seen due to the slow refresh rate and low power output).

The following are snapshots of the final demo presentation, random photos of the hardware creating process, and some nice hardware/software flow diagrams. For more details, see the links below:
Blog
Demo presentation
Demo video
Final code
Flow diagrams
GitHub project

Demo presentation
page-1

page-2

page-3

page-4

page-5

page-6

page-7

Hardware pictures
Debugging the FireFly node's output
Debugging the FireFly node’s output
Initial breadboard wiring setup
Initial breadboard wiring setup
Cleaned up rewiring (for sanity purposes)
Cleaned up rewiring (for sanity purposes)
Together with working monome boards (I probably inhaled a lot more soldering fumes than I should have when soldering up all those LED pins >_>)
Together with working monome boards (I probably inhaled a lot more soldering fumes than I should have when soldering up all those LED pins >_>)
BomberNome! Yes, the cardboard enclosure was absolutely necessary - it made everything 10x better!
BomberNome! Yes, the cardboard enclosure was absolutely necessary – it made everything 10x better!
BomberNome game grid with both players in starting positions
BomberNome game grid with both players in starting positions
Added a nice splash screen (had to truncate to BOMB NOME)
Added a nice splash screen (had to truncate to BOMB NOME)
Diagrams and flow charts
My beautiful hardware diagram
My beautiful hardware diagram
BomberNome overall diagram
BomberNome overall diagram
BomberNome gameplay diagram
BomberNome gameplay diagram
BomberNome input logic
BomberNome input logic
Master FireFly logic
Master FireFly logic
Player FireFly logic
Player FireFly logic
BomberNome game reference diagram
BomberNome game reference diagram
Splash screen (I spend a total of one hour fussing over how to make it look best on a 16x16 grid, then half an hour actually implementing it)
Splash screen (I spend a total of one hour fussing over how to make it look best on a 16×16 grid, then half an hour actually implementing it)

~Keripo (Philip Peng)

3,962 total views, 4 views today

Check Also

Beats 1.7.5b and Android Fragmentation

Android: The Story of A Fragmented Platform (src) So even though I wasn’t planning on …