macsbug

LovyanGFX LCD Graphics driver

leave a comment »

LovyanGFX LCD Graphics driver              2020.07.02

LovyanGFX
. らびやん(lovyan03)氏作成による ESP32 ( M5Stack ) や
. SAMD51 ( Wio Terminal ) の LCDグラフィックスドライバーです。
. Hardware SPI LCD Display に対応し高速に動作させる事ができます。
. 解説と使用方法は LovyanGFX に丁寧に書かれていますので お読み下さい。
. 開発された らびやん(lovyan03)氏に感謝致します。

Pacman
M5Stack Library : 9〜18 msec から
LovyanGFX Library : 1〜2 msec を達成!
PACMAN_Joy_GFX.zip

.
Boing Ball:TFT_e SPI / DMA Test にある example です。
. Wio Terminal の Seeed_Arduino_LCD Libraryは DMA機能無し。
. Wio Terminal + LovyanGFX と M5Stack + LovyanGFX を動かす。

Boing Ball
Wio Terminal + LovyanGFX : 232 fps
M5Stack + LovyanGFX : 175 fps
Wio Terminal : Wio_boing_ball_GFX.zip
M5Stack : boing_ball_GFX.zip

. * DL file は pdf です。.pdf を削除し .zip を解凍します。
.
Target Display: ILI9341, ILI9342, ILI9486, ILI9488, ILI9163, HX8357,
_ ST7735, ST7789, SSD1351
_ M5Stack は ILI9341, ILI9342。 Wio Terminal は ILI9341 です。

使用方法:3つの方法。
1. LovyanGFX のみで使用。
2. M5Stack と共存:M5Stackの命令を使用可能。例: Switch操作。
3. ESP32-Chimera-Core と共存:M5Stackの命令を使用可能。

使用機種と価格:ESP32 / SAMD51 : 2020.06.26

No. Nomen Purchase Price
1 ESP32-DevKitC 秋月電子通商 1480円
2 ESP-WROOM-32D 秋月電子通商 1480円
3 ESP32 Development
, same as No.1
LANDZO ELECTRONIC
, $5.54+$1.05=$6.59
705円
4 ESP32-WROOM-32D
, same as No.2
Diykitmall Store
, $3.91+$1.02=$4.93
528円
5 D1 mini ESP32 Buy Go Go Store Store
, $3.67+$0.78=$4.45
477円
6 M5Stack Basic ( ESP32 ) M5Stack Official Store
, $27.95+$8.36=$36.31
3890円
7 M5Stack Gray ( ESP32 ) M5Stack Official Store
, $33.95+$8.36=$42.31
4533円
8 M5Stack Fire ( ESP32 ) M5Stack Official Store
, $49.95+$10.25=$60.20
6450円
9 Wio Terminal (SAMD51) 秋月電子通商:3680円税込 3680円
10 Wio Terminal (SAMD51) marutsu :3700円税抜 3996円
11 Wio Terminal (SAMD51) FeedoK Store,:$50.60 5414円


使用方法:
1. LovyanGFX のみで使用:LovyanGFX : lovyan03 : ver 1.0.14
. 以下 A, B 2つの いずれかで DLします。
. A:github から LovyanGFX をDL。
. B:Arduino IDE/Sketch/include Library/Manage Libraries..でインストール。
.   
. 動作確認: LovyanGFX 内にある examples を試します。
.  サンプルは 驚異的な速度で動きます。
.
. 事例:機種とスケッチ:Wio Terminal ( SAMD51 )
. 詳細:動作状況に記載。
. 結果:
. Wio Terminal + LovyanGFX で 約4秒 から 2秒 。2倍の高速化を達成!

Wio Terminal + LovyanGFX:2sec


2. M5Stack と共存:
. LovyanGFX には 「include M5Stack.h より後に include LovyanGFX.hpp を書いてください。
.  M5.Lcdは使わずに、別途LGFXのインスタンスを用意して使用してください。」
.  と書かれています。
. M5.Lcd を tft への変更は 手間がある事と 全てを熟知していない為に 今回は省きます。

.
3. ESP32-Chimera-Core と共存:M5Stackの命令を使用可能。
. LovyanGFX には「ESP32-Chimera-Core を利用すると、M5.Lcd が
.   LovyanGFX になります。」と書かれています。
. 開発環境:Arduino IDE 1.8.13
. Library 準備:Versionは最新版を確認。多くのエラーは Ver の不一致です。

. 1. ESP32-Chimera-Core の入手:3つの方法。
. Libraryに M5Stackがあれば Library Folder外に移動しておきます。
.   理由:ESP32-Chimera-Core には M5StackのLibraryが含まれ重複する為。
. A. ESP32-Chimera-Core : tobozo : 左記のURLからDL。
. B. ESP32-Chimera-Core-lgfx : lovyan03 : 左記のURLからDL。
.   A 又は B を DL し Library Folder へ入れます。もしくは 以下の
. C. Arduino IDE/Sketch/ include Library/Manage Libraries..でインストール。
.   
.
. 2. LovyanGFX の入手と配置。
.   LovyanGFX : lovyan03 : ver 1.0.14 : 左記のURLからDL。
.   又は 以下の方法で Library内にインストール。
.   Arduino IDE/Sketch/ include Library/Manage Libraries..でインストール。
.   
.   配置:ESP32-Chimera-Core 又は ESP32-Chimera-Core-lgfx の中の
.   src folder / LovyanGFX folder があります。
.   LovyanGFX folder の中は 空の為、C の LovyanGFX Folderを
.   手動で src folderに入れます。配置は以下の様になります。
.   
.  これで ESP32-Chimera-CoreLovyanGFX Libraryが使用できます。

. 3. スケッチの事例:以下は基本的な記述です。
.   Know-how:以下の2つは 効果があります。
.   #pragma GCC optimize (“Ofast”)
.   M5.Lcd.startWrite();

#pragma GCC optimize ("Ofast")
#include <ESP32-Chimera-Core.h> // Contains LovyanGFX
#include "M5StackUpdater.h" // SD-Upadate
void setup() {
M5.begin();
M5.Lcd.startWrite(); // GFX
Wire.begin();
if(digitalRead(BUTTON_A_PIN)==0){updateFromFS(SD);ESP.restart();}
M5.Lcd.setRotation(1);
M5.Lcd.fillScreen(TFT_BLACK); }

動作状況:
. 1. M5Stack Fire ( ESP32 ) と Wio Terminal ( SAMD51 )
.  M5Stack , Wio Terminal と Library の速度
.  Wio Terminal は M5Stack より 速い。
.  メモ:LovyanGFXの効果は 命令にもよります。
.     M5.Lcd.pushImageDMA 命令は高速で動作します。
. 2. スケッチ:Raytrace:drawPixel , fillRect 命令を使用。

tft.drawPixel(x, y, RGBTO565(r,g,b));
tft.fillRect(x, y, q, q, RGBTO565(r,g,b));
Model / result Library Time
sec
Source
M5Stack Fire M5Stack 6.280 Raytrace_M5Stack.zip
M5Stack Fire ESP32-Chimera-Core 3.875 Raytrace_GFX.zip
M5Stack Fire LovyanGFX 3.862 Raytrace_LovyanGFX.zip
Wio Terminal Seeed_Arduino_LCD 3.362 Wio_Raytrace_sd.zip
Wio Terminal LovyanGFX 1.945 Wio_Raytrace_GFX.zip

.

Wio Terminal
Sketch / Library LovyanGFX memo
Raytrace 動作状況 参照
Tetris Wio_Tetris.zip
Packman Wio_Packman.zip
nixie_tube_clock Wio_nixie_tube_clock.zip
audio_spectrum_display Wio_audio_spectrum_display.zip
uncannyEyes Wio_uncannyEyes_GFX.zip
ThermalCamera ThermalCamera_GFX.zip : 4 fps
Thermal_Camera_AMG8833 Wio_ThermalCam_AMG8833_GFX.zip
, 5 fps が 13 fps にアップ。2.6 倍向上。

