Nordic nRF52840-DK の開始方法 - FreeRTOS

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

Nordic nRF52840-DK の開始方法

重要

このリファレンス統合は、非推奨の Amazon-FreeRTOS リポジトリでホストされています。新しいプロジェクトを作成するときは、ここから始めることをお勧めします。現在非推奨の Amazon-FreeRTOS リポジトリをベースにした既存の FreeRTOS プロジェクトが既にある場合は、「Amazon FreeRTOS Github リポジトリ移行ガイド」を参照してください。

このチュートリアルでは、Nordic nRF52840-DK の使用を開始するための手順について説明します。Nordic nRF52840-DK がない場合は、AWS Partner Device Catalog にアクセスして当社のパートナーから購入してください。

開始する前に、FreeRTOS Bluetooth Low Energy 用の AWS IoT と Amazon Cognito のセットアップ することが必要です。

FreeRTOS Bluetooth Low Energy デモを実行するには、Bluetooth および Wi-Fi 機能が搭載された iOS または Android デバイスも必要です。

注記

iOS デバイスを使用している場合は、デモ用モバイルアプリケーションを構築するために Xcode が必要です。Android デバイスを使用している場合、Android Studio を使用してデモ用モバイルアプリケーションを構築できます。

概要

このチュートリアルには、使用開始のための以下の手順が含まれています。

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

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

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

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

  5. モニタリングおよびデバッグの目的で、シリアル接続経由でボード上で実行されているアプリケーションに接続します。

Nordic ハードウェアをセットアップする

ホストコンピュータを、Nordic nRF52840 ボードのコイン型電池ホルダーのすぐ上にある J2 という USB ポートに接続します。

Nordic nRF52840-DK のセットアップ方法の詳細については、nRF52840 Development Kit ユーザーガイドを参照してください。

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

Segger Embedded Studio のダウンロードとインストール

FreeRTOS は、Nordic nRF52840-DK 用の開発環境として Segger Embedded Studio をサポートしています。

環境をセットアップするには、Segger Embedded Studio をホストコンピュータにダウンロードしてインストールする必要があります。

Segger Embedded Studio をダウンロードしてインストールするには
  1. Segger Embedded Studio Downloads ページに移動し、お使いのオペレーティングシステムの ARM オプション用 Embedded Studio を選択します。

  2. インストーラを実行し、プロンプトに従ってインストールを完了します。

FreeRTOS Bluetooth Low Energy Mobile SDK デモアプリケーションをセットアップする

Bluetooth Low Energy で FreeRTOS デモプロジェクトを実行するには、モバイルデバイスで FreeRTOS Bluetooth Low Energy Mobile SDK デモアプリケーションを実行する必要があります。

FreeRTOS Bluetooth Low Energy Mobile SDK デモアプリケーションをセットアップするには
  1. モバイルプラットフォーム用の SDK をホストコンピュータにダウンロードしてインストールするには、「FreeRTOS Bluetooth デバイス用の Mobile SDK」の手順に従います。

  2. モバイルデバイスにデモモバイルアプリケーションをセットアップするには、「FreeRTOS Bluetooth Low Energy Mobile SDK デモアプリケーション」の手順に慕います。

シリアル接続の確立

Segger Embedded Studio には、ターミナルエミュレーターが搭載されており、ボードにシリアル接続してログメッセージを受信することができます。

Segger Embedded Studio とのシリアル接続を確立するには
  1. Segger Embedded Studio を開きます。

  2. トップメニューから、[Target] (ターゲット)、[Connect J-Link] (J-Link を接続) の順に選択します。

  3. トップメニューで [Tools] (ツール)、[Terminal Emulator] (ターミナルエミュレータ)、[Properties] (プロパティ) を選択し、ターミナルエミュレーターをインストールする の指示に従ってプロパティを設定します。

  4. トップメニューで、[Tools] (ツール)、[Terminal Emulator] (ターミナルエミュレータ)、[Connect port (115200,N,8,1)] (ポート (115200,N,8,1) に接続) の順に選択します。

注記

