コピー #include <mwm5.h>
#include <Arduino.h>
#include <M5Stack.h>
// ターミナルオブジェクトの生成
TWETerm_M5_Console the_screen (
64 , 20 ,
{ 0 , 16 , 320 , 192 } , M5 );
void setup () {
// begin M5
M5 . begin ( true , false , true , false ); // LCD, SD, Serial, I2C
// create font as #10 (東雲フォント16)
createFontShinonome16 ( 10 , 0 , 0 );
the_screen . set_font ( 10 ); // set font #10
the_screen . set_color (ALMOST_WHITE , M5 . Lcd . color565 ( 90 , 0 , 50 );
// set color (fg, bg)
the_screen . set_cursor ( 2 ); // 0: no 1: curosr 2: blink cursor
the_screen . force_refresh (); // repaint now.
// initial message
the_screen << "the_screen:" << crlf;
}
void loop () {
// refresh screen
static uint32_t t_last;
uint32_t t_now = millis ();
if (t_now - t_last > 32 ) {
the_screen . refresh ();
t_last = t_now;
}
// press A button
if ( M5 . BtnA . wasReleased ()) {
the_screen << "hello world!" << crlf;
}
if ( M5 . BtnB . wasReleased ()) {
// force clear with whole redraw.
the_screen . clear_screen ();
}
if ( M5 . BtnC . wasReleased ()) {
// clear screen and set cursor home.
the_screen << "\033[2J\[033H" ;
}
}
コピー // ターミナルオブジェクトの生成
TWETerm_M5_Console the_screen (
64 , 20 ,
{ 0 , 16 , 320 , 192 } , M5 );
コピー void setup () {
...
// create font as #10 (東雲フォント16)
createFontShinonome16 ( 10 , 0 , 0 );
ターミナルにフォントなどを基本的な設定を行います。フォントを先ほどのフォントID=10として指定し、フォントの文字色と背景色を指定します。カーソルを2(ブリンク表示)とします。最後にforece_refresh()
にて初期描画を行います。
コピー void setup () {
...
the_screen . set_font ( 10 ); // set font #10
the_screen . set_color (ALMOST_WHITE , color565 ( 90 , 0 , 50 );
// set color (fg, bg)
the_screen . set_cursor ( 2 ); // 0: no 1: curosr 2: blink cursor
the_screen . force_refresh (); // repaint now.
コピー void loop () {
// refresh screen
static uint32_t t_last;
uint32_t t_now = millis ();
if (t_now - t_last > 32 ) {
the_screen . refresh (); // 再描画!
t_last = t_now;
}
以下の例ではボ タン Aでは"hello world!" + 改行の出力、ボタンBでは画面のクリア、ボタンCも同様に画面のクリア(エスケープシーケンスによる)を行います。
コピー void loop () {
...
// press A button
if ( M5 . BtnA . wasReleased ()) {
the_screen << "hello world!" << crlf;
}
if ( M5 . BtnB . wasReleased ()) {
// force clear with whole redraw.
the_screen . clear_screen ();
}
if ( M5 . BtnC . wasReleased ()) {
// clear screen and set cursor home.
the_screen << "\033[2J\[033H" ;
}