Espressif ESP32-WROOM-32SE の開始方法 - FreeRTOS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Espressif ESP32-WROOM-32SE の開始方法

重要

これは、FreeRTOS リリース 202012.00 で使用する FreeRTOS ユーザーガイドのアーカイブ版です。このドキュメントの最新バージョンについては、FreeRTOS ユーザーガイドを参照してください。

ESP32-WROOM-32SE の使用を開始するには、このチュートリアルに従ってください。 AWS パートナーデバイスカタログのパートナーから購入するには、「ESP32-WROOM-32SE」を参照してください。

注記

現在、ESP32-WROOM-32SE の FreeRTOS ポートは、対称型マルチプロセッシング (SMP) 機能をサポートしていません。

概要

このチュートリアルでは次のステップを説明します。

  1. ボードをホストマシンに接続します

  2. ホストマシンにソフトウェアをインストールし、マイクロコントローラーボード用の組み込みアプリケーションを開発およびデバッグします

  3. FreeRTOS デモアプリケーションをバイナリイメージにクロスコンパイルします

  4. アプリケーションバイナリイメージをボードにロードし、アプリケーションを実行します

  5. シリアル接続を使用して、実行中のアプリケーションを監視およびデバッグします

前提条件

Espressif ボードで FreeRTOS の使用を開始する前に、 AWS アカウントとアクセス許可を設定する必要があります。

にサインアップする AWS アカウント

がない場合は AWS アカウント、次の手順を実行して作成します。

にサインアップするには AWS アカウント
  1. https://portal.aws.amazon.com/billing/signup を開きます。

  2. オンラインの手順に従います。

    サインアップ手順の一部では、電話またはテキストメッセージを受信し、電話のキーパッドに検証コードを入力します。

    にサインアップすると AWS アカウント、 AWS アカウントのルートユーザー が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、ルートユーザーアクセスが必要なタスクの実行にはルートユーザーのみを使用するようにしてください。

AWS サインアッププロセスが完了すると、 から確認メールが送信されます。https://aws.amazon.com/[マイアカウント] をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

管理アクセスを持つユーザーを作成する

にサインアップしたら AWS アカウント、日常的なタスクにルートユーザーを使用しないように AWS アカウントのルートユーザー、 を保護し AWS IAM Identity Center、 を有効にして管理ユーザーを作成します。

を保護する AWS アカウントのルートユーザー
  1. ルートユーザーを選択し、 AWS アカウント E メールアドレスを入力して、アカウント所有者AWS Management Consoleとして にサインインします。次のページでパスワードを入力します。

    ルートユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドルートユーザーとしてサインインするを参照してください。

  2. ルートユーザーの多要素認証 (MFA) を有効にします。

    手順については、IAM ユーザーガイドの AWS アカウント 「ルートユーザー (コンソール) の仮想 MFA デバイスを有効にする」を参照してください。

管理アクセスを持つユーザーを作成する
  1. IAM アイデンティティセンターを有効にします。

    手順については、「AWS IAM Identity Center ユーザーガイド」の「AWS IAM Identity Centerの有効化」を参照してください。

  2. IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。

    を ID ソース IAM アイデンティティセンターディレクトリ として使用する方法のチュートリアルについては、AWS IAM Identity Center 「 ユーザーガイド」の「デフォルトを使用してユーザーアクセスを設定する IAM アイデンティティセンターディレクトリ」を参照してください。

管理アクセス権を持つユーザーとしてサインインする
  • IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

    IAM Identity Center ユーザーを使用してサインインする方法については、AWS サインイン 「 ユーザーガイド」の AWS 「 アクセスポータルにサインインする」を参照してください。

追加のユーザーにアクセス権を割り当てる
  1. IAM アイデンティティセンターで、最小特権のアクセス許可を適用するというベストプラクティスに従ったアクセス許可セットを作成します。

    手順については、「AWS IAM Identity Center ユーザーガイド」の「権限設定を作成するを参照してください

  2. グループにユーザーを割り当て、そのグループにシングルサインオンアクセス権を割り当てます。

    手順については、「AWS IAM Identity Center ユーザーガイド」の「グループの結合」を参照してください。

アクセス権限を付与するにはユーザー、グループ、またはロールにアクセス許可を追加します。

注記

FreeRTOS 202012.00 リリースでは ESP-IDF v3.3 がサポートされています。FreeRTOS の最新リビジョンを使用している場合は、ESP-IDF v4.2 の開始方法 の IDFv4.2 固有の指示に従ってください。

