macsbug

Just another WordPress.com site

Archive for the ‘ESP8266’ Category

M5STACK and mini bread board

leave a comment »

M5STACK と mini bread board をレイアウトしてみました。      2018.06.04


準備:

1. mini bread board:3個

2. ピンソケット:3個

_ ピンを 長さを加工したり 90度に加工して ブレッドボードに挿します。


ミニブレッドボード に ピンソケットで 一輪挿し。


感想:

ブレッドボードは あまり使用しませんが 簡単にできます。


広告

Written by macsbug

6月 4, 2018 at 7:57 am

カテゴリー: ESP32, ESP8266, M5STACK

Audio Spectrum Display with M5STACK

with 5 comments

M5STACK で Audio Spectrum Display を作りました。            2017.12.31

音をディスプレー にスペクトラム表示します。
音を「Sound Detection Sensor 」( FC-04 ) ( 322円 ) で受けて、その信号を
M5STACK の GPIO36 に入力し スペクトラム を ディスプレー に 表示します。

スケッチ:
_ tobozo氏の「ESP32_Spectrum_Display_03.ino」を M5STACK に移植しました。
_ tobozo氏のソースは G6EJD氏の「ESP32_Spectrum_Display_02.ino」です。
_ 謝辞:G6EJD氏 と tobozo氏に感謝致します。

_ tobozo氏の使用した ディスプレーは 128×64 OLED SSD1306 です。
_ M5STACKのディスプレーは 320×240 TFT ILI9341 です。


.
準備:

No  Nomen  Link、Description   Price
1  M5STACK BASIC  Aliexpress:M5Stack Store ( $33.25 ) ( SALE )  3767円
2  Sound Detection Sensor  
2  ebay:shieldsfans ( AU $1.00)   88円
2  ebay:alice1101983 ( US $0.99)  112円
2  Ali:3C Top-rated Seller (US $0.79)  112円
4  ピンソケット(メス)
1×8 ( 8P )
 秋月電子通商    30円
5  切れる基板
0.3mm厚 両面スルーホール
ユニバーサル基板
 秋月電子通商    60円
 —————————–  ————————————————-   ——
6  G6EJD/
_ Audio-Spectrum-Display
  ESP32_Spectrum_Display_03.ino
7  kosme/arduinoFFT   arduinoFFT

.


.
配線:
GPIO36 は入力専用で SENSOR_VP と言う名前です。
参考:ESP32 Hardware Design Guidelines:Page 27 4.1.2 Pin Definition

_ VCC(FC-04) = 3V3(M5), GND = GND, OUT = AD(GPIO36)へ接続します。
_ FC-04 の電源は 3.3V で使用します。
_ FC-04 の出力は ESP32 のGPIO36 ( SENSOR_VP ) へ入ります。

秋月のハサミで切れる基板と ピンソケットで製作しました。

FC-04の調整:
_ FC-04 のボリュームの調整は 電源を入れ 緑のLEDが点滅する
_ 場所に設定します。スペクトラム表示を見ながらも調整してください。


.
マイクとアンプ:
マイクのアナログ信号は 最適な値である事が 重要です。
_ 以下5つを試し使用できる製品は 左の「FC-04」という製品でした。
_ 販売:右は 秋月電子通商の製品です。他は ebay や Aliexpress です。
_ FC-04 以外は ゲインレベルが正しく取れず 表示範囲が狭いです。
_ 原因は ゲインが取り難い事や飽和しやすく動作範囲が狭い為です。
FC-04:OUT はアナログでは無くデジタルです。何故 デジタルが 動作に
_ 適しているか 分析していません。

_ tobozo氏は 以下の様に述べています。
_「正しい結果が得る方法は、約50mV〜100mV pk-pkのオーディオを
_ DCオフセットなしでADCポートに直接供給することです。」

マイクアンプについての 記事は macsbug:「 FC-04 回路メモ 」にあります。


.
スケッチ変更内容:
_ 1. 「tft.drawFastHLine」を「M5.Lcd.drawFastHLine」に変更します。
_ 2. 「tft.fillRect」 を「M5.Lcd.fillRect」に変更します。
_ 資料:M5STACK の命令は 「M5Stack.h」に定義されています。


.
M5STACK analogRead 時の Speaker nois 問題と解決方法。
問題:analogRead() 時に Speaker (GPIO25) からノイズがでます。
_  例:vReal[i] = analogRead(A0);
方法:dacWrite(25, 0); // Speaker OFF //
解説:
_ GPIO25 (Channel 1) と GPIO26 (Channel 2) は two 8-bit DAC
_ (digital to analog converter) channels です。( 16bit )。
_ GPIO25 の 出力 (サウンド) は NS4148 AUDIO AMPLIFER に入り
_ AUDIO OUTPUT は SPEAKER に接続さています。
_ 資料:M5STACKの回路図
_ 資料:ESP32 Datasheet:Page 8, 2.2 Pin Description:GPIO25=DAC_1
_ GPIO25 は DAC端子ですので dacWrite(25, 0); で出力を制御します。
_ 信号解析:GPIO25 は 無音で 3mVac、analogRead(A0),で 10mVac 発生し
_ スピーカーからプツプツ音がでます。電源は問題なく GPIO25 からの出力
_ が原因の様です。


.
参考:
Github:G6EJD/ESP32-8266-Audio-Spectrum-Display
Github:tobozo/ESP32-8-Octave-Audio-Spectrum-Display
YouTube:G6EJD:Tech Note 077 – ESP32 8-Octave Audio Spectrum Display
YouTube:tobozo tagada:ESP32 Audio Spectrum from saturation to silence
YouTube:tobozo tagada:ESP32 Audio Spectrum on WROVER Kit V3
YouTube:Tech Note 069 – Using the ESP32 ADC and some of its more advanced functions
_ ADCの使用方法、線形性の説明、減衰設定の説明、ADCチャンネルで
_ 使用されるピンの変更方法を示し、多項式を使用して精度を1%未満に
_ 改善する関数を示します。
G6EJD / ESP32-ADC-Accuracy-Improvement-function

macsbug:SplitRadixRealP FFT Analyzer of Arduino DUE
_ Arduino Due + SplitRadixRealP の例。


