67 lines
3.7 KiB
Markdown
67 lines
3.7 KiB
Markdown
---
|
||
date: 2025-05-22 13:58
|
||
---
|
||
#arduino #electronics
|
||
|
||
[Arduino UNO R4 — Arduino Official Store](https://store.arduino.cc/pages/uno-r4)
|
||
|
||
チップがAVRからルネサスになった。
|
||
|
||
## 嬉しいポイント
|
||
|
||
- LeonardoやPro Microのように、HIDをエミュレートできる(マウスやキーボードの代わりになるUSBデバイスを自作できる)
|
||
- アナログのオペアンプが2個ついている。
|
||
- ADCを最大14bitの解像度で使える。
|
||
- PWMだけじゃなくて12bitのDACも2系統使える。
|
||
- 電源入力が12V→24Vまで対応になった。リニアレギュレーターじゃなくDCDCコンバーターになったので、熱の心配もない。
|
||
- USB-Cなので助かる。
|
||
|
||
## つらいポイント
|
||
|
||
授業などで使っててわかったこと
|
||
|
||
### ピンの電流制限がキツい
|
||
|
||
[Arduino UNO R4 Minimaの許容出力電流は各I/Oピンが8mA、全出力端子の総和が60mA #テスト自動化 - Qiita](https://qiita.com/pbjpkas/items/859b273961d5d272b714)
|
||
LEDを適当に直つなぎするとそれだけで過電流になりかねない。
|
||
|
||
### 過電流での壊れ方がへん
|
||
|
||
上とも関連するが、間違えて出力ピンをショートさせたり過電圧を加えると、基本そのピンだけでなくチップが丸ごと壊れる。
|
||
|
||
今まであったパターンでは、
|
||
|
||
- 電源を入れた途端チップが過熱してデバイスとしても認識されない
|
||
- どんなスケッチを書き込んでもTX、RXのLEDが付きっぱなしになる
|
||
|
||
などがあった。壊れてるのか壊れてないのかの判別がつきにくいのがしんどい。
|
||
|
||
### コンパイル時間が長い
|
||
|
||
ツールチェーンのせいなのかわからんけど、軽くR3の4倍ぐらいはかかる。ESP32系をコンパイルするときの長さと似たような感じ。授業だと地味に死活問題。
|
||
|
||
### ADCTouchが使えない
|
||
|
||
AVR系では、ADCのピンを入力/出力モードを内部的に高速にスイッチすることで、ADCピンに導線を挿すだけでタッチセンサーとして使える高度なライブラリ[[ADCTouch]]があって便利だったのだが、これが使えない
|
||
|
||
ルネサスのチップには内部的にキャパシティブタッチセンサ用のピンが出ていて、それが実は背面のArduinoのMade with ❤の❤の部分に配線されているのでそれを引き伸ばすとタッチセンサが使えるという謎の裏技がある。普通に表面にピンか半田付できるランドを残しておいて欲しかった。
|
||
|
||
[How to access the Capacitive Touch Sensing Unit - UNO R4 WiFi - Arduino Forum](https://forum.arduino.cc/t/how-to-access-the-capacitive-touch-sensing-unit/1145940)
|
||
|
||
けど今調べたらなんか新しいの出てるな
|
||
|
||
[GitHub - delta-G/R4\_Touch: Capacitive Touch Sensing for the Arduino UNO-R4](https://github.com/delta-G/R4_Touch)
|
||
|
||
→使ってみたけど、手動キャリブレーションが割と必要な感じだった。まだ実用じゃないな
|
||
|
||
### Firmataがそのままでは使えない
|
||
|
||
Configurable Firmataを使って専用のConfigを書かないとダメだった。
|
||
|
||
Configurable Firmataをインストール後、`~Documents/Arduino/libralies/ConfigurableFirmata/src/utility/Boards.h`を以下のGistに上げたファイルと置き換える。
|
||
|
||
[Arduino Uno R4 minimaでConfigurable Firmataを動かすためのコード(817行目のIS\_PIN\_PWMを修正) ENABLE\_SERVOをUndefしないと動かない。 · GitHub](https://gist.github.com/tomoyanonymous/9efdd3e6063b9eeb0fb7527137a55c93)
|
||
|
||
サンプルスケッチのConfigurableFirmata→ConfigurableFirmataを開く
|
||
|
||
22行目の`ENABLE_SERVO`をコメントアウトして書き込み。これで動く |