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はGIF...
ESP8266/ESP32

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

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

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

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

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

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

ESP8266 SDKのJSON APIを使ってみた

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

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

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

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

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

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

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