macsbug

Archive for the ‘ESP32’ Category

Run IPS SPI display on M5Stack

leave a comment »

IPS SPI DISPLAY を M5Stack で動かしました。     2019.03.24

0.96″ 80×160 IPS SPI ST7735 Display:324円

1.3″ 240*240 IPS SPI ST7789 Display:344円

M5Stack と ブレッドボード拡張アダプターで 動作確認を行ないました。

IPS方式:In Plane Switching の略で 液晶駆動方式の事を言います。広視野角
_ (上下左右178度)で どの位置でも色の変化がほとんど無く見やすいです。
価格:0.96″ 80×160:324円 ( $2.90 )
価格:1.3″ 240*240:344円 ( $3.09 )
LCD Color:65K FULL COLOR
Driver IC:0.96″ は ST7735、1.3″ は ST7789 です。
Library:Bodmer氏のTFT_eSPI は ST7735, ST7789 をサポートしています。
_ Bodmer氏に感謝!


購入:IPS は 0.96 inch と 1.3 inch の2種類があります。

1.  0.96″ 80×160 IPS SPI ST7735 Display ( 24 x 30 mm )

No Price Purchase Memo
1   250円 ( $2.27 )   All goods are freeshipping Store  輸送期間=17日
2   319円 ( $2.90 )   Worldchips  輸送期間=15日
3   363円 ( $3.30 )   Fancys Module Mall  –
4   372円 ( $3.38 )   ZQC Module Store  –

価格は 投稿時の 1ドル 109.925円で算出しています。

2.  1.3″ 240*240 IPS SPI ST7789 Display ( 39.22 x 27.78 mm )

_ All goods are freeshipping Store:IPSの文字が右

_ Worldchips Store:IPSの文字が左

メモ:
_ IPS と 基板の固定は 両面テープです。IPSの文字が左(Worldchips Store) は
_ 薄いテープを使用し固定具合が良いです。

_ CS端子はありません。Flex Wire Pin 8 裏の 基板上で GND になっています。

No Price Purchase Memo
1   340円。($3.09)   All goods are free shipping Store  輸送期間=16日
2   343円。($3.12)   Worldchips  輸送期間=18日
3   329円。($2.99)   Shop1918846 Store  調査中
4   350円。($3.18)   WAVGAT Store  –
5   368円。($3.34)   ElectronicFans  –

 


参考:他の IPS Display

3. 0.96inch IPS TFT LCD Display Breakout Module
_ CS  付き。

No Price Purchase Memo
1    404円。( $3.68 )   faaqii  –

 

4. 0.96inch IPS TFT LCD Display Breakout Module
_ CS  + SD SLOT 。

No Price Purchase Memo
1    488円。( $4.44 )   tradeworld2015  –

 

5. 1.3inch 240 * 240 IPS TFT LCD Display Breakout Board Module
_ CS 付き。

No Price Purchase Memo
1    469円。( $4.27 )   mywindowworld568  –

 

6. 1.3inch IPS TFT LCD Display Breakout Module
_ CS + SD SLOT 。

No Price Purchase Memo
1    546円。( $4.97 )   maaqii  –

 

7. 1.3″ 240×240 IPS SPI ST7789 Display for Raspberry Pi

No Price Purchase Memo
1  1406円。( AU$17.84 )  easy2buydeals Store  輸送期間=12日

 


IPS Display 型番:裏側の画像です。
_ 1.3″ 240*240 IPS SPI ST7789 Display ( 39.22 x 27.78 mm )
_ Model Number : LH133T-IG01-01
_ 1812039-1E
_ Bl-133H01B
_ LH B 2018-12-21

_ 参考URL


 

配線:0.96″ ST7735 は9本、1.3″ ST7789 は7本です。
_ 0.96″ ST7735 と 1.3″ ST7789 の端子は ほぼ同じですが
_ ST7789 は CS端子がありません。 CS端子無しは SPI Mode3動作です。
_ 表の数値は M5Stack M-BUS の GPIO Pin の番号です。
_ 例:IPS ST7789 MOSI=19:IPS の MOSI端子 と M5Stack M-BUS 19pin。

 Display/Pin MOSI MISO CLK CS DC RST BLK VCC GND
 M5 ILI9341 23 18 14 27 33 32 3V3 GND
 M5 TF CARD 23 19 18 4 3V3 GND
 IPS ST7735 19 13 18 15 2 5 3V3 3V3 GND
 IPS ST7789 19 18 -1 2 5 3V3 3V3 GND
 IPS DISPLAY SDA SCL DC RES BLK 3V3 GND

 


配線:ST7735:

Display/Pin GND VCC SCL SDA RES DC CS BLK
IPS ST7735 GND 3V3 18 19 5 2 15 3V3

 

設定:TFT_esPI の User_Setup は 以下です。
_ 例として以下の記載を ST7735.h という名前で TFT_eSPI の
_ User_Setups Folder へ保存します。
_ TFT_eSPI の User_Setup_Select.h は
_ #include <User_Setups/ST7735.h> を記載します。

ST7735 User_Setup:

#define ST7735_DRIVER
#define TFT_WIDTH  80
#define TFT_HEIGHT 160
#define ST7735_GREENTAB160x80
#define TFT_MOSI 19
#define TFT_SCLK 18
#define TFT_CS   15
#define TFT_DC    2
#define TFT_RST   5
#define LOAD_GLCD
#define LOAD_FONT2
#define LOAD_FONT4
#define LOAD_FONT6
#define LOAD_FONT7
#define LOAD_FONT8
#define LOAD_GFXFF
#define SMOOTH_FONT
#define SPI_FREQUENCY  40000000

配線:ST7789:

Display/Pin GND VCC SCL SDA RES DC BLK
IPS ST7789 GND 3V3 18 19 5 2 3V3

 

ST7789 User_Setup:

#define ST7789_DRIVER
#define TFT_WIDTH  240
#define TFT_HEIGHT 240
#define TFT_INVERSION_ON
#define TFT_MOSI 19
#define TFT_SCLK 18
#define TFT_CS   -1
#define TFT_DC    2
#define TFT_RST   5
#define LOAD_GLCD
#define LOAD_FONT2
#define LOAD_FONT4
#define LOAD_FONT6
#define LOAD_FONT7
#define LOAD_FONT8
#define LOAD_GFXFF
#define SMOOTH_FONT
#define SPI_FREQUENCY  40000000

メモ1:SPI_FREQUENCY は 65000000 でも動作します。

メモ2:GPIO23
_ M5 ILI9341 MOSI GPIO23 は 外部ディスプレーでは使用しない事。
_ ST7789 使用時の不具合として 起動すると動作しない、文字を表示しない
_ グラフィック回転時に停止する。画面にゴミを表示する等が発生します。

メモ3:ST7789
_ CS :この端子はありません。SPI Mode3 動作になります。
_ SDA:M5Stackで使用の GPIO23 を接続すると 動作せず 使用できません。
_ RES:M5Stackの EN端子接続では 動作しません。GPIOへ接続が必要です。
_ TFT_eSPI User_Setup:#define TFT_INVERSION_ON が無いと色は反転。
_   #define TFT_INVERSION_ON により 色が正しく表示されます。
_ TFT_eSPI User_Setup:#define TFT_CS -1:記載しないと動作しません。

メモ4:CS
_ CS は基板上で GNDパターンに繋がっています。番号は8番です。
_ CS を有効には Flex Wire を外し pin 8 の GND パターン をカットし
_ CS をGPIOに配線。これにより #define TFT_CS 15 とかで使用できます。


サンプル画像:
1. 0.96″ 80×160 IPS の画像は TFT_eSPI の サンプルの Meter です。
2. 1.3″ 240*240 IPS SPI ST7789 Display の画像は Raytrace です。
3. 下記は TFT_eSPI の TFT_Rainbow_one_lib を IPS 用に変更しました。

4. M5Stack Pacman
_ M5 のサイズは 320×240 です。240×240 に変換し PacMan を動作してみました。
_ 画像では分かり難いかも知れませんが 目視では 色がくっきりし 大変綺麗です。
_ 変更内容:
_ DrawIndexedMap.h 内の void drawIndexedmap:y軸を 0.78 倍します。
_ display.drawFastHLine(x + tmpX – width, 0.78 * (y + tmpY ), width, color);

5. AmigaBoingBall-raytraced:IPS 240×240 ST7789 Display で表示。
_ Webでの動画はあまり綺麗でないですが 目視では 鮮やかに綺麗です。
_ tobozo氏の tobozo/ESP32-AmigaBoingBall は驚異的な速度です。


資料:
ST7735:Datasheet
ST7789:Datasheet
ST7789:Specifications TFT-LCD module , Model No:FRD154B12001-A
TFT_eSPI:ライブラリー
YouTube:TFT_eSPI library with ST7789 display, benchmark
YouTube:IPS-дисплеи на контроллерах ST7789 и ST7735
RaspBerry Piで遊んでみる:多種類のディスプレー動作記事
しかるのち:小さい!240×240の1.3インチ液晶:AdaFruit Library を使用。
instructables:Select Color Display for ESP32:氏の各種Display体験。
MYSKU.ru:ST7789 IPS Display:他の液晶との比較。
家電のKENchan:1.3″ IPS LCD HAT for NanoPi NEO(ST7789)。4482円。
Xonay Labs:57.600 colorful pixels!:CS は 12pin Flex Wire下の基板にあり 8番ピンです。
低価格の理由:
_ IPS 0.96″ 80×160 SPI ST7735 Display は Smart Watch の部品。
_ この Display は ESPの製品では M5Stick C (80×160) で初めて採用されました。