.

M5Stack
Sketch / Library LovyanGFX memo
uncannyeyes M5_uncannyEyes_GFX.zip
.
.

.
. ゲームは 高速化と共に 適度な速度が必要です。
. 上記のSketchは 参考程度にしてください。

🍎 高速化のノウハウ:Pacman
. 抽画は DrawIndexedMap.h 内の drawFastHLine 1つで書かれています。
. この様に 抽画は1つでできており優秀な記載方法で勉強になります。
. これを LovyanGFX の pushImageDMA で記載すると高速になります。
.

// Original
#define C16(_rr,_gg,_bb) ((ushort)(((_rr & 0xF8) << 8) | 
                  ((_gg & 0xFC) << 3) | ((_bb & 0xF8) >> 3)))

void drawIndexedmap(uint8_t* indexmap, int16_t x, uint16_t y) {
  byte i = 0;
  uint16_t color = _paletteW[indexmap[0]];
  for (byte tmpY = 0; tmpY < 8; tmpY++) {
    byte width = 1;
    for (byte tmpX = 0; tmpX < 8; tmpX++) {
      uint16_t next_color = _paletteW[indexmap[++i]];
      if ((color != next_color && width >= 1) || tmpX == 7) {
        M5.Lcd.drawFastHLine(x + tmpX - width, y + tmpY, width, color);
        color = next_color;
        width = 0;
      }
      width++;
    }
  }
}

.

// Revision
#define C16(_rr,_gg,_bb) lgfx::swap565(_rr, _gg, _bb)

void drawIndexedmap(uint8_t* indexmap, int16_t x, uint16_t y) {
  static uint16_t dmabuffer[2][64];
  static bool dmaflip;
  int i = 0;
  do {
    dmabuffer[dmaflip][i] = _paletteW[indexmap[i]];
  } while (++i < 64);
  M5.Lcd.pushImageDMA(x, y, 8, 8, dmabuffer[dmaflip]);
  dmaflip = !dmaflip;
}