ESP-IDF v3.3 の開始方法

このセクションでは、Espressif ハードウェアで ESP-IDF v3.3 を使用する方法について説明します。ESP-IDF v4.2 を使用するには、「ESP-IDF v4.2 の開始方法」を参照してください。

Espressif ハードウェアを設定する

ESP32-WROOM-32SE 開発ボードハードウェアの設定の詳細については、ESP32-DevKitC 入門ガイドを参照してください。

重要

Espressif ガイドの開始方法セクションに到達したらそこで止まり、以下の手順を実施します。

開発環境をセットアップする

ボードと通信するには、ツールチェーンをダウンロードしてインストールする必要があります。

ツールチェーンの設定

注記

ESP-IDF v3.3 (FreeRTOS で使用されるバージョン) では、ESP32 コンパイラの最新バージョンがサポートされていません。ESP-IDF のバージョン 3.3 と互換性のあるコンパイラを使用する必要があります。前のリンクを参照してください。コンパイラのバージョンを確認するには、次のコマンドを実行します。

xtensa-esp32-elf-gcc --version

ツールチェーンを設定するには、ホストマシンのオペレーティングシステムの指示に従ってください。

重要

次のステップの「ESP-IDF の取得」の手順に到達したらそこで止まり、このページの手順に戻ります。

現在または前回の手順で次のステップの「ESP-IDF の取得」の手順に従った場合、システムの IDF_PATH 環境変数を続行する前にクリアする必要があります。この環境変数は、「ESP-IDF の取得」の手順に従った場合に自動的に設定されます。

CMake のインストール

CMake ビルドシステムは、このデバイスの FreeRTOS デモとテストアプリケーションを構築するために必要です。FreeRTOS は、バージョン 3.13 以降をサポートしています。

CMake.org から CMake の最新バージョンをダウンロードできます。ソース配布とバイナリ配布が利用可能です。

FreeRTOS で CMake を使用する方法について詳しくは、「FreeRTOS で CMake を使用する」を参照してください。

シリアル接続の確立

  1. ホストマシンと ESP32-WROOM-32SE の間にシリアル接続を確立するには、CP210x USB を UART Bridge VCP ドライバーにインストールする必要があります。これらのドライバーは Silicon Labs からダウンロードできます。

  2. ESP32 でシリアル接続を確立する手順に従います。

  3. シリアル接続を確立したら、ボードとの接続用のシリアルポートをメモしておきます。デモを構築する際に必要になります。

FreeRTOS をダウンロードして設定する

環境をセットアップすると、GitHub から FreeRTOS をダウンロードできます。手順については、GitHub ウェブサイトの README.md ファイルを参照してください。

重要

ATECC608A デバイスには、プロジェクトが初めて実行されるとき (C_InitToken 呼び出し時) にデバイスにロックされる 1 回だけの初期化があります。ただし、FreeRTOS デモプロジェクトおよびテストプロジェクトには別の設定があります。デモプロジェクトの設定中にデバイスがロックされた場合、テストプロジェクトの一部のテストが成功しません。

  1. FreeRTOS デモを設定する の手順に従って、FreeRTOS デモプロジェクトを設定します。最後の手順の AWS IoT の認証情報をフォーマットするにはをスキップして、代わりに以下の手順に従います。

  2. Microchip から、ATECC608A 部品のセットアップに役立ついくつかのスクリプトツールが提供されています。freertos/vendors/microchip/secure_elements/app/example_trust_chain_tool ディレクトリに移動してから、README.md ファイルを開きます。

  3. README.md ファイルの手順に従って、デバイスをプロビジョニングします。このステップには、以下が含まれます。

    1. 認証機関を作成して に登録する AWS

    2. ATECC608A でキーを生成し、パブリックキーとデバイスのシリアル番号をエクスポートします

    3. デバイスの証明書を生成し、その証明書を に登録する AWS

  4. 開発者モードのキーのプロビジョニング の手順に従って、CA 認定とデバイス証明書をデバイスにロードします。

FreeRTOS デモプロジェクトを構築、フラッシュ、実行する

CMake を使用してビルドファイルを生成し、Make を使用してアプリケーションバイナリをビルドし、Espressif の IDF ユーティリティを使用してボードをフラッシュできます。

