pdf-icon

Arduino入門

2. デバイス&サンプル

Paper Touch (GT911)

m5.begin()初期化では、インスタンスGT911 TP = GT911()を作成して初期化しました。このインスタンスではAPIを使ってタッチインタラクション情報を取得できます。

begin()

機能です:

I2Cバスを初期化

原型関数です:

esp_err_t begin(uint8_t pin_sda, uint8_t pin_scl, uint8_t pin_int)

avaliable()

機能です:

画面の新たなタッチデータが待ち受け中かどうか確認

原型関数です:

bool avaliable()

update()

機能です:

画面検出を更新

原型関数です:

void update()

SetRotation()

機能です:

画面の回転角度を設定/通常は90°に設定

原型関数です:

void SetRotation(uint16_t rotate)

readFingerX()

機能です:

タッチ指のX座標を読み込み

原型関数です:

uint16_t readFingerX(uint8_t num)

readFingerY()

機能です:

タッチ指のY座標を読み込み

原型関数です:

uint16_t readFingerY(uint8_t num)

readFingerID()

機能です:

タッチ指のID座標を読み込み

原型関数です:

uint16_t readFingerID(uint8_t num)

readFingerSize()

機能です:

タッチ指の作用領域の矩形サイズを読み込み

原型関数です:

uint16_t readFingerSize(uint8_t num)

getFingerNum()

機能です:

最後に読み込んだタッチ指の数を取得

原型関数です:

uint8_t getFingerNum(void)

isFingerUp()

機能です:

指が離れたかどうか検出

原型関数です:

bool isFingerUp(void)

flush()

機能です:

現在のタッチ状態をクリア

原型関数です:

void flush(void)

readFinger()

機能です:

タッチ指の情報を読み込み、構造体のインスタンスを返却

原型関数です:

tp_finger_t readFinger(uint8_t num)

结构体实例:

cpp
1 2 3 4 5 6 7
typedef struct
{
uint16_t x;
uint16_t y;
uint16_t id;
uint16_t size;
}tp_finger_t;

使用例です:

cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
#include <M5EPD.h>
M5EPD_Canvas canvas(&M5.EPD);
int point[2][2];
void setup()
{
M5.begin();
M5.EPD.SetRotation(90);
M5.TP.SetRotation(90);
M5.EPD.Clear(true);
canvas.createCanvas(540, 960);
canvas.setTextSize(5);
canvas.drawString("Touch The Screen!", 20, 400);
canvas.pushCanvas(0,0,UPDATE_MODE_DU4);
}
void loop()
{
if(M5.TP.avaliable()){
if(!M5.TP.isFingerUp()){
M5.TP.update();
canvas.fillCanvas(0);
bool is_upadte = false;
for(int i=0;i<2; i++){
tp_finger_t FingerItem = M5.TP.readFinger(i);
if((point[i][0]!=FingerItem.x)||(point[i][1]!=FingerItem.y)){
is_upadte = true;
point[i][0] = FingerItem.x;
point[i][1] = FingerItem.y;
canvas.fillRect(FingerItem.x-50, FingerItem.y-50, 100, 100, 15);
Serial.printf("Finger ID:%d-->X: %d*C Y: %d Size: %d\r\n", FingerItem.id, FingerItem.x, FingerItem.y , FingerItem.size);
}
}
if(is_upadte)
{
canvas.pushCanvas(0,0,UPDATE_MODE_DU4);
}
}
}
}
On This Page