🍎 高速化のポイント:以下の宣言や変数の設定により速くなります。
.  #pragma GCC optimize (“Ofast”) : 冒頭に記載。速度優先のビルドが行われます。
.  M5.Lcd.startWrite();       : M5.begin(); の後に記載する。
.  int_fast8_t  : int8_t を 置き換えると バイナリサイズが小さくて動作が速くなる。
.  int_fast16_t  : int16_tを 置き換えると バイナリサイズが小さくて動作が速くなる。
. 
.  32bitCPU に 8bit や 16bit の変数は 余分な処理が増え バイナリが大きく遅くなる。
.  最終的にコンパイラによってint32_tと同じものとして扱われる。
.  コンパイラはCPUに合わせて最適なサイズを選ぶ。
.  人の目で見ても必要なバイト数が判断できる。
.  for (uint8_t i = 0:節約のつもりが逆に遅くなる。
.  int_fast~ は 記述が長くなり 特に型に頓着しない場合は 素直に int が無難。
.  1つ1つの記述で 効果があり 楽しくなります。
.  DMA 命令:initDMA, waitDMA, pushPixelsDMA, pushImageDMA
. 
.  スケッチの事例:PACMAN_Joy_GFX.zip:232 FPS
.  
.  上記のノウハウは らびやん氏に教えて頂き 大変勉強になりました。
.

参照:
2020.04.12:lovyan03/LovyanGFX:公開。Twitter情報。
2020.04.29:ラズパイスキ ノ ニッキ:LovyanGFXの導入の仕方
2020.05.01:Lang-ship:M5StickCのDisplay周り解析 その4 LovyanGFXで高速描画
2020.05,20:HomeMadeGarbage:MakePython ESP32 Color LCD で LovyanGFXを堪能
2020.05.20:Qiita, @karaage0703:M5 Stack/M5 StickC/Wio Terminalで使える
_      高性能グラフィックライブラリ「LovyanGFX」
2020.05.30:Arduino Library List:LovyanGFX: First Release Date:2020.05.30
2020.06.04:Lang-ship:M5StackでLovyanGFXを試す その1 メモリの確認
2020.06.29:Qiita, @poruruba:LILYGO TTGOのT-Wristbandで
_      グラフィックライブラリLovyanGFXを使ってみた
2020.xx.xx:ArduBadge:What is LovyanGFX?

感想:
画像表示好きで 夢は 高速の Graphics Library。
各種Display や M5Stackの Library は 使用できますが さほど高速で無い。
まして 自分で高速 Libraryを作れるベレルは無し と言う壁に突き当たる。
行き着いたのは Bodmer氏の TFT_eSPI Library。

2017.08.end:M5Stack もどき。
2017.09.12:M5Stack Copy版入手。
2017.10.24:公式 M5Stack Store 販売開始。
2017.11.18:M5Stack:M5Stack Storeから着:2017.10.23-2017.11.18

2020年4月12日に念願の LovyanGFX が公開されました。
早々にサンプルを試し、その高速性に驚きました。
どうして ここまで 速く動くのか? レベルが高すぎるが楽しい!
LovyanGFX Library の中を見ると 莫大な量と高度な内容に圧倒されました。
複数の機種や多種類のSPI LCD Displayにも対応した配慮も同様です。
TFT_eSPI Libraryは 現在のSprite装備まで長年かかって進化した経緯がある。
それに対し 短期間にこれだけの内容が出来た事に驚き そのパワーに驚嘆します。
その事は LovyanGFX Library に書かれている事とCredits に書かれている
方々の謝辞にもあります。
これほどまでの内容を作れる らびやん氏に 敬意と感謝の限りです。

ESP32-Chimera-Core:
Library には M5Stack が含まれています。使用する時は M5Stack を外します。
Library には ScreenShot 機能があり 画面をSDに保存できます。
画面の画像を使用する事により 綺麗で解りやすくできます。

この記事の記載は 2020.07.02。力量不足により内容の不備があるかと思います。
Library の Version 変更や方式の変更で 内容が変わる事も考えられます。

 

 


LovyanGFX , TFT_eSPI , らびやん , lovyan03 , Bodmer , tobozo , M5Stack ,
Wio Terminal ,

Written by macsbug

7月 2, 2020 at 8:10 am

カテゴリー: ESP32, M5STACK, Wio Terminal

M5 Expansion Adapter for Wio

leave a comment »

M5Stack Interface を使用できる Wio Expansion Adapter の製作    2020.06.24

費用:430円
Wio + Expansion (Blue) の横に M5 Expansion Adapter (Black) を接続し
「M5Stack用のInterface」を そのまま上に乗せて使用できます。

M5 Expansion Adapter:430円 M5 OscilloScope Interface


.
事例:オシロスコープ・アダプターを接続。


.
参照:Make a case of M5STACK ESP32 Oscilloscope:M5Stackでオシロ。

.
参照:Expansion Module with battery for Wio:Wioに拡張コネクター増設。

.
参照:マイコンで遊ぶ:オシロスコープ(もどき) W2B/Wio Terminal
_ ごじ氏作成の Wio Terminal用の WB2オシロスコープ を
_ Wio Expansion に 表示しました。ごじ氏に感謝!


.
部品:

No. Nomen Purchase Price
1 ユニバーサル基板
秋月電子通商:ユニバーサル基板
, 1.2mm 厚 B type 95x72mm 240円
, 0.3mm 厚 B type 95x72mm 200円
240円
2 ピンヘッダー (オスL型)
, 2×40
秋月電子通商:
, ピンヘッダー (オスL型) 2×40, 2x20Wio Extension と接続する。
50円
3 ロープロファイル
, ピンソケット (低メス)
, 2 x20 5.7mm
秋月電子通商:低メス 2×20 5.7mm 40円
4 ロープロファイル
, ピンソケット (低メス)
, 2×15 5.7mm
秋月電子通商:低メス 2×15 5.7mm

M5Stack Interface を接続する。

40円
4 ピンソケット (メス) 1×8
秋月電子通商:
, ピンソケット (メス) 1×8
30円
5 CASE
自作:3D Print : ABS 9g ( 1g 3円 )
, 出力時間:53分。
, 使用機種:MakeBot Replicator 2X
, CAD DL : M5_expansion_adapter.zip
27円
6 両面テープ
7 ジュンフロン線
TOTAL 427円

注:ジュンフロン線と両面テープの費用は省きます。


.
工作:Wio Terminal to M5Stack 変換基板:40pin to 30pin

配線:上は M5Stack 30pin、下は Wio Terminal 40pin

. Oscillo Scope の配線:Greenの配線(Wio DA,SDA)を使用します。
. ごじ氏 製作のオシロスコープで最高傑作の作品です。ごじ氏に感謝!
. 説明、配線、ソフトのDLは 下記を参照ください。
. 参照:マイコンで遊ぶ:オシロスコープ(もどき) W2B/Wio Terminal

Connector Wire

.
高さ:Wio との接続の為に 基板と配線の厚さを最薄にする必要があります。
1. ケースの高さは 12mm です。
2. L Type Connector は 基板の位置を低くする為に 使用しています。
3. 0.26mm幅の Wire は 交差して重ならない様に配線しています。
.  コネクターハンダ面の高さを 極力低くします。
.  PCB にすると Wire の太さは無くなります。
4. ケース下面の厚さは 1mm です。
5. 基板の固定は 両面テープです。ケースの取り付け 取り外しに耐える粘着力。

 

Expansion Connector と 基板 Wioと接続するL型 Connector
左:Wio 40pin。右:M5 30pin Wio Extension と同じ高さになる

 


.
ケース:
CAD DATA DOWN LOAD:
. ブラウザー上で M5_expansion_adapter.zip を選択し ブラウザーのファイル /
.  「別名でページを保存..」で Fileを Down Loadします。
. File は PDF形式で DL後に File nameを xxx.zip ( .zip ) に変更します。
. xxx.zip を解凍すると M5_expansion_adapter Folder ができます。
. Fusion 360 は dwg (編集可能) を使用します。
. MakerBot Replicator 2X は stl, x3g(Scale To : 101.45, Layer Height : 0.40mm)。
. Stratasys‎ F370 は M5_expansion_adapter-dwg folder の stl を使用します。

 


.
感想:
. M5Stack用の Stack Moduleを使用する為に製作しました。
_ Wio の後ろに接続するよりも 横に接続した方が便利です。
. M5Stackでは Expansion用としてダイレクトに横に接続する
_   Moduleも製作しましたが 今回はスタック用のAdapterを使用する方法です。
. 他のAdapterとして ダイレクトに横に接続するタイプと
_ Wio 40pin 接続のAdapter 構想があります。
. ケース:下側のケースは製作しましたが 上のカバーは製作していません。
. 上側のカバーは まだ 構想が練り上がっていません。

 


Wio Termainal , Expansion , M5Stack , WB2 , オシロスコープ , OscilloScope ,

Written by macsbug

6月 24, 2020 at 9:23 am

カテゴリー: Wio Terminal

Expansion Module with battery for Wio

leave a comment »

Wio Expansion Module の製作。                  2020.06.19

携帯ができ 必要な時にセンサーを横に接続する事ができます。

内蔵:Battery , Power Switch , RTC Module
費用:1250円

機能:
1. Sensor や Groveを 必要な時に接続し 不要な時は簡単に外せます。
2. Wio Terminal は ExtFlashLoaderExpansion により1台で済みます。
3. Battery内蔵により 携帯できます。
4. Switchで BatteryをON/OFFできます。
5. RTC内蔵により時計が使用できます。
6. USB や GROVE の Wire が露出せず 綺麗になります。
7. Wio Terminal を縦に置く事ができます。

仕様:
1. Extension Connector : RPI BUS , 2×20 40pin
2. Battery : 3.7Vdc 2000mA
3. Power Switch
4, DS3431 RTC Module
5. USB Charger : Input 5V, output 3.7-4.2V, max 1A , protect 2.5V/3A
6. DC-DC Converter : input 2-24V , out 5-28V , out current max 2A
7. CASE : 71x56x18 mm

方法:Batteryを内蔵し RPI BUS 40pin を 横に配置します。


.
Expansion Module の構成と比較:
Wio Terminal と M5Stack Expansion , Expansion Adapter
高さ:
. Wio は 12mm, Expansion は 18mm, 合計 30mmの高さ。
. M5 は 12mm, Expansion は 18mm, 合計 30mmの高さ。
. 同じ高さにより Expansion Adapter は 利用する事が可能です。
. 同じセンサーを使用出来る事は 製作時間の節約や経済的になります。


.
部品:

No. Nomen Purchase Price
1 ユニバーサル基板
秋月電子通商:B type 95x72mm 200円
2 ピンヘッダー 2×20
秋月電子通商:pin header 2×20 50円
3 L型ピンソケット2×20
秋月電子通商:L型 2×20
, 2pcs
200円
4 Schottky Barrier Diode
, RSX101VAM-30
秋月電子通商:RSX101VAM-30 9円
5 ピンヘッダー 1×6
秋月電子通商:ピンヘッダー 1×6 20円
6 基板用スライドスイッチ
秋月電子通商:SK-12D01-VG4 30円
7 DS3231 RTC Module
Aliexpress : worldchips

, DS3231 RTC

126円
8 Lithium Battery Charger
Aliexpress : Great IT electronic
, $0.5
54円
9 DC-DC Step Up Conv
Aliexpress : A+++ Electronic sales
, $0.49
53円
10 Insert nut, M3x3,4mm
ebay : huanshop2015 4mm M3x3
, 25pcs $0.92 ( 99 円 ) , 2pcs
8円
11 M3 Plastic Screw 10mm
Aliexpress : Hundred Years Store
, 50pcs $1.69 ( 182円 ) , 2pcs
7円
12 103450 : 2000mA Lipo
Aliespress : DEAH Online Store
, $3.96
, 50x34x10mm
426円
13 ピンヘッダ(L型) 2p 秋月電子通商:ピンヘッダ(L型)1×6 10円 4円
14 ピンソケット(メス) 2p 秋月電子通商:ピンソケット(メス)1×2 15円
15 CASE
自作:3D Print : ABS 12g ( 1g 3円 )
, 出力時間:53分。
, 使用機種:MakeBot Replicator 2X
, CAD DL : Wio_Expansion_case.zip
32円
TOTAL 1231円

注:配線の為の ジュンフロン線の費用は省きます。


.
工作:

RPI 40pin と Power Line の配線。
1. RPI 40pin の配線:40pinから 横の 40pin へ配線します。

. 基板サイズは 95x72mmをカットし 67x 52mm(26×20 スルーホール) です。
. RTC は Wio Simple Battery 参照の事。

 
2. Power Line の配線。

電源回路の概略:
. DC-DC Converter:出力は Variable resistar を調整し 5V にします。[重要]
. DC Coverter output 5V の接続先は RPI 5V です。
. 注意:出力は最大28Vで 未調整の場合は Wioの電源を壊す恐れがあります。
. Wio内の電源:RPI 5V への最大入力電圧は 6V です。
. 今回の接続で RPI 5V が 6V以上の保護回路は付いていません。
. RPI 5V -> Switch -> USB_5V -> MP2161GJ DC-DC ( VIN 2.5V to 6V ) -> VCC_3V3

ケース:
CAD DATA DOWN LOAD:
. ブラウザー上で Wio_Expansion_case.zip を選択し ブラウザーのファイル /
.  「別名でページを保存..」で Fileを Down Loadします。
. File は PDF形式で DL後に File nameを xxx.zip ( .zip ) に変更します。
. xxx.zip を解凍すると Wio_Expansion_case Folder ができます。
. Fusion 360 は dwg (編集可能) を使用します。
. MakerBot Replicator 2X は stl, x3g(Scale To : 101.45, Layer Height : 0.40mm)。
. Stratasys‎ F370 は stl (上) を使用します。

ネジ止め:M3 Insert nut を取り付けます。
ネジ止めの穴:Expansion Board と DC-DC Converter に ネジ止めの穴を空けます。
注意:DC-DC Converter の穴の位置は + と – 間で Short しない様に加工し
. ネジは Plastic を使用します。場所が狭く此処しかありません。
縦の高さ:縦に平らに置くには Wio と同じ高さにする事が重要です。
. Printerの機種により 図面と出力の差がでます。
. Wio と同じ高さにする為に 寸法を調整する必要があります。
. ケースの形状は 片方が開放で 時間経過による変形は試していません。

 


.
M5Stack Expansionの 事例:

M5Stack Extension Module:2018.12.29
GROVE and Bled Board
Push Button and Joystick

上記の 3D Printer Data は 以下の Thingiverse にUPしてあります。
MakerBot Thingiverse:3D Printer Dater UPdate:2020.02.12
1. M5Stack Extension Module by macsbug
2. M5Stack Push Button by macsbug
3. M5Stack Joystick by macsbug
4. M5Stack BreadBoard by macsbug
 


.
感想:
USB Cable:不要で持ちやすくなり 縦に置く事が可能になりました。
手配線:Wireは多層になりました。PCB製作時は 2層で配線出来るか不明です。
バッテリー:入手方法で価格が変わります。低価格で正しい容量を捜します。
_ 今回のBattery よりも大きなサイズは 左の 40pin conn を外し DC-DC Conv
_ の位置を外側へずらすと入ります。
Connector:B級品の中国製よりも国内の秋月電子通商の方が品質が良いです。
課題:部品配置が一杯で Wio と Expansion の固定は 40pin conn で行なっています。
_ 固定方法が課題です。
Expansion Adapter:外部接続する Adapter は 次回製作の予定です。

Wio Oscilloscope:Wioが テクトロオシロ になる。
_ ごじ氏 製作の WB2 オシロスコープ が Wio Terminal版(ExtFlashLoader対応) と
_ M5Stack版(LovyanLauncher対応) で完成!
_ bin file でSDから実行でき 難なく動きました。
_ 井田氏のExtFlashLoader と ごじ氏のWB2 と 今回のExtension ケースにより
_ 出来たタイミングが凄い。お二人に感謝!

 


Wio Terminal , Expansion , Battery , Power Switch , RTC ,

Written by macsbug

6月 19, 2020 at 6:38 am

カテゴリー: Wio Terminal

Wio Ext Flash Loader

leave a comment »

Wio Terminal Application with Ext Flash Loader    2020.06.09

必要なスケッチを 必要な時に使用する事ができます。

プログラムを簡単に作れる から プログラムを簡単に使う レベルへ進化:
. Ext Flash Loader は SDにあるSketchを直ぐ動かす事ができます。
. 多数のSketchでも Wio Terminal は 1台で済みます。
. PCとArduino IDEでの書き込みは不要で便利です。
. Libraray等の変更によるソースの見直しやエラー対策は不要です。


.
Library:ExrFlashLoader の入手。
Down Load は Arduino Library Manager  に登録されています。

.  
github は ExtFlashLoader ver 0.1.1 2020.06.07 です。
.  
サンプルスケッチの WriteSampleMenu.ino を使用し
Wioにメニューアプリを書き込みます。
詳細は github ciniml の ExtFlashLoader をお読み下さい。
作者は 井田 健太氏 ( Kenta IDA ) の力作で 深く感謝致します。

使用条件:
1. メニューアプリ WriteSampleMenu.ino を実行します。
2. Micro SD に メニューアプリ対応の Sketch ( bin ) を保存します。

使用方法:
1. Reset Buttonを押しながら A Buttonを押し Reset Buttonを離す。
2. Menu が表示されます。A Buttonを離す。
3. 5 Way Switch を上下に動かし Sketchを選択し Pushします。
4. Reset Button を 押すと Sketch ( bin ) が動きます。
. 


.
スケッチ:
_ 以下の表から ExtFlashLoader 対応の Sketchを Down Loadできます。
_ ブラウザー上で Down Load を選択し ブラウザーのファイル /
_  「別名でページを保存..」で Fileを Down Loadします。
_ File は PDF形式で DL後に File nameを xxx.zip ( .zip ) に変更します。
_ xxx.zip を解凍すると Sketch Folder ( bin ) ができます。
.  

_ SD:SD内に apps Folderを作り apps Folderの中に Sketch Folder
_    ( bin ) を配置します。

.  

以上により 必要なスケッチを 必要な時に 使用する事ができます。

 

app.png Nomen / Down Load Date Memo
UncannyEyes

uncannyEyes

2020
06.06
5 Way Switch

BLOG

Nixie Tube Clock

nixie_tube_clock

2020
06.06
with DS3231 RTC
, Listed below
, BLOG
Audio Spectrum Display

audio_spectrum_display

2020
06.06
Inner MIC
, 5 Way Switch
, BLOG
Space Shooter

Space_Shooter

2020
06.06
Button &
, 5 Way Switch
, BLOG
Clappy Shooter

Clappy_Shooter

2020
06.06
Button &
, 5 Way Switch
, BLOG
3D Color Cube

3D_COLOR_CUBE

2020
06.06
BLOG
Raytrace

Raytrace

2020
06.06
BLOG
3D Cube

3D_Cube

2020
06.09
BLOG
Snake

Snake

2020
06.09
5 Way Switch
, BLOG
Maze generator

Maze_generator

2020
06.09
IFS fractals 1

IFS_fractals_1

2020
06.09
IFS fractals 2

IFS_fractals_2

2020
06.09
Reversi

Reversi

2020
06.09
5 Way Switch
, Shioken
, m5_reversi
GAME 1

GAME 1

2020
06.06
T…
, Button &
, 5 Way Switch
, BLOG
GAME 2

GAME 2

2020
06.06
P…
, 5 Way Switch
, BLOG

 


.
Wio Terminal と DS3231 RTC の接続:
_ RTCは 左から GND, – , I2C1_SCL , I2C1_SDA , 3V3 へ接続します。
_ RTCの 価格は 約100円。
.  


.
メモ:
USB 接続:Arduino IDE で書き込めない時があります。
_ 理由は USB が接続されていない場合に起きます。
_ 方法は Reset Button を素早く2回押します。
_ USB が接続されると Arduino IDE の Port に /dev/cu.usbmodem14121
_ や MacのFinder に Icon が表示されます。
.  


.
感想:
ハード:Display, 5 way Swicth, SD, Case のオールインワンで理想的。
ソフト:Ext Flash Loader により Wio Terminal の性能が向上します。
. M5Stack SD-Updater と同じ事が可能になりました。
センサー:Wioに直結接続できるケースに収め 取り付け取り外しが
可能なハードが理想的。

プログラムを簡単に使うレベル:
. スケッチは 「必要な時に 必要なスケッチ」を選択でき
. ハードも  「必要な時に 必要なハード」 をガチャポンと簡単に出来る。
. Arduinoは 2005年に 安価で簡単に使用できるものの開発に成功。
.  その後、多くのハードとソフトが出現し多くの人が間髪できる様になる。
.   Ext Flash Loader は「プログラムを簡単に使う」人の世界まで進化しました。

Wio Terminal の不足点:
購入時に WiFi が使用出来ない:
_ セットアップが面倒。Widows用の案内はあるがMac用は無い。
_ 商品の段階で WiFi 機能が使用出来ないのは 欠陥です。
表示:Displayの端が表示されない。Panelの黒枠が小さく端が隠れる。
Battery Module:投稿時には販売されていない為 不便。
USB の位置  :下側にはみ出し 邪魔になり 美観が悪い。
Groveの位置:下側にはみ出し 邪魔になり 美観が悪い。

 


Wio Terminal , SD , Ext Flash Loader ,

Written by macsbug

6月 9, 2020 at 7:25 am

カテゴリー: Wio Terminal

Wio ThermalCamera

leave a comment »

Wio Terminal で seeed の Thermal Camera Library を試す。   2020.06.02

 

seeed の Thermal Camera Library:70 x70 を実現 ! !
Build a IR Thermal Imaging Camera using Wio Terminal
seeed 製の Grove – Infrared Temperature Sensor Array (AMG8833)
を使用します。
Wio Terminal 左下の GROVE ( defoult I2C ) に 接続し動作します。
defoult I2C は RPI Connector の I2C1_SDA (pin 3) と I2C1_SCL (pin 5)
に接続しています。


.
使用方法:2種類の AMG8833 Module

◯ seeed製 AMG8833 Board
_ Library は Seeed_AMG8833 を使用し 構成は
_ Seeed_AMG8833_driver.cpp と Seeed_AMG8833_driver.h です。
_ Moduleの I2C Address は 0x68 又は 0x69 をセレクト可能。default は 0x68。
_ Library の Seeed_AMG8833_driver.h の中で address は 0x68 固定です。
_ よって Hard と LIbrary の組み合わせで問題無く動作します。
_ AMG8833 は 8 x 8 ですが 70 x 70 を実現しています。

 

⭕ seeed製でないコンパチの AMG8833 Board:今回の例。
_ 前回記事:Wio Thermal Camera AMG8833 の製品。
_ この配線は I2C1_SDA (pin 3) と I2C1_SCL (5) に接続しています。
_ AMG8833 Board の I2C Address は 0x69 です。
_ Library の Seeed_AMG8833_driver.h の address は 0x68 固定です。
_ よって Address が合わず 動きません。
_ 解決方法:
_  Library Seeed_AMG8833_driver.h の 68 を 69 に変更します。
_ 
_  Addressが一致し 動作します。

 


.
スケッチ:
_ 修正済みのファイルです。
_ ThermalCamera.zip を DL します。
_ DL 後に Wio_Thermal_Camera_.pdf の末尾 _.pdf を消します。
_ Wio_Thermal_Camera.zip を解凍します。
_ フォルダーの内容は 以下です。
_ 


.
感想:
AMG8833 は 8 x 8 で これまで最高の補間体験は 24 x24 でした。
Seeed AMG8833 の Library は 70×70 を実現し素晴らしいです。


Wio Terminal , AMG8833 , 8×8 , 24×24 , 70×70 , Seeed_AMG8833

Written by macsbug

6月 2, 2020 at 8:42 pm

カテゴリー: Wio Terminal

Wio Thermal Camera AMG8833

leave a comment »

Wio Terminal で AMG8833 Thermal sensor を 動かしました。    2020.06.01

費用:4200円 ( 購入時の価格 ) , ( 4700円 : 2020.06.01 時の価格 )

機能:8 x 8 を 補間し 24 x 24 の表示になっています。
操作方法:
MODE, SCALE , PAUSE を表示。
_ MODE は SMIN – + , SMAX – + の操作で温度範囲を増減します。
_ 詳細は m600x / M5Stack-Thermal-Camera を参照下さい。
_ 

AMG8833:基板に Connector を取り付け AMG8833 を装着します。
_ ケース:M5Stack と 共通で使用できる Extension 方式を予定し
_     今回 ケース作りは省略しました。

 


.
スケッチ:
_ Wio_Thermal_Camera_AMG8833.zip を DL します。
_ DL 後に Wio_Thermal_Camera_AMG8833_.pdf の末尾 _.pdf を消します。
_ Wio_Thermal_Camera_AMG8833.zip を解凍します。
_ フォルダーの内容は 以下です。
_  
資料:事前にAMG8833 のブログを参照下さい。詳細が書かれています。
2018.09.09:M5Stack Thermal Camera Part 2
2018.06.08:M5Stack Thermal Camera with AMG8833


.
部品:

 

No. Nomen Purchase Price
1 AMG8833
Aliexpress :
, FYD Open Source Hardware
, $38.46 + $2.00
3942円

—–

4465円

2 ユニバーサル基板
秋月電子通商:C type 72×47 120円
3 ピンヘッダー 2×20
秋月電子通商:pin header 2×20 50円
4 シングルピンソケット
, 低メス , 1×20
秋月電子通商:pin socket 1×20 60円
————— —————————- —–
TOTAL 購入時の価格 4172円
TOTAL 2020.06.01 時の価格 4695円

AMG8833 について:
価格:最安値の価格調査を行なってください。目安は 4000円以下です。
_  過去実績として 送料込みで 3942円の時がありました。
_  時々 高値になりますので 4000円以下になったら購入が良いです。


.
配線: I2C 4本です。
Wio Terminal の RPi Connector の位置に合わせて配線します。

RPI Conn pin_1 , 3V3 _____ = VIN , AMG8833
RPI Conn pin_3 , I2C1_SDA = SDA , AMG8833
RPI Conn pin_5 , I2C1_SCL = SCL , AMG8833
RPI Conn pin_9 , GND ____ = GND , AMG8833

メモ:
_ I2C1_SDA, SCL は Who Terminal 左下の default I2C(GROVE) に接続されています。

 


.
参考:Wio terminal と AMG8833
seeed : Build a IR Thermal Imaging Camera using Wio Terminal :
seeed furum : Wio terminal and ‘DDRD’ error :


.
感想:
コネクター:Wio Terminal の Connector(2×20) は 2列の為 固定具合が良く 使い安いです。
_     2×20 pin のコネクターは 秋月で販売しており便利です。
基板サイズ:使用した秋月の基板は Wio とほぼ同じサイズです。
ケース  :予定として バッテリは裏面に内蔵、インターフェースは
_     右側に Extension 方式で接続した方が 便利かと思っています。

参考:wio Terminal

 

 


 

Wio Terminal , AMG8833 ,

Written by macsbug

6月 1, 2020 at 4:47 pm

カテゴリー: Wio Terminal

Introduction to Wio Terminal

leave a comment »

Wio Terminal 入門                2020.05.31

Wio Terminalをはじめよう
Arduino IDE の設定とサンプルの使用方法が記載されています。
上記の内容で 直ぐ動かす事ができました。

基本:Arduino IDE と プログラム

基本:Arduino IDE と プログラム
1 Get Started with Wio Terminal により以下を実行する
2 Arduino IDE / ファイル / 環境設定 / ボードマネージャー URL追加:
. https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
3 Arduino IDE / ツール / ツール / ボードマネージャー / Wio Terminal 検索:
. Seeed SAMD Boards を インストール ( Wio Terminal revision 1.7.6 )
4 Arduino IDE / ツール / ボード / :Wio Terminal 選択
5 プログラム
. Wio Terminal と PC USB に接続。
. プログラム転送:ブートローダーモード:電源ONからすばやく2回リセット
. シリアルポートの名前:電源投入時とブートローダーモードでは異なる。
. 注意:クラッシュしたりUSBシリアルがArduino IDEに表示されない場合がある
6 Wi-Fi:Realtek RTL8720のファームウェアを更新する
. 手順: Wio Terminal / Network / Overview (Seeed)

メモ:Wio Terminal revision 1.7.6 ( 誤記:M -> N )
_  WIO_S5_DOWM が WIO_S5_DOWN に修正される。


.
Wio Terminal の 詳細な情報:
SeeedStudio の Seeed Wiki に詳細な機能が記載されています。

詳細:

01. Get Started with Wio Terminal
Feature, Specification, HardWare Overview
, Pinout Diagram,Getting Started, Software
, FAQ ( Reset , Boot Mode ), Resouces
02. ArduPy Get Started with Wio Terminal : Arduino + MicroPython
03. LCD:2.4 inch 320×240 ILI9341
Overview Seeed_Arduino_LCD と Adafruit Zero DMA Library
Basic of LCD ピクセル座標系, 8bit/16bit Color,初期化,バックライト
Graphics 基本的なグラフィック機能
Fonts Serif, Sans, Mono, 9, 12, 18, 24 point
Smooth Fonts 日本語,スムーズ,フォント作成, #define SMOOTH_FONT
Loading Image SDカードから画像を読み込んで表示
Line Charts 線グラフ描画。Library Seeed_Arduino_Linechart
Histogram ヒストグラム描画。Library Seeed_Arduino_Histogram
LCD API Examples TFT_Pie_Chart,TFT_ArcFill, TFT_ArcFillSpiral, TFT_Clock
,TFT_Clock_Digital, TFT_Terminal, AII_Free_Fonts_Demo
,RLE_Font_test, TFT_Starfield, TFT_Matrix
04. IO
Overview RPI pin配列, Grove(Default I2C, digital/Analog,PWM)
Analog RPI Analog pin , Grove A/D Port
Digital RPI Digital pin , Grove A/D Port
I2C RPI and Grove I2C, SDA1(2), SCL1(3), SDA2(0), SCL2(1)
SPI MOSI=PIN_SPI_MOSI(19), MISO=PIN_SPI_MISO(21)
,SCK=PIN_SPI_SCK(23), SS=PIN_SPI_SS(24)
05. Network
Overview RTL8720 FW更新方法, ワイヤレス接続方法
Wi-Fi Station (STA) Mode, Multi, Client, Https, AP Mode
06. IMU
Overview 3軸デジタル加速度計(LIS3DHTR) Library インストール
Getting Started IMU値を読み取る方法
Tapping Single, Double click のタップ動作を感知する
07. Configurable Buttons : 3つのボタン
Overview WIO_KEY_C (left), WIO_KEY_B (center), WIO_KEY_A (right)
08. 5 Way Switch
Overview WIO_5S_UP, WIO_5S_DOWN, WIO_5S_LEFT
,WIO_5S_RIGHT, WIO_5S_PRESS
09. Light Sensor : 照度センサー
Overview Analog, WIO_LIGHT (A13), 場所=背面SD SLOTの上
10. Infrared Emitterr : 赤外線エミッタ
Overview WIO_IR( 940nm ), 場所=背面のSD SLOTの左側
11. Microphone
Overview Analog, WIO_MIC, 場所=左下
12. Buzzer : ピエゾ
Overview WIO_BUZZER
13. File System
Overview SD Card : SPI Interface, FAT12,16,32,exFAT
Read and Write SDカードからの読み取り/書き込み。
,QSPIを使用したフラッシュの読み取り/書き込み
14. USB Host : USBホストとして使用する方法
Overview USBデバイスを接続して、PCと同じようにできます。
,USB OTGアダプターとUSB シリアルモジュール 必要
Keyboard USBキーボードを使用する方法
Mouse USBマウスを使用する方法
Xbox Xbox ONEコントローラーを使用する方法
15. USB Client
Overview HID(key,Mouse),MidiをUSB clientとして使用する方法
Keyboard Wio Termainalをキーボードとして使用する
Mouse Wio Termainalをマウスとして使用する
MIDI Wio TermainalをUSB MIDIデバイスとして使用する
16. TensorFlow Lite
Overview 機械学習モデルをテスト。
,Lib:Arduino_TensorFlowLite ver 1.15-ALPHA
17. Grove
Overview TDS, Temp, GPS Sensor,OLED display 等を接続可
18. Demo
Wio Terminal Displaying Gyro
,アクセラレータの読み取り値を表示する : 折れ線グラフにプロット
Wio Terminal Storing Data
,アナログデータを表示, 保存 : 光センサー値の読み取りと折れ線グラフプロット
Wio Terminal Displaying Photos
写真を表示する : SDカードの画像をループで表示
Wio Terminal Interactive Faces Demo
,インタラクティブ絵文字 : SDから画像表示しボタンとジャイロでユーザーと対話
Build a IR Thermal Imaging Camera using Wio Terminal
,IRサーマルイメージングカメラを構築する : 赤外線温度センサアレイ(AMG8833)
Reading Raspberry Pi’s Info using Wio Terminal
,Raspberry Piのシステムステータスを読み取る : USBシリアル通信
Accessing to GitHub using Wio Terminal
,Githubリポジトリ統計の読み取り : Githubからデータを取得
,インターネットからライブデータを取得
,APIを実装して, 気象情報, YouTube統計などを取得できる
Gesture Recognition with Wio Terminal
,機械学習-ジェスチャー認識 :
Reading Coronavirus Live Data using Wio Terminal
,コロナウイルスCOVID-19ライブデータの読み取り
Wio Terminal Initial Firmware (Retro Gaming)
,つまらない レトロゲーム
19. Library , Demo , Personal work
Line-charts:seeed Wiki
, 折れ線グラフを描画する方法
WioTerminal-ADS1115seeed-Studio
, ADS1115
WioTerminal_BackLightseeed-Studio
, lcd_backlight.hpp:backLight.setBrightness(brightness);
LovyanGFXlovyan03
, 高機能・高速動作 グラフィックライブラリ
WioTerminalHarmony99yen
, MPLAB Harmonyを使ってWio Terminalのソフトを作るためのテンプレート
WioTerminal-HTTPClientExperiment99yen
,
WioTerminalNewsPickershikarunochi
,
WioTerminal_drawjpgTestjitenshap
, LovyanGFXでJPEG画像の表示を試す
WioTerminal_SoftAPConfiguratorjitenshap
,
mqtt-onair-indicator-for-wioterminalyoggy
,
WioTerminal-WeatherSign99yen
, WioTerminalで相鉄の駅にあった電光掲示板を再現
WioTerminalSimpleLoader:seeed
, MPLAB Harmonyを使ってWio Terminalのソフトを作るためのテンプレート
WioTerminal_BackLightciniml ( Kenta IDA )
,
WioTerminalUsbMidiDeviceshaga
,
WioTerminal_OpenWeatherMapjitenshap
,
Wio TerminalでTensorflow liteのHello worldGaku Hibi
,Hello Worldを動かし画面上にプロット
WikiseedJP ( seeed K.K. )
, Wio Terminalドキュメントガイド

 

20. Document
Wio-Terminal-Buzzer:Getting Started with Buzzer, Basics, Exsample Code
Wio-Terminal-FS-Overview:Overview, Installing the File System Library For Wio Terminal
Wio-Terminal-FS-ReadWrite:Reading/Writing from the SD Card, Initializing the SD Card on ResScreen, Writing to the SD Card, Reading from the SD Card, Complete Code
Wio-Terminal-Grove:Overview, Wio Terminal With Grove – TDS Sensor, Wio Terminal With Grove – OLED Display, Wio Terminal With Grove – Temperature Sensor, Wio Terminal With Grove – GPS Sensor,
Wio-Terminal-IMU-Basic:Getting Started with IMU, 3-Axis Digital Accelerator Initialization, 3-Axis Digital Accelerator Initialization, Reading IMU Values
Wio-Terminal-IMU-Overview:IMU Overview, Installing the 3-Axis Digital Accelerometer(LIS3DHTR) Library For Wio Terminal
Wio-Terminal-IMU-Tapping:Wio Terminal Sensing Tapping Motion Demo, 3-Axis Accelerator Initialization, Tapping Sensitivity Configurations, Single click or Double click, Complete Code
Wio-Terminal-IO-Analog:Using the Grove Analog Port on Wio Terminal, RPI Analog Pins, Grove Port Configurations, Example Code
Wio-Terminal-IO-Digital:Using the Grove Digital Port on Wio Terminal, RPI Digital Pins, Grove Port Configurations, Using the Grove I2C Port as Digital Port, Example Code, PWM Output Example Code (Servo), UART Serial
Wio-Terminal-IO-I2C:Using the Grove I2C Port on Wio Terminal, Port Configurations, Example Code
Wio-Terminal-IO-Overview:Overview, Hardware Schematics, Wio Terminal RPI Pinout, Wio Terminal Grove Port Pinout
Wio-Terminal-IO-SPI:Using SPI on Wio Terminal, Port Configurations, Software Configurations
Wio-Terminal-TensonFlow:Overview, Install the Arduino TensorFlow Lite Library, Library Configurations, Running the Arduino TensorFlow Lite Hello World Example
Wio-Terminal-USBCLIENT-Keyboard:Using Wio Terminal as a Keyboard, Complete Code
Wio-Terminal-USBCLIENT-MIDI:Using Wio Terminal as a USB MIDI Device, Installing Libraries, Obtaining Results, Complete Code
Wio-Terminal-USBCLIENT-Mouse:Using Wio Terminal as a Mouse, Initializing USB and Accelerator libraries, Mapping Data to Cursor, Complete Code
Wio-Terminal-USBCLIENT-Overview:Overview, Installing the Adafruit TinyUSB Library for Arduino,
Wio-Terminal-USBH-Keyboard:Using USB Keyboard on Wio Terminal, Requirements, Procedures, Complete Code
Wio-Terminal-USBH-Mouse:Using USB Mouse on Wio Terminal, Requirements, Procedures, Complete Code
Wio-Terminal-USBH-Overview:Overview, Installing the USB Host Library SAMD
Wio-Terminal-USBH-Xbox:Using Xbox ONE Controller on Wio Terminal, Requirements, Procedures, Complete Code
Resource Roundup for Wio Terminal:Tutorials, Reviews, and Projects from Community:Using Xbox ONE Controller on Wio Terminal, Requirements, Procedures, Complete Code

 

21. FreeRTOS Tutorial
Arduino FreeRTOS Tutorial – How to use FreeRTOS to Multi-tasking in Arduino :リアルタイムオペレーティングシステム


.
参考:
Seeed K.K. Wiki:Wio Terminalドキュメントガイド
_ 記事の推薦は コメントを書くかpull request と言う受け身状態。
Seeed株式会社:日本国内総代理店


.
問題点 ❌:WiFi 機能が直ぐ使えない。
手順はオフィシャルのwikiページに掲載されていますが
1. Windows が必要。
2. 手順が多く きわめて面倒。
3. Macでの手順が無い。
4. USER による「Wio TerminalをWi-Fiに繋ぐ」はあるが Windows用のみ。
5. Mac Address を取得する情報が見当たらない。ルーターで Mac Address が必要の場合がある。


.
感想:
. Seeed SAMD Board のサンプルは特に問題無く動作しました。
. サンプル:TFT_espi のサンプルと同等で新しきものはなし。
_ 購入したくなる様なサンプルが無い。Arduino IDE 人口を吸収するものが欲しい。
_ それで Game : Torotes と Pocman を移植しましたが 商標にかかるかと、、。
_ ただし、上記 18 のサンプルは 注目の範囲です。
. SDから起動出来ない:M5STackで実現している SD_UPdate が無く超残念です。
_ SD から プログラムをインストールし起動するのは 大変重要な機能です。
_ 沢山のプログラム数は重要である事と 毎回Arduino IDEでインストールするのは面倒。
. 機能:M5Stack に無い機能があり注目の範囲です。
. デザイン:手の平に入る大きさは感触が良い。
_ USB接続が下側はワイヤーがはみ出て見た目が汚い。縦に置けない不安定感。
. Seeed の forum は 大変助かり注目しています。
. Seeed のハードと資料は 全部を知り尽くしてませんが良く出来ており 素晴らしいです。
. Seeed日本国内総代理店は 情報の発信と収集を 担当者が行なっており 素晴らしいです。


.
Wio Terminal , Wio Wiki , IO , I2C , D/A ,

Written by macsbug

5月 31, 2020 at 3:17 pm

カテゴリー: Wio Terminal

Wio Audio Spectrum Display

leave a comment »

Wio Terminal で Audio Spectrum Display を作りました。    2020.05.28

Wio Terminal 内蔵マイクの音を スペクトラム表示します。

操作:マイクのゲインを上下し感度を調整します。


.
スケッチ:
_ Wio_audio_spectrum_display.zip を DL します。
_ DL 後に Wio_audio_spectrum_display_.pdf の末尾 _.pdf を消します。
_ Wio_audio_spectrum_display.zip を解凍します。
_ フォルダーの中味は 以下です。
_ 


.
Spectrum Display について:
_ tobozo氏の「ESP32_Spectrum_Display_03.ino」を M5Stack に移植。
_ 2017.12.31:Audio Spectrum Display with M5STACK
_ tobozo氏のソースは G6EJD氏の「ESP32_Spectrum_Display_02.ino」です。
_ 謝辞:G6EJD氏 と tobozo氏に感謝致します。

_ tobozo氏の使用した ディスプレーは 128×64 OLED SSD1306
_ M5Stack と Wio Termonal のディスプレーは 320×240 ILI9341
_ 2020.05.28:Wio Terminal に移植。


.
内臓マイク:
_ 基本:Getting Started with Microphone:マイク入力について書かれています。

void setup() {
  pinMode(WIO_MIC, INPUT);
}
 
void loop() {
  int val = analogRead(WIO_MIC);
}

マイク入力は 他のMicと異なり デフォルトに対し32倍にし
Key , 5Way Switchで可変にしています。
本来は eqBand audiospectrum[8] の配列で数値を設定する必要があります。

int gain = 32;

vReal[i] = analogRead(WIO_MIC) * gain;

調整:
_ 調整と変数:1 – 6 の値をマイクに合わせて設定します。
1. freqname
2. amplitude:感度
3. peak
4. lastpeak
5. lastval
6 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}
};

.
外部マイク:
_ Audio Spectrum Display with M5STACK の記事にあるマイクを
_ 使用すると 今回の Gain 調整は必要なく 周波数帯域の応答も良く 表示されます。
_ 接続  Analog Input は A0〜A8 の 8つが使用でき Board の電源は 3V3 で出来ます。
_ 


.
感想:
Wio のマイクは 全面左下のスリットの位置にあります。
M5Stack で使用したマイクと感度が異なりますので 設定が必要です。
今回は 単に 入力値を 32倍にし 可変できる様にしました。
🍎 結果的に 従来の Arduino用のMic Ampの方が性能が良い事が判明しました。


Wio , Terminal , Audio Spectrum Display , MIC , WIO_MIC, INPUT , WIO_MIC ,

Written by macsbug

5月 28, 2020 at 1:45 pm

カテゴリー: Wio Terminal

Wio Space Shooter

leave a comment »

Wio Terminal に Space Shooter を移植しました。        2020.05.27


.
操作:
_ 敵を全て破壊すると点数が加わり 次のステージに進む事ができます。


.
スケッチ:
_ Wio_Space_Shooter.zip を DL してください。
_ DL 後に Wio_space_shooter_.pdf の末尾 _.pdf を消します。
_ Wio_space_shooter.zip を解凍します。
_ フォルダーの中味は 以下です。
_ 

