pdf-icon

Arduino入門

2. デバイス&サンプル

6. アプリケーション

Atomic QRCode2 Base Arduino 使用チュートリアル

1. 準備作業

2. サンプルプログラム

  • 本チュートリアルでは AtomS3R をメインコントローラとして、Atomic QRCode2 Base を組み合わせて使用します。本スキャナーモジュールは UART 通信を使用します。配線に合わせてサンプル中のピン定義を修正してください。接続後のUART IOは G5 (TX)G6 (RX) です。
備考
1. 本モジュールは同種製品のドライバライブラリを流用していますが、UART による制御のみサポートします。M5UnitQRCode ライブラリの I2C 機能は使用しないでください。
2. 下記サンプルはデフォルトで手動スキャンモードです。ホスト機器の画面を押すことでスキャン/デコードを1回実行します。自動スキャンモードを使用する場合は、コード内の #define UART_AUTO_SCAN_MODE のコメントを外してください。
3. setDecodeTrigger は手動スキャンモードでのみ有効です。自動モードではこの関数を呼んでもスキャン/デコードを制御できません。
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
#include <M5Unified.h>
#include <M5GFX.h>
#include "M5UnitQRCode.h"

M5Canvas canvas(&M5.Display);

M5UnitQRCodeUART qrcode;

// #define UART_AUTO_SCAN_MODE //このマクロを有効にすると自動でスキャン/デコードします。
#define UART_TX 5
#define UART_RX 6

void setup() {
    M5.begin();
    Serial.begin(115200);

    canvas.setColorDepth(16); 
    canvas.createSprite(M5.Display.width(), M5.Display.height());
    canvas.setFont(&fonts::efontCN_16);
    canvas.setTextScroll(true);

    while (!qrcode.begin(&Serial1, 115200, UART_TX, UART_RX)) {
        canvas.println("Init Fail");
        Serial.println("QRCode2 Init Fail");
        canvas.pushSprite(0, 0);
        delay(1000);
    }
    canvas.println("Init Success");
    Serial.println("QRCode2 Init Success");
#ifdef UART_AUTO_SCAN_MODE
    canvas.println("Auto Scan Mode");
    qrcode.setTriggerMode(AUTO_SCAN_MODE);
#else
    canvas.println("Manual Scan Mode");
    qrcode.setTriggerMode(MANUAL_SCAN_MODE);
#endif
    canvas.setTextColor(TFT_YELLOW);
    canvas.println("Press screen to\nstop/start scan");
    canvas.setTextColor(TFT_WHITE);
    canvas.pushSprite(0, 0);
}

void loop() {
    if (qrcode.available()) {
        String data     = qrcode.getDecodeData();
        uint16_t length = data.length();
        Serial.printf("len:%d\n", length);
        Serial.printf("decode data:");
        Serial.println(data);
        canvas.println("Decode data:");
        canvas.println(data);
        canvas.pushSprite(0, 0);
    }
    M5.update();
#ifndef UART_AUTO_SCAN_MODE
    if (M5.BtnA.wasPressed()) {
        qrcode.setDecodeTrigger(true); // スキャン/デコードを1回だけ実行
    }
#endif
}

3. 書き込み方法

  • 1. ダウンロードモード:デバイスにより書き込み前にダウンロードモードに入る必要があります。手順はホストデバイスによって異なります。詳細はArduino IDE 入門ガイドページ下部のデバイス書き込み手順リストを参照してください。

  • AtomS3R では、リセットボタンを約2秒間長押しして内部の緑色LEDが点灯したら離してください。デバイスはダウンロードモードに入り書き込み待機状態になります。

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

4. スキャン結果プレビュー

  • ホスト機器の画面を押すとスキャン/デコードを1回実行できます。下の例では左のQRコードをスキャンすると、右の画像のように結果が表示されます。

On This Page