ESP8266/ESP32

ESP8266/ESP32

ESP8266でPNGデコーダを実装してみた(4)

世間はすっかりクリスマス&スターウォーズに染まっていますね。 今週も週末は慌しく過ぎました。 今年は年末年始の休みも一週間しかなく、欲求不満が溜まりそうです。 今日は、PNGデコーダの実装に透過色を追加しました。 透過色は、「tRNS」チャ...
ESP8266/ESP32

ESP8266でPNGデコーダを実装してみた(3)

この週末はあまり時間が取れなかったのですが、このところ作っているPNGデコーダを、1bit/2bit/4bitのインデックスカラーに対応させてみました。 動画の通り、インデックスカラーはそれなりに高速に表示できます。 動画では、1bitの画...
ESP8266/ESP32

ESP8266でPNGデコーダを実装してみた(2)

前回実装したPNGデコーダに、インデックスカラーモードとグレースケールモードの実装を追加してみました。 PNGの画像圧縮・伸長はバイト列が対象なので、カラーモードごとの違いはデコード結果のバイト列をどう解釈するかだけの違いです。 PNGはG...
ESP8266/ESP32

ESP8266でPNGデコーダを実装してみた

前回、「ESP8266でオンメモリでPNGをデコードするのは難しいかも」と書きましたが、あれこれ考えた結果、ぎりぎり何とかなりそうな見通しが立ったので、この3連休を使って実装してみました。 Deflate圧縮の伸張には、前回紹介した中から「...
ESP8266/ESP32

PNGデコーダの調査結果:ESP8266でのデコードは厳しいかも

ESP8266でJPEGとGIFがデコードできましたので、PNGも…と思い、仕様や既存のライブラリを調査していました。 その結果をここでまとめておきます。 結論としては、ESP8266でのPNG画像のデコードは不可能ではないものの、RAMの...
ESP8266/ESP32

ESP8266でGIF画像をデコードする

JPEG画像に続いて、今度はGIF画像のデコードを試してみました。 GIF画像の圧縮・展開は、結構メモリが必要になります。 具体的には、最低でも25KB以上は必要です。 まず、GIFは最大256色を使いますが、色番号に対応する色はRGB各8...
ESP8266/ESP32

ILI9340液晶の表示の高速化

前回の続きです。 前回の最後のほうで 現在は1ピクセルずつdrawPixelで書いている部分をsetAddrWindowとpushColorで書き直せば、もう少し高速化できると思います。 と書きましたが、大した手間でもないのでやってみました...
ESP8266/ESP32

激安QVGA液晶をESP8266で使う

中国の通販サイトaliexpressで、QVGA(320x240)の2.2インチカラーLCDが送料込で5ドル少々だったので購入してみました。 インタフェースはSPIで、コントローラはILI9340Cということで、たぶん以下の記事で使われてい...
ESP8266/ESP32

ESP8266でJPEG画像をTFT LCDに表示する

前回はSPIFFSの中に格納したBMPファイルを表示させましたが、JPEG、GIF、PNGなどのファイルも表示させたくなりますね。 調べてみたところ、これらの画像形式の中でESP8266で比較的扱いやすいのはJPEGのようです。 JPEG、...
ESP8266/ESP32

ESP8266のフラッシュメモリをファイルシステムとして使用する(2)

前回の続きです。 SPIFFS(SPI Flash File System)をArduinoからファイルシステムとして使えるようになりましたので、BMPファイルを格納して、そのファイルを以前も使用したTFTカラーLCDに表示させてみます。 ...
ESP8266/ESP32

ESP8266のフラッシュメモリをファイルシステムとして使用する

ESP8266はSPI経由でフラッシュメモリが接続されています。 容量は、国内で使用可能なWROOM-02の場合は4MBです。 フラッシュメモリの空きスペースは、ストレージとして、プログラムで使用するデータを置いておくことができます。 通常...
ESP8266/ESP32

ESP8266 SDKのJSON APIを使ってみた

前回はオープンソースのJSONライブラリについて紹介しましたが、本家のESP8266 SDKにも、JSONライブラリが入っています。 今回は前回の続きということでこのライブラリを紹介しますが、最初に結論を書いておくと、このライブラリは空のオ...
ESP8266/ESP32

ArduinoJsonとaJsonをESP8266で使う際の比較

インターネットから情報を取ってきてESP8266で処理しようとすると、データ構造が比較的シンプルなJSON形式は便利です。 以前も、為替情報をJSONで取得して表示させてみました。 ESP8266版Arduinoでネットから情報を取ってきて...
ESP8266/ESP32

ESP8266にカラーTFT液晶をSPI接続してみる

ESP8266にキャラクタ液晶はちゃんとつながりましたので、今度は先日使ったカラーTFT LCD(aitendo M-Z18SPI-2P)をつないでみました。 環境自体はArduinoですので接続だけで済むかも、と期待したのですが、残念なが...
ESP8266/ESP32

ESP8266版Arduinoでネットから情報を取ってきてLCDに表示する

前回、ESP8266でキャラクタ液晶を制御できましたので、ESP8266ならではのWiFi機能を使い、インターネットから情報を取得して表示させてみます。 何か動的な情報で、16字×2行のアルファベットで表示できるもの、ということで、最近動き...