_ Wio_Clappy_Shooter.zipを DL してください。
_ DL 後に Wio_Clappy_shooter.zip_.pdf の末尾 _.pdf を消します。
_ Wio_Clappy_shooter.zip を解凍します。


.
Space Shooter について:
_ 原作:GitHub 「HailTheBDFL」の「esp32-spaceShooter
_ HailTheBDFL氏 に感謝致します。
_ 構成:ESP32 + ILI9314 TFT Display。
_ 開発環境:Arduino IDE。
_ 移植:M5Stack:2018.01.12:esp32 spaceShooter with M5STACK
_    M5Stackへの移植方法を記載しています。
_ 移植:Wio Terminal:2020.05.27:
_ スケッチ:初心者にも解りやすい内容で 勉強になります。


.
画像の構成:
_ 例: alien
_ 画像サイズは 14 x 11 pixel です。
_ 画像は 1pixel を 英文字で表現し 文字名は色情報です。
_  W=WHITE, Y=YELLOW, B=BLUE, R=RED, G=GREEN, Z=BLACK
_ 横 14dot:14文字 GGGZZZZZZZZGGG で 1 LINE できます。
_ 縦 11dot:合計 11 LINE です。

//alien
const int alienImgW = 14; const int alienImgH = 11;
char alienImg[] = 
//xxxxxxxxxxxxxx--------------xxxxxxxxxxxxxx--------------
 "GGGZZZZZZZZGGGZZZGZZZZZZGZZZZZGGGGGGGGGGZZZGGGGGGGGGGGGZ"
 "GGGZGGGGGGZGGGGGGZZGGGGZZGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
 "GZZZGGZZGGZZZGZGGZGGZZGGZGGZZZZZZGZZGZZZZZ";

