Arduino UNO R4の登場で広がるArduinoの世界(2)Arduino UNO R4 Minimaを動かしてみる

 今回は、アメリカから輸入したArduino UNO R4 MinimaをArduino IDEで動かしてみます。Arduino UNO R4 Minimaは次に示すように、USBのコネクタはtype Cのものに変わっています。マイクロBのほかにtype Cのコネクタを揃えることになります。ピンヘッダはUNO R3と同じです。


 3×2のICSP(SPI)のピンヘッダは一つとなりました(J1)。10ピンのデバッグ用のSWDのピンヘッダが追加されています(J2)。
 これらのボードのピン配置などは、Arduino UNO R4 Minimaのデータシートに次のように説明されています。

基本的にはUNO R3と同じ

 Arduino UNO R4 Minimaは、次に示すデータシートのボードの配置図のように基本的には、UNO R3とほぼ同様なものとなっています。

異なるものは

  • USBコネクタがType BからType Cに変更された
  • 3×2の6ピンのICSPのピンヘッダが2セットあったものが、UNO R4はICSP2が削除され1セットとなった
  • UNO R4では、5×2のデバッグ行うためのSWD/JTAGのピンヘッダが追加された

コアのマイクロコントローラ

 UNO R3では8ビットのAVRマイクロコンピュータでしたが、UNO R4には32ビットのARM CORTEX M4のルネサス製R7FA4M1AB3CFMが搭載されています。64ピンのLQFPの形状となっています。LQFPはパッケージの取り付け高さが『1.20mm<L≦1.70mm』の間のQFPのパッケージを示しています。

アナログ・ポート、ディジタル・ポート

 アナログ入力、PWMによるアナログ出力、ディジタルI/Oの基本的な機能はUNO R3と同様になっています。アナログ入力ポートの割り当てはA0、A1、A2、A3、A4、A5と同一です。

SPI、I2Cインターフェース

  SPIはD13(CSK)、D12(CIPO)、D11(COPI)、D10(CS)の4ピンに割り当てられ、D13、D12、D11はICSPにも接続されています。I2C用SDA、SCピンはアナログ・ピンのA4とSDA、A5はSCLとが接続されています。これらはUNO R3と同じです。

USBシリアルとUART

 UNO R4ではUSBシリアルとD0、D1に割り当てられているRX、TXは、それぞれ独立したものになっています。UNO R3とUNO R4の共通の機能のうちで数少ない異なる仕様の一つです。

追加された機能

アナログ出力(DAC端子)
 UNO R4のボードのA0は、DAC(ディジタル-アナログ・コンバータ)の変換結果を出力するアナログ出力ポートになっています。この機能はArduino MKR WiFi 1010のMKRシリーズでも用意されています。デフォルトの設定では8ビットの分解能のDACですが、UNO R4は12ビットの分解能まで対応できます。MKRシリーズのDACは10ビットの分解能でした。

OPアンプの機能
 UNO R4のデータシートには、アナログ入力端子のA1(+)、A2(-)、A3(out)でOPアンプが構成できることが示されています。少し遅くなるかもしれませんが、後ほどテスト回路を組んで確認します。

RTC(リアルタイム・クロック)
  UNO R4では搭載されているルネサスのマイコンRA4M1がもつRTC機能が利用できます。電源投入後の時刻合わせが必要です。サンプル・スケッチも用意されています。

CAN
 自動車の車内のネットワークから始まりFAなどにも広く使われているCAN2.0A/2.0Bの規格に準拠したモジュールが搭載されています。

USB-HID
 キーボードやマウスのインターフェースとしての機能を発揮します。

新機能を確認するサンプル

 これらの新規機能は、Arduino UNO R4 Minimaを選択すると、次に示すようにサンプル・スケッチが用意されています。
▼RTC
 RTCでは開始時刻のマニュアルでの設定のほか、Wi-Fiが利用できる環境が必要ですがNTPサーバを利用した時刻合わせのサンプルも用意されています。そのほかアラームの設定の例もあります。
▼CAN
 メッセージの読み取りと、書き込みのそれぞれのサンプルが用意されています。


 Arduino UNO R3で利用されていたイーサネット・シールドを利用したサンプル・スケッチも含まれています。

 FreeRTOSのサンプルもあります。高性能なチップが搭載されたので、リアルタイムでクリティカルな処理を行う実験もできそうです。

 次に示すように、これらの機能をバックアップするためのUNO R4用のライブラリも追加されています。Arduino_CAN、Arduino_FreeRTOS、RTCなどが追加されています。
 イーサネット・ライブラリはUNO R3で利用されたイーサネット・シールドを用いることを前提にしています。ネットワークを利用する場合はもう少し待ってArduino UNO R4 WiFiを購入してから検討することとします。

Arduino UNO R4 Minimaを動かす

 サンプル・スケッチのBasicsの中のFadeをアップロードして、9番のディジタル・ピンにLEDを接続し点滅します。アナログ出力でLEDの明るさを制御します。

Fade用テスト回路

 ブレッドボードを利用します。テスト回路は、次に示すようにD9から1kΩの抵抗を接続します。抵抗とLEDのプラス側を接続し、LEDのマイナス側はボードのGNDに接続します。

スケッチ例 Fade.ino
●変数の設定

 スケッチでは、int LED=9;でLEDを制御するディジタル・ポートをd9に設定します。次のint brightness = 0;で、明るさを設定する変数の初期値を0に設定します。次のint fadeAmount = 5;は、明るさ制御する変数のステップ値です。

初期化処理

 初期化処理を行うsetup()関数では、pinMode(led, OUTPUT);でLEDを制御するd9ポートを出力ポートに設定します。初期設定はこれだけです。

loop()関数

 メインの処理を行うloop()関数では、最初にanalogWrite(led, brightness);の命令でd9ポートにbrightnessで示された明るさのアナログ出力を行います。次のbrightnessの値をfadeAmountの値でカウント・アップします。brightnessの値が255と等しいか超えるとカウント・ダウンするようにfadeAmountの値をマイナスにします。brightnessが0またはマイナスになるとカウント・アップするようにfadeAmountの値をプラスにします。

 30ms待って次に進みます。delay(30)の設定値を変更すると、点滅の周期が変わります。
 以上のサンプル・スケッチを次に示します。

 PCにUSBケーブルで接続し、ツール>ボードでArduino UNO R4 Minimaを選択して、ツール>ポートでArduino UNO R4 Minimaが接続されているポートを選択します。

 PCに接続されたArduinoは、次に示すように選択されたボードを表するドロップダウン・リストで利用できるボードを選択することもできます。ボードとポートの組み合わせで選択するので一度の選択で終わります。

 ボードとポートの選択を行い、「書き込み」(右むきの⇒)アイコンをクリックするとコンパイル、アップロードを完了しLEDがゆっくりと点滅します。

(2023/07/29)

<神崎 康宏>

前へ

Arduino UNO R4 Minimaでセンサ・インターフェーシング ④ 温湿度センサSi7021の測定結果を7セグメントLEDに表示

次へ

Arduino UNO R4 Minimaでセンサ・インターフェーシング ⑤ 温湿度センサSi7021の測定結果をグラフィック・ディスプレイに表示