フォト
2025年4月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      
無料ブログはココログ

« M5StackでMML単音演奏 | トップページ | Arduino IDE 1.8.12が公開されました »

2020年2月 4日 (火)

M5Stackで日本語表示(2)

M5Stackでの日本語表示の続きです。
前回とは別の自作ライブラリをM5Stack対応の修正を行いました。

利用ライブラリ
 ・Arduino-KanjiFont-Library-SD
    Arduino用のマルチサイズ漢字フォントを利用するためのライブラリ(SDカード版)
    https://github.com/Tamakichi/Arduino-KanjiFont-Library-SD

ライブラリを使って、「吾輩は猫である」の文書を表示してみました。

    01_20200204162501 

動いている様子
    

8ドットから24ドットのフォントサイズを変えて繰り返し表示しています。

動画を見れば分かると思いますが、表示はあまり速くないです。
逐次、SDカードから読んでいるためかと思われます。
まあ、とりあえずは良しとします。

スケッチ


表示の高速化のため、M5Stackで利用されている液晶パネルILI9341Windows機能を利用してフォントの表示を行っています。
drawPixel()を使うよりもコマンド送信数が少なくて済むので多少は速くなると思います。
ただし、SDカードアクセスが遅いためあまり効果としては現れませんね。

ちょっとハマった..

今回はテキストをスクロールさせるつもりでscrollUp()関数を作成したのですが、
期待通りに動きませんでした。
プログラム的には、指定座標のピクセル色を読んで、1文字分上に表示でスクロールさせようとしたのですが..

「何故だろう..?」と調べると、
なんとMISO(LCDからデータを読む)が使われていません。

02_20200204164501
(回路図は公式サイトより入手し引用)

これでは、物理的にデータの取得は出来ないですね。
ですので用意されている readPixel()readRect() は正常に動きません。
ためしてみると、ピクセルの色は常に 65535の値が返されます。

もう一点、ウィンドウ設定でsetAddrWindow()を使っているのですが、
setWindow()だと正しく表示出来ませんでした。
setAddrWindow()は、内部的にsetWindow()を読んでいるのですが、
SPIの設定を行ってからsetWindow()が呼び出されています。
SPIがSDカードのアクセスと共用のため、SPIの設定が必要だったのだと思われます。

とりあえずは、ウィンドウ設定の関数が用意されているのが分かったのは収穫でした。

追記
  MOSIを双方向にてデータを読む方法があるようです。

  関連情報
   ・M5Stackで画面キャプチャーを取得する
      https://qiita.com/fukuebiz/items/8aff6cad2f6048f02f12

   ・Bodmer/TFT_eSPI
      Arduino and PlatformIO IDE compatible TFT library optimised for the STM32,
      ESP8266 and ESP32 that supports different driver chips
      https://github.com/Bodmer/TFT_eSPI

  M5Stackのライブラリ=v0.2.9)のTFT_eSPIが古いため、現時点で readPixel()readRect() が使えないようです。
  まあ、いずれ、TFT_eSPIの最新版を取り込んで利用可能になると思います。

« M5StackでMML単音演奏 | トップページ | Arduino IDE 1.8.12が公開されました »

arduino」カテゴリの記事

表示器制御関連」カテゴリの記事

ESP32・ESP8226」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« M5StackでMML単音演奏 | トップページ | Arduino IDE 1.8.12が公開されました »