_ alien の表示: drawPixel で 抽画します。

tft.drawPixel(x + i % imgW, y + i / imgW, cellColor);

.
.
_ Clappy の画像:Clappy 愛好家へ


.
Wio Terminal メモ:書き込みが出来ない場合
不具合:
1. USBデバイス名が表示されない。当然 書き込めない。
2. USBデバイス名はあるが時間がかかり書き込み失敗。
_ この時「An error occurred while uploading the sketch」を表示。
_ つまり途中でデバイス名が無くなる。
操作方法:
🍎 Wioの電源スイッチをONにし 素早く 2回 RESET する。
_ すると /dev/tty.usbmodem26 とデバイス名がでる。
_ 26 の値は 29, 30 とか変化していきます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
○ 電源スイッチ:OFF/ON/RESET ポジションがある
○ USB専用チップは無い:ATSAMD51P19A-32-bit PIC Microcontrollers を使用。
_ デバイス名は 電源スイッチONにすると /dev/tty.usbmodemFD1411 とか
_  /dev/cu.usbmodemFD1411 とか /dev/cu.usbmodemFD1411 (seeeduino Wio Terminal)
○ seeed の「Wio Terminalをはじめよう」の FAQ に
_ 「Wio Terminalをリセットするには」「ブートローダーに投入するには」が書かれています。
_ 