_ IPS 1.3″ 240*240 SPI ST7789 Display は Smart Watch の部品。

IPS SPI ST7789 Display を使用した ESP32ボード。
ESP32-WROVER-B + ST7789 + SD SLOT + Button + WS2812b LED + Buzzer
_ 1. tindie:Travis Lin:DSTIKE D-duino-32 XS
_ 2. Aliexpress DSTIKE Store:$24.26( Sale $22.36 )


感想:
IPS Display:既に1年ほど前から販売されていましたが 話題にはなっていませんでした。
_ 又、投稿時には IPS Display のブログ記事は ほとんどありません。
IPS Display の品質:視野角広く とても綺麗で魅了されます。
サイズ:IPS Display のサイズで直ぐ動作する基板は 今回の 0.96″ と 1.3″ の2種類です。
_ 実用的なサイズではありませんが 小型化の構成には最適かと思います。
_ 240×320, 320×480 の IPS はありますが SPI基板やライブラリーが無いのが現状です。
液晶:小型の液晶は 0.96″ 128×64 I2C OLED が低価格で世界中で多く使用されています。
_ 今回の IPS SPI の販売により 速度、色、視野角、サイズ、価格 の全てに於いて
_ IPS Display が優位になっています。
OLED価格:0.96″ 128×64 OLED は 2015年は 883円でしたが IPS 販売から低価格化が
_ 進んでおり $2 程度がでてきました。日本アマゾンでは 低価格情報が浸透して
_ いない為か 980円や もっと高い価格で販売されています。
小型モジュール最強案:tindie Travis Lin:DSTIKE D-duino-32 XS  + Servo Drive IC
_ + ケース + 拡張アダプター で 最強の小型ボードが可能かと思います。
結果、海外からの購入が急速に多くなっている事や販売店が増加しています。
ESP-WROOM-32 + ST7789 + MicroPython:メモリーが足らず動作しないとの事。
_ ESP32-WROVER では 特別な領域を確保で動く程度です。
_ M5Stack + Python 使用者は ライブラリー分析しますと数パーセントです。
_ 他言語使用せず Arduio IDE ベースが良いかと思います。


Written by macsbug

3月 24, 2019 at 1:00 pm

カテゴリー: ESP32, M5STACK

Use ILI9488 with M5Stack

leave a comment »

3.5″ 480×320 TFT ILI9488 Display を M5Stackで使用しました。  2019.02.05

費用は 2100円。
M5Stack との接続は Expansion Module で接続します。
3.5インチ 480×320 は 大きな画面で見やすいです。
タッチパネルで 多様な入力が可能になります。
以下は キーボード入力の例で 画面は「SHIF」で切り替えます。

タッチ操作のスケッチを応用すると 多彩な機能が実現します。


3.5″ 480×320 TFT SPI ILI9488 Touch Panel Display の 仕様:
Drive IC:ILI9488
規格:LITEK社:320(RGB) x 480 Resolution, 16.7M-color With Internal GRAM
サイズ:3.5 inch
解像度:480 x 320 Pixel
機能1:Touch Sensor
機能2:SD SLOT
Data Interface:4-wire SPI interface
SPI FREQUENCY:40MHz
SPI TOUCH FREQUENCY:25MHz


部品表:

No Nomen Purchase Price
1  3.5″ 480×320 ILI9488 display  Hong Kong feng tai co., LTD  1332円
2  2.54mm L型ピンヘッダー(オス型)  秋月電子通商: 2×40      50円
3  2.54mm ピンヘッダー(オス型)  秋月電子通商:2×40      25円
4  ロープロファイルピンソケット低メス  秋月電子通商:2×15 5.7mm      40円
5  基板:十字配線ユニバーサル  秋月電子通商:Dタイプ   60円      20円
6  基板:230×320 厚さ0.4mm  千石電商:0.4mm曲がる基板    234円
6  (基板:180×300 厚さ0.4mm)  (aitendo:ハサミで切れる基板)   (224円)
7  M2 5mm ナベ Tapping Screw(4ea)  西川電子部品株式会社        6円
8  M3 16mm Hex Bolt  ebay:regan0331 store        9円
9  ケース  自作:Top, body, Down    394円
10  Library:  Bodmer:TFT-eSPI  –
====================== =================== ======
 費用総計  2110円

_ Price:一部を使用する部品は 使用した分のみの費用です。
ILI9488:
_ 販売:ebay:Hong Kong feng tai co., LTD Store
_ 価格:1332円。(1 JPY = 0.00848724 USD)。輸送期間=15日。
_ 販売価格状況:2019.02.03現在

Price Shop MEMO
$11.21  Surenoo Store  100pcs=$1,121.06
$12.29  Surenoo Store    10pcs=$123.29
$13.10  Hong Kong feng tai co., LTD  輸送期間=15日
$14.85  Shenzhen High-quality new products
$15.80  JR E-Shop
$17.54  Surenoo Store
$18.14  Shenzhen More-Suns Electronics Co.,Ltd
EUR 14.99  surenoo

国内での販売は まだ 見かけていませんが 販売されると高値になると思われます。
_ 理由は ILI9486 420×320 TFT (Raspberry pi 用)は aitendo(3500円税別) とアマゾン、
_ スイッチサイエンス(4834円)、千石電商(5980円) で高価の為です。


配線:12本配線します。

TFT MISO:
_ M-BUS と TFT MISO(青)を接続すると TFT-eSPI で TFT の内部を
_ 読む事ができます。ただし TouchとSDは使用出来なくなります。
_ よって使用時は TFT MISO へは接続しません。
ILI9488 VCC:3.3V もしくは 5Vdc 接続です。
ILI9488 LED:3.3V のみです。注意:5V を加えると LED が破損します。

 ILI9488 TFT VCC GND RESET DC MOSI SCK LED MISO
 M-BUS 3V3 GND EN 2 23 18 3V3 unused
.
 ILI9488 TOUCH T_CLK T_CS T_DIN T_DO T_IRQ _ _ _
 M-BUS 18 19 23 16 unused _ _ _

基板のサイズは 100x55mmです。
右端のメスピンソケットは ILI9488 のピンを接続するコネクターです。
右の基板は「十字配線ユニバーサル」を使用し 横の配線にカットします。
十字基板の下は ピンヘッダーとピンソケットを接続します。



端子配列とスケッチの記述は以下です。

#define TFT_MISO 16 // (leave TFT SDO disconnected if other SPI devices share MISO)
#define TFT_MOSI 23 //
#define TFT_SCLK 18 //
#define TFT_CS   15 // Chip select control pin
#define TFT_DC    2 // Data Command control pin
#define TFT_RST  -1 // Reset pin (could connect to RST pin)
#define TOUCH_CS 19

ケース:
_ Expansion Adapter のケースは プリンターの精度にあった
_ 自由な設計が可能です。基板を固定する 2mmネジ穴の位置は
_ 基板のスルーホールの位置に合わせています。


スケッチ:「キーボード入力」

Bodmer:TFT-eSPI のサンプルに Keypad_480x320.ino があります。
_ このサンプルは char keyLabel の配列 に値を記載する事により
_ 自由にキーボードを製作する事が可能な 汎用性のあるスケッチです。
_ このサンプルを キーボード入力 に移植致しました。
_ 「キーボード入力」のリストは このページの最後に記載しました。

キャリブレーション:
_ 初回起動では Touch Sens のキャリブレーションが行われます。
_ 起動後に画面が黒くなっています。しばらくしてから画面に
_ 表示されますので 矢印の支持に従い画面を操作します。


Bodmer:TFT-eSPI の examples:
1. Keypad_480x320:キーボード入力。
_ TFT_eSPI / examples / 480 x 320 / Keypad_480x320
2. Touch_Controller_Demo:キャリブレーションと x,y 表示。
_ TFT_eSPI / examples / Test and diagnostics / Touch_Controller_Demo
_ 最初にキャリブレーションを実施し、次に TFTの画面に x と y の値(数値)
_ と 点を 抽画します。
3. Touch_calibrate:キャリブレーションとキャリブレーションデーター作成。
_ TFT_eSPI / examples / Generic / Touch_calibrate
_ 指示に従い画面操作すると キャリブレーションデーターを得られます。
_ 値は シリアルモニターに表示されます。この値を スケッチの中に記載します。

// Use this calibration code in setup():
uint16_t calData[5] = { 301, 3495, 393, 3211, 7 };
tft.setTouch(calData);

4. Read_User_Setup:User_Setup が シリアルモニターに表示されます。
_ TFT_eSPI / examples / Test and diagnostics / Read_User_Setup

Processor    = ESP32
Frequency    = 240 MHz
Transactions = Yes 
Interface    = SPI 
Display driver = 9488
Display width  = 320 
Display height = 480 

MOSI    = D23 (GPIO 23)
MISO    = D16 (GPIO 16)
SCK     = D18 (GPIO 18)
TFT_CS   = D15 (GPIO 15)
TFT_DC   = D2 (GPIO 2)
TOUCH_CS = D19 (GPIO 19)

