MeggyJrDemo: Difference between revisions
Jump to navigation
Jump to search
BillyBuggy (talk | contribs) No edit summary |
BillyBuggy (talk | contribs) No edit summary |
||
| Line 1: | Line 1: | ||
===== Introduction ===== | ===== Introduction ===== | ||
I built a [http://www.evilmadscientist.com/article.php/meggyjr Meggy Jr RGB] | In January 2009 I built a | ||
kit designed by Windell Oskay (Evil Mad Scientists Laboratory). | [http://www.evilmadscientist.com/article.php/meggyjr Meggy Jr RGB] | ||
kit designed by Windell Oskay (of Evil Mad Scientists Laboratory). | |||
===== Standard Arduino main program: ===== | ===== Standard Arduino main program: ===== | ||
<pre> | <pre> | ||
| Line 11: | Line 12: | ||
} | } | ||
</pre> | </pre> | ||
===== Simplified Meggy API ( | ===== Simplified Meggy API (partial): ===== | ||
<pre> | <pre> | ||
#include <MeggyJrSimple.h> | #include <MeggyJrSimple.h> | ||
EmptyScreen(); Turn off all | EmptyScreen(); Turn off all LEDs | ||
DrawPx(x,y,color); Turn on LED (x=0~7, y=0~7, color=0~15) | DrawPx(x,y,color); Turn on LED (x=0~7, y=0~7, color=0~15) | ||
( x=0,y=0 is lower left ) | ( x=0,y=0 is lower left ) | ||
ShowScreen(); Copy buffer array to display video array | ShowScreen(); Copy (double) buffer array to display | ||
video array | |||
SetAuxLEDs(N); Set top LEDs: N=1:FarLeft, N=255:AllOn | SetAuxLEDs(N); Set top LEDs: N=1:FarLeft, N=255:AllOn | ||
| Line 33: | Line 35: | ||
===== Regular Arduino calls still available: ===== | ===== Regular Arduino calls still available: ===== | ||
<pre> | <pre> | ||
delay(N); Delay N msec. | delay(N); Delay execution N msec. | ||
millis(); | millis(); Return current time in msec. | ||
random(X); | random(X); Return random number in [0,X) | ||
</pre> | </pre> | ||
| Line 51: | Line 53: | ||
</pre> | </pre> | ||
===== | ===== Simple looping using function delay() ===== | ||
<pre> | <pre> | ||
void setup() { | void setup() { | ||
| Line 66: | Line 68: | ||
</pre> | </pre> | ||
===== | ===== Same loop over frames, w/o using function delay() ===== | ||
<pre> | <pre> | ||
unsigned long gLastTime; | unsigned long gLastTime; | ||
Latest revision as of 21:37, 16 March 2009
Introduction
[edit | edit source]In January 2009 I built a Meggy Jr RGB kit designed by Windell Oskay (of Evil Mad Scientists Laboratory).
Standard Arduino main program:
[edit | edit source] int main(void) {
setup();
for (;;)
loop();
return 0;
}
Simplified Meggy API (partial):
[edit | edit source]#include <MeggyJrSimple.h>
EmptyScreen(); Turn off all LEDs
DrawPx(x,y,color); Turn on LED (x=0~7, y=0~7, color=0~15)
( x=0,y=0 is lower left )
ShowScreen(); Copy (double) buffer array to display
video array
SetAuxLEDs(N); Set top LEDs: N=1:FarLeft, N=255:AllOn
CheckButtonsDown(); Check which buttons currently pressed.
Sets six (global) variables:
Button_A, Button_B, Button_Up,
Button_Down, Button_Left, Button_Right
if (Button_Left || Button_Up ) ...
Regular Arduino calls still available:
[edit | edit source]delay(N); Delay execution N msec. millis(); Return current time in msec. random(X); Return random number in [0,X)
Colors for DrawPx():
[edit | edit source] 0 Dark
1 Red 8 DimRed
2 Orange 9 DimOrange
3 Yellow 10 DimYellow
4 Green 11 DimGreen
12 DimAqua
5 Blue 13 DimBlue
6 Violet 14 DimViolet
7 White 15 FullOn
Simple looping using function delay()
[edit | edit source] void setup() {
MeggyJrSimpleSetup();
}
void loop() {
DrawPx(7, 7, FullOn);
ShowScreen();
delay(100); // #1
DrawPx(7, 7, Dark);
ShowScreen();
delay(500); // #2
}
Same loop over frames, w/o using function delay()
[edit | edit source]unsigned long gLastTime;
byte gWhichDelay;
int gDelayMsec;
void setup() {
MeggyJrSimpleSetup();
gLastTime = millis();
gWhichDelay = 2; // Waiting at: =1: first delay(),
// =2: second delay()
gDelayMsec = 500;
}
void loop() {
if ( millis() > gLastTime + gDelayMsec ) {
if ( gWhichDelay == 1 ) {
DrawPx(7, 7, Dark);
ShowScreen();
gDelayMsec = 500;
gWhichDelay = 2;
}
else {
DrawPx(7, 7, FullOn);
ShowScreen();
gDelayMsec = 100;
gWhichDelay = 1;
}
gLastTime = millis();
}
}