.
感想:
HailTheBDFL氏の画像定義と表示方法は勉強になり感心致しました。
この方法は 初心者でも キャラクターを作り楽しむ事ができます。

 


Wio , Terminal , Space Shooter , alien , clappy

Written by macsbug

5月 27, 2020 at 11:20 am

カテゴリー: Wio Terminal

Wio Electronic Animated Eyes

leave a comment »

Wioで 電子アニメーションの目 を表示しました。         2020.05.26

機能:
_ 5 Way Swicth:LEFT :左目のウインク
_ 5 Way Swicth:Center:両目のブリンク
_ 5 Way Swicth:RIGHT :右目のウインク
_ 注意:5 Way Swicth は 押し具合が不安定です。


.
スケッチ:Wio_uncannyEyes.zip を DL してください。
_ DL 後に Wio_uncannyEyes.zip_.pdf の末尾 _.pdf を消し
_ Wio_uncannyEyes.zip を解凍します。
_ フォルダーの中味は 以下です。
_ 


.
Electronic Animated Eyes について。
1. 原作は adafruit の Electronic Animated Eyes using Teensy 3.1/3.2 です。
2. これから Bodmer氏が TFT_eSPI で ESP8266_uncannyEyes を作成。
_ Bodmer氏に感謝致します。
3. ESP866_uncannyEyes を M5Stack(両目) と M5StickC(片目) に移植。
4. さらに Wio Terminal へ移植しました。


