M5StickC로 문자열 스크롤 표시

9149 단어 M5StickC

개요



M5StickC의 표시 영역이 작고 괴롭기 때문에, 가로 스크롤 표시시켜 보았습니다.
Arduino IDE를 사용했습니다.

아래 그림과 같이 "Hellooo Wooorld!"라는 문자열을 오른쪽 끝에서 왼쪽 끝으로 가로 스크롤했습니다.

그림 : 스크롤의 모습


환경 구축



여기 Qiita 기사 대로 갔습니다. (간단!)

Arduino 스케치



Arduino의 스케치는 아래에 올린 "M5StickMoveText.ino"의 거리입니다.

스케치 중에서는 아래의 "그림: 스크롤 영역 지정"과 같이 스크롤하는 영역(Sprite의 영역)의 파라미터를 define 정의하고 있습니다.

그 외의 스크롤에 관한 파라미터도 define 정의하고 있으므로, 시험이 되고 싶은 분은 거기를 변경해 주실 수 있으면 좋을까 생각합니다.
 

그림 : 스크롤 영역 지정

M5StickMoveText.ino
#include <M5StickC.h>

TFT_eSprite scrollText = TFT_eSprite(&M5.Lcd); // Sprite object

int tcount;
int dispLength;
int scrollWidth;
int startOffset;

#define M5STICK_TFT_W 160
#define M5STICK_TFT_H 80

#define TFT_BG_COLOR TFT_BLACK
#define TEXT_SPRITE_H M5STICK_TFT_H
#define TEXT_SPRITE_W M5STICK_TFT_W*4
#define TEXT_SCROLL_H M5STICK_TFT_H
#define TEXT_SCROLL_W M5STICK_TFT_W
#define TEXT_SCROLL_PIXEL 2
#define TFT_TEXT_POSI_X 30 // vertical position
#define TFT_TEXT_POSI_Y 0 // horizontal position
#define TEXT_SPRITE_POSI_X 0 // vertical position
#define TEXT_SPRITE_POSI_Y 0 // horizontal position
#define TEXT_FONT_SIZE 4
#define TEXT_SPRITE_COLOR TFT_BLACK
#define SCROLL_INTERVAL_MS 50

void setup() {
  M5.begin();
  M5.Lcd.setRotation(3);
  M5.Lcd.fillScreen(TFT_BG_COLOR);

  // Create a sprite for Hello World
  scrollText.setColorDepth(8);
  scrollText.createSprite(TEXT_SPRITE_W, TEXT_SPRITE_H);
  scrollText.fillSprite(TEXT_SPRITE_COLOR);
  scrollText.setTextColor(TFT_WHITE); // White text, no background

  tcount = 0;
  dispLength = 0;
  scrollWidth = 0;
  startOffset = 0;
}

void loop() {
  // Push the sprites onto the TFT at specied coordinates
  scrollText.pushSprite(TFT_TEXT_POSI_Y, TFT_TEXT_POSI_X);

  if (tcount > 0) {
    scrollText.scroll(-TEXT_SCROLL_PIXEL); // scroll text left
    tcount--;
  }
  else {
    startOffset = M5STICK_TFT_W; //start position is edge of tft
    if (dispLength > 0) {
      scrollWidth = dispLength + startOffset;
    }
    else {
      scrollWidth = 0;
    }
    tcount = scrollWidth / TEXT_SCROLL_PIXEL;
    String drawStr = "Hellooo Wooorld!";
    dispLength = scrollText.drawString(drawStr, TEXT_SPRITE_POSI_Y + startOffset, TEXT_SPRITE_POSI_X, TEXT_FONT_SIZE);
    if (TEXT_SPRITE_W <= dispLength) {
      dispLength = TEXT_SPRITE_W; // disp length is too long -> TEXT_SPRITE_W
    }
    scrollText.setScrollRect(0, 0, dispLength + startOffset, TEXT_SCROLL_H, TEXT_SPRITE_COLOR); // Update ScrollRect
  }

  delay(SCROLL_INTERVAL_MS); // wait so things do not scroll too fast

}



참고 기사



  • M5StickC를 움직여보세요
  • htps : // 이 m/이치 B_S144/있어 ms/7아 232c1아 31151fcb5에 5b


  • M5Stack 샘플 스케치(문자 스크롤)
  • htps : // 기주 b. 이 m / m5s ck / M5S ck / b ぉ b / 뭐 r / 에 ぁ ぇ s / 아 d / Sp 하고 _sc 룻. 이노


  • M5StickC의 작은 자료 (144Lab 그룹 개발자 블로그)
  • htps // ch. 144 b. 코 m / 엔트리 / M5S ChickC_ Chips


  • 업데이트 내역


  • 2019-07-07 : 신규 작성
  • 2019-07-07 : 개요 그림 추가 및 스케치 수정
  • 좋은 웹페이지 즐겨찾기