GR-COTTON(2)-電圧測定装置

各種センサーの値(電圧)をPCに取り組むために、各社からさまざまな装置が販売されています。 装置は複数センサー値が読み込めるものが多く、複数のセンサーになれば、そのぶん金額も高くなります。今回、読み込むセンサーの値は1つでよかったので、自作することにしました。何か良い基板はないかなと探したところ、小型な基板であることもあり、GR-COTTONを使って作成することにしました。

GR-COTTONは以前下記のページで紹介しています。この時は、LEDを点滅する
機能を作成したと思います。開発環境に関しても紹介していますので、参考に
していただければと思います。

GR-COTTON(1)-動作確認

今回、下記のような機能を構築しようと思います。

  1. 電源を投入したらLEDを点滅させる。
  2. 電圧の値を読む。
  3. READコマンドが受信したら、読み込んだ電圧値を返信する。

下記のように電圧を変化させてみると、下記のような出力を取得できました。

  • 3.3V → 1023
  • 1.65V → 512
  • 0.33V → 100

GR-COTTONはDTRの設定があるようなので、TeraTermで接続するとGR-COTTONが停止してしまいます。KurumiWriterで書き込む際に「Run after COM open(FTDI setting)」にチェックを入れて書き込む方法やTeraTermにもDTRの設定をするなどの対策方法もありますが、今回は、以前C#で作成したシリアル通信のアプリケーションで動作確認をしました。

C#言語(2)-RS232C通信(シリアル通信)

電圧を読み込むピンはA2ピンを使用しました。ちょうどGNDも隣にあるので使いやすいです。シリアル通信は、USBコネクタで行います。

それでは、プログラミンをしていきます。

AmazonWebService(7)-ポート 443を使った証明書によるクライアント認証でMQTT接続(GR-ROSE)

ポート8883、ポート8443を使用しましたが、企業のファイアウォールや一部のホームルータは、デフォルトでは、HTTPS の標準ポート 443 以外のすべてのポートで、制限することが多いので、そのような環境では、正しく動作しません。その時に、ポート443を使用します。「RX65N Cloud Kit」を使用して、ポート443を使った証明書によるクライアント認証でMQTT接続を行いました。同様に「GR-ROSE」でもポート443を使った証明書によるクライアント認証でMQTT接続を実施したいと思います。

RX65N Cloud Kitの時は、下記のページのように、ソースコードの追加、修正がありましたが、GR-ROSEに関しては、一行修正すれば、ポート443を使った証明書によるクライアント認証でMQTT接続ができます。

AmazonWebService(5)-ポート 443を使った証明書によるクライアント認証でMQTT接続

それでは、ポート443を使った証明書によるクライアント認証でMQTT接続ができるようにソースコードを修正していきたいと思います。

AmazonWebService(6)-Amazon FreeRTOS動作確認(GR-ROSE)

前回まで、RX65N Cloud Kitに、Amazon FreeRTOSを使用して、AWS(
Amazon Web Service)とデータの送受信をしました。今回は、GR-ROSEに、Amazon FreeRTOSを組み込んで、AWSとデータの送受信をしたいと思います。最初のプロジェクトファイルの読み出し以外は、RX65N Cloud Kitの手順とほぼ同じだと思いますので、下記のページが参考になると思います。

AmazonWebService(4)-Amazon FreeRTOS動作確認

RX65N Cloud KItの時は無線を使用しましたが、GR-ROSEでは、Ethernetを使用してみようと思います。GR-ROSEは無線でもできますが、今回は、Ethernetを使用しようと思います。それでは、まずはプロジェクトを統合開発環境(IDE)にインポートします。IDEは、e2studioを使用します。

e2studioを起動後、[ファイル]→[インポート]を選択して、インポート画面を開きます。既存プロジェクトをワークスペースへを選択して、「次へ」ボタンを押します。

AmazonWebService(5)-ポート 443を使った証明書によるクライアント認証でMQTT接続