Linux または MacOS で FreeRTOS を構築する (ESP-IDF v3.3)

Windows を使用している場合は、Windows で FreeRTOS を構築する (ESP-IDF v3.3) に進んでください。

CMake を使用してビルドファイルを生成してから、Make を使用してアプリケーションをビルドします。

CMake を使用してデモアプリケーションのビルドファイルを生成するには
  1. FreeRTOS ダウンロードディレクトリのルートに移動します。

  2. コマンドラインウィンドウで、次のコマンドを入力してビルドファイルを生成します。

    cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -S . -B your-build-directory
    メモ

    デバッグ用にアプリケーションをビルドするには、 -DCMAKE_BUILD_TYPE=Debug フラグを追加します。

    テストアプリケーションのビルドファイルを生成するには、-DAFR_ENABLE_TESTS=1 フラグを追加します。

    Espressif が提供するコードは、ライトウェイト IP (lwIP) スタックをデフォルトのネットワークスタックとして使用します。代わりに FreeRTOS+TCP ネットワークスタックを使用するには、CMake コマンドに –DAFR_ESP_FREERTOS_TCP フラグを追加します。

    ベンダー以外が提供するコードの lwIP 依存関係を追加するには、カスタム Wi-Fi コンポーネントの CMake 依存関係ファイル CMakeLists.txt に次の行を追加します。

    # Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)
Make を使用してアプリケーションをビルドするには
  1. build ディレクトリに移動します。

  2. コマンドラインウィンドウで次のコマンドを入力し、Make を使用してアプリケーションをビルドします。

    make all -j4
    注記

    aws_demos プロジェクトと aws_tests プロジェクトを切り替えるたびに、cmake コマンドでビルドファイルを生成する必要があります。

Windows で FreeRTOS を構築する (ESP-IDF v3.3)

Windowsでは、CMake 用のビルドジェネレーターを指定する必要があります。それ以外の場合、CMake はデフォルトで Visual Studio に設定されます。Ninja ビルドシステムは Windows、Linux、および MacOS で機能するため、Espressif では Ninja ビルドシステムが公式に推奨されます。CMake コマンドは、cmd あるいは PowerShell などのネイティブの Windows 環境で実行する必要があります。MSYS2 や WSL などの仮想 Linux 環境で CMake コマンドを実行することはサポートされていません。

CMake を使用してビルドファイルを生成してから、Make を使用してアプリケーションをビルドします。

CMake を使用してデモアプリケーションのビルドファイルを生成するには
  1. FreeRTOS ダウンロードディレクトリのルートに移動します。

  2. コマンドラインウィンドウで、次のコマンドを入力してビルドファイルを生成します。

    cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -GNinja -S . -B your-build-directory
    注記

    デバッグ用にアプリケーションをビルドするには、 -DCMAKE_BUILD_TYPE=Debug フラグを追加します。

    テストアプリケーションのビルドファイルを生成するには、-DAFR_ENABLE_TESTS=1 フラグを追加します。

    Espressif が提供するコードは、ライトウェイト IP (lwIP) スタックをデフォルトのネットワークスタックとして使用します。代わりに FreeRTOS+TCP ネットワークスタックを使用するには、CMake コマンドに –DAFR_ESP_FREERTOS_TCP フラグを追加します。

    ベンダー以外が提供するコードの lwIP 依存関係を追加するには、カスタム Wi-Fi コンポーネントの CMake 依存関係ファイル CMakeLists.txt に次の行を追加します。

    # Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)
アプリケーションを構築するには
  1. build ディレクトリに移動します。

  2. コマンドラインウィンドウで次のコマンドを入力し、Ninja を呼び出してアプリケーションをビルドします。

    ninja

    または、一般的な CMake インターフェイスを使用してアプリケーションをビルドします。

    cmake --build your-build-directory
    注記

    aws_demos プロジェクトと aws_tests プロジェクトを切り替えるたびに、cmake コマンドでビルドファイルを生成する必要があります。

FreeRTOS をフラッシュして実行する (ESP-IDF v3.3)

Espressif の IDF ユーティリティ (freertos/vendors/espressif/esp-idf/tools/idf.py) を使用してボードをフラッシュし、アプリケーションを実行してログを表示します。

ボードのフラッシュを消去するには、freertos ディレクトリに移動し、次のコマンドを入力します。

./vendors/espressif/esp-idf/tools/idf.py erase_flash -B build-directory