Segger 組み込みスタジオターミナルエミュレータは、入力機能をサポートしていません。このため、PuTTy、Tera Term、GNU Screen などのターミナルエミュレータを使用してください。ターミナルエミュレーターをインストールする の手順に従って、ターミナルをシリアル接続でボードに接続するよう設定します。

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

ハードウェアと環境をセットアップした後、FreeRTOS をダウンロードすることができます。

FreeRTOS をダウンロードする

Nordic nRF52840-DK 用の FreeRTOS をダウンロードするには、FreeRTOS GitHub ページに移動し、リポジトリのクローンを作成します。手順については、README.md ファイルを参照してください。

重要
  • このトピックでは、FreeRTOS ダウンロードディレクトリへのパスを freertos とします。

  • freertos パスにスペース文字が含まれていると、構築が失敗する可能性があります。リポジトリをクローンまたはコピーするときは、作成するパスにスペース文字が含まれていないことを確認してください。

  • Microsoft Windows でのファイルパスの最大長は 260 文字です。FreeRTOS のダウンロードディレクトリパスが長くなると、構築が失敗する可能性があります。

  • ソースコードにはシンボリックリンクが含まれている可能性があるため、Windows を使用してアーカイブを抽出する場合は、次の操作を行う必要があります。

    • 開発者モードを有効にするか、または、

    • 管理者としてコンソールを使用します。

    この操作を行えば、Windows でアーカイブを抽出する際にシンボリックリンクを適切に作成できます。この操作を行わないと、シンボリックリンクは、そのパスがテキストとして含まれる、または空白の通常ファイルとして書き込まれます。詳細については、ブログの投稿「Symlinks in Windows 10!」を参照してください。

    Windows で Git を使用する場合は、開発者モードを有効にするか、以下を実行する必要があります。

    • 次のコマンドを使用して、core.symlinks を true に設定します。

      git config --global core.symlinks true
    • システムへの書き込みを行う git コマンド (git pullgit clonegit submodule update --init --recursive など) を使用する場合は、管理者としてコンソールを使用します。

プロジェクトを設定する

デモを有効化するには、プロジェクトを、AWS IoT と連携するよう設定する必要があります。AWS IoT と連携するようプロジェクトを設定するには、デバイスを AWS IoT のモノとして登録する必要があります。FreeRTOS Bluetooth Low Energy 用の AWS IoT と Amazon Cognito のセットアップすると、デバイスを用意する必要があります。

AWS IoT エンドポイントを設定するには
  1. AWS IoT コンソールにサインインします。

  2. ナビゲーションペインで [Settings] (設定) をクリックします。

    AWS IoT エンドポイントは、[Device data endpoint] (デバイスデータエンドポイント) テキストボックスに表示されます。次のようになっているはずです。1234567890123-ats.iot.us-east-1.amazonaws.comこのエンドポイントを書きとめておきます。

  3. ナビゲーションペインで、[Manage] (管理)、[Things] (モノ) の順に選択します。デバイスの AWS IoT モノ名を書き留めます。

  4. AWS IoT エンドポイントと AWS IoT モノ名を手元に用意し、IDE の freertos/demos/include/aws_clientcredential.h を開いて、以下 #define 定数の値を指定します。

    • clientcredentialMQTT_BROKER_ENDPOINT AWS IoT エンドポイント

    • clientcredentialIOT_THING_NAME ボードの AWS IoT モノ名

