For the past couple of weeks we have been playing various dart games at work during lunch break.
I thought it would be fun to interface with the electronic dart board so I could keep score/stats for my own custom game(s);
Since I was not sure that my hacking would prove successful I opted to hack a cheap $12 dartboard
that was laying around the office instead of the more expensive one used for lunchtime entertainment.
As far as picking an MCU to interface to the dartboard I had an arduino pro mini and a Coridium BASIC Chip. I was not sure if the BASIC Chip would be right for this project.
I had never used the BASIC Chip before so I decided to give it a try.
There is nothing "basic" about the the BASIC Chip, its a fullblown 32bit MCU (Cortex M0) running at 50mhz with 22 digital I/O pins.
The MCU comes in a 28pin PDIP and only require a 3.3v power supply and a TTL serial connection (FTDI etc) to program.
At its core an electronic dartboard is just 62 switches/buttons that are "pressed" by the impact of the darts.
These buttons are arranged in a 8x8 martix similiar to the diagram below.
The dartboard is connected to the MCU via 8 input pins and 8 output pins. The MCU is connected to the bluetooth module via ttl serial.
Below is a basic block diagram of the project.
The code for the MCU is pretty simple. Until I get a chance to write up an explaination of the code you can
Download BASIC Code Here
I decided to use AppMobi's (disclosure, I work for AppMobi) HTML5 framework to make the "client" app for the dartboard.
I chose to use html5/js because it wold allow me to rapidly develop the software. The peliminary version of the software is available
here. Score keeping is currently not implemented. I plan to implement it in the future.
(note: this app makes use of bluetooth serial functionality that is not currently part of the production AppMobi API's. However, you can press the "dice" button in the app to simulate a random dart hit.
If I get requests I will create a bluetooth serial plugin for AppMobi Apps)