.
ESP32 MH-ET LIVE D1 mini + OLED 128×64 で Audio Spectrum Display を製作しました。
_ QI で ワイヤレス電源にしてみました。
_ macsbug:Arduinoの電源をワイヤレス化
価格:ESP32 MH-ET LIVE D1 mini: $7.2 ( 811円 )
価格:OLED 128×64:$2.91 ( 328円 )


.
感想:
1.  ESP32 による「ESP32 Spectrum Display」
_ 基本は G6EJD氏により「ESP32_Spectrum_Display_01.ino」と
_  ESP32_Spectrum_Display_02.ino」が作成されました。そして
_ tobozo氏により「ESP32_Spectrum_Display_03.ino」が作成されました。
_ 基本と高速化に G6EJD氏 と tobozo氏 に感謝致します。

2. マイクとアンプ:
_ 音のサンプリングはゲインと帯域がないと 充分に機能しません。
_ 動作範囲の広いボードを使用するべきですが 最善のボードが見つかりません。
_ 課題: AGC機能のあるアンプを使用する必要があると思います。
_ 現在 他のボードを注文 及び 調査中です。

3. M5STACK の ケース。
_ M5STACK はケースが綺麗で素晴らしいです。
_ PROT Module は ありますが REAR CASE がありません。
_ M5STACK の強みは綺麗さです。綺麗に仕上げる為に 本体周辺の部品や
_ ケースを販売して欲しいです。止めネジや やや斜めに於ける台も欲しいです。
_ Jimmy Lai さん に期待しています。

4. FC-04の電源:
_ VCC = 5V での検証はしていません。

5. メモ:高速抽画。
_ 全画面消去の「M5.Lcd.fillScreen」を使用するとチラつきが発生します。
_ 対策は「M5.Lcd.fillScreen」を使用せず 同じ抽画を2度操作します。
_ 横線の高速抽画:
_  1. 前回の線を「drawFastHLine」+ 黒で抽画する。
_  2. 今回の値を前回に保存。
_  3. 今回の線を「drawFastHLine」で 抽画する。
_ 横線複数の高速抽画:
_  1. 前回の線全てを「fillRect」+ 黒で塗りつぶす。
_  2. 今回の値を前回に保存。
_  3. 今回の線を「drawFastHLine」で 抽画する。


.
スケッチ:

/* ESP8266/32 Audio Spectrum Analyser on an SSD1306/SH1106 Display
 * The MIT License (MIT) Copyright (c) 2017 by David Bird. 
 * The formulation and display of an AUdio Spectrum using an ESp8266 or ESP32 and SSD1306 or SH1106 OLED Display using a Fast Fourier Transform
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files 
 * (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, 
 * publish, distribute, but not to use it commercially for profit making or to sub-license and/or to sell copies of the Software or to 
 * permit persons to whom the Software is furnished to do so, subject to the following conditions:  
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
 * See more at http://dsbird.org.uk 
*/
// https://github.com/tobozo/ESP32-8-Octave-Audio-Spectrum-Display/tree/wrover-kit
// https://github.com/G6EJD/ESP32-8266-Audio-Spectrum-Display
// https://github.com/kosme/arduinoFFT


#include "arduinoFFT.h"          // Standard Arduino FFT library 
arduinoFFT FFT = arduinoFFT();
#include <M5Stack.h>
#define SAMPLES 512              // Must be a power of 2
#define SAMPLING_FREQUENCY 40000 
// Hz, must be 40000 or less due to ADC conversion time.
// Determines maximum frequency that can be analysed by the FFT Fmax=sampleF/2.

struct eqBand {
  const char *freqname;
  uint16_t amplitude;
  int peak;
  int lastpeak;
  uint16_t lastval;
  unsigned long lastmeasured;
};

eqBand audiospectrum[8] = {
  //Adjust the amplitude values to fit your microphone
  { "125Hz", 500, 0, 0, 0, 0},
  { "250Hz", 200, 0, 0, 0, 0},
  { "500Hz", 200, 0, 0, 0, 0},
  { "1KHz",  200, 0, 0, 0, 0},
  { "2KHz",  200, 0, 0, 0, 0},
  { "4KHz",  100, 0, 0, 0, 0},
  { "8KHz",  100, 0, 0, 0, 0},
  { "16KHz", 50,  0, 0, 0, 0}
};

unsigned int sampling_period_us;
unsigned long microseconds;
double vReal[SAMPLES];
double vImag[SAMPLES];
unsigned long newTime, oldTime;
uint16_t tft_width  = 320; // ILI9341_TFTWIDTH;
uint16_t tft_height = 240; // ILI9341_TFTHEIGHT;
uint8_t bands = 8;
uint8_t bands_width = floor( tft_width / bands );
uint8_t bands_pad = bands_width - 10;
uint16_t colormap[255]; // color palette for the band meter (pre-fill in setup)

void setup() {
  M5.begin();
  dacWrite(25, 0); // Speaker OFF
  M5.Lcd.fillScreen(TFT_BLACK);
  M5.Lcd.setTextColor(YELLOW, BLACK);
  M5.Lcd.setTextSize(1);
  M5.Lcd.setRotation(0);
  sampling_period_us = round(1000000 * (1.0 / SAMPLING_FREQUENCY));
  delay(2000);
  for(uint8_t i=0;i<tft_height;i++) {
    colormap[i] = M5.Lcd.color565(tft_height-i*.5, i*1.1, 0);
  }
  for (byte band = 0; band <= 7; band++) {
    M5.Lcd.setCursor(bands_width*band + 2, 0);
    M5.Lcd.print(audiospectrum[band].freqname);
  }
}