デモを有効化するには
  1. Bluetooth Low Energy GATT デモが有効になっていることを確認します。vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/iot_ble_config.h に移動して、#define IOT_BLE_ADD_CUSTOM_SERVICES ( 1 ) を define ステートメントのリストに追加します。

  2. vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/aws_demo_config.h を開き、この例のように CONFIG_OTA_MQTT_BLE_TRANSPORT_DEMO_ENABLED または CONFIG_OTA_HTTP_BLE_TRANSPORT_DEMO_ENABLED を定義します。

    /* To run a particular demo you need to define one of these. * Only one demo can be configured at a time * * CONFIG_BLE_GATT_SERVER_DEMO_ENABLED * CONFIG_MQTT_BLE_TRANSPORT_DEMO_ENABLED * CONFIG_SHADOW_BLE_TRANSPORT_DEMO_ENABLED * CONFIG_OTA_MQTT_BLE_TRANSPORT_DEMO_ENABLED * CONFIG_OTA_HTTP_BLE_TRANSPORT_DEMO_ENABLED * CONFIG_POSIX_DEMO_ENABLED * * These defines are used in iot_demo_runner.h for demo selection */ #define CONFIG_OTA_MQTT_BLE_TRANSPORT_DEMO_ENABLED
  3. Nordic チップに付属している RAM はメモリが非常に少ないため (250KB)、各属性のサイズと比較して大きい GATT テーブルエントリに対応するよう BLE 設定を変更する必要がある場合があります。このようにして、アプリケーションが取得するメモリの量を調整できます。これを行うには、ファイル freertos/vendors/nordic/boards/nrf52840-dk/aws_demos/config_files/sdk_config.h の次の属性の定義を上書きします。

    • NRF_SDH_BLE_VS_UUID_COUNT

      ベンダー固有の UUID の数。新しいベンダー固有の UUID を追加する場合は、この COUNT を 1 増やします。

    • NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE

      属性テーブルのサイズ (バイト単位)。サイズは 4 の倍数にする必要があります。この値は、属性テーブル専用に設定したメモリ量 (特性サイズを含む) を示すため、プロジェクトごとに異なります。属性テーブルのサイズを超えると、NRF_ERROR_NO_MEM エラーが発生します。通常、NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE を変更する場合は、RAM 設定を再構成する必要もあります。

    (テストの場合、ファイルの場所は freertos/vendors/nordic/boards/nrf52840-dk/aws_tests/config_files/sdk_config.hです。)

FreeRTOS デモプロジェクトを構築して実行する

FreeRTOS をダウンロードし、デモプロジェクトを設定したので、ボードでデモプロジェクトを構築して実行する準備が整いました。

重要

このボードでデモを実行するのが初めての場合は、デモの実行前にブートローダーをボードにフラッシュする必要があります。

ブートローダーを構築してフラッシュするには、以下の手順に従います。ただし、projects/nordic/nrf52840-dk/ses/aws_demos/aws_demos.emProject プロジェクトファイルを使用するのではなく、projects/nordic/nrf52840-dk/ses/aws_demos/bootloader/bootloader.emProject を使用します。

Segger Embedded Studio から FreeRTOS Bluetooth Low Energy デモを構築して実行するには
  1. Segger Embedded Studio を開きます。上部のメニューから [File] (ファイル) を選択し、次に [Open Solution] (ソリューションを開く) を選択してプロジェクトファイル projects/nordic/nrf52840-dk/ses/aws_demos/aws_demos.emProject に移動します。

  2. Segger Embedded Studio ターミナルエミュレータを使用している場合は、トップメニューから [Tools] (ツール) を選択後、[Terminal Emulator] (ターミナルエミュレータ)、[Terminal Emulator] (ターミナルエミュレータ) の順に選択して、シリアル接続の情報を表示します。

    別のターミナルツールを使用している場合は、シリアル接続の出力用にそのツールをモニタリングできます。

  3. [Project Explorer] (プロジェクトエクスプローラ) の aws_demos デモプロジェクトを右クリックし、[Build] (構築) を選択します。

    注記

    Segger Embedded Studio を初めて使用する場合は、「No license for commercial use (商用使用のためのライセンスがありません)」という警告が表示されることがあります。Segger Embedded Studio は、Nordic Semiconductor のデバイス用であれば無料で使用できます。無料ライセンスをリクエスト後、セットアップの際に [Activate Your Free License] (無料ライセンスの有効化) を選択し、手順に従います。

  4. [Debug] (デバッグ)、[Go] (実行) の順に選択します。

    デモの開始後、Bluetooth Low Energy でモバイルデバイスとペアになるのを待機します。

  5. MQTT over Bluetooth Low Energy Demo Application の指示に従って、FreeRTOS Bluetooth Low Energy Mobile SDK デモアプリケーションをモバイル MQTT プロキシとして使ってデモを完了します。

トラブルシューティング

FreeRTOS の開始方法に関する一般的なトラブルシューティングについては、「トラブルシューティングの開始方法」を参照してください。