JA! Die obere Platine mit maroon SHIELD abnehmen, Jumper in die markierte Position bringen, einschalten und über USB programmieren! Die aktuelle Software ist aber bereits drauf!
Die Demo Beispiele sind noch nicht vorzeigbar
- das meiste passiert jedoch auf dem Shield...
Hier schon mal ein paar defines:
#define MAROON_CLEAR() "\33c"
#define MAROON_BRIGHT(x) "\33b" #x
#define MAROON_DIM(x) "\33d" #x
#define MAROON_TXBACK(c) "\33t" c
#define MAROON_LOAD() "\33l"
#define MAROON_BAR(bar) "\33B" bar " "
#define MAROON_GFX(gfx) "\33G" gfx " "
#define MAROON_PAUSE(x) "\33P" #x " "
#define MAROON_STIME(x) "\33S" #x " "
#define MAROON_DTIME(x) "\33D" #x " "
#define MAROON_TRANSITION(n, x) "\33T" #n #x " "
#define MAROON_IMM_CLEAR() "\20c"
#define MAROON_IMM_DIM(x) "\20d" #x
"1" einblenden dann 50% abblenden und Lauftext "Follow me":
char txt[] = MAROON_BRIGHT(0) MAROON_LOAD() "1" MAROON_BAR("00") MAROON_DIM(*) MAROON_PAUSE(100) MAROON_DIM(5) " Follow me\n"
Erklärung:
- Display dunkel
- nächstes Zeichen direkt laden
- Zeichen '1'
- MAROON_BAR zweckentfremden für zwei leere Spalten
- auf 100% Dimmen mit Standardzeit
- 100 ms Pause
- auf 50% Dimmen mit Standardzeit
- Text " Follow me"
- Zeilenumbruch -> Text vollständig rausscrollen
Auszüge aus der Zeichenroutine für die Bars...
char maroon_gfxdata[] = MAROON_LOAD() MAROON_BAR("00000000");
#define MAROON_BAR_OFFSET 4
char getSensorChar(int16_t val) {
if (val<5) return 'a';
if (val<10) return 'b';
if (val<15) return 'c';
if (val<25) return 'd';
if (val<35) return 'e';
if (val<50) return 'f';
if (val<70) return 'g';
if (val<100) return 'h';
return 'i';
}
/* ... */
if (usart_txempty()) {
int16_t l = analog_getValueExt(ANALOG_FL, 2);
int16_t r = analog_getValueExt(ANALOG_FR, 2);
int16_t ll = analog_getValueExt(ANALOG_FLL, 2);
int16_t rr = analog_getValueExt(ANALOG_FRR, 2);
maroon_gfxdata[MAROON_BAR_OFFSET+0] = getSensorChar(rr);
maroon_gfxdata[MAROON_BAR_OFFSET+1] = '0';
maroon_gfxdata[MAROON_BAR_OFFSET+2] = getSensorChar(r);
maroon_gfxdata[MAROON_BAR_OFFSET+3] = '0';
maroon_gfxdata[MAROON_BAR_OFFSET+4] = '0';
maroon_gfxdata[MAROON_BAR_OFFSET+5] = getSensorChar(l);
maroon_gfxdata[MAROON_BAR_OFFSET+6] = '0';
maroon_gfxdata[MAROON_BAR_OFFSET+7] = getSensorChar(ll);
print_text(maroon_gfxdata); // Text an das maroon SHIELD senden
}