void loop() {
  for (int i = 0; i < SAMPLES; i++) {
    newTime = micros()-oldTime;
    oldTime = newTime;
    vReal[i] = analogRead(A0); // A conversion takes about 1uS on an ESP32
    vImag[i] = 0;
    while (micros() < (newTime + sampling_period_us)) { 
      // do nothing to wait
    }
  }
  FFT.Windowing(vReal, SAMPLES, FFT_WIN_TYP_HAMMING, FFT_FORWARD);
  FFT.Compute(vReal, vImag, SAMPLES, FFT_FORWARD);
  FFT.ComplexToMagnitude(vReal, vImag, SAMPLES);

  for (int i = 2; i < (SAMPLES/2); i++){ 
    // Don't use sample 0 and only first SAMPLES/2 are usable. 
    // Each array eleement represents a frequency and its value the amplitude.
    if (vReal[i] > 1500) { // Add a crude noise filter, 10 x amplitude or more
      byte bandNum = getBand(i);
      if(bandNum!=8) {
        displayBand(bandNum, (int)vReal[i]/audiospectrum[bandNum].amplitude);
      }
    }
  }
  
  long vnow = millis();
  for (byte band = 0; band <= 7; band++) {
    // auto decay every 50ms on low activity bands
    if(vnow - audiospectrum[band].lastmeasured > 50) {
      displayBand(band, audiospectrum[band].lastval>4 ? audiospectrum[band].lastval-4 : 0);
    }
    if (audiospectrum[band].peak > 0) {
      audiospectrum[band].peak -= 2;
      if(audiospectrum[band].peak<=0) {
        audiospectrum[band].peak = 0;
      }
    }
    // only draw if peak changed
    if(audiospectrum[band].lastpeak != audiospectrum[band].peak) {
      // delete last peak
     M5.Lcd.drawFastHLine(bands_width*band,tft_height-audiospectrum[band].lastpeak,bands_pad,BLACK);
     audiospectrum[band].lastpeak = audiospectrum[band].peak;
     M5.Lcd.drawFastHLine(bands_width*band, tft_height-audiospectrum[band].peak,
                           bands_pad, colormap[tft_height-audiospectrum[band].peak]);
    }
  } 
}

void displayBand(int band, int dsize){
  uint16_t hpos = bands_width*band;
  int dmax = 200;
  if(dsize>tft_height-10) {
    dsize = tft_height-10; // leave some hspace for text
  }
  if(dsize < audiospectrum[band].lastval) {
    // lower value, delete some lines
    M5.Lcd.fillRect(hpos, tft_height-audiospectrum[band].lastval,
                    bands_pad, audiospectrum[band].lastval - dsize, BLACK);
  }
  if (dsize > dmax) dsize = dmax;
  for (int s = 0; s <= dsize; s=s+4){
    M5.Lcd.drawFastHLine(hpos, tft_height-s, bands_pad, colormap[tft_height-s]);
  }
  if (dsize > audiospectrum[band].peak) {
    audiospectrum[band].peak = dsize;
  }
  audiospectrum[band].lastval = dsize;
  audiospectrum[band].lastmeasured = millis();
}

byte getBand(int i) {
  if (i<=2 )             return 0;  // 125Hz
  if (i >3   && i<=5 )   return 1;  // 250Hz
  if (i >5   && i<=7 )   return 2;  // 500Hz
  if (i >7   && i<=15 )  return 3;  // 1000Hz
  if (i >15  && i<=30 )  return 4;  // 2000Hz
  if (i >30  && i<=53 )  return 5;  // 4000Hz
  if (i >53  && i<=200 ) return 6;  // 8000Hz
  if (i >200           ) return 7;  // 16000Hz
  return 8;
}

.
CARD STAND:
ダイソーにある 2個100円の L型カードスタンド。64 x 45 x 20 mm。
M5STACK にピッタリ です!


Written by macsbug

12月 31, 2017 at 9:00 am

カテゴリー: ESP32, ESP8266, M5STACK

Arduino Library List

with 2 comments

Arduino Library List:508人の著者による ライブラリー集。                   2017.11.02

Arduino, ESP8266, ESP32 の 1147 のライブラリー とサンプルが集約されています。
リストの作成者は イギリス・ロンドン在住の Nicholas Humfre氏 です。

例として スイス・チューリッヒ在住 Daniel Eichhorn氏 の
ESP8266 + Display を使用した Mini Grafx Library があります。
その中には E-Paper, ILI9341 TFT Display のライブラリーとサンプルがあります。


.
リンク:
Arduino Library List:ライブラリー とサンプル。
List of Aurduino Library Authors:著者のリスト。
njh/arduino-libraries
njh github
njh twitter:


.
M5STACK  には ライブラリーと 多数のサンプルがあります。


.
感想:
謝辞:ライブラリー作成者とNicholas Humfre氏に感謝致します。
どういう風に作るか:
_ 1. センサーIC と「動作している自作例」を調べます。
_  画像やビデオだけの物はパス。
_ 2. スケッチがあるかを調べる。Arduino IDE で開発できる物だけにします。
_ 3. 価格を調べます。おおよそ部品代が1000円以内。高額な物は作りません。
_ 4. IC の規格を調べます。
_ 5. 回路図を調べる。回路図が無い物は回路図を作ります。
_ 6. 電源・バッテリーとケースの案を練ります。
_ 7. 部品をオーダーします。
_ 8. スケッチを考えます。

Written by macsbug

11月 2, 2017 at 10:34 am

カテゴリー: Arduino, ESP32, ESP8266

1.54 inch e-Paper Display with ESP32

with 13 comments

1.54″ e-Paper 200×200 SPI display を ESP8266, ESP32で動かしました。 2017.09.07

費用:
_ e-Paper + WeMos D1 mini :1831円
_ e-Paper + ESP32 Minikit  :2351円
_ e-Paper 単体は 1572円です。


.
仕様:

  • Operating voltage: 3.3V
  • Interface: 3-wire SPI, 4-wire SPI
  • Outline dimension: 48 × 33mm
  • Display size: 27.6 × 27.6mm
  • Dot pitch: 0.138 × 0.138
  • Resolution: 200 × 200
  • Display color: black, white
  • Grey level: 2
  • Refresh power: 26.4mW(typ.)
  • Standby power: <0.17mW
  • Viewing angle: >170

.
準備:費用 e-Paper + D1 Mini = 1831円。e-Paper + ESP32 Minikit = 2351円。

No  Nomen  Link   Price
 1  Waveshare 1.54 inch e-Paper
XH2.54 20cm 8Pin Cable
 WS Development Tool Store
($14.39)
 1572円
 2  ESP32 Minikit  All goods are free… ($7.13)   779円
 2  WEMOS D1 Mini Lite  WEMOS CC Store ($3.66)   400円
 2  WEMOS D1 Mini  MH-ET Store ($2.38)   259円
 2  WEMOS D1 Mini Pro  ElectronicFans ($4.60)   503円
 ———————————-  ———————————–   ——
 3  e-Paper ライブラリー  ZinggJM:GxEPD
 3  Image ソフト(Windows)  GOOD DISPLAY:Image2LCD

_ e_Paper について:
_  購入先:Aliexpress。
_  輸送期間:WS Development Tool Store は 12日で届きました。
_       その後の追加注文では 6日で届きました。
_  この e_Paper は Waveshare Electronics (微雪子) の製品です。

_  付属品:2.54mm コネクター・ワイヤー 20cm。
_   白いコネクターは e-Paper 基板のコネクターに接続。
_   黒いコネクターはブレッドボードワイヤーのメス側と同じです。
_   ESP側がオスピンならば そのまま挿して使用できます。


.
配線:以下8本を配線します。コネクターの接触に注意してください。
_ 基板裏BS端子は 「0」の位置で「4-wire SPI」を使用します。

e-Paper ESP8266
D1 mini
ESP32
Minikit
BUSY (Busy status output) D2 4
RST (External reset) D4 16
DC (Data/Command sel) D3 17
CS ( SPI chip selection) D8 5
CLK (SPI SCK) D5 18
DIN (SPI MOSI) D7 23
GND GND GND
VCC 3.3V 3.3V

 


.
ライブラリー:
_ ZinggJM:GxEPD をダウンロードしライブラリーに入れます。
_ Waveshare 1.54inch e-Paper display class は 「GxGDEP015OC1」です。
_ サンプル(exsample) は 8個あります。
_ 設定:スケッチの e-Paper display は 「GxGDEP015OC1」を使用します。
_ 以下、1行の変更のみで動作します。

 #include <GxGDEP015OC1/GxGDEP015OC1.cpp>; 

_ Arduino IDE ボード設定:以下の設定で書き込め 動作します。
_ ESP8266 ( WeMos D1 mini ) : “WeMos D1 R2 & mini”
_ ESP32  ( ESP32 MiniKit ) : “WEMOS LOLIN32”

SPI設定メモ:
_ ESP8266:
_  GxIO_Class io(SPI, SS, D3, D4); // SS=CS=D8, DC, RST
_  GxEPD_Class display(io);

_ ESP32:
_  GxIO_Class io(SPI, SS, 17, 16); // SS=CS=5, DC, RST
_  GxEPD_Class display(io, 16, 4);


.
画像処理:Image2LCD:画像を xxx.h に変換します。
_ Windows アプリです。マックは Wine Emulator で動作します。
_ xxx.h は スケッチのファイルの中に入れて使用します。
_ GxEPD のサンプルを参照すると解りやすいです。


.
サンプル(exsample):

 


.
参考:
Waveshare:1.54inch e-Paper Module:e-Paper WiKi。
Waveshare:1.54inch e-Paper Datasheet:e-Paper データーシート。
YouTube:Waveshare 1.54inch e-paper:Waveshare Electronics の説明。
YouTube:Tech Note 055 Using ePaper SPI Displays with an ESP32/ESP8266
_    ESP8266/ESP32 による 4.2 inch と 2.13 inch e-Paper の使用方法。
YouTube:Tech Note 056 ESP32 ePaper Serial UART Display with Weather Display Code
_    ESP8266/ESP32 による 4.3 inch e-Papre の使用方法。
YouTube:ESP8266 7.4inch Weather display:7.4″ E ink display と ESP8266。
YouTube:Images and Text on the Waveshare 1.54inch e-Paper Display
_    David Watts氏:WeMos D1 mini による自作例。2017.09.20 追記。
_    配線、スケッチは同じ内容です。
_    Image2LCD による Image作成方法が説明されています。
Arduino Forum:Good Dispay ePaper for Arduino:e-paper と Arduino。
Arduino Forum:Waveshare e-paper displays with SPI:Waveshare と ESP8266。
instructables:E-paper Display With Arduino/ESP8266:4.3″ とArduino/ESP8266

shinkansen55 さんからのレポート:追記 2017.10.07
_ 動作までの手順と流れを 以下に示します。shinkansen55 さん ありがとうございます。
– ardunio-IDEを使う。
– GxEPDをlibrariesへコピー。
– adafruite-gfx-libraryをlibrariesへコピー。
– ボードとしては、ESP32 Dev boardを選択する。
– SPIのexample を使う。


.
メモ:スケッチ や 他の情報の誤記。
_ スケッチ誤記:
_   // mapping from Waveshare 2.9inch e-Paper to Wemos D1 mini
_ 誤 // BUSY -> D6
_ 正 // BUSY -> D2:ZinggJM / GxEPD には「BUSY -> D2」と書かれている。

_ Arduino Forum の ESP32配線画像:Waveshare e-paper displays with SPI
_ 画像は見難いですが ESP32の配線と スケッチの端子は一致していません。
_ 正しい配線は 「配線:ESP32 MiniKit」の表に示した 番号です。


.
感想:
1. 謝辞:e-Paper ライブラリー「GxEPD」の製作者 ZinggJM氏に感謝致します。
_    他に G6EJD氏による「epd」。
_    squix78:Daniel Elichhorn氏の「EPD2」ライブラリーがあります。
_    sabas1080 / LibraryEPD
2. e-Paper の Display は 基板にしっかりと固定されており安心です。
3. 反射光によるコントラストと表示は 見やすく素晴らしいです。
_ 紙の様な表示に うっとりします。
4. 電源なしでも 表示している所が なんともいい感じです。
5. 画面消去に時間がかかりますので 高速表示には不向きです。
6. 画面に表示された QRコードは iPad で読めました。
7. 他の e-Paper を使用する場合は 「GxEPD」の使用条件を把握してください。
8. 日本国内の販売:投稿時に 日本アマゾンを除き e-Paper は 販売されていません。
_ Aliexpress は 1572円 で購入できますが ebay は 少々高い価格になっています。
_ 国内販売時は かなり高くなると思います。日本アマゾンでの Waveshare では
_ 1.54inch 200×200 が なんと 16049円という超高価格(10倍)で販売されています。
_ 日本アマゾンでの Waveshare は 他の製品も驚く程の高いボッタクリ価格です。
9. 大きなサイズ: 4.2 inch 400×300 を使用したいのですが $27.89 ( 2996円 )
_ と少々高いです。4.3 inch 800×600 は $53.00 ( 5745円 ) です。
_ 