アプリケーションバイナリをボードにフラッシュするには、make を使用します。

make flash

また、IDF スクリプトを使用してボードをフラッシュすることもできます。

./vendors/espressif/esp-idf/tools/idf.py flash -B build-directory

ログを表示するには、以下のコマンドを使用します。

./vendors/espressif/esp-idf/tools/idf.py monitor -p /dev/ttyUSB1 -B build-directory
ヒント

また、これらのコマンドを組み合わせることもできます。

./vendors/espressif/esp-idf/tools/idf.py erase_flash flash monitor -p /dev/ttyUSB1 -B build-directory

ESP-IDF v4.2 の開始方法

このセクションでは、Espressif ハードウェアで ESP-IDF v4.2 を使用する方法について説明します。ESP-IDF v3.3 を使用するには、「ESP-IDF v3.3 の開始方法」を参照してください。

注記

このチュートリアルの Linux コマンドでは、Bash シェルを使用する必要があります。

Espressif ハードウェアを設定する

ESP32-WROOM-32SE 開発ボードハードウェアの設定の詳細については、ESP32-DevKitC V4 入門ガイドを参照してください。

重要

Espressif ガイドの開始方法セクションに到達したらそこで止まり、以下の手順に従います。

開発環境をセットアップする

ボードと通信するには、ツールチェーンをダウンロードしてインストールする必要があります。

ツールチェーンの設定

ツールチェーンを設定するには、ホストマシンのオペレーティングシステムの指示に従ってください。

重要

次のステップの下にある「ESP-IDF の取得」の手順に到達したらそこで止まり、このページの手順に戻ります。

インストールを完了する (Linux/Mac)

ESP-IDF Windows インストーラは、必要なすべてのツールをインストールします。Linux および MAC OSX プラットフォームでは、インストールを完了するために追加の手順が必要です。

コマンドラインウィンドウを開き、FreeRTOS ダウンロードディレクトリに移動してから次のスクリプトを実行して、プラットフォーム用の espressif ツールチェーンをダウンロードおよびインストールします。

vendors/espressif/esp-idf/install.sh

次に、次のコマンドを使用して ESP-IDF ツールチェーンツールをターミナルのパスに追加します。

source vendors/espressif/esp-idf/export.sh

シリアル接続の確立

  1. ホストマシンと ESP32-WROOM-32SE の間にシリアル接続を確立するには、CP210x USB を UART Bridge VCP ドライバーにインストールする必要があります。これらのドライバーは Silicon Labs からダウンロードできます。

  2. ESP32 でシリアル接続を確立する手順に従います。

  3. シリアル接続を確立したら、ボードとの接続用のシリアルポートをメモしておきます。デモを構築する際に必要になります。

FreeRTOS をダウンロードして設定する

環境をセットアップすると、GitHub から FreeRTOS をダウンロードできます。手順については、GitHub ウェブサイトの README.md ファイルを参照してください。

重要

ATECC608A デバイスには、プロジェクトが初めて実行されるとき (C_InitToken 呼び出し時) にデバイスにロックされる 1 回だけの初期化があります。ただし、FreeRTOS デモプロジェクトおよびテストプロジェクトには別の設定があります。デモプロジェクトの設定中にデバイスがロックされた場合、テストプロジェクトの一部のテストが成功しません。

  1. FreeRTOS デモを設定する の手順に従って、FreeRTOS デモプロジェクトを設定します。最後の手順の AWS IoT の認証情報をフォーマットするにはに到達したらそこで止まり、以下の手順に従います。

  2. Microchip から、ATECC608A 部品のセットアップに役立ついくつかのスクリプトツールが提供されています。freertos/vendors/microchip/secure_elements/app/example_trust_chain_tool ディレクトリに移動し、README.md ファイルを開きます。

  3. README.md ファイルの手順に従って、デバイスをプロビジョニングします。このステップには、以下が含まれます。

    1. 認証機関を作成して に登録する AWS

    2. ATECC608A でキーを生成し、パブリックキーとデバイスのシリアル番号をエクスポートします

    3. デバイスの証明書を生成し、 AWSに登録します

  4. 開発者モードのキーのプロビジョニング の手順に従って、CA 認定とデバイス証明書をデバイスにロードします。

idf.py スクリプトを使用して FreeRTOS デモプロジェクトを構築、フラッシュ、実行する

Espressif の IDF ユーティリティを使用してビルドファイルを生成し、アプリケーションバイナリを構築し、ボードをフラッシュできます。

