pdf-icon

Arduino入門

2. デバイス&サンプル

6. アプリケーション

Unit Finger Arduino チュートリアル

1. 準備作業

  • 環境設定: Arduino IDE 入門ガイドを参照して IDE をインストールし、使用する開発ボードに応じたボード管理と必要なドライバライブラリをインストールしてください。
  • 使用するドライバライブラリ:
注意
GitHub から最新のライブラリバージョンをダウンロードしてください: M5-FPC1020A - M5Stack GitHub。Arduino ライブラリからはダウンロードしないでください(質問がある場合はこのチュートリアルを参照)。

2. 注意事項

ピン互換性
各ホストデバイスによってピン配置が異なりますので、使用前に製品ドキュメントのピン互換性表を参照し、実際のピン接続状況に基づいてサンプルプログラムを修正してください。

3. サンプルプログラム

  • 本チュートリアルで使用するメインコントローラは CoreS3 で、Unit Finger と組み合わせて使用します。この指紋認識モジュールは UART 通信方式を採用しています。実際の回路接続に応じてプログラム内のピン定義を修正し、デバイス接続後の対応する UART IO は G1 (RX)G2 (TX) です。
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
/**
 * @file Unit_Finger_M5CoreS3.ino
 * @author Zovey (liangzhuowei@m5stack.com)
 * @brief
 * @version 0.1
 * @date 2025-07-04
 *
 *
 * @Hardwares: M5CoreS3 + Unit Finger
 * @Dependent Library:
 * M5_FPC1020A: https://github.com/m5stack/M5-FPC1020A
 */

#include "M5Unified.h"
#include "M5_FPC1020A.h"

M5_FPC1020A finger;

bool add_user_process(uint8_t id, uint8_t permission);
bool id_input = 1, id_Verification = 1, id_delete = 1;

void setup() {
    M5.begin();
    Serial.begin(115200);
    M5.Display.fillRect(0, 0, 320, 240, WHITE);
    M5.Display.setTextColor(BLACK);
    M5.Display.setFont(&fonts::FreeMonoBold9pt7b);
    M5.Display.setCursor(0, 0);
    M5.Display.println("Finger Unit init...");
    if (!finger.begin(&Serial2, 1, 2, 19200)) {
        Serial.println("FPC1020A not found");
        while (1) delay(1);
    }
    M5.Display.fillRect(0, 0, 320, 240, WHITE);
    M5.Display.println("Finger Unit TEST");
    finger.delAllFinger();
    M5.Display.println("All ID have been deleted");
}

void loop() {
    while(id_input){
        M5.Display.fillScreen(WHITE);
        M5.Display.println("Please logic your finger");
        if(add_user_process(1, 1)){
            Serial.println("add user success");
            M5.Display.println("add user success");
            id_input = 0;
        }
    }
    delay(2000);
    while(id_Verification){
        M5.Display.fillScreen(WHITE);
        M5.Display.setCursor(0, 0);
        M5.Display.printf("User ID Verification:\r\n");
        uint8_t res = finger.available();
        if (res == ACK_SUCCESS){
            M5.Display.print("Success \r");
            Serial.println("Success");
            M5.Display.print("User ID: ");
            Serial.print("User ID: ");
            M5.Display.println(finger.getFingerID());
            Serial.println(finger.getFingerID());
            id_Verification = 0;
        }
        delay(2000);
    }
    while(id_delete){
        uint8_t res2 = finger.available();
        M5.Display.printf("Put your finger on the sensor again can delete all id\n");
        if (res2 == ACK_SUCCESS){
            finger.delAllFinger();
            M5.Display.println("All ID have been deleted");
            Serial.println("All ID have been deleted");
            id_delete = 0;
        }
        delay(2000);
    }
}

bool add_user_process(uint8_t id, uint8_t permission) {
    M5.Display.fillRect(0, 0, 320, 240, WHITE);
    M5.Display.setCursor(0, 0);
    M5.Display.println("add finger process:");
    M5.Display.println("put your finger on the sensor");
    for (uint8_t i = 0; i < 6; i++) {
        while (!finger.addFinger(id, permission, i)) {
            Serial.printf("Finger ID: %d Finger Record:%d error\r\n", id, i);
            Serial.println("Retry...");
            delay(1000);
        };
        M5.Display.printf("add finger count : %d/6\r\n", i + 1);
        Serial.printf("Finger ID: %d Finger Record:%d ok\r\n", id, i);
    }
    return true;
}

4. コンパイルと書き込み

  • ダウンロードモード:デバイスによっては、プログラム書き込み前にダウンロードモードに入る必要があります。この手順はメインコントローラによって異なる場合があります。具体的な操作方法については、Arduino IDE入門ガイドページ下部のデバイスプログラミングチュートリアルリストを参照してください。

  • CoreS3 の場合:リセットボタンを約 2 秒間長押しし、内部の緑色 LED が点灯したら離します。これでデバイスはダウンロードモードに入り、書き込み準備が完了します。

  • デバイスポートを選択し、Arduino IDE の左上にある書き込みボタンをクリックします。プログラムのコンパイルが完了し、デバイスに書き込まれるまで待機します。

5. 指紋認識

  • プログラムの初期段階では指紋の登録を行います。登録が成功すると、add user success などのメッセージが表示されます。

  • 登録が成功した後、2秒待つと認識モードに入ります。登録した指紋を再度センサーに置くと、画面に Success User ID: 1 などのメッセージが表示され、認識が成功したことを示します。

  • 最後に削除モードに入ります。登録済みの指紋をセンサーに置くと削除が行われ、削除が成功すると All ID have been deleted などのメッセージが表示されます。

On This Page