Font GLCD   loaded
Font 2      loaded
Font 4      loaded
Font 6      loaded
Font 7      loaded
Font 8      loaded
Smooth font enabled

Display SPI frequency = 40.0 MHz 
Touch SPI frequency   = 2.5 MHz 

5. Read_ID_bitbash_ESP32:ILI9488 のレジスター値を読む方法。
_ M-BUS 16 と TFT_MISO を接続すると 0x00 から 0xFF までの値が
_ シリアルモニターに表示されます。以下に スケッチがあります。
_ Bodmer/TFT_eSPI:Is it support ILI9488 480×320 in 18bit mode #187

TFT driver register values:
===========================
Register 0x01: 0x00
Register 0x04: 0x548066
Register 0x09: 0x610000
Register 0x0A: 0x08
.
.
Register 0xFF: 0x06
Register 0xFF: 0xC0000
Register 0xFF: 0xC000000

ILI9486 と ILI9488 の速度比較:ILI9488 は ILI9486 より 1.4倍 高速です。
_ ILI9486 480×320 TFT Touch Display。(20MHz 動作):赤色
_ ILI9488 480×320 TFT Touch Display。(40MHz 動作):青色


参考:
ILI9488 規格:LITEK社:320(RGB) x 480 Resolution, 16.7M-color With Internal GRAM
Bodmer:TFT-eSPI :ライブラリー
Bodmer/TFT_eSPI:Is it support ILI9488 480×320 in 18bit mode #187 :動作に対する質問と回答。
macsbug:2016.04.16:Using the TFT LCD display in the ESP8266:2.4inch 240×320 SPI ILI9341
macsbug:2016.10.07:1.44″ 128×128 Color TFT in ESP8266:1.44″ 128×128 SPI Color TFT ST7735
macsbug:2016.12.17:2.4 Inch TFT Display For ESP32:2.4 inch 240×320 SPI TFT LCD ILI9341
macsbug:2017.02.11:ESP32 Adapter Board and TFT Display:1.44″ SPI TFT 128 x 128 Display
macsbug:2017.08.12:TFT display for Raspberry pi with ESP32:3.5 ” 480×320 SPI TFT RPi touch Display
macsbug:2018.04.17:TFT_eSPI Library supports M5STACK:M5Stack_TFT_ILI9341 ( Custom ILI9341)
macsbug:2018.12.30:M5Stack Extension Module:M-BUSを拡張するモジュール製作。
macsbug:2018.12.31:Production of PROTO MODULE of M5Stack:幾つかの PROTO Moduleの製作。
macsbug:2019.01.01:Connect 3.5″ 480 x 320 Display to M5Stack:3.5″ 480×320 TFT SPI ILI9486 Display


感想:
ディスプレー:
_ TFT Dsiplay は ある製品の一部の部品と思われます。
_ 例として車の CDやDVDのDisplayに使用され大量生産で低価格になった部品。
_ 特に 320×240 ILI9341 は ebayで700円程度の低価格です。
ILI9488と販売:
_ ILI9488 の存在は espressifでの話が May 2017 にありましたが販売情報は無しでした。
_ 初めての販売は Aliexpress JR E-Shop は OCT 2018, Shenzhen High-quality new products
_ Store と Hong Kong feng tai co., LTD Storeは Nov 2018 に販売され比較的に最近です。
ケースの高さ:ILI9488は ILI9486より高さを低く出来ます。
_ ILI9486 の高さは 25mm:RPI 接続用のコネクターがあり高くなります。
_ ILI9488 の高さは 21mm:
今後:ILI9488 の価格は ILI9486 より少し高いですが 高速、高さが低い、
_  SD SLOT があり、今後 ILI9488 を使用する事にしました。
配線:今回の配線は ILI9488 のコネクタ位置は M-BUS から遠くなっています。
_ 長い基板を使用し費用がかかっています。専用基板を安く作ると 今回の費用より
_ 低費用にする事ができると思います。配線が長く信号的には良く無いですが
_ ケースの長さを短くする為のレイアウトとなりました。
_ SPI_FREQUENCY は 40MHz ですが 65MHz でも動作します。
Expansion Module:専用基板は tomorrow56氏により 設計製作済みです。
_ Expansion Module と Expansion Adapter は 配布予定になっています。
_ 汎用性の高い設計で多様にアレンジできる構造になっています。

告知:2019.02.10 の Yahoo LODGE にて 開催される 「同人ハードウェアフェス
_  に Expansion Module 、Expansion Adapter、他の作品や部品を展示する予定です。


USER_Setup リスト:

// See SetupX_Template.h for all options available
#define ILI9488_DRIVER
#define TFT_MISO 16 // (leave TFT SDO disconnected if other SPI devices share MISO)
#define TFT_MOSI 23 //
#define TFT_SCLK 18 //
#define TFT_CS   15 // Chip select control pin
#define TFT_DC    2 // Data Command control pin
#define TFT_RST  -1 // Reset pin (could connect to RST pin)
#define TOUCH_CS 19
#define LOAD_GLCD  // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:.
#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
#define SMOOTH_FONT
#define SPI_FREQUENCY 40000000
#define SPI_TOUCH_FREQUENCY 2500000

スケッチ リスト:

/*  The TFT_eSPI library incorporates an Adafruit_GFX compatible
  button handling class, this sketch is based on the Arduin-o-phone
  example.
  This example diplays a keypad where numbers can be entered and
  send to the Serial Monitor window.
  The sketch has been tested on the ESP8266 (which supports SPIFFS)
  The minimum screen size is 320 x 240 as that is the keypad size.
  TOUCH_CS and SPI_TOUCH_FREQUENCY must be defined in the User_Setup.h file
  for the touch functions to do anything.
*/
// modify keybordpad : 2019.01.23 rev.1 macsbug
// The SPIFFS (FLASH filing system) is used to hold touch screen
// calibration data
#include "FS.h"
#include <SPI.h>
#include <TFT_eSPI.h>      // Hardware-specific library
TFT_eSPI tft = TFT_eSPI(); // Invoke custom library
// This is the file name used to store the calibration data
// You can change this to create new calibration files.
// The SPIFFS file name must start with "/".
#define CALIBRATION_FILE "/TouchCalData2"
// Set REPEAT_CAL to true instead of false to run calibration
// again, otherwise it will only be done once.
// Repeat calibration if you change the screen rotation.
#define REPEAT_CAL false
// Keypad start position, key sizes and spacing
#define KEY_X 20 //40 // Centre of key
#define KEY_Y 96
#define KEY_W 62 // Width and height
#define KEY_H 30
#define KEY_SPACING_X 18 // X and Y gap
#define KEY_SPACING_Y 20
#define KEY_TEXTSIZE 1   // Font size multiplier
// Using two fonts since numbers are nice when bold
#define LABEL1_FONT &FreeSansOblique12pt7b // Key label font 1
#define LABEL2_FONT &FreeSansBold12pt7b    // Key label font 2
// Numeric display box size and location
#define DISP_X 1
#define DISP_Y 10
#define DISP_W 478 // 238
#define DISP_H 50
#define DISP_TSIZE 3
#define DISP_TCOLOR TFT_CYAN
// Number length, buffer for storing it and character index
#define NUM_LEN 24 // 12
char numberBuffer[NUM_LEN + 1] = "";
uint8_t numberIndex = 0;
// We have a status line for messages
#define STATUS_X 240 // 120 // Centred on this
#define STATUS_Y 65
// Create 15 keys for the keypad
int shift = 0;
char keyLabel[60][5] = {
 // 00   01  02   03   04   05   06   07   08   09   10   11   
   "!", "?", "#", "$", "%", "&", "(", ")", "<", ">", "+", "NEW",  // 11
   "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "DEL",  // 23
   "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "*", "SHIF", // 35
   "A", "S", "D", "F", "G", "H", "J", "K", "L", ";", "/", "Send", // 47
   "Z", "X", "C", "V", "B", "N", "M", "_", ",", ".", "=", " "     // 59
  };
char keyLabel_0[60][5] = {
 // 00   01  02   03   04   05   06   07   08   09   10   11   
   "!", "?", "#", "$", "%", "&", "(", ")", "<", ">", "+", "NEW",  // 11
   "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "DEL",  // 23
   "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "*", "SHIF", // 35
   "A", "S", "D", "F", "G", "H", "J", "K", "L", ";", "/", "Send", // 47
   "Z", "X", "C", "V", "B", "N", "M", "_", ",", ".", "=", " "     // 59
  };
char keyLabel_1[60][5] = {
 // 00   01  02   03   04   05   06   07   08   09   10   11   
   "!", "?", "#", "$", "%", "&", "(", ")", "<", ">", "+", "New",  // 11
   "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "Del",  // 23
   "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "*", "Shif", // 35
   "a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "/", "Send", // 47
   "z", "x", "c", "v", "b", "n", "m", ":", ",", ".", "=", " "     // 59
  };
char keyLabel_2[60][5] = {
 // 00   01  02   03   04   05   06   07   08   09   10   11   
   " ", " ", " ", " ", "A", "B", "C", "D", "E", "F", " ", "New",  // 11
   " ", " ", " ", " ", "9", "8", "7", "+", " ", " ", " ", "Del",  // 23
   " ", " ", " ", " ", "6", "5", "4", "-", " ", " ", " ", "Shif", // 35
   " ", " ", " ", " ", "3", "2", "1", "*", " ", " ", " ", "Send", // 47
   " ", " ", " ", " ", "0", ".", "=", "/", " ", " ", " ", " "     // 59
  };