Written by macsbug

9月 7, 2017 at 4:25 am

カテゴリー: ESP32, ESP8266

TFT display for Raspberry pi with ESP32

with 4 comments

3.5 ” 480×320 SPI TFT RPi touch Display を ESP32 で動かす方法。   2017.08.12
                               rev1 : 2018.03.27
                               rev2 : 2018.03.28
費用は  2265円 です。( RPi Display + ESP32 MiniKit + 接続基板 )
他には D1 mini Lite = 1775円。D1 mini = 1985円。D1 mini Pro = 2285円 です。
ディスプレー の価格は 1266円 で 2.4 inch 320×240 TFT より少々高いです。

ラズベリーパイ用 TFT ディスプレー:
_ 画素数が多く多彩な表示ができます。基板、タッチセンサー、TFT部が
_ きちんと固定されケースに収めやすい構造です。ラズパイは 本体と
_ ディスプレー用に綺麗な RPi Acrylic Case (294円) が販売されています。


RPi Display 仕様:
_ 表示方式: TFT LCD
_ サイズ: 3.5 inch。8.5cm x 5.5cm x 1.7cm
_ 画素数: 480 x 320 ( HVGA )
_ 電源 : 5Vdc ( 3.3V Regulator 内蔵)
_ タッチ: Touch Screen Controller XPT2046
_ タッチペン: 8.7cm
_ 接続: SPI ( MOSI, SCLK, CS, DC, RST, MISO )
_ SPI 周波数: 20MHz ( TFT下の配線構造の為 )
_ ドライバーIC: ILI9486  ( 480 x 320 )
_ SPI 詳細: SPI信号を 74HC04, 74HC4040, 74HC4094, 74HC4094
_      でパラレル信号に変換しています。


準備:費用 2265円。RPi Display + ESP32 MiniKit + 基板 + コネクター

No  Nomen  Link   Price
1  3.5 ” 480×320 SPI TFT Raspberry Pi  ebay ( $11.43 )  1250円
2  ESP32 Minikit  top_electronic1980($7.11)   785円
3  WEMOS D1 Mini Lite  WEMOS CC Store($3.53)   389円
3  WEMOS D1 Mini  WEMOS CC Store($4.53)   499円
3  WEMOS D1 Mini Pro  WEMOS CC Store($7.26)   799円
4  ユニバーサル基板:72 x 47mm:1個  秋月電子通商   120円
5  ピンヘッダー:2×13:1個  秋月電子通商    50円
6  ピンヘッダー:2×20:1個  秋月電子通商    50円
 —————————————-  ————————-   ——
7  TFT ライブラリー  Bodmer:TFT_eSPI

海外の価格:円レートと販売店で変化します。ESP32 Minikit は 23社が販売
_     しており 日々価格が変化します。最安の業者を探しましょう。
購入トラブルメモ:Advanced Teck($7.08)に注文し異なる物がきました。
_ 注文品の送付を依頼しましたが届きません。よってこの業者は
_ ブラックリストに入れました。

//——————————————————————————————————-
追記:2018.03.27
2018.03.26 ohno氏からの情報で eSPI の新しいバージョン(2018.03)に於いて
画面が表示されないとの報告がありました。2018.03.27日のバージョンにて
確認した所、ご指摘の様に画面が全く表示されませんでした。
対策は 古いバージョン(2017)を使用し正常に表示されたとの事です。
私は この記事の時に使用したバージョンのライブラリー
(ハードディスクに記載されている 追加、変更日:2017年07月15日)
とバージョン(2017)(追加、変更日:2017年11月29日)で 動作することを
確認致しました。
古いバージョンは https://github.com/Bodmer/TFT_eSPI/archive/v0.17.12.zip
から ダウンロード 出来ると教えて頂きました。
貴重な情報を頂いた ohno氏に感謝致します。

尚、2018.03.27 のバージョンは ESP32_PARALLEL や M5STACK 、ePaper 等
が追加されています。