前回、Amazon FreeRTOSを使用して、AWSとデータの送受信しました。Amazon FreeRTOSは、RX65N Cloud Kitに書き込んで使用しました。前回は、ポート8883、ポート8443を使用しましたが、企業のファイアウォールや一部のホームルータは、デフォルトでは、HTTPS の標準ポート 443 以外のすべてのポートで、制限することが多いので、そのような環境では、正しく動作しません。その時に、ポート443を使用します。AWS IoT Core は、ポート443を使った証明書によるクライアント認証でMQTT接続をサポートしています。

それでは、試してみます。ルーターの8883ポートを制限して、RX65N Cloud Kitを動作させてみました。下記のようにエラーが発生しました。

このようにポートを制限されてしまったため、通信エラーになってしまいました。企業では、セキュリティのため、ポート制限をすることはよくあることです。そこで、HTTPS の標準ポート 443を使用します。それでは、ポート443に対応できるようにソースコードを修正していきたいと思います。

AmazonWebService(4)-Amazon FreeRTOS動作確認

前回まで、Amazon Web Service側の設定が完了したので、今回は、Amazon FreeRTOSを使用して、AWSとデータの送受信をしようと思います。Amazon FreeRTOSは、RX65N Cloud Kitに書き込んで使用します。それでは、まずは、Amazon FreeRTOSを用意します。下記のサイトからダウンロード可能です。

Amazon Web Services からダウンロードしたAmazon FreeRTOSは、Amazon FreeRTOS Qualification Program による検証されたものになります。また、
Amazon FreeRTOSは最新版ではありません。検証に使用したマイコンボードは、Renesas Starter Kit+ for RX65N-2MBになります。

GitHub(aws) からダウンロードしたAmazon FreeRTOSは、最新版のAmazon FreeRTOSになります。検証に使用したRXマイコン ボード以外のパッケージはありません。

GitHub(renesas-rx) からダウンロードしたAmazon FreeRTOSは、最新版のAmazon FreeRTOSではありません。検証に使用したRXマイコン ボード以外のパッケージもあります。RX65N Cloud Kitのパッケージもあります。

今回は、RX65N Cloud Kitを使用しようと思いますので、GitHub(renesas-rx) からダウンロードします。

それでは、まずはダウンロードしたファイルを統合開発環境(IDE)にインポートします。IDEは、e2studioを使用します。

AmazonWebService(3)-IoT Core MCU ボードを登録

今回は、MCUボードを登録します。Amazon FreeRTOS コンソールで [Quick Connect (クイック接続)] ワークフローを使用すると、ポリシー、AWS IoT のモノ、およびキーと証明書が自動的に作成されますが、今回は1つ1つ登録していこうと思います。MCUボード登録をするために下記の2つの設定を行います。

  • AWS IoT ポリシーを作成
  • デバイス用の IoT モノ、プライベートキー、証明書を作成

それでは、AWS IoTポリシーの作成から行います。AWS IoT ポリシーの作成には下記の2つの情報が必要になります。

  • AWS のアカウントID
  • AWS アカウントの AWS リージョン

AWSのアカウントIDはマイアカウントから確認できます。画面右上のアカウント名を選択すると、メニューが開かれるのでマイアカウントを選択します。

アカウントIDが確認できます。

AmazonWebService(2)-IAM アクセス許可

前回、AWSにユーザーを追加しました。今回は、アクセス許可の設定を行います。AWS IoT および Amazon FreeRTOS に IAM ユーザーアカウントのアクセスを付与するには、IAM ユーザーアカウントに下記の2つのIAM ポリシーをアタッチします。

  • AmazonFreeRTOSFullAccess:
    関連付けられた ID にすべての Amazon FreeRTOS へのフルアクセスを許可します。
  • AWSIoTFullAccess:
    関連付けられた ID にすべての AWS IoT 設定およびメッセージングオペレーションへのフルアクセスを許可します。