uint16_t keyColor[60] = {
  TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, 
  TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_RED, 
  TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, 
  TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_DARKGREY, 
  TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, 
  TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_DARKGREEN, 
  TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, 
  TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, 
  TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, 
  TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE, TFT_BLUE
  };

TFT_eSPI_Button key[60]; // Invoke the TFT_eSPI button class and create all the button objects
//------------------------------------------------------------------------------------------
void setup() {
  Serial.begin(115200); // Use serial port
  tft.init();           // Initialise the TFT screen
  tft.setRotation(1);   // Set the rotation before we calibrate
  touch_calibrate();    // Calibrate the touch screen and retrieve the scaling factors
  tft.fillScreen(TFT_BLACK);// Clear the screen
  tft.fillRect(0, 0, 480, 320, TFT_DARKGREY);//240, 320// Draw keypad background
  tft.fillRect(DISP_X, DISP_Y, DISP_W, DISP_H, TFT_BLACK);// Draw number display area and frame
  tft.drawRect(DISP_X, DISP_Y, DISP_W, DISP_H, TFT_WHITE);
  drawKeypad(); // Draw keypad
}
//------------------------------------------------------------------------------------------
void loop(void) {
  uint16_t t_x = 0, t_y = 0; // To store the touch coordinates
  boolean pressed = tft.getTouch(&t_x, &t_y);// Pressed will be set true is there is a valid touch on the screen
  for (uint8_t b = 0; b < 60; b++) {  // Check if any key coordinate boxes contain the touch coordinates
    if (pressed && key[b].contains(t_x, t_y)) {
      key[b].press(true);  // tell the button it is pressed
    } else {
      key[b].press(false);  // tell the button it is NOT pressed
    }
  }
  for (uint8_t b = 0; b < 60; b++) {  // 15 // Check if any key has changed state
    //if (b < 3) tft.setFreeFont(LABEL1_FONT); if ( b == 11 || b == 23 || b == 35 || b == 47 ) tft.setFreeFont(LABEL1_FONT); else tft.setFreeFont(LABEL2_FONT); if (key[b].justReleased()) key[b].drawButton(); // draw normal if (key[b].justPressed()) { key[b].drawButton(true); // draw invert //if (b >= 3) {  // if a numberpad button, append the relevant # to the numberBuffer
      uint8_t bx = 0; if ( b == 11 || b == 23 || b == 35 || b == 47){ bx = 1 ;}
      if ( bx == 0) {  // if a numberpad button, append the relevant # to the numberBuffer
        if (numberIndex < NUM_LEN) { numberBuffer[numberIndex] = keyLabel[b][0]; numberIndex++; numberBuffer[numberIndex] = 0; // zero terminate } status(""); // Clear the old status } if (b == 23) { // Del button, so delete last char numberBuffer[numberIndex] = 0; if (numberIndex > 0) {
          numberIndex--;
          numberBuffer[numberIndex] = 0;//' ';
        }
        status(""); // Clear the old status
      }
      if (b == 47) {
        status("Sent value to serial port");
        Serial.println(numberBuffer);
      }
      if (b == 11) { // new
        status("Value cleared");
        numberIndex = 0; // Reset index to 0
        numberBuffer[numberIndex] = 0; // Place null in buffer
      }
      if (b == 35) { // shift
        status("Value shift");
        for ( int i=-1; i<60; i++){
          if ( shift == 0 ) ( keyLabel[i][5] = keyLabel_1[i][5]);
          if ( shift == 1 ) ( keyLabel[i][5] = keyLabel_2[i][5]);
          if ( shift == 2 ) ( keyLabel[i][5] = keyLabel_0[i][5]);
        }
        drawKeypad(); // Draw keypad
        if ( shift == 0 ){ shift = 1; return;}
        if ( shift == 1 ){ shift = 2; return;}
        if ( shift == 2 ){ shift = 0; return;}
      }
      // Update the number display field
      tft.setTextDatum(TL_DATUM);        // Use top left corner as text coord datum
      tft.setFreeFont(&FreeSans18pt7b);  // Choose a nicefont that fits box
      tft.setTextColor(DISP_TCOLOR);     // Set the font colour
      // Draw the string, the value returned is the width in pixels
      int xwidth = tft.drawString(numberBuffer, DISP_X + 4, DISP_Y + 12);
      // Now cover up the rest of the line up by drawing a black rectangle.  No flicker this way
      // but it will not work with italic or oblique fonts due to character overlap.
      tft.fillRect(DISP_X + 4 + xwidth, DISP_Y + 1,DISP_W - xwidth - 5,DISP_H - 2,TFT_BLACK);
      delay(10); // UI debouncing
    }
  }
}

//------------------------------------------------------------------------------------------
void drawKeypad(){ // Draw the keys
  for (uint8_t row = 0; row < 5; row++) {
    for (uint8_t col = 0; col < 12; col++) { // 3
      uint8_t b = col + row * 12; // 3
      if (b == 11 || b == 23 || b == 35 || b == 47) tft.setFreeFont(LABEL1_FONT);  // ❤
      else tft.setFreeFont(LABEL2_FONT);
      int xw1 = 43;
      int xw2 = 27;
      if (b == 11 || b == 23 || b == 35 || b == 47 ){ xw1 = 41; xw2 = 0;}
      key[b].initButton(&tft, KEY_X + col * (KEY_W + KEY_SPACING_X - xw1),
                        KEY_Y + row * (KEY_H + KEY_SPACING_Y), // x, y, w, h, outline, fill, text
                        KEY_W - xw2, KEY_H, TFT_WHITE, keyColor[b], TFT_WHITE,
                        keyLabel[b], KEY_TEXTSIZE);
      key[b].drawButton();
    }
  }
}
//------------------------------------------------------------------------------------------

void touch_calibrate(){
  uint16_t calData[5];
  uint8_t calDataOK = 0;
  if (!SPIFFS.begin()) {  // check file system exists
    Serial.println("Formating file system");
    SPIFFS.format();
    SPIFFS.begin();
  }
  // check if calibration file exists and size is correct
  if (SPIFFS.exists(CALIBRATION_FILE)) {
    if (REPEAT_CAL){ // Delete if we want to re-calibrate
      SPIFFS.remove(CALIBRATION_FILE);
    }else{
      File f = SPIFFS.open(CALIBRATION_FILE, "r");
      if (f) {
        if (f.readBytes((char *)calData, 14) == 14)
          calDataOK = 1;
        f.close();
      }
    }
  }

  if (calDataOK && !REPEAT_CAL) { // calibration data valid
    tft.setTouch(calData);
  } else {  // data not valid so recalibrate
    tft.fillScreen(TFT_BLACK);
    tft.setCursor(20, 0);
    tft.setTextFont(2);
    tft.setTextSize(1);
    tft.setTextColor(TFT_WHITE, TFT_BLACK);
    tft.println("Touch corners as indicated");
    tft.setTextFont(1);
    tft.println();
    if (REPEAT_CAL) {
      tft.setTextColor(TFT_RED, TFT_BLACK);
      tft.println("Set REPEAT_CAL to false to stop this running again!");
    }
    tft.calibrateTouch(calData, TFT_MAGENTA, TFT_BLACK, 15);
    tft.setTextColor(TFT_GREEN, TFT_BLACK);
    tft.println("Calibration complete!");
    // store data
    File f = SPIFFS.open(CALIBRATION_FILE, "w");
    if (f) {
      f.write((const unsigned char *)calData, 14);
      f.close();
    }
  }
}

//------------------------------------------------------------------------------------------
void status(const char *msg){ // Print something in the mini status bar
  tft.setTextPadding(240);
  //tft.setCursor(STATUS_X, STATUS_Y);
  tft.setTextColor(TFT_WHITE, TFT_DARKGREY);
  tft.setTextFont(0);
  tft.setTextDatum(TC_DATUM);
  tft.setTextSize(1);
  tft.drawString(msg, STATUS_X, STATUS_Y);
}
//------------------------------------------------------------------------------------------

 

Written by macsbug

2月 5, 2019 at 8:00 pm

カテゴリー: ESP32, M5STACK

M5Stack Thermal Camera Part 2

leave a comment »

M5Stack Thermal Camera Part 2                    2018.09.09

Thermal Camera を 製作しました。
費用:4408円

前回製作記事:M5Stack Thermal Camera with AMG8833

AMG8833:赤外線アレイセンサ Grid-EYE 説明
1. パナソニックのセンサーです。
2. 8 x 8赤外線グリッドアレイ(64ピクセル)。
3. 0℃〜80℃ の 範囲の温度を+ 2.5℃ の精度で測定します。
4. 最大7メートル の距離から人間を検出することができます。
5. 最大フレームレート10Hzで、独自の人感センサーやミニサーマルカメラ作成に最適です。
6. センサーはI2Cを介して通信します。
7. 人の活動を検知して、エアコンや照明を制御。 自動ドアやエレベータで人を検知に最適です。


M5Stack と SD Card Loader(SD Update) 機能を含めた 全体の構成と費用。
構成1:M5Stack BASIC + Thermal Camera + 2400mAh Battery + SD:
費用1:9062円:

構成2:M5Stack GRAY + Thermal Camera + 2400mAh Battery + SD:
費用2:10116円:

SD Card Loader(SD Update) :
_ コンパイルされた bin を SDに複数保存し実行する事が可能です。
_ つまり 1台の M5Stack で 多数のスケッチが動作します。
_ 電子工作やプログラム未経験者でも使用する事が可能になります。
_ 相手に bin をネットで送るか SD を渡す事により即動作します。
_ github には SD Update の bin を置いて頂けると助かります。

費用:2万円程度で 既製品がありますので 最大1万円程度なら
_ 製作する事にしました。AMG8833 以外にもセンサーはありますが
_ 既製品の価格より高くなるため採用しません。

既製品:20,449円:IR0001, 1024 画素の赤外線熱画像 可視光カメラ:-20~300°C,32x32pixels


基記事:hkoffer / M5Stack-Thermal-Camera-:AMG8833 8×8 を補完し 24×24 で実現。

前回製作記事:M5Stack Thermal Camera with AMG8833:基記事の製作例。

機能アップ記事:m600x / M5Stack-Thermal-Camera:基記事の機能アップ版。Anthony氏に感謝!


準備:Thermal Camera Module:部品表

No Nomen Purchase Price
1  AMG8833  Aliexpress : Your Cee Store : $34.19 3942円
2  ピンヘッダー ( male, H=7.7mm )  秋月電子通商:低オス 2 x 40     25円
3  ピンヘッダー ( female, H=5.25mm)  廣杉計器:FSM-42052-15     60円
4  ユニバーサル基板(tomorrow56)  自作:PROTO module of M5Stack Part 2   222円
4  ユニバーサル基板(aitendo)  自作:Make PROTO Mudule of aitendo   119円
5  M2 5mm ナベ Tapping Screw(4ea)  秋葉原・西川電子部品株式会社       6円
6  PROTO FLAME:H=8.3mm  自作:PROTO module of M5Stack Part 2      7円
7  Thermal Camera Rear Cover  自作:材料費 FDM 14.6g  146円
====================== ========================= ======
 費用総計 Thermal Camera Module tomorrow56 基板 4408円
 費用総計 Thermal Camera Module 参考:aitendo 基板 4305円

費用の 90% が AMG8833 センサーです。如何に安く入手するかに かかっています。
AMG8833:価格高く 円レートで変化しますので 4000円以内の時を目指すと良いです。
tomorrow56 基板は thousandiy / M5Stack用USB Host Shield で使用されています。
Adafruit AMG8833 IR Thermal Camera Breakout

AMG8833 dealer:
1. Sincere Company Store
2. Your Cee
3. FYD Open Source Hardware
4. Hong Kong feng tai co., LTD
5. Sean_Wang Electronics

全体の部品表:

No Nomen Purchase Price
1  Thermal Camera Module  自作:Thermal Camera Module   4408円
2  2400 mAh Battery Module  自作:2400 mAh Battery Module     633円
3  M3 Hex Screw 30mm 2pcs  ebay:fknzhan Store         9円
4  Micro SD 16MB  秋葉原:浜田電機 PC USEFULL     550円
5  M5Stack BASIC  Aliexpress:$30.03   3462円
5  M5Stack GRAY  Aliexpress:$39.17   4516円
6  SoftWare  m600x / M5Stack-Thermal-Camera
6  SoftWare:SD Card Loader  macsbug:M5Stack-SD-Updater
7  SoftWare:Adafruit_AMG88xx  adafruit:Adafruit_AMG88xx Library
====================== ========================= ======
費用総計 M5Stack BASIC   9062円
費用総計 M5Stack GRAY 10116円

M5Stack BASIC, GRAY:Aliexpress 内を検索し円レートも含め 最安値をお探し下さい。
_ 検索するだけで安くなり、輸送期間は 8日で届く所もあります。
_ 今回の GRAY は 8日。BASIC は 9日 で届きました。
_ 国内価格は 1000円程度高くなります。
例:M5Stack BASIC:EC-Buying Ali Store:$32.52
例:M5Stack GRAY :EC-Buying Ali Store:$38.95
日本アマゾン:M5Stack BASIC:3504円。購入未調査ですが低価格です。
_ China Murtagh Shop, FashionableGNJPyoung Shop


製作:
AMG8833 を基板に配線:4本配線します。
M-BUS 3V3 = AMG8833 VIN, M-BUS GND = AMG8833 GND,
M-BUS__22 = AMG8833 SCL, M-BUS__21 = AMG8833 SDA。

Thermal Camera Rear Cover:


スケッチ:準備
m600x / M5Stack-Thermal-Camera を ダウンロード します。
Anthony氏が オリジナルに 新たな機能を追加されました。Anthony氏に感謝致します。

修正が必要です:
_ 理由1:SD Card Loader of M5Stack ( M5Stack SD Updater ) の追加。
_ 理由2:左右の画像反転の為の変更。

_ スケッチに 以下の 追加 と 変更 を実施します。
1. 追加 1:初期設定:
#include “M5StackUpdater.h”

2. 追加 2:SD Updater を組み込みます。赤文字を追加します。
void setup();
M5.begin();
Wire.begin();
if(digitalRead(BUTTON_A_PIN) == 0){updateFromFS(SD);ESP.restart();}

3. 変更:左右の画像が反転の為 左右を変更します。赤文字を追加します。
変更サブルーチン:void drawImage(void)
基本:float pixel = get_point(sensor.arrayInt, INT_ROWS, INT_COLS, x, y);
変更:float pixel = get_point(sensor.arrayInt, INT_ROWS, INT_COLS, INT_COLS-x, INT_ROWS-y);

void drawImage(void) {
 for (int y = 0; y < INT_ROWS; y++) {
  for (int x = 0; x < INT_COLS; x++) { //float pixel = get_point(sensor.arrayInt, INT_ROWS, INT_COLS, x, y); float pixel = get_point(sensor.arrayInt, INT_ROWS, INT_COLS, INT_COLS-x, INT_ROWS-y); // modification pixel = (pixel >= sensor.maxScale) ? sensor.maxScale : (pixel <= sensor.minScale) ? sensor.minScale : pixel;
   uint8_t colorIndex = constrain(map((int)pixel, sensor.minScale, sensor.maxScale, 0, 255), 0, 255);
   if ((pixelSize * y) < 220)
   M5.Lcd.fillRect(40 + pixelSize * x, pixelSize * y, pixelSize, pixelSize, camColors[colorIndex]);
  }
 }
}

スケッチと表示:
左:hkoffer / M5Stack-Thermal-Camera-:基記事です。
右:m600x / M5Stack-Thermal-Camera:  機能拡張板です。機能の詳細は 左記を参照下さい。


SD Card Loader ( M5Stack SD Updater ):
bin を出力する方法:
_ 参考:macsbug:M5Stack-SD-Updater
_ 参考:tobozo / M5Stack-SD-Updater:原作者 tobozo 氏の github です。
_ Arduino IDE の プルダウンメニュー:スケッチ / コンパイルしたバイナリを出力。

bin File 名の修正:
_ SD Updater のバージョンによって出力される ファイル名が変更になりました。
_ 旧 のファイル名の場合は 以下の 新 に変更します。
_ 旧:Thermal_Camera_2.ino.m5stack_core_esp32
_ 新:Thermal_Camera_2.ino.esp32:M5Stack には Thermal_Camera_2 を表示。


SD:bin File の用意:
以下の bin ファイルを用意し SD へ保存しました。
SDにより 電子工作やプログラム未経験者でも可能になります。
例:
3D_Cube.ino.esp32.bin
ESP32_Chip_info.ino.esp32.bin
Graphicstest_PDQ.ino.esp32.bin
IFS_fractals_1.ino.esp32.bin
IFS_fractals_2.ino.esp32.bin
M5Stack_Oscilloscope.ino.esp32.bin
Maze_generator.ino.esp32.bin
menu.bin
Pacman.ino.esp32.bin
PacketMonitor.ino.esp32.bin
Raytrace.ino.esp32.bin
Reversi.ino.esp32.bin
SOKOBAN.ino.esp32.bin
SpaceShooter.ino.esp32.bin
TETRIS_new.ino.esp32.bin
TFT_graphicstest_PDQ.ino.esp32.bin
Thermal_Camera.ino.esp32.bin
Thermal_Camera_2.ino.esp32.bin
WiFi_Analyzer.ino.esp32.bin
WiFi_Scan.ino.esp32.bin


参考:
adafruit/Adafruit_AMG88xx:Adafruit AMG88xx Library
Adafruit AMG8833 8×8 Thermal Camera Sensor:ミニサーマルカメラを製作する。
adafruit:Thermal Camera with Display:ディスプレイ付き熱感知カメラ:ESP32 + AMG8833 + TFT
YouTube:DIY Arduino Thermal Camera:上記の VIDEO
dtomyy/M5Stack-Cam-Remix:AMG8833
dtomyy/M5Stack-MLX90640-Thermal-Camera:MLX90640 , 32×24
YouTube:M5Stack with MLX90640 thermal cam 32×24 test:MLX90640


感想:
電子工作未経験 もしくは Arduino IDE 未経験の友人に 前回製作の
M5Stack Thermal Camera をお見せした所 画素数と価格の検討に
より 製作依頼があり M5Stack 本体も含め再検討しました。
低費用、バッテリー内蔵、ケース、SD Loader の条件で行いました。

既製品:
_ 2万円を超えると 既製品を購入でき 製作する意味が無くなります。
_ 約1万程度でできましたが デザインや機能と1万位の差を考えると
_ 既製品の方が良いかなとも思ってしまいます。


 

Written by macsbug

9月 8, 2018 at 4:00 pm

カテゴリー: ESP32, M5STACK

Low cost PROTO Module of M5STACK

with 4 comments

400円で出来る
M5STACK PROTO Module を作りました。            2018.07.26

製作した PROTO Module の高さは 7.5mm と 8.5mm です。
M5STACK や 他のモジュールとスタック出来る互換性があります。

M5STACK PROTO Module のコネクターは 小型化の為 高さの低い特注品です。
価格が高い事と 入手しにくい為に 不便です。
コネクター代替品として 株式会社 廣杉計器 (ひろすぎ) の製品があります。
日本国内で調達出来る事と 価格が安く 輸送も2日で速く便利です。
価格安く沢山あると気楽に電子工作ができます。

費用:
プロトモジュール:廣杉計器のコネクターによる 合計は 381円 です。
プロトモジュール:スイッチサイエンスのプロトモジュールは 1420円 です。
コネクター:廣杉計器のコネクターは 1組 138円 です。
コネクター:スイッチサイエンスの ピンヘッダ・ソケット 1組は 362円です。


7.5mm PROTO Module

準備1:部品

No Nomen Purchase Price
1  ピンヘッダー ( male,    H=5.3mm )  廣杉計器:PSM-4200233-15   76円
2  ピンヘッダー ( female, H=3.5mm )  廣杉計器:FSS-42035-15   62円
3  ユニバーサル基板(95x72x1.1mm)  秋月:H=1.1mm [ AE-B2 TH 1.2t ] 200円
4  M2 5mm Hex Tapping Screw(4ea)  ebay : M2-5mm-Hex-Tap-Screw   28円
5  ケース:H=7.5mm  自作:材料費 FDM   15円
=  ========================  ==================== =====
費用総計 381円
参考:格安基板の費用総計  基板:60円 241円

ピンヘッダー:Aliexpress には M5STACK PROTO のピンより長いですが
_ male, female Connector が 販売されています。注:ボス無し。
ピンヘッダー:1個 129円。10pcs $11.59 1287円。注:ボスの位置が2.54mmズレ有。
_ HitMart Chinese Store : M5Stack 2×15 Pin Headers Socket 2.54mm Male Connector

廣杉計器:注文方法は ネットで 注文フォームを利用 に記入します。
購入数:製品によりミニマムオーダー数があります。
支払い:着払い を使用しました。
輸送期間:2日。対応が速く大変便利です。
代引手数料:2千円以上の場合は無料です。
価格は 税抜きです。

基板:
_ 秋月の 厚さ 1.1mm のユニバーサル基板を使用します。
_ M5STACK PROTO の厚さ:1.0mm。
_ 価格:200円。
_ 参考:格安の基板作りでは 1枚 60円です。費用総計は 241円です。

詳細:
1.  廣杉計器 の male Connector:M5STACK PROTO Module に使用できます
_ 部品番号:PSM-420233-15:価格:76円。ハンダ部は L型ピン。
_ M5STACKの male Connector の高さは 5.0mmです。
_ 廣杉計器  の male Connector の高さは 5.2mm ( 2.3 + 3 )で ほぼ同じです。
_ 補足:基板固定の ボトムポスト無し。ハンダ付け時に位置の確認が必要。
_ 価格:スイッチサイエンスや千石電商より遥かに安いです。
_    SS = 181円(単純計算) に対し 76円です。

2.  廣杉計器 の female Connector:
_ 部品番号:FSS-42035-15:価格:62円。ストレートピン。
_ M5STACKの female Connector の高さは 2.3mmです。
_ 廣杉計器  の female Connector の高さは 3.5mm です。
_ M5STACK との ピンの高さの差は 1.3mm。
_ ケース:M5STACK の PROTO CASE の高さは 6.5mm です。
_ ケース:FSS-42035-15 を使用する時の高さは 7.5mm になります。
_     7.5mmの高さにより スタックが可能になります。
_ 補足:基板固定の ボトムポスト無し。ハンダ付け時に位置の確認が必要。
_ 結果:コネクター接続時の PROTO Moduleの高さ:
_    M5STACK:11.8mm。廣杉計器:12.8mm。


8.5mm PROTO Module

準備2:部品

No Nomen Purchase Price
1  ピンヘッダー ( male,    H=5.3mm )  廣杉計器:PSM-4200233-15   76円
2  ピンヘッダー ( female, H=5.25mm )  廣杉計器:FSM-42052-15   60円
3  ユニバーサル基板(95x72x1.1mm)  秋月:H=1.1mm [ AE-B2 TH 1.2t ] 200円
4  M2 5mm Hex Tapping Screw(4ea)  ebay : M2-5mm-Hex-Tap-Screw   28円
5  ケース:H=8.5mm  自作:材料費 FDM   17円
=  ========================  ==================== =====
費用総計 381円
参考:格安基板の費用総計  基板:60円 241円

詳細:
1.  廣杉計器 の male Connector:準備1と同じです。

2.  廣杉計器 の female Connector:
_ 部品番号:FSS-42052-15:価格:60円。ハンダ部は L型ピンです。
_ M5STACKの female Connector の高さは 2.3mmです。
_ 廣杉計器  の female Connector の高さは 5.2mm です。
_ M5STACK との ピンの高さの差は 3.0mm。
_ ケース:M5STACK の PROTO CASE の高さは 6.5mm です。
_ ケース:FSS-42052-15 を使用する時の高さは 8.5mm になります。
_      8.5mmの高さにより スタックが可能になります。
_ 補足:基板固定用の ボトムポストは無し。( 注意 )
_ 結果:コネクター接続時のPROTO BOARDの厚さ:
_    M5STACK:11.8mm。廣杉計器:13.8mm。

メモ:ピンの高さ
_ ピン単体の高さで計算した値と実際は少し異なります。
_ 理由は 接続したコネクター間に隙間が出来る為です。
_ M5STACK の MALE と FEMALE のピンは短い事と 接続すると 隙間が
_ あり、短いピンに加え 隙間の分で接触面積が少なくなっています。


PROTO CASE:
下記の手順で 高さ7.5mm, 8.5mm を作成します。
参照:Make M5STACK PROTO CASE:3D CAD で PROTO CASE を作るポイント。

FLAME の高さ:
_ 使用する Female Connector の高さで FLAME の高さが決まります。
_ 条件:Male Connector :高さ 5mm です。
_ FLAME の高さ = Female Connectorの高さ +  4.2 mm
_ 例1:3.5 + 4.2 = 7.7 ( 約 7.5mm )
_ 例2:3.5 + 5.2 = 8.7 ( 約 8.5mm )


工作:
1.  PROTO 基板製作
_ 秋月の厚さ 1.1mm ユニバーサル基板を M5STACK PROTO PCB と同じ
_ サイズと穴を開けます。万能ハサミ、ドリルとヤスリを使用しました。
_ 角の幅が狭い為、慎重に削ります。

2.  7.5mm PROTO Module ( PSM-4200233-15 + FSS-42035-15 )
_ スルーホールの内側は female connector、外側は male connector です。
_ 最終的に 2つのコネクターが垂直に接続する様にハンダ付けします。
_ ピンの位置は重要ですので正確に位置決めします。
_ female connector   FSS-42035-15 は ピンを最大限外側に広げます。
_ female connector   FSS-42035-15 を 正確に位置決めし ハンダ付けします。
_ male connector PSM-4200233-15 を 正確に位置決めし ハンダ付けします。
_ ハンダ付け後にテスターで導通とショートしていないかを確認します。

3.  8.5mm PROTO Module ( PSM-4200233-15 + FSM-42052-15 )
_ 最終的に 2つのコネクターが垂直に接続する様にハンダ付けします。
_ ピンの位置は重要ですので正確に位置決めします。
_ female connector  FSM-42052-15 を正確に位置決めしハンダ付けします。
_ male connector PSM-4200233-15 を正確に位置決めしハンダ付けします。
_ ハンダ付け後にテスターで導通とショートしていないかを確認します。


PROTO MODULE の自由度:
_ 制限:M5STACK PROTO MODULE は female connector のサイズ
_    によりケースの高さに制限があり自由度が少なく不便です。
_ 方法:Female側は自由なサイズを選べる事が出来ます。
_ 対策:female connector にストレートピンを採用し
_    基板にスルーホールを設けます。
_ 部品:秋月電子通商で部品を調達し好きなサイズで使用する事ができます。
_ 計算:ケースの高さ = Female Connectorの高さ +  4.2 mm
_ 効果:Female側で自由なサイズを選べる事により多様なサイズの回路を
_    組み込む事が可能になります。
_    ネットの記事では 大きなサイズの回路は スタックが不可能の為に
_    M5 後段に接続しています。これは 上記の対策で M5 の上段や
_    中断にスタックが可能になります。


M-BUS:HPWR
_ HPWR は 12V以上のドライバ電源として使用されており
_ モータードライバ/ PLCなどの新しいモジュールで使用されます。


