macsbug

Just another WordPress.com site

Archive for 6月 2017

0.95″ 96×64 SPI Color OLED in ESP32

with one comment

9.5″ 96×64 SPI SSD1331 Color OLED を ESP32 で使用しました。      2017.06.14

Color OLED の価格は 800円です。
総費用は 1996円:Color OLED + WEMOS LOLIN32 。
又は   2176円:Color OLED + Pocket32。( 画像 )
配線7本 と スケッチを1行変更 のみで 23個のサンプルが 直ぐ動作します。

同時に表示:左:0.96″ I2C mono OLED。   右:0.95″ SPI Color OLED


 

Color OLED 仕様:
_ 0.95″ Inch SPI OLED SSD1331 65K Full Color Display Module:800円。
_ Resolution:96×64、Color:65K、Drive:SSD1331、外形:27.3 x 30.7 mm
_ 端子仕様:
_  [GND]:GND。[VCC]:2.8 – 5.6V ( U2 LDO 662K 3.3V)。[SCL] : Clock。
_  [SDA]:MOSI。[RES]:Reset。[DC]:data/command。[CS]:chip-select


 

max mc costa の sumotoy氏による SSD_13XX のサンプルです。


 

s21olid3d SSD_13XX の
examples順に
並べてあります

 

準備:費用総計:1996円 又は 2176円。 価格は 円レート等で変わります。

No  Nomen  Link  Price  Memo
1  Pocket32 (Travis Lin Storeのコピー)  Aliexpress:Lily GO 1136円  輸送 9日
1  Pocket32 ( $15 + ship $5 ):本家  tindle:Travis Lin Store 2315円  輸送 15日
1  WEMOS LOLIN32 V1.0.0($8.66)  Aliexpress:WEMOS CC   956円  輸送 9日
2  9.5″ 96×64 SPI Color OLED Module  ebay:chivazhu  800円  輸送 7日
2  9.5″ 96×64 SPI Color OLED Module  ebay:erizh-51  800円  輸送 7日
2  9.5″ 96×64 SPI Color OLED Module  アマゾン:HiLetgo 1050円  高い
3 シングルピンソケット(低メス)1×20P  秋月電子通商:C-03138    60円  2個
3 ピンソケット(メス) 1x10P  秋月電子通商:C-03786    60円  2個
3 0.3mm ユニバーサル基板(72x47mm)  秋月電子通商:P-09725  120円  1個
4  SPI Library:sumotoy / SSD_13XX  SSD_13XX   –  1行変更

.
本家 Travis Lin Store の Pocket 32 — ESP32 + 18650


 

配線:ESP32 と SPI OLED に7本の配線をします。
_  VSPI は #include <SPI.h> を使用し以下の図面の配線になります。

1.  VSPI 配線の定義:デフォルトの場合。
_  SPI.begin();   (未記入でも動作します)
_  GPIO は SCK( GPIO 18 ), MOSI ( GPIO 23 ) を使用し固定です。(変更可)

2. OLED の配線:CS, DC, RS(RES) :空いているGPIO を使用します。
_  SSD_13XX tft = SSD_13XX(15, 16, 4); // CS, DC, RS(RES)
_  カッコ内の変数は CS, DC, RS(RES) を示します。
_  詳細は sumotoy / SSD_13XX に書かれています。

3.  VSPI 配線の定義:MOSI と SCK を 他の GPIO で使用する場合。
_  例:SPI.begin(14, 12, 13);  // sck, miso, mosi, ss  // miso(12) は未使用。
_  SCK( GPIO 14 ), MOSI ( GPIO 13 ) で 任意のGPIO を使用できます。
_  注:全ての端子を確認した訳でなく 出来ない端子もあるかと思います。


 

スケッチ:1行変更します。
_ ライブラリー SSD_13XX にある  exsample の変更内容。
_ SSD_13XX tft = SSD_13XX(__CS_TFT, __DC_TFT); を
_ SSD_13XX tft = SSD_13XX(15, 16, 4); に変更します。
_ カッコ内は CS = GPIO 15。DC = GPIO 16。RS = GPIO 4 としました。
_ この3つは 他の GPIO でも動作可能です。
_ SSD1331 OLED の名前は tft のままとします。

#include <SPI.h>
#include <SSD_13XX.h>
// MOSI=23, SCK=18,     CS, DC, RS
SSD_13XX tft = SSD_13XX(15, 16,  4);

 


 

ESP32 SPI と SPI Color OLED のピンアサイン:

