Library for communicating with a Gameduino shield. Provides colour VGA display, hardware sprites with collision detection and stero sound. See http://excamera.com/sphinx/gameduino/ for more details.
Dependents: GameduinoTest SimpleGameduinoTest RobotRic
Note that to use this library you must also import the CommonTypes library because this library uses it.
To get an mbed talking to a Gameduino shield all you really have to do is connect the Gameduino to the SPI bus. I did it using an LPC11U24 mbed and wired it to the Gameduino as follows:
- mbed pin...................Gameduino pin
- 5 (MOSI)...................11 (MOSI)
- 6 (MISO)...................12 (MISO)
- 7 (SCK)....................13 (SCK)
- 8..........................9 (SEL)
- 40 (VOUT)..................5V and 3.3V
- 1 (GND)....................GND
mbed pins 5, 6 and 7 make up the SPI datalink. mbed pin 8 should be configured as a digital output and is driven low to communicate with the Gameduino.
Probably best to run the whole lot off a regulated 5V supply rather than relying on the 5V supply from the USB cable. I have had problems with the mbed's 3.3V VOUT supply. If the USB voltage is very low (nearer 4V than 5V) then the mbed's 3.3V regulator won't work properly and can't provide much current. I struggled to draw 10 mA for an LED. These problems go away if you power everything off an external 5V supply. It also means you can unplug the mbed from your computer of course.
Mounting the Gameduino is a bit awkward. I put it on some stripboard using 3 SIL sockets designed for an Arduino. Then I mounted the mbed alongside using two 20 pin SIL sockets. Unfortunately Arduino shields like the Gameduino don't fit nicely on a 0.1 inch grid (like the mbed does) so some connections have to be made using flying wires.
Here are some screenshots:
The code for generating this last display is found here:
Import programGameduinoTest
More complicated test program that generates text, coloured sprites and sound.
Here's the games console:
and the insides. Don't worry about the cables and the 8 pin chips. You don't need them if all you want is a display. They are an RS485 chip and a serial EEPROM.
Diff: Gameduino.h
- Revision:
- 3:a1c856358996
- Parent:
- 1:8ff91fe70bfc
- Child:
- 4:f6a33c5f0f7f
diff -r 19817d1924d5 -r a1c856358996 Gameduino.h --- a/Gameduino.h Thu Nov 15 21:23:25 2012 +0000 +++ b/Gameduino.h Sun Nov 18 15:02:56 2012 +0000 @@ -327,9 +327,6 @@ */ void waitvblank( void ); - /****************/ - /* MAKE A NOISE */ - /****************/ /** Make a noise. * @param v Voice number. * @param wave Waveform type. @@ -338,7 +335,11 @@ * @param ramp Amplitude for right channel. */ void voice( UInt8 v, WaveForm wave, UInt16 freq, UInt8 lamp, UInt8 ramp ); - + + /** Hide all sprites. + */ + void HideAllSprites( void ); + private : // Pointer to SPI datalink.