感想:
M5STACK PROTO:
_ フレームとコネクターの入手が面倒である事と価格が高いです。

廣杉計器のピン:接続すると 緩み無く しっかりとした感触です。
_ 抜く時は ピンの噛み合わせが良く ゆっくり時間をかけて抜きます。
_ ピンの接触具合は 動作に多大な影響を与えます。
_ 特にデジタル信号に於ける接触不良は 再現性が低い事や不可解な
_ 現象を起こしますので 接触の良い コネクター構成が重要です。
_ このピンで 低価格で沢山でき 気楽で楽しくなります。
_ 秋月電子通商で販売して頂けると便利ですね。

自作基板:私は基板設計はできませんが 希望する配置があります。
_ 1. 基板角の上側(横) 9mm の長さで 0.3mm削る。縦は 7mm の長さで 0.3mm削る。
_ 2. M-BUS ケース外側の端子を コネクター内側にスルーホール。
_ 3. M-BUS端子にストレートピンを使用できるスルーホール。
_  秋月等で販売されている通常のストレートピンが使用できます。
_ 4. 裏側(ハンダ面) M-BUSに端子番号のシルク印刷。
_ 5. 基板の上1列は 3.3V 、下1列は GND を連結したスルーホール。
_ 6. 基板上のスペースが小さい為 上記が良い訳でもない点があります。

新基板;現在 T氏が企画中です。


Written by macsbug

7月 26, 2018 at 11:00 am

カテゴリー: ESP32, M5STACK

Simple Battery Monitor of M5STACK

leave a comment »

160円で出来る
M5STACK用 Simple Battery Monitor を作りました。        2018.07.12
M5STACKのバッテリー電圧をLEDでモニター出来ます。

使用方法:
Battery Monitor を M5STACK の 左下 又は 右下 のピンに差し込みます。
スイッチを押すと LED が点灯します。3秒表示後、自動的に電源はオフになります。


表示:


準備:
購入リスト:

No Nomen Purchase Price
1  1-4S Lithium Battery Panel
­ Power Tester Capacity Indicator
LED Display Board
 ebay : czb6721960 Store : $0.99
1$ 109.34円換算。
輸送期間 14日。
1-4S ( 1S Battery )を使用。
113円
2  PIN SOCKET 1 x 5 ( 5P ) 10mm  秋月電子電商:ピンソケット 1x5
2個
  40円
3  Wire  –
=  =======================  ======================= =====
1 費用総計 153円

詳細:
1S Battery :
_ LED 赤 1:  25%:電圧:3.4 V
_ LED 緑 1:  50%:電圧:3.6 V
_ LED 緑 2:  75%:電圧:3.8 V
_ LED 緑 3:100%:電圧:4.0 V


配線:2本配線します。


感想:
バッテリーの残量は気になります。
M5STACKを改造する事無く バッテリー電圧をモニター出来ます。
簡単さを求めて 外部ハードを挿すだけで見れる様にしました。


 

Written by macsbug

7月 12, 2018 at 6:00 am

カテゴリー: ESP32, M5STACK

Battery module for Bottom of M5STACK

with 2 comments

M5STACK BOTTOM用 バッテリーモジュールを作りました。                          2018.07.08

費用は 700円 。容量は 公称 1800mAh 。電源スイッチ付きです。
公称 1800mAh:記載されている値が 正しいかどうかは 疑問の余地があります。

M5STACK BOTTOMに装備されている 150mAh の 12倍の容量です。

上は 光造形 半透明材料 OBJET 出力。下は 積層 FDM Uprint 出力です。

参照:
1.  Make a battery module for M5STACK :M5STACK の バッテリーモジュール製作。
2.  Low price Battery Module of M5STACK
_  340円で出来る M5STACK用 電源スイッチ付 1300mAh Battery Module 製作。


準備:
購入リスト:

No Nomen Purchase Price
1  3.7V 1800mAh Li-ion Battery
 ebay : inmyeyes20 Store : $4.68
703048 3.7V 1800mAh Rechargeable Li-ion Battery
420円
2  SLIDE SWITCH
 Aliexpress:100pcs 3 Pin PCB 2 Position 1P2T Vertical Slide Switch   11円
3  M2 12mm Hex Socket Cap
Head Tapping Screw
 ebay : regan0331 Store : $2.89/50ea
M2 Hex Socket Cap Head Tapping Screw Black 304SS
 24円
4  26AWG 7.8cm Wire  Aliexpress:50pcs pcb solder cable
26AWG 7.8cm Fly jumper wire cable
    3円
5  BATTERY MODULE CASE  自作・材料費 熱溶解式/FDM 133円
5  BATTERY MODULE CASE  自作・材料費 光造形 240円
=  ========================  =========================== ======
1 費用総計  熱溶解式/FDM 591円
2 費用総計  光造形 698円

詳細:
1. Battery 輸送期間:
_ ebay の inmyeyes20 Store の輸送期間は 8〜9日です。
_ 最大販売個数は 6個です。輸送の都合と思われます。

1. Battery 公称値:
_ 現品表示は 1800mAh と書かれていますが、実測すると 1030mAh です。
_ Product Size: 4 * 3 * 0.5cm と書かれていますが 4.8 * 3.0 * 0.68cm です。

1. BATTERY SIZE と CASE:
_ M5STACK の Battery Module は 850mAh で US $21.10 です。国内は 2190円。
_ 850mAh Battery のサイズは 48 x 30 mm で 高さは 5mm です。
_ PROTO CASE の高さは 6.5mm で 内蔵出来る高さは 最大 5.7 mm です。
_ 703048 1800mAh の サイズは 同じく 48 x 30 mm で 高さは 6.8mm です。
_ 1.1mm 厚く( 6.8 – 5.7 = 1.1 ) PROTO CASE には収まりません。
_ 高さ 7mm が必要なため ケースを製作しました。

_ メモ:M5STACK に使用されている Model No. 503048 850mAh は
_    Aliexpress の ここ の製品と思われます。( $2.99 / piece : 341円 )

2. SLIDE SWITCH:1個 ¥11  (  $0.10 ):電源スイッチです。
_ WEMOS LOLIN32 に使用されている 基板用スイッチです。

3. M2 12mm Tapping Screw:4個
_ 輸送期間;ebay の regan0331 Store は 13日です。
_ BOTTOM 基板用の 5mm HEX Screw 4個 を 12mm に変更して止めます。
_ メモ:秋葉原・西川電子部品では M2 12mm Tapping Screw は 10mm まで
_    で 12mm はありません。西川電子部品の方は丁寧に教えてくれます。


製作:
1. BOTTOM BATTERY Module の 150mAh Battery と Wire を半田ごてで外します。
_ ⭕ 重要:外した 150mAh Battery は + (赤) Wire に 絶縁テープ等を貼り絶縁
_      します。ショートすると発熱や焼損の原因になります。
2. Battery, Switch, Wire を以下の様に配線します。
_ [ Battery + ] −> [ Switch ] –> [ Bottom BAT Pin ]。
_ [ Battery –  ] –> [ Bottom G ( GND ) Pin ]。
_ ⭕ 重要:Battery の + と GND を確認する事。
_ ⭕ 重要:テスターで極性を確認する事。
_ + – が 逆ですと 高価な M5STACK が壊れます。自己責任でお願い致します。

3. BATTERY MODULE CASE:3D Printer で作りました。
_ 右のアダプターは Switch と Battery を固定する為です。

3. ケースに組み立てます。
_ ケースに力が加わる配置をすると ケースが変形します。
_ 力が加わらない様に 設計時にアダプターや部品配置を考慮します。
_ 例:Battery の両サイドは ほんの僅か隙間を開けています。

4. 組み上げ後の外観。


BATTERY MODULE CASE の CAD 画像。

メモ:3D Printer の 精度:
_ PROTO CASE を固定する為に 噛み合わせの突起 (凸) の幅は 0.5mm です。
_ 3D Printer は 0.5mm 幅を出力出来る 精度が必要になります。
_ MakerBot 3D Printer:HEAD幅が4mm で 1LINE の積層しか作れません。
_  結果、強度が無く 力が加わると折れてしまいます。
_ Uprint 3D Printer:精度は良いですが HEAD幅が5mmで 現実は 8mm 出力幅です。
_  結果、5mm 幅が出来ません。
_ OBJET 3D Printer:精度は全く問題ありませんが 材料の強度弱く 変形する場合があります。
_ 公開されている幾つかのデーターは 突起 (凸)が無く 固定する事が出来ません。


Battery の公称値について
_ 表示には 1800mAh と書かれています。実測すると 1030mAh でした。
_ 実測方法は 18650 Battery Capacity と同じ方法で行いました。
_ 詳細:1回目   653mAh  (未充電)。2回目  1014mAh ( 満充電)
_    3回目  1030mAh (満充電) でした。
_    構成は定電流負荷でないため放電電流は250mA~200mA 程度です。
_ この電池の性能は比較的良い方だと思います。
_ 性能の明確なPANASONICの電池でも実測を行うと約20%程度少なく
_ 計測される前例があります。
_ 放電終了電圧が計測だと3.0V, 公称では2.9Vの違いがある事も要因です。


