お久しぶりです.
またもや長い期間が空いてしまいましたが,研究は着々と進んでいます.
試作1号機の基板と部品の発注を終え,それらが手元にある状態です.
ということでまずArduino Nano R4について備忘録を残しておこうと思います.
まず,最初に動作確認で行うことで有名なLチカですが,まず今までとは違うところに引っかかりました.
Nano R4のデータシートを見れば書いてあることなのですが,内蔵LEDのピンが変更になっています.
今まではD13ピンがLと記された内蔵LEDに接続されていました.
またこれが伝統とされてきましたし,Uno R4 Minimaでも同様にD13に接続されていました.
ですがNano R4ではLED_BUILTINという名称の独立ピンに変更されています.
初回の書き込み時にLチカが動作しなくて普通に焦りました.
ですからLチカスケッチは以下のようになります.
/* このスケッチはArduino Nano R4用のLチカスケッチです */
void setup () {
// セットアップなし
}
void loop () {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
ちょっと面倒くさいなというのが正直な感想です.
また,Nano R4にはオンボードRGB LEDがあるのですがこいつも少しクセがあります.
同じくデータシートを見てみると赤,緑,青の順にLEDR,LEDG,LEDBとピン名が振られていることが分かります.
ただし先ほどのLED_BUILTINと違って,出力モード固定ではありませんから,pinMode()関数で出力モードを指定してやる必要があります.
そしてアクティブLOWという仕様のため,ピンのHIGH/LOWは直感とは逆になります.
つまりdigitalWrite(LEDR, LOW);としたときにLEDR(赤)は点灯するわけです.
これを踏まえて,オンボードRGB LEDを赤→黄→緑→水→青→紫→白→消灯の順で光らせるコードは以下のようになります.
/* このスケッチはArduino Nano R4用のオンボードRGB LED点灯スケッチです */
void setup() {
// 全ピンを出力モードに指定
pinMode(LEDR, OUTPUT);
pinMode(LEDG, OUTPUT);
pinMode(LEDB, OUTPUT);
// 消灯
digitalWrite(LEDR, HIGH);
digitalWrite(LEDG, HIGH);
digitalWrite(LEDB, HIGH);
}
void loop() {
// 赤色
digitalWrite(LEDR, LOW);
delay(1000);
// 黄色
digitalWrite(LEDG, LOW);
delay(1000);
// 緑色
digitalWrite(LEDR, HIGH);
delay(1000);
// 水色
digitalWrite(LEDB, LOW);
delay(1000);
// 青色
digitalWrite(LEDG, HIGH);
delay(1000);
// 紫色
digitalWrite(LEDR, LOW);
delay(1000);
// 白色
digitalWrite(LEDG, LOW);
delay(1000);
// 黒色(消灯)
digitalWrite(LEDR, HIGH);
digitalWrite(LEDG, HIGH);
digitalWrite(LEDB, HIGH);
delay(1000);
}
このような感じでRGB LEDを駆動することができました.
ということでここまでArduino Nano R4を軽く触れてきましたが,今までの文化が通じないなと感じる部分がありました.
ただし,従来通りC/C++ベースのArduino言語でスケッチを作成することに変わりはありません.
オンボードの構成要素以外は大体今まで通りに扱える印象です.
あとはやはり,フットプリントの小ささは魅力的なのです.
最も長い部分で測っても50 mmに満たない小ささです.
それでいて30ピンもの端子(うちGPIOが22本)を引き出しているのは最早狂気としか言えないでしょう.
たしかにRaspberry Pi Picoシリーズは強力な小型マイコンボードです.
それに対して効率が悪く動作周波数も遅かったAVRマイコン搭載Arduino Nanoシリーズは見劣りするのは言うまでもありません.
しかしNano R4ではARMマイコンです.Pico(初代)の133 MHzには及びませんが動作周波数も48 MHzと高くなっています.
何よりADC分解能がPicoは12 bitに対してNano R4は14 bitです.
そんなこの研究にもってこいのデバイスを見つけたわけですし,この先も研究を頑張っていこうと思います.