verylowfreqのアイコン画像
verylowfreq 2023年06月28日作成 (2023年06月29日更新)
セットアップや使用方法 セットアップや使用方法 Lチカ Lチカ 閲覧数 2731
verylowfreq 2023年06月28日作成 (2023年06月29日更新) セットアップや使用方法 セットアップや使用方法 Lチカ Lチカ 閲覧数 2731

Arduino UNO R4 Minima!!! Arm CPUになった最新UNOでLチカする!

Arduino UNO R4 Minima!!! Arm CPUになった最新UNOでLチカする!

とうとう! Aruduino UNO R4が販売開始されました! 引き継いだ部分、ガラッと変わった部分が多くあり、非常にワクワクします!
Arduino UNO R4 is now on sale! It's very interesting!

この記事は、以下の動画の補足記事です。VTuberもやってますので、なにとぞ、動画のほうも見ていってね!

ここに動画が表示されます

概要

Arduino UNO R4は、従来のArduino UNOとの互換性を考慮しつつ、チップがRenesas RA4M1 Arm Cortex-M4 CPUとなりました。
それでいて実売価格が3000円台と、昨今の事情を鑑みると、とても利用しやすい純正Arduinoボードです。

USBコネクタがType-Cになりました。Type-Bやmicro-Bを探し回らなくてもよいのはとてもうれしい。
USB Type-Cコネクタ

準備

純正ボードなので、URLの追加はなく、ボードマネージャーから "Arduino UNO R4"をインストールすれば、利用できます。"renesas"で検索すると、出てきます。

Lチカ

Blinkスケッチが利用できます! 以上!
最新ボード、48MHz Arm CPUでLチカする気分は最高です! ぜひ動画でご確認ください!

USBキーボード

マウスやキーボードになれます。プロダクトページではUSB-HIDにしか言及がないのですが、チップとしてそのような制限はないので、あくまでもライブラリが用意されているのがこれだけ、ということかと思います(あくまで推測ですが)

Arduino公式のマウスやキーボードのライブラリが利用できます。

コードを掲示します。なおUSBデバイスを作るときは、ボタン操作で動作を停止できるようにしておくのがおすすめです。とくにキーボードデバイスが暴走すると、プログラムの再書き込みも難しくなる場合がありますので。(なおUNO R4については、リセットボタンの2回連続押しで強制書き込みモードに入れます)

#include <Keyboard.h> const uint8_t PIN_BTN = 12; void setup() { // put your setup code here, to run once: pinMode(LED_BUILTIN, OUTPUT); pinMode(PIN_BTN, INPUT_PULLUP); Serial.begin(115200); delay(1000); if (digitalRead(PIN_BTN) == LOW) { for (bool ledon = false; true; ledon = !ledon) { digitalWrite(LED_BUILTIN, ledon ? HIGH : LOW); delay(500); } } Keyboard.begin(); Serial.println("Ready."); } void loop() { // put your main code here, to run repeatedly: static bool led_on = false; static unsigned long ledtimer = 0; if (digitalRead(PIN_BTN) == LOW){ while (digitalRead(PIN_BTN) == LOW) { delay(10); } Keyboard.println("Hello from Arduino UNO R4!! "); } if (millis() - ledtimer > 500) { digitalWrite(LED_BUILTIN, led_on ? HIGH : LOW); led_on = !led_on; ledtimer = millis(); } }

治安の悪いLチカ

Arduino UNO R3はAVRチップでピン出力はわりと無茶ができたのですが、UNO R4はArduino公式仕様上はピン当たり8mA出力という控えめな数字になっています(R3は20mA表記)。

とはいえ、ワルいこと、やりたいですよね?

5Vレベルのピンで、デジタルI/Oピンを2つセットでLEDのV+とGNDを分担して、Lチカしました。壊れなくてよかった。
動いている様子は動画のラストを見てね!

Lチカ 2

以下はそのコードです。

const size_t LEDS_COUNT = 7; const int PIN_LEDS[LEDS_COUNT * 2] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; const size_t PIN_LEDS_COUNT = (sizeof(PIN_LEDS) / sizeof(PIN_LEDS[0])); void init_led(void) { for (size_t i = 0; i < PIN_LEDS_COUNT; i++) { pinMode(PIN_LEDS[i], OUTPUT); digitalWrite(PIN_LEDS[i], LOW); } } void set_led_on(uint8_t index) { index = index % LEDS_COUNT; init_led(); int pin_high_index = PIN_LEDS[index * 2]; digitalWrite(PIN_LEDS[pin_high_index], HIGH); } void setup() { // put your setup code here, to run once: init_led(); } void loop() { // put your main code here, to run repeatedly: static uint8_t counter = 0; set_led_on(counter); counter = (counter + 1) % LEDS_COUNT; delay(100); }

雑記

トータルで見れば、悪くないんじゃないかなと思います。純正ボードでしかもUNOシリーズなので、なんだかんだでサポートは広まるでしょう。
もちろん、いまはまだ販売開始されたばかりなので、いろいろできないことが多いとは思いますが、むしろどんどんできるようになっていく過程が見れると思うと、楽しいですね。

1
1
verylowfreqのアイコン画像
"verylowfreq" あるいは 「三峰スズ」(VTuber 2023年2月より) です。趣味で電子工作や3Dプリンターを楽しんでいます!
ログインしてコメントを投稿する