それでは、アクセス許可の設定を行っていきます。下記のURLよりAWSマネージメントコンソールを開きます。

https://console.aws.amazon.com/console/

AWSマネージコンソールよりIAMを選択して、IAMを開きます。

AmazonWebService(1)-IAM ユーザ追加

近頃は、IoTという言葉も定着してきました。IoTは、Internet of Thingsの省略した言葉で、直訳すると「モノのインターネット」という意味です。今後、市場もどんどん大きくなっていくのではと予想されています。ということで、IoT機器を作成してみて、どのようなことができるか調査していこうと思います。

使用するマイコンは、Renesas RX65Nを使用します。使用するクラウドサービスは、Amazon Web Service(AWS)です。Renesasから、AWSに容易に接続できる開発キットとして、RX65N Cloud Kitが販売されています。まずはこちらを使用してみようと思います。

まずは、AWSの設定です。AWSのアカウントを取得(こちらがルートアカウントになります。)したら、まずはIAM(Identity and Access Management)を使用して、ユーザを追加します。下記のURLよりAWSマネージメントコンソールを開きます。

https://console.aws.amazon.com/console/

AWSマネージコンソールよりIAMを選択して、IAMを開きます。

GR-ROSE(4)-e2studio schetch

今回はe2studioで作成したファームウェアをGR-ROSEに書き込んでみたいと思います。出荷時はGR-ROSEのRXマイコンにUSBファームウェアが書き込まれています。リセットボタンを押すことでストレージとなり、binファイルをコピーするとユーザーアプリケーションとして実行されるようになっています。このbinファイルがArduinoライクなスケッチで作成したファイルになります。今回は、このUSBファームウェアをイレースして、別のファームウェアを書き込みたいと思います。

まずは、書き込みファームウェアを作成します。Timerを使用して、LEDを点滅するファームウェアを作成しようと思います。

それでは、新規プロジェクトの作成を行います。新規プロジェクトの作成は下記のページを参考にしてください。

RX(3)-RS232通信

上記のページでは、ターゲット・デバイスを「R5F565NEHDFC」に設定しています。今回使用するマイコンは、「R5F565NEHDFP」なので、「R5F565NEHxFP」に設定してください。

プロジェクト・エクスプローラーに新規プロジェクトが追加されました。中央には、スマート・コンフィグレータが開かれると思いますので、入出力ポートのコンポーネントとタイマーのコンポーネントを追加・設定していきます。追加、設定の方法は下記のページを参考にしてください。

RX(2)-タイマーLED点滅

コンポーネントの追加・設定ができましたら、コード生成ボタンを押します。プロジェクトツリーの中に、コードが生成されました。それでは、main関数、r_Config_TMR0_TMR1_cmia0_interrupt関数にコーディングしていきます。コーディングの内容は、下記のページを参考にしてください。

RX(2)-タイマーLED点滅

コーディングが完了しましたら、書き込みを行います。書き込みは、Renesas Flash Programmerを使用して行います。Renesas Flash Programmerは下記のページよりダウンロードできます。

http:// https://www.renesas.com/jp/ja/products/software-tools/tools/programmer/renesas-flash-programmer-programming-gui.html

GR-ROSE(3)-RS485

今回はGR-ROSEを使用して、RS485通信機能を作成しようと思います。前回(下記のサイト)でも述べましたが、GR-ROSEはさまざまなインターフェイスを搭載しております。

GR-ROSE(1)-動作確認

RS485を搭載している基板を探している時に、GR-ROSEを見つけました。今回は、RS485通信機能を使用して、LEDのON_OFFを実現します。

それでは、IDE for GRの実行して、USBケーブルでPCとGR-ROSEを接続しておきます。

GR-ROSEのスケッチでは、Serial7クラスを使用して、RS485通信を行います。まずは、シリアル通信のボーレート、ポートの設定を行います。シリアル通信のボーレート、ポートの設定は下記のように、beginメソッドを使用します。