MRETV - Video, ljud och mycket mer från en standard Arduino! (5 / 10 steg)
Steg 5: Programvarugränssnitt
MRETV är lika enkelt att programmera som det är att bygga, så detta kommer att hållas kort. Följande tre exempel hjälper dig att börja använda MRETV i ditt eget arbete. De ingår i MRETV.zip som SoftwareInterfaceExample.ino. Det är bäst att använda ett terminalprogram för att ansluta till MRETV för att testa input (i stället för den inbyggda seriella monitorn i Arduino miljö.)
Det finns 3 steg för att använda MRETV i dina skisser.
1. innehåller delar
2. begin() utgång [och input]
3. uppdatera information
Använda Video i en skiss:
1. delar // 2. börja 3. uppdatera skärmen
#include / / MRETV sig
#include / / ett teckensnitt, standard fontheight är 8
uchar Screenbuf [20 * 20] = {
"Använda en sträng här att ställa in din första display"}; någon plats att sätta display data, 20 rader 20 tecken
void setup() {
Screen.BEGIN (textfont, Screenbuf, 20 * fontheight, 20, 20, 20, 1); Starta videoutgång
(teckensnitt, buffert, ScreenHeight (pix), ScreenWidth (tecken), top (pix), vänster (pix), läge) topp och vänster centrering, mode = 1 för normal text
}
flyktiga uint a, djup = 0;
void loop() {
for(a=5000;a;a--); / / bromsa oss
Screen_progstr (8,0, "Speed"); uppdatera information som behövs
Screen.dec(56-((int)DEPTH/300));
Screen_progstr (11,0, "Djup");
Screen.hexint(Depth++);
}
Med ljud i en skiss:
Kom ihåg de 3 steg.
1. innehåller delar
2. begin() utgång
3. uppdatera information
1. delar
MRETV använder en särskild fil Arduino\libraries\MRETV\MRETV.extensions för att hålla information om utökade funktioner
som sund generation. (Att få veta varför expert i avsnittet.) För att använda ljud måste du definiera en ljud typ, kommer vi att
"#define monoaudio" i den här filen. (se "default_extensions" i MRETV.extensions nu.)
#include / / MRETV sig // 2. börja 3. uppdatera skärmen 3. uppdatera ljud
#include / / ett teckensnitt, standard fontheight är 8
#include "saw.h" / / några ljud prover
PROGMEM const char * ljud [] = {/ / valfri matris med ljudexempel, måste kallas "låter []" och i progmem.
sawCo4, sawDbo4, sawDo4, sawEbo4, sawEo4, sawFo4, sawGbo4, sawGo4, sawAbo4, sawAo4, sawBbo4, sawBo4};
uchar Screenbuf [20 * 20] = {
"Använda en sträng här att ställa in din första display"}; någon plats att sätta display data, 20 rader 20 tecken
void setup() {
Screen.BEGIN (textfont, Screenbuf, 20 * fontheight, 20, 20, 20, 1); Starta videoutgång, ljud är aktiverad på samma gång
(teckensnitt, buffert, ScreenHeight (pix), ScreenWidth (tecken), top (pix), vänster (pix), läge) topp och vänster centrering, mode = 1 för normal text
}
flyktiga uint a, djup = 0;
void loop() {
for(a=4000;a;a--); / / bromsa oss
Screen_progstr (8,0, "Speed"); uppdatera information som behövs
Screen.dec(56-((int)DEPTH/300));
Screen_progstr (11,0, "Djup");
Screen.hexint(Depth++);
om (! () djup & 0x07f)) switch(depth/0x80) {/ / pip då och då
fall 1:
ssample(sawBo4,50); spela ett prov direkt (prov, varaktighet (1/60 SEK))
bryta;
fall 17:
djup = 0;
bryta;
standard:
om ((djup/0x80) > 5) setaudio((depth/0x80)-6,15); spela ett prov från array (prov, varaktighet (1/60 SEK))
bryta;
}
}
Med Input (tangentbord och/eller seriell Rx) i en skiss:
1. delar #include // 2. börja flyktiga uint a, djup = 0, hastighet = 56. 3. uppdatera inkommande information 3. uppdatera skärmen 3. uppdatera ljud
i "Arduino\libraries\MRETV\MRETV.extensions" kommer vi att
"#define monoaudio"
"#define firmwaremultiport / / tangentbord och följetong
#define translatekeys / / ingen rawkey upp/ner grejer
#define mergstreams / / handtag båda tillsammans
#include / / ett teckensnitt, standard fontheight är 8
#include "saw.h" / / några ljud prover
PROGMEM const char * ljud [] = {/ / valfri matris med ljudexempel, måste kallas "låter []" och i progmem.
sawCo4, sawDbo4, sawDo4, sawEbo4, sawEo4, sawFo4, sawGbo4, sawGo4, sawAbo4, sawAo4, sawBbo4, sawBo4};
uchar Screenbuf [20 * 20] = {
"Använda en sträng här att ställa in din första display"}; någon plats att sätta display data, 20 rader 20 tecken
void setup() {
Screen.BEGIN (textfont, Screenbuf, 20 * fontheight, 20, 20, 20, 1); Starta videoutgång, ljud, tangentbord och seriell extensions
(teckensnitt, buffert, ScreenHeight (pix), ScreenWidth (tecken), top (pix), vänster (pix), läge) topp och vänster centrering, mode = 1 för normal text
}
void loop() {
uchar hakan; karaktär i från följetong/tangentbord ström
for(a=4000;a;a--); / / bromsa oss
Switch(Chin=video.readS()) {/ / en karaktär från seriella (med tangentbord samman)
fall 0: / / ingen karaktär fick från ingång
bryta;
fallet ": / / s från ingång
setaudio(0,35);
bryta;
fall 0x0d: / /
djup = 0xfff8 & (djup + 0x8);
djup-= 1;
bryta;
}
IF(Chin) {
Screen_progstr (8,0, "Speed"); uppdatera information som behövs
Screen.dec(Speed-((int)DEPTH/3));
Screen_progstr (11,0, "Djup");
Screen.hexint(Depth++);
om (! () djup & 0x07)) switch(depth/0x8) {/ / pip då och då
fall 1:
ssample(sawBo4,50); spela ett prov direkt (prov, varaktighet (1/60 SEK))
bryta;
fall 17:
djup = 0;
bryta;
standard:
om ((djup/0x8) > 5)setaudio((depth/0x8)-6,15); spela ett prov från array (prov, varaktighet (1/60 SEK))
bryta;
}
}
}