Windows、Linux、MacOS で FreeRTOS を構築してフラッシュする (ESP-IDF v4.2)

idf.py スクリプトを使用して、プロジェクトを構築し、デバイスにバイナリをフラッシュします。

注記

一部のセットアップでは、次の例のように、idf.py でポートオプション "-p port-name" を使用して正しいポートを指定する必要があります。

idf.py -p /dev/cu.usbserial-00101301B flash
プロジェクトを構築してフラッシュするには
  1. FreeRTOS ダウンロードディレクトリのルートに移動します。

  2. コマンドラインウィンドウで次のコマンドを入力して、ESP-IDF ツールをターミナルのパスに追加します。

    Windows

    vendors\espressif\esp-idf\export.bat

    Linux/macOS

    source vendors/espressif/esp-idf/export.sh
  3. 次のコマンドを使用して build ディレクトリで CMake を設定し、ファームウェアイメージを構築します。

    idf.py -DVENDOR=espressif -DBOARD=esp32_ecc608a_devkitc -DCOMPILER=xtensa-esp32 build

    次の例のような出力が表示されます。

    Running cmake in directory /path/to/hello_world/build Executing "cmake -G Ninja --warn-uninitialized /path/to/hello_world"... Warn about uninitialized values. -- Found Git: /usr/bin/git (found version "2.17.0") -- Building empty aws_iot component due to configuration -- Component names: ... -- Component paths: ... ... (more lines of build system output) [527/527] Generating hello-world.bin esptool.py v2.3.1 Project build complete. To flash, run this command: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x10000 build/hello-world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin or run 'idf.py -p PORT flash'

    エラーが起きなければ、構築によってファームウェアバイナリの .bin ファイルが生成されます。

  4. 次のコマンドを使用して、開発ボードのフラッシュメモリを消去します。

    idf.py erase_flash
  5. idf.py スクリプトを使用して、アプリケーションバイナリをボードにフラッシュします。

    idf.py flash
  6. 次のコマンドを使用して、ボードのシリアルポートからの出力をモニタリングします。

    idf.py monitor
注記

次の例のようにこれらのポリシーを組み合わせることができます。

idf.py erase_flash flash monitor
注記

特定のホストマシンのセットアップでは、次の例のように、ボードをフラッシュするときにポートを指定する必要があります。

idf.py erase_flash flash monitor -p /dev/ttyUSB1

CMake で FreeRTOS を構築してフラッシュする

IDF SDK が提供する idf.py スクリプトを使ってコードを構築および実行できるほか、CMake を使用してプロジェクトを構築することもできます。現在、Unix Makefile と Ninja ビルドシステムをサポートしています。

プロジェクトを構築してフラッシュするには
  1. コマンドラインウィンドウで、FreeRTOS ダウンロードディレクトリのルートに移動します。

  2. 次のスクリプトを実行して、ESP-IDF ツールをシェルのパスに追加します。

    Windows

    vendors\espressif\esp-idf\export.bat

    Linux/macOS

    source vendors/espressif/esp-idf/export.sh
  3. 次のコマンドを入力して、ビルドファイルを生成します。

    Unix Makefiles を使用

    cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0

    Ninja を使用

    cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0 -GNinja
  4. フラッシュを消去してから、ボードをフラッシュします。

    Unix Makefiles を使用

    make -C ./YOUR_BUILD_DIRECTORY erase_flash
    make -C ./YOUR_BUILD_DIRECTORY flash

    Ninja を使用

    ninja -C ./YOUR_BUILD_DIRECTORY erase_flash
    ninja -C ./YOUR_BUILD_DIRECTORY flash

AWS クラウドでの MQTT メッセージのモニタリング

AWS IoT コンソールで MQTT クライアントを使用して、デバイスが AWS クラウドに送信するメッセージをモニタリングできます。

MQTT クライアントで AWS IoT MQTT トピックをサブスクライブするには
  1. AWS IoT コンソール にサインインします。

  2. ナビゲーションペインで、[Test] (テスト) を選択して MQTT クライアントを開きます。

  3. [Subscription topic] (トピックのサブスクリプション) で your-thing-name/example/topic と入力し、[Subscribe to topic] (トピックへのサブスクライブ) を選択します。

追加情報

Espressif ESP32 ボードの使用とトラブルシューティングの詳細については、以下のトピックを参照してください。