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.
Revision 5:d614b857b940, committed 2013-06-05
- Comitter:
- RichardE
- Date:
- Wed Jun 05 22:03:35 2013 +0000
- Parent:
- 4:f6a33c5f0f7f
- Commit message:
- Made the spr variable in the Gameduino class public.
Changed in this revision
Gameduino.cpp | Show annotated file Show diff for this revision Revisions of this file |
Gameduino.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/Gameduino.cpp Sat Nov 24 12:52:34 2012 +0000 +++ b/Gameduino.cpp Wed Jun 05 22:03:35 2013 +0000 @@ -16,9 +16,9 @@ // Pass pointer to SPI datalink in spi. // Pass pointer to chip select in cs. Gameduino::Gameduino( SPI *spi, DigitalOut *cs ) : + spr( 0 ), spi( spi ), - cs( cs ), - spr( 0 ) + cs( cs ) { } @@ -411,3 +411,4 @@ } __end(); } +
--- a/Gameduino.h Sat Nov 24 12:52:34 2012 +0000 +++ b/Gameduino.h Wed Jun 05 22:03:35 2013 +0000 @@ -347,6 +347,9 @@ */ void HideAllSprites( void ); + // Current sprite. Used by xsprite and xhide etc. + UInt8 spr; + private : // Pointer to SPI datalink. @@ -355,9 +358,6 @@ // Pointer to chip select digital output. DigitalOut *cs; - // Current sprite. Used by xsprite and xhide etc. - UInt8 spr; - }; #endif