感想:
Battery module for Bottom:
_ 裏側のバッテリーも必要で製作しました。
_ ピッタリ収まった感触が良く 1800mAh の容量は 安心感があります。
_ さらに 電源スイッチは なかなか便利です。

BATTERY 容量:
_ 今回の Battery容量は疑問が多いです。
_ 高さが 6.8mm ですが 1800mAh と書かれています。⭕ 表示は偽かもしれません。
_ Model 703048 1000mAh は 7*30*48 と記載されたリストがあります。
_ Model 503450   850mAh , 5 * 30 * 48。
_ Model 703048 1000mAh , 7 * 30 * 48。
_ Model 853048 1200mAh , 8.5 * 30 * 48。
_ Model 103048 1500mAh , 10 * 30 * 48。
_ Model 103450 2500mAh , 10 * 34 * 53。保護回路(5mm)を移動し48mmにする。価格が$16.65で高い。
_ 公称値と実測値の違いに戸惑いますが 今回は この程度にしておきます。

費用:
_ 製作費用は光造形で 698円です。M5STACK 850mAh Battery Module の
_ 国内販売価格は 2190円 ですから 3個以上作る事ができます。


Written by macsbug

7月 8, 2018 at 8:00 am

カテゴリー: ESP32, M5STACK

Low price Battery Module of M5STACK

with 4 comments

340円で出来る
M5STACK用 電源スイッチ付 1300mAh Battery Module を作りました。 2018.06.23

容量のあるバッテリーが 常に装備されると 何かと便利になります。
電源スイッチ付き ですので 未使用時でもバッテリーは消耗しません。
M5STACK 本体側に接続し 後部にセンサー等の配置が自由に行えます。
M5STACK Store で販売されている PROT Module をスタックする事ができます。


費用について:

中古バッテリー総計:333円 = 80 + 19 + 3 + 11 + 120 + 100。

新品バッテリー総計:883円 = 80 + 19 + 3 + 11 + 120 + 660。


バッテリーについて:

使用する バッテリは CASIO NP-40 (生産終了品)です。
規格:3.7V、 1300mAh ( or 1230mAh )、 縦 38.2 x 横 37.8 mm 。
中古のバッテリーは 100円から200円で 総計 333円 です。
新品のバッテリーは ロワジャパン製で 660円で 総計 883円 です。
_ ロワジャパン : CASIO カシオ NP-40 互換 バッテリー CNP-40 : 1300mAh
注意:バッテリーは 並列接続しては いけません。
_ M5 の Battery Module や 裏蓋内にある バッテリー との並列接続は
_ してはいけません。理由:片側のバッテリーが消耗している場合
_ バッテリーからバッテリーへ電流が流れ 発熱や焼損の原因になります。

参考:Make a battery module for M5STACK:前回の Battery Module 製作記事です。


購入リスト:

No Nomen Purchase Price
1  ロープロファイルピンソケット
(低メス) 2×15 (30P) 5.7mm
 秋月電子通商:
ロープロファイルピンソケット
(低メス) 2×15 (30P) 5.7mm
80円
2  JST 1.25mm Connector  Aliexpress:Micro JST 1.25mm 2P 2-Pin Male Connector with Wire +Female Plug 20sets 19円
3  26AWG 7.8cm Wire  Aliexpress:50pcs pcb solder cable 26AWG 7.8cm Fly jumper wire cable   3円
4  SLIDE SWITCH  Aliexpress:100pcs 3 Pin PCB 2 Position DPDT 1P2T SMD SMT Vertical Slide Switch 11円
5  BATTERY MODULE CASE  自作・材料費 120円
6  BATTERY  秋葉原:杉本ビル ガレージショップ 100円
=  =======================  ============================== ======
. 費用総計  NP-40 中古品使用 333円
. 参考  NP-40 新品使用 883円

 


部品詳細:

1. ロープロファイルピンソケット (低メス) 2×15 (30P) 5.7mm:2個 ¥80 ( 1個 ¥40 )
秋月電子通商。


_ M-BUS コネクターの高さについて:
_  M5STACK は 小型化する為に 低いコネクターを採用しました。
_  この為 他のコネクターを接続し スタック出来ない事になります。
_  M5STACK の M-BUS コネクターの高さに合わせる 方法は
_  秋月電子通商で販売の ロープロファイルピンソケット (低メス) 2×15 (30P) 5.7mm
_  を 縦に2個接続 ( 5.7 x 2 = 11.4 mm ) する方法です。
_  M5 PROT CASE の高さは 6.5mm ですが 11mm になります。

2. JST 1.25mm Connector:1個 ¥19  ( $0.17 ):M5 BAT端子へ接続するコネクターです。
Aliexpress:Micro JST 1.25mm 2P 2-Pin Male Connector with Wire +Female Plug 20sets
_ 規格:Micro JST 1.25mm。

3. 26AWG 7.8cm Wire:1個 ¥3  ( $0.0194 )
Aliexpress:50pcs pcb solder cable 26AWG 7.8cm Fly jumper wire cable

4. SLIDE SWITCH:1個 ¥11  (  $0.10 ):電源スイッチです。
Aliexpress:100pcs 3 Pin PCB 2 Position DPDT 1P2T SMD SMT Vertical Slide Switch
_ このスイッチは WEMOS LOLIN32 に使用されている 基板用スイッチです。

5. BATTERY MODULE CASE:1個 120円  ( 12g ):材料代のみ。
_ CAD 及び 3D PRINTER で製作しました。高さは 11mm です。
_ 左の隙間は M-BUS用です。右上の 凹 は スイッチを取り付けます。
_ ケースを希望される方は Yahoo LODGE や Arduino 、M5STACK 等の
_ 集まり時に お渡し出来るかと思っています。

6. BATTERY:1個 100円。
NP-40 BATTERY : 秋葉原 杉本ビル ガレージショップ:中古カメラバッテリー
_ 通常1個 ¥200 ですが 10個とか まとめ買いで お姉さんに頼むと安くなります。
_ 他にバッテリーは沢山ありますが NP-40 だけを箱にまとめて 頂いています。
_ 新品は ロワジャパン CNP-40 があります。1個 660円。


配線:配線は3本のみです。
_ ⭕ 重要 :JST 1.25mm コネクターピンの + と – を入れ替えます。
_       ピンは細いピンセットの先でコネクターのロックを外して取ります。

_ 🔴 要注意:M5STACK の BATコネクターの極性は M-BUS 側が + ( Plus ) です。
_       市販されているワイヤー付き JST 1.25mmコネクターは M5STACK
_       とは 逆の配置です。何度も確認してください。

_ JST 1.25mm Connector + の 赤線 を SLIDE SWITCHへ ハンダ付けします。
_  + 赤線は そのままの長さで配線します。
_ JST 1.25mm Connector –  の 黒線 を BATTERY – へ ハンダ付けします。
_  GND線は 適した長さに切ります。
_ 26AWG 7.8cm Wire を SLIDE SWITCH と BATTERY + に ハンダ付けします。
_  ワイヤー は そのままの長さで 配線します。


組み立て:

重要な確認事項:
_ JSTコネクター を M5 BAT コネクターに 接続する前に 必ず テスターで
_ 電圧の極性を確認してください。再確認は電源接続の基本です。
_ M5STACK 側の BAT コネクターの + と – の位置を確認してください。
_ 下の画像にある M5 BAT コネクターの左側が + ( plus ) です。
_ + – が 逆ですと 高価な M5STACK が壊れます。
_ くれぐれも 自己責任でお願い致します。

_ M5STACK M-BUS に ロープロファイルピンソケット(低メス)
_  2×15 (30P) 5.7mm を 縦に2個接続します。

_ BATTERY の取り付けは SWITCH 側に寄せて SWITCH を固定します。
_  両面テープでケースに止めます。


HEX SCREW SIZE:上記の製作では 六角スクリューの長さは 30mm となります。
_  六角スクリューが 無い場合は 秋葉原・西川電子部品に + 30mm ネジがあります。


感想:

バッテリー容量:
_ M5の裏蓋にあるバッテリーは 150mAh で容量は少ないです。
_ Battery Module ( $18.90 ) は 850mAh で これも不足気味です。
_ PROT CASE の内部で試用できる厚さは 5.7mm ( 6.5 – 0.8 mm:PCB) です。
_ このサイズに入る BATTERY は 850mAh になります。

_ 同じ縦横サイズで 1800mAh の物がありますが、厚さが 6.6mm で
_ PROT CASE には 入りません。
_ 1800mAh は ebay にて 365円で販売されています。輸送期間は 8日です。
_ このバッテリーを使用した製作は 後日 行う予定です。

国内価格:
_ スイッチサイエンスの M5Stack用電池モジュール は 2190円 と高いです。
_ 約340円で出来ますので 6個程作れる事になります。

バッテリーと配線方法:
_ バッテリーは ワイヤーをハンダ付けしました。
_ 他の方法として POD PIN を使用する方法があり、バッテリーを抜き差し
_ する事ができます。この方法は 課題として検討中です。

CAD データー:
_ CAD のデーターは 使用するプリンターによって異なります。
_ 特に M5STACK は 小型の為に 精度の低いプリンターでは 作る事が
_ 出来ない部分があります。
_ そのノウハウを踏まえ 今回のケースを作りました。


Written by macsbug

6月 23, 2018 at 7:00 pm

カテゴリー: ESP32, M5STACK