_ SPI : Serial Peripheral Interface
_ MISO : Master In, Slave Out – Sending data to the master from the slave
_ MOSI : Master Out, Slave In – Sending data to the slave from the master
_ SCK (SCLK) : Serial Clock – Synchronizes data from the master/slave relationship
_ SS (CSN (Chip Select NOT), NSS) : Slave Select – SS low means slave is the active slave.
_ VSPI : 通常 5,18,19,23 を使用しますが 任意のピンも使用できます。
_ HSPI : 通常 12,13,14,15 を使用しますが 任意のピンも使用できます。


 

WeMos d1 mini Pro (ESP8266) と 0.95″ SPI Color OLED の実例:
macsbug:0.95″ 96×64 Color OLED in ESP8266


 

複数のディスプレーと複数のライブラリー:
_ 冒頭にある I2C mono OLED と SPI Color OLED は 2つのライブラリーを
_ 使用しています。 sqix78の「esp8266-oled-ssd1306-master」と 今回の
_ 「ssd_13XX」ライブラリーです。スケッチを記述するとエラーがでます。
_ 原因は ライブラリーで定義している BLACK と WHITE の文字が競合して
_ いる為です。対策は sqix78 の OLEDDisplay.cpp とOLEDDisplay.h にある
_ BLACK と WHITE を BLACK1 と WHITE1 に変更し 動く様になります。
_ ただし この方法はライブラリーの管理が面倒になりますね。


 

感想:
1. VSPI, HSPI の信号の違いと 確認方法を理解できていません。
_  ESP32 の SPI は VSPI, HSPI, FSPI と多彩になりました。
_  今回の動作は VSPI (デフォルトの使用) と判断しています。
_  VSPI, HSPI は Display Driver との関係があり合致しないと動きません。
_  どういうわけか解りませんが HSPI の命令は動きませんでした。
_   SPIClass SPI(SPI);, SPIClass SPI(VSPI); は 反応しますが
_   SPIClass SPI(HSPI); は 反応しませんでした。
_  使用ピンを任意で変えられる事も含み、現在 VSPI か HSPI で動いているかの
_  確認の方法が解りません。
2. 価格:0.95 inch 96×64 Color OLED は ebay で 約 800円 です。
_  他の販売:
_  日本アマゾンの HiLetgo は 1050円で高く。他に2千円台の高い物もあります。
_  SSの1.5インチ 16ビット色のOLEDディスプレイは 5755円と超高く論外です。
_  ebayに 1.8″ Serial:UART/I2C/SPI True Color OLED 160×128 Display Module
_  160×128 は 3187円($28.99) と高く論外です。
3. 表示速度:ESP32 の VSPI機能 と相まって 速度は速いです。
4. 画像データー:ファイルや SD から読み込む方法がありライブラリーの中に
_   構成されていますので読むと参考になるかと思います。画像データの作り
_   方は CD-Image-Converter で作る様ですが詳細は調べていません。
_   フォントも LCD_Font_Converter があるようです。
5. SSD1331 ライブラリー:mgo-tec氏は SSD1331 ライブラリーを作成しました。
_  mgo-tec電子工作:「有機EL(OLED)SSD1331 ライブラリを作成しました(ESP32用)
_  オシロも使用し多大な努力と完成度、丁寧な解説を何度も読み返し感謝致します。
6. 他の SSD1331 のライブラリー:幾つか試しましが動きませんでした。
7. ドライバーとピクセル:SSD1331 は 96×64、SSD1351 は 128×128 (高価)です。
8. ライブラリー;max mc costa の sumotoy氏に感謝致します。TFTにも感謝。
_  ESP8266のフォルダーだけでなく他のスケッチも動きました。
_  1つだけ「image_eyeAnimation」はエラーで動きませんでした。
9. 電源:このOLEDは 電源に シビアーなモジュールです。容量の少ない
_     外部電源や不安定な電源を使用すると表示が乱れる時があります。
_  注意:電源を入れたまま OLED を抜き差ししない事。動かなくなります。
_     ただし、何度か電源を入れ直すとなんとか戻ります。


 

OLEDについて:
_ OLED(有機発光ダイオード)は、バックライトを必要としません。
_ 高輝度で軽量で薄く、広視野角、低動作電圧と低消費電力です。
_ 図の破線部は TFT の場合に必要な構成で OLED では不要になりました。


広告

Written by macsbug

6月 14, 2017 at 8:22 pm

カテゴリー: ESP32

Pocket 32 Part 2

leave a comment »

Pocket 32 に OLED と 拡張基板を取り付けました。         2017.06.07

価格 ( Lily GO ) = 1139円 ($10.29)。輸送期間 = 9日。Travis Lin Store のコピー品。
本家 tindle の Travis Lin Store は 2315円 ( $20 = $15 + ship $5 )。(オーダー中 )