.
移植:
_ 移植の詳細は 以下を参照ください。
_ 2019.05.06:M5Stack Electronic Animated Eyes: M5Stackで Eyes
_ 2019.05.08:M5StickC Electronic Animated Eyes:M5StickCで Eyes


.
目の種類:

defaultEye
noScleraEye dragonEye goatEye
catEye newtEye terminatorEye
naugaEye newtEye owlEye

 

目の選択:使用するデーターを選択します。例:#include “defaultEye.h”

// Enable ONE of these #includes for the various eyes:
#include "defaultEye.h"     // Standard human-ish hazel eye
//#include "noScleraEye.h"  // Large iris, no sclera
//#include "dragonEye.h"    // Slit pupil fiery dragon// -0x001 to 0x007F
//#include "goatEye.h"      // Horizontal pupil goat  // -0x001 to 0x007F
//#include "catEye.h"       // #include <pgmspace.h>,][ to *,= to PROGMEM=
//#include "doeEye.h"       // #include <pgmspace.h>,][ to *,= to PROGMEM=
//#include "terminatorEye.h"// #include <pgmspace.h>,][ to *,= to PROGMEM=
//#include "naugaEye.h"     // #include <pgmspace.h>,][ to *,= to PROGMEM=
//#include "newtEye.h"      // #include <pgmspace.h>,][ to *,= to PROGMEM=
//#include "owlEye.h"       // #include <pgmspace.h>,][ to *,= to PROGMEM=

 


.
操作と設定:
_ 例:#define WINK_L_PIN:WIO_5S_LEFT。左目のウインクは SW の LFET。

#define DISPLAY_DC       D3 // Data/command pin for BOTH displays
#define DISPLAY_RESET    D4 // Reset pin for BOTH displays
#define SELECT_L_PIN     WIO_KEY_C // LEFT  eye chip select pin
#define SELECT_R_PIN     WIO_KEY_A // RIGHT eye chip select pin
// INPUT CONFIG (for eye motion -- enable or comment out as needed) -------
// The ESP8266 is rather constrained here as it only has one analogue port.
// An I2C ADC could be used for more analogue channels
//#define JOYSTICK_X_PIN A0 // Analog pin for eye horiz pos (else auto)
//#define JOYSTICK_Y_PIN A0 // Analog pin for eye vert position (")
//#define JOYSTICK_X_FLIP   // If set, reverse stick X axis
//#define JOYSTICK_Y_FLIP   // If set, reverse stick Y axis
#define TRACKING         // If enabled, eyelid tracks pupil
#define IRIS_PIN         WIO_5S_PRESS // Photocell or potentiometer (else auto iris)
#define IRIS_PIN_FLIP    WIO_5S_PRESS // If set, reverse reading from dial/photocell
#define IRIS_SMOOTH      // If enabled, filter input from IRIS_PIN
#define IRIS_MIN         140 // Clip lower analogRead() range from IRIS_PIN
#define IRIS_MAX         260 // Clip upper "
#define WINK_L_PIN       WIO_5S_LEFT  // Pin for LEFT eye wink button
#define BLINK_PIN        WIO_5S_PRESS // in for blink button (BOTH eyes)
#define WINK_R_PIN       WIO_5S_RIGHT // Pin for RIGHT eye wink button
#define AUTOBLINK        // If enabled, eyes blink autonomously
//-----------------------------------// BUTTON &amp; 5 Way Swicth ---
 pinMode(WIO_KEY_A,    INPUT_PULLUP); // RIGHT
 pinMode(WIO_KEY_B,    INPUT_PULLUP); // CENTER
 pinMode(WIO_KEY_C,    INPUT_PULLUP); // LEFT
 pinMode(WIO_5S_UP,    INPUT_PULLUP); // 
 pinMode(WIO_5S_DOWM,  INPUT_PULLUP); // 
 pinMode(WIO_5S_LEFT,  INPUT_PULLUP); // 
 pinMode(WIO_5S_RIGHT, INPUT_PULLUP); // 
 pinMode(WIO_5S_PRESS, INPUT_PULLUP); // 

.
感想:
Wio の Display は 画像が綺麗に引き立ちます。
操作部分を熟知し他のセンサーと接続すると応用できるかと思います。
画像の抽画は pushColors 命令を使用しています。


Wio , Terminal , Wio_uncannyEyes , Electronic Animated Eyes , Wio Electronic Animated Eyes

Written by macsbug

5月 26, 2020 at 5:15 pm

カテゴリー: Wio Terminal