追記:2018.03.28 ( コメント蘭も参照ください)
新バージョン(2018.03) で動作させる方法!
2018.03.28 :ohno氏から 新バージョン(2018.03)の動作報告がありました。
eSPI.cpp 29-35行目の以下を eSPI.h の24行目に移動します。
eSPI.cpp の以下 29-35行目はコメントアウト(//)してください。
原因は 数 tft_Write_8(C) が正しく動作していない事によるものでした。
原因を追求し解決策を頂いた ohno氏に感謝致します。

// If it is a 16bit serial display we must transfer 16 bits every time
#ifdef RPI_ILI9486_DRIVER
  #define SEND_16_BITS
  #define CMD_BITS 16-1
#else
  #define CMD_BITS 8-1
#endif

ニュース:TFT_eSPI 2018.03.27 のバージョンは M5STACK に対応済みです。
_ M5STACK の Display は Memory Access Control の MADCTL の値が異なり
_ TFT_eSPI 等の外部のライブラリーを使用すると 画像表示が鏡面反転や
_ 表示範囲が狭い等 正常に表示しませんでした。
_ TFT_eSPIは この問題を解決し正しく表示する事ができる様になりました。
_ User_Setupの方法は User_Setups Folder の中にある Setup12_M5STACK
_ を使用します。
_ SPI_FREQUENCY は 27000000 ですが 40000000 でも動作し M5STACK
_ と同じ動作速度になります。
//——————————————————————————————————-

TFT の種類と注意:
_ 幾つかの種類があります。SPI接続のものを使用します。
_ 3.5 inch RPi Display V3.0 と書かれた物が最新版です。
_ V3.0 と記載されていなくとも ICと配線は同一の物があり動作します。
_ コネクターは 26PIN ( 2 x 13 ) です。
_ 基板上のICが 74HC04,74HC4040,74HC4094,74HC4094 なら使用できます。
_ KeDei 製は 異なるICで構成されており そのままでは使用できません。
_ KeDei 製を使用する時は IC交換により高速で動きますが 改修は面倒です。


基板裏:左上から 74HC04, 74HC4040, 74HC4094, 74HC4094
ピン配置:Raspberry Pi ( Rev.2 ) と同等。



配線:配線は7本のみです。コネクターの向きは 上記写真と同じです。

 RPi Display  GND  CS  SCK  RST  MOSI  DC  5V
 RPi Display 25 24 23 22 19 18 2
 ESP32 GPIO  GND 5 18 RST 23 13 5V


TFT ライブラリー:Bodmer:TFT_eSPI。作成された Bodmer 氏に感謝致します。
_ TFT RPi touch Display のドライバーIC は ILI9486 (480 x 320) です。
_ TFT_eSPI が対応する ドライバーは ILI9486。ILI9341 (320 x 240),
_ ST7735(128 x 128 or 128 x 160), ILI9163(128 x 160), S6D02A1 も
_ 可能です。さらに 高速化も実施されています。

設定:「User_Setup.h」
_ ドライバー、GPIOピン、フォント、SPI周波数の設定は「User_Setup.h」
_ で行います。エデッターで編集し 保存して使用します。
_ この記述方法は メインのスケッチでGPIOピンの設定が不要で便利です。
_ これによりサンプルは変更する事無く直ぐ動作します。
_ 例:ESP32 MiniKit

#define RPI_ILI9486_DRIVER

#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS    5
#define TFT_DC   13
#define TFT_RST  -1

#define LOAD_GLCD
#define LOAD_FONT4
#define LOAD_FONT6
#define LOAD_FONT7
#define LOAD_FONT8
#define LOAD_GFXFF

#define SPI_FREQUENCY  20000000

サンプルスケッチ:examples「480 x 320 」は以下があり 即動作します。

 Cellular_Automata  Demo_3D_cube  Flash_Bitmap
 Free_Font_Demo  Graph_2  TFT_Char_times
 TFT_Ellipse  TFT_flash_jpg  TFT_graphicstest_one_lib
 TFT_Meter_4 TFT_Meters  TFT_Padding_demo
 TFT_Print_Test  TFT_Rainbow480  TFT_ring_meter
 TFT_String_Align  UTFT_Demo_480x320

 


ライブラリーの速度:TFT_eSPI は Adafruit や 他の ライブラリーより速いです。
_ Raytracing による比較:
_ ESP32 DEVKIT V1 + 320×240 SPI TFT Display  + Adafruit は 14 sec 。
_  Raytracing with ESP32
_ ESP32 MiniKit + 320 x 240 TFT SPI Display + TFT_eSPI は   6 sec 。
_ ESP32 MiniKit + 480 x 320 TFT SPI Display + TFT_eSPI は 11 sec 。
_ ESP32 VSPI(or HSPI)接続と TFT_eSPI ライブラリーによる効果です。


画像処理メモ:
マックで image.c 作成方法:Wine APP + ImageConverter565.exe で作ります。
Bodmer:JPEGDecoder を使用します。
QVGA:320 x 240
HVGA:480 x 320


ラズパイ用ケース:
BME280 センサーを接続し RPi Acrylic Case に収めました。
ESP32にBME280を接続し 温度、湿度、気圧 を Ring で表示しました。
USB 5V 消費電力:178mA


参考:
ILITEK:ILI9486:Application Notes
RPI Display 配線図:sainsmartschematicV2
Arduino FORUM:TFT_eSPIのハードとソフト、高速化等の情報。
_ New graphics library for NodeMCU (ESP8266) and SPI based TFT displays
Bodmer:TFT_eSPI:ライブラリーの説明と開発の経緯。
wdim0 :esp8266 with KeDei lcd module:KeDei LCD module の改修方法。
YouTube:ESP8266 with hacked 3.5″ KeDei LCD module (SPI, CLK 40 MHz)
_    SPI を 40MHz で高速動作させる改修方法。
YouTube:ESP8266 with hacked 3.5″ KeDei LCD module (SPI, CLK 20 MHz)
_    SPI 20MHz の場合 。


感想:
1.  念願の 3.5 inch 480 x 320 を ESP32 ( ESP8266 ) で使用する事ができました。
_  ESPでの 5 inch と 7 inch は 動作情報がありますが 公開されていません。
2.  480 x 320 TFT + Arduino DUE  で 32ch(Arinc 429) Logic Analyzer
_ を製作した事例があります。以下は  24bit を縦に表示したものです。

3.  ラズパイでの これ以上の画素はHDMI接続になりESPではできません。
4.  TFT_eSPI library を使いこなすには 設定の「User_Setup.h」を理解
_ すると解りやすいです。命令表は Keywords.txt に書かれています。
5.  少し大きいですが 手に収まる事と 480 x 320 の大きい画素数という
_  利点があり 多彩な表示が出来るかと思います。
6.  サンプルの「Cellular_Automata」はライフゲームです。ライフゲームに
_ 興味があり、早々に楽しんでいます。

7.  TFT LCD Display 価格調査:
_ ebay の 3.5inch 480×320 は 1266円。
_ 国内は 以下の様に 幾つも購入できる 高価格です。
_ aitendo:3.5 inch 480×320 は 3500円。
_ スイッチサイエンス:3.5 ” は無く 2.2″ 320×240 3499円。
_  2.8″ 320×240 4903円。2.8″ 320×240 6307円。
_ 秋月電子通商:2.8″ 320×240 5130円。
_ 千石電商  :2.8″ 320×240 4200円。
_ 日本アマゾン:3.5inch 480×320 は 幾つかの業者があり
_  Kuman=2280円, Elegoo=2300円, Elecrow=2499円,
_  cocopar=2999円。


Written by macsbug

8月 12, 2017 at 11:16 am

カテゴリー: ESP32, ESP8266

1.3inch SH1106 OLED Display in X-32

leave a comment »

1.3inch 128×64 I2C SH1106 OLED Display を X-32 で動かしました。2017.07.09


構成:
画像(上) :X-Battery shiled :表と裏
画像(中左):X-32 -a WiFi and Bluetooth Development Board:ESP32
画像(中右):X-8266(Tiny NodeMCU):ESP8266
画像(下) :X-OLED ( 1.3 IIC Tiny OLED ) :表と裏


 

販売:

No  Nomen  Link  Price $    価格
1 X-OLED (1.3 IIC Tiny OLED)  Travis Lin store:本家  $   7.00
1 X-8266 (Tiny NodeMCU)  Travis Lin store:本家  $   7.00
1 X-Battery Shield  Travis Lin store:本家  $   5.00
1 X-ESP8266 Total  Travis Lin store:本家  $ 19.00  2114円
2 X-8266 ESP-WROOM-02 Kit  Lily GO:コピー販売  $ 14.69  1635円
 –  ——————————–  ——————————  ——–  ——-
3 X-OLED (1.3 IIC Tiny OLED)  Travis Lin store:本家  $   7.00
3 X-32 – Development Board  Travis Lin store:本家  $   9.00
3 X-Battery Shield  Travis Lin store:本家  $   5.00
3 X-ESP32 Total  Travis Lin store:本家  $ 21.00  2337円
4 X-32 ESP-WROOM-32 Kit  Lily GO:コピー販売  $ 17.60  1959円
 –  ——————————–  ——————————  ——–  ——-

X-Project Starter Kit ( ESP8266 & ESP32 ):Kit で以下のものが含まれます。
_ X-8266 X1, X-32 X1, X-OLED X1, X-Relay X1, X-Battery X1, X-2812b X1,
_ X-Ring X1, X-dual X1, X-prototype X1, X-Relay X1, X-DHT11 X1, X-Buzzer X1

追記:X-8266 ESP-WROOM-02 Board の販売先:2018.10.06
_ ebay:727円($6.40):X-8266 ESP-WROOM-02 development board


SH1106 ライブラリー:
ライブラリーは squix78 / esp8266-oled-ssd1306 を使用します。
_ esp8266-oled-ssd1306 は これまで SSD1306 用でしたが 新たに SH1106 がサポートされました。
_ 例:SSD1306 display(0x3c, D3, D5); を SH1106 display(0x3c, D3, D5); と記載すると動作します。


利点:
1. 小型である。
2. バッテリーシールド で バッテリー駆動 ができる。

欠点:
1. 上下のピン間隔は半ピッチサイズで ユニバーサル基板は使用できない。
2. GPIO は9ピンしか出ていない。 A0, GPIO 0, 2, 4, 5, 12, 13, 14, 15 。
_  ESP8266 の GPIO数の少ない欠点を克服するESP32の能力を引き出していない。
_  ESP32の強みである VSPI, HSPI, Analog input, Touch を活用できない。
_  例として SPI Color OLED は接続できず使用できない。
_  部品費不要で 全てのピンを配置するだけで解決できるが実施されていない。
3. OLED が特殊である事と 部品入手が限られる。これまでのOLEDより不便。
4. X-Battery Sheeld:バッテリーには電源スイッチが必要です。電源スイッチの
_  場所は Battery から TP5410 で 5V 変換した後にあります。この為に 電源
_  スイッチオフでも 5V は発生しており バッテリーを消耗する事になります。
_  お粗末な設計です。


感想:
小型:
_ 重要な要素で 優れていますが 他の要素は 詰めが甘く 極めて不便です。
OLED:
_ 普及している 交換可能な 0.96″ 128×64 I2C OLED を採用すれば良いだけです。
_ 特段 性能向上や低価格になる訳でもなく SH1106 を採用した意味が不明。
_ レイアウトやスケッチに時間を取られます。壊れた場合は交換困難です。
_ 色は白で味家の無い表示です。他のOLEDそうですが青よりも白は低価格です。

基板ピッチ:半ピッチサイズ。
_ これは意識的な設計の結果で 使用者は不便の最悪状態。
_ 手間な基板で使用用途が限られますので 調査範囲に収めて  このボードは
_ 今後しない事になると思います。

Dongsen Technology
ESP8266 PacketMonitor

1秒ごとに送信されるWi-Fiパケットの数とチャネル数を示します。

Written by macsbug

7月 10, 2017 at 4:50 pm

カテゴリー: ESP32, ESP8266

18650 Battery Capacity

leave a comment »

18650 バッテリー は どの製品を購入すべきか。           2017.05.25

WeMos LOLIN32 や Pocket 8266 は バッテリー接続機能と充電機能があります。
18650 バッテリーを使用すると 持ち運びが便利になります。
バッテリーは 偽物も多いらしく 購入時の判断の為に 友人のA氏と調査しました。
日本製 で 充電繰り返し回数の多い製品は 性能よく経済的です。

容量:Momiji > SAMSUNG > SANYO の順で SAMSUNG が健闘しています。
充放電回数:表記はSANYO ( 約1000回 ) しかない。
_ Momiji はどうも中国製の模様。国内の販売会社でのメーカー保証で元はUltraFire関係のようです。
信頼性:SANYOは 容量こそ少ないが信用できそうです。
安全性:リチウムイオンバッテリーは 発熱や火災の危険があります。
_   安全回路が入ったバッテリーが望ましいと思います。
販売:
_ SANYO UR18650A 2250mAh:4個 2400円。充放電回数:1000回:ロワジャパン。お薦め。
_ Momiji BRC 18650 3000mAh:4個 2190円。充放電回数表記無し: 長さ 65mm。アマゾン。
_ Momiji BRC 18650 3000mAh:4個 2390円。充放電回数表記無し: 長さ 68mm。アマゾン。
_  プロテクト機構(保護回路)付でバッテリーを過充電から守る。注意:長さ 68mm。
メモ:2000mAh とは、1/5の400mAで放電させて5時間使えると言う意味です。


.
SANYO UR18650A 2250mAh と Momiji BRC 18650 3000mA を比較:
_ 測定方法:500mA 流し 満充電から 3.0V になる電圧と時間を記録。
_ 計測の終了は3.0V, 公称値の場合 2.5Vですので計測値は少なめに表示されます。
_ ただし 充電繰り返し回数は 測定していません。
_ Momiji、SANYO は ほぼメーカーの表示が信用出来そうです。
_ 容量はMomijiが最高ですが、SANYOは電池の内部抵抗が低く性能が良い。
_ セル情報:Litium Ion UR18659A
_ 日本セルと中国セル:ロワジャパン 記載:SANYO UR18650A 2250mAh 。
_  日本セルは中国セルに比べ、充電可能回数は 約2倍。
_  日本セル:500~1000回以上。中国セル:300回程度。


.
8種類のバッテリー比較:
測定方法:1A(短時間測定の為) 流し 満充電から 3.0V になる電圧と時間。
_ 計測終了は3.0V, 公称値は 2.5Vですので計測値は少なめに表示されます。
結果:表示値と測定値は ほぼ一致 と 異なる物があります。
_ メーカー製(SAMSUNG, SANYO, SONY) は 表示値と測定値が ほぼ一致。
_  Momiji は 恐らく 日本製ではない Ultra Fire 製かと思われます。
_ ebay の TR18650 9900mA, TR18650 5800mA は 600mAhで表示と異なります。
_ aitendo の BRC18650 UltraFire 3000mA は 1016mAhで表示と異なります。


.
3種類のバッテリー比較:


.
重量で比較: 重さで良品を判別する。
_ Li – ion バッテリの資料では 重量は 44g と記載されています。
_ 重さで おおよその 判断材料になり 軽い物は容量がありません。
_ 中国製(ebay) の TR18650_9900mAh と TR18650_5800mAh は 30.7g

YouTube:How to know fake 18650 batteries?:どのように偽物を見分けるか? 重さで解る。


.
mAh 電流容量を比較:表示値と実測値
_ Momiji は 日本製では無い様ですが 表示値に対し 95% です。
_ SANYO は 日本製で 表示値に対し 99% でほぼ一致しています。
_ BRC UltraFire 3000 は aitendo で 表示値の 33% しかありません。
_   aitendo の物は偽物と判断します。


.
1Aの負荷で 3Vになるまでの時間 を比較:


.
付属品: WeMos LOLIN32 用 バッテリー接続コネクターワイヤー:1個13円。
_ JST 2.0 2-pin connector plug Male & Female。20個 268円。
_ 輸送期間=21日。aitendo はケーブルコネクターのみで 1個100円。
_ 沢山有ると 気楽に電子工作ができます。


.
モバイルバッテリーの容量表示:
_ 例として 5000mAh と表示がありますが USBの出力は 5Vで5000mAhと思いがちですが
_ 5000mAh は 内部のバッテリーの容量で 3.7V 5000mAh。
_ よって、実際には 5V出力は70%になってしまいます。嘘ではないが紛らわしい表現です。


.
計測機材:
_ USB電圧ロガー EL-USB-3 8400円。秋月電子通商。
_ 自作 半自動充電放電ダミーロード。

LM317-DMY-LOAD 半自動充電放電回路図:2017-05-26:Rev 02


.
参考:
気の迷い:Li-ion 18650 放電テスト 2009
気の迷い:海外Li-ion充電器を比べてみた


.
超低価格バッテリー:205円。
_ WeMos Lolin32=866円。Battery=205円。総計 1071円。
_ 秋葉原の怪しい中古屋にある LE-B01 600mAh 199円 と ebay の JST 2.0 PH 2
_ コネクタープラグ 6円 で 合計 205円 の構成が可能。これは中国の格安コピー屋
_ でも無理だろう。


.
感想:
危険性:リチウム イオン バッテリは 安全回路がないと危険です。
_ 充電時の過充電防止回路やアクシデントでショートした場合の
_ 発熱や火災をどうするかです。電源状態を管理し対応を図る必要が
_ あると思っています。一部の製品で安全回路が入っている物がある
_ と聞いています。価格は高くなりますが 安全は大事です。

mAh 電流容量:mAh の意味と測定方法。
_ Ah は電力表示ではありません。「5時間率」です。
_ 2000mAhの電池は、2000mAを流して1時間使えると思っていたのですが
_ メーカーの計測では、その電池を5時間放電させてその容量を積算。
_ そのため 1Aの放電では 本来の表示容量より 80%~90% になるようです。
_ 2000mAhの電池の場合、1/5 の 400mA で放電させて5時間使えるとの意味です。

注意:aitendo BRC18650 UltraFire 3000mAh:2個900円
_ 中味は 表示の3分の1で 価格も高く買わない方がお得です。

注意:aitendo の モバイルバッテリーキット [K-6C2U1L-NS]: 950円
_ バッテリーの長さが 68mm の Momiji BRC 18650 3000mAh は このケースには
_ 入りません。中国では 370 円で この 改訂版 がでておりバネが長く余裕があります。
_ aitendo では 設計ミスのゴミを販売しています。

他のバッテリー製品:
_ SAMSUNG, Sony は 性能が良く感心します。

格安バッテリー:如何に安く作るか。ただし要注意。
_ リチウムバッテリーは ショートで焼損し火災を起こしますので注意が必要です。
_ ノートパソコンの中古バッテリーパックを分解して使用するのも良いかと思います。
_ 今回のグラフには載せていませんが 中古でも性能の良い物がありました。
_ 秋葉原の中古やで探すと1パック(6個) が300〜500円であります。
_ 分解の手間はありますが 1個10円程度になりますね。
_ それで 時々 秋葉原 中古屋散歩 をしています。

測定:時間がかかります。
_ 500mA を流して 6〜8時間。1A では その半分くらいです。
_ 容量測定装置として 362円 の Battery Capacity Meter Discharge Tester があります。

友人の協力:
_ 友人でハイスキルの A氏 に測定装置製作や測定に多大な時間を割いて頂きました。
_ ここに感謝の意を評します。

電池の長さ:momiji の プロテクト機構(保護回路)付は 長さが 68mmです。
_ 充電器によっては 電池の長さが長い為に 充電器に入らない場合があります。

Written by macsbug

5月 25, 2017 at 11:45 am

カテゴリー: ESP32, ESP8266, Make