仕様:
Pocket 32:
_ 電源スイッチ、バッテリー駆動、充電機能(過充電、過放電防止)があります。
_ 回路は Pocket 8266 と 同様で ESP8266 を ESP32 にしたものです。
_ Sleep Mode : Jumper Terminal ( GPIO 16 – RST ) は無し。
_ GPIO 端子のコネクターが増えました。

Pocket 8266:参考 ( 2017.05.10の記事:一部 回路図を記載しています )。

問題点:上下コネクタの間隔は 11.5ピッチ です。
_ 上下の端子幅は半ピッチずれており 2.54mmピッチ ユニバーサル基板を
_ 使用できず 極めて使い難くなっています。
_ Travis Lin氏設計の X8266シリーズの ボードも同様に半ピッチずれています。


部品リスト:
1.  秋月:シングルピンソケット(低メス) 1×20(20P):60円。2個。
2. 秋月:ピンソケット(メス) 1X10 (10P):40円。2個。
3. 秋月:ロープロファイルピンヘッダ7.7mm (低オス) 1×40(40P):40円。1個。
4. 秋月:0.30mm厚 両面ユニバーサル基板 Cタイプ(72x47mm):120円。1個。
_ 
5. ロワジャパン:18650 バッテリー:SANYO
_  注意: aitendo の 18650 は 偽物です。外装が2重で 容量1/3です。
6. ebay:プラスチック・ネジ、支柱: BOX で 441円 程度です。
7. ebay:Blue 0.96″ I2C 128X64 OLED:364円。SPI は 367 円程度です。
_ 注:OLED の VCC, GND ピン配置は GND, VCC (売れ残りで安い) もあり
_   混在使用すると電源逆接続で破損します。VCC, GND配置が良いです。


工作:
表側:シングルピン、ピンソケット、配線、ハンダ付けを実施します。
_  上のピンソケットは 基板端子と異なる配置の部品を付ける為です。

裏側:
1. シングルピンとピンヘッダーは ユニバーサル基板で固定します。(下)
2. OLED の VCC, GND, SCL(22), SDA(21) 4本を配線します。
3. バッテリーコネクターの+端子側に印をつけます。(逆接続を防止)。

シールド基板:半ピッチを使用する為の方法。
_ 0.30mm厚 両面ユニバーサル基板 を加工します。 ( 秋月 120円 )
_ 基板をハサミかニッパーでカットします。基板を切れるので便利です。
_ ピンを半ピッチの位置でハンダ付けします。ピンの樹脂は熱に弱く注意。
_ Pocket 32 のピン幅に合わせるとズレが少なくなります。



_ この基板が多数有ると 多様な物が簡単にできる様になります。
_ 低メス コネクターは 何度も抜き差しすると 接触が弱くなります。
_ 外す時の注意:基板が薄く、抜く時に外し難く ピンの曲げ や
_ チップパーツを損傷しないようにします。


組立:
注意:右下のネジ止め部は チップパーツが接近していますので要注意です。


感想:
完成度:高そうで低い完成度。
_ 電源スイッチ、バッテリー駆動、充電機能(過充電、過放電防止) 機能は
_ 最強ボードの要素です。さらに 拡張基板の自由度も重要な条件です。
_ しかし基板ピッチが 半ピッチで ユニバーサル基板使えず 最悪の状態です。

_ 半ピッチは 意識的に設計されており 失望しました。
_ 理由は 専用シールド基板を販売し儲ける為でしょう。良い製品は 沢山
_ 使用しますので ユニバーサル基板を自由に活用できる要素は 重要です。
_ 本家のボードの価格は高い事と 他のボードとの組み合わせも高いです。

I2C:直付けできない。
_ OLED の端子は VCC, GND, SCL, SDA です。基板には この配列が無く
_ 直付け出来ず コネクターや基板を使用し 手間と費用(200円)がかかります。

部品レイアウト:
_ USB コネクターの右にある ネジ穴は チップパーツが接近しており
_ 破損する危険性が大きいです。レイアウト技術が低い事を示しています。
_ Pocket 8266X-8266 も同様で 設計の詰めの甘さがあります。
_ D-Duino では OLEDの高さがESPより低くケースに付けられません。

コピー:Aliexpress Lily GO 等で このコピー製品が出ています。
_   設計ミス や 不便な所も 丸ごとコピーです。

ブレッドボード不要:
_ この構成は ブレッドボードを必要としません。完成品は綺麗に作れます。

Written by macsbug

6月 6, 2017 at 2:43 pm

カテゴリー: ESP32