Skip to content

Add software touch buttons for CoreS3 and Tough, and commonality with conventional buttons (M5.BtnX)

License

Notifications You must be signed in to change notification settings

GOB52/gob_unifiedButton

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gob_unifiedButton

English

概要

物理ボタン、タッチボタンを持たない CoreS3 上にタッチボタンを追加し、 M5.BtnX 経由で状態を取得できるようにしたライブラリです。
将来的に M5Unified に同様の機能がつくまでの暫定としてお使いください。
CoreS3 以外では処理をしないので、Basic, Gray, Core2 と共通のソースで作っている方にも有用です。

必要なもの

M5Unified 前提ですので、 M5Core3.h を使用した物には適用できません。

導入

環境によって適切な方法でインストールしてください

  • git clone や Zip ダウンロードからの展開
  • platformio.ini
lib_deps = https://github.com/GOB52/gob_unifiedButton
  • ArduinoIDE ライブラリマネージャからのインストール

使い方

#include <M5Unified.h>
#include <gob_unifiedButton.hpp>

goblib::UnifiedButton unfiedButton;

void setup()
{
    M5.begin();
    unfiedButton.begin(&M5.Display);
}

void loop()
{
    M5.update();
    unfiedButton.update(); // M5.update() の後に呼ぶ事 (0.1.0 から後呼びに変更されました)

    // M5.BtnX 経由で同様に状態取得
    if(M5.BtnA.wasHold())
    {
        // ...
    }
    else if(M5.BtnA.wasClicked())
    {
        // ...
    }

    // ボタンを描画する
    unfiedButton.draw();
}

外観変更

begin で指定、または changeAppearance で変更できます。

引数 goblib::UnifiedButton::appearance_t 外観
bottom 画面下側にボタンを表示 (default)
top 画面上側にボタンを表示
custom 独自にボタンをカスタマイズ(下記参照)
transparent_bottom bottom と同様の位置に透明ボタンを配置
transparent_top top と同様の位置に透明ボタンを配置
transparent_all 画面全体に透明ボタンを配置(縦3分割)

ボタンのカスタマイズ

goblib::UnifiedButton::appearance_t::custom を指定した後であれば、 getButoonA / getButtonB / getButtonC で LGFX_Button* を取得できます。

void setup()
{
    M5.begin();
    unfiedButton.begin(&M5.Display, goblib::UnifiedButton::appearance_t::custom);

    auto btnA = unfiedButton.getButtonA();
    auto btnB = unfiedButton.getButtonB();
    auto btnC = unfiedButton.getButtonC();

    // 独自形状、色、テキストのボタンを再作成
    btnA->initButton(unfiedButton.gfx(), 40, 120, 80, 240 ,TFT_GREEN, TFT_BLUE, TFT_WHITE, "[A]");
    ...
}

ドキュメント

Doxygen 用の設定ファイルシェルスクリプトで作成できます。

About

Add software touch buttons for CoreS3 and Tough, and commonality with conventional buttons (M5.BtnX)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages