差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
gimmickkouza:electronic_basic:7:3-r3-r4 [2024/06/20 23:19] – matsuhachi | gimmickkouza:electronic_basic:7:3-r3-r4 [2024/06/21 13:55] (現在) – [マイコンのbit数の違い] matsuhachi | ||
---|---|---|---|
行 1: | 行 1: | ||
====== 7-3 Arduino Uno R4とR3の違い ====== | ====== 7-3 Arduino Uno R4とR3の違い ====== | ||
- | ===== 初心者クリティカル | + | Arduino UNO R4と、そのひとつ前のバージョンである、Arduino UNO R3には様々な違いがあり注意が必要です。 |
- | * TXRXの共用 | + | それらの違いについてまつはちさんが詳しくまとめてくださいましたので掲載します(感謝!!) |
- | * Arduino | + | |
- | * | + | ===== 初心者向けの話 |
- | * UARTが増えることによって、PCでシリアルプリント+もう一つUART通信が可能に。 | + | <panel type=" |
- | * IOピンで流せる電流容量が20mA→8mA | + | ちなみにですが、2024/ |
- | * 電源電圧の違い | + | * R4系のArduino → Arduino Uno R4 Minima と Arduino Uno R4 WiFi の二機だけが該当します |
- | * 接続端子の違い | + | * R3系のArduino |
- | * R4のほうが安い | + | であることを頭の隅に置いておくといいかと思います。 |
- | * USBポートがType-B→Type-Cになった | + | (たぶんこれからR4系の小型Arduinoも出てくるのかな…) |
- | ===== 中級以上 ===== | + | </ |
- | * int型のbyte数が2byte→4byteへ | + | ==== ハードウェアシリアルポートの違い ==== |
- | * スペックの向上 | + | * ソフトウェアシリアルも通信速度の速いハードウェアシリアルですが、R4とR3では数が違います。 |
- | * 動作周波数 | + | * 非常にわかりづらいのですが、R4でもR3でも、UARTポートの位置は0番ソケットと1番ソケットです |
- | * ADコンバータの解像度が向上 | + | |
- | * メモリ容量の向上 | + | |
- | * 消費電流 | + | |
- | * DACの追加→疑似的なアナログ電圧から、連続的なアナログ電圧に | + | |
- | * HID機能の追加 | + | * R3は、**USBポートと0番& |
- | * SWD/ | + | * プログラムの書き込み時に0番&1番ソケットに部品を繋いでいると、書き込みに失敗することもあります。 |
+ | |||
+ | <panel type=" | ||
+ | |||
+ | ==== ソケットに流せる電流の違い ==== | ||
+ | * I/ | ||
+ | |||
+ | * 2024/ | ||
+ | * LEDやトランジスタを介して電流を増幅するタイプの回路は特に注意が必要です。**最悪焼けます。** | ||
+ | * モータードライバや、FET、トランジスタなどをいれましょう | ||
+ | |||
+ | <panel type=" | ||
+ | |||
+ | ==== 入力電圧の違い | ||
+ | * DCジャックやVinソケットへの入力電圧が異なります | ||
+ | * **R4では、6~24V**ですが、**R3では、7~12V** とかなり小さくなります。 | ||
+ | * もしR4向けに電源を買って、R3にも使う場合は、**電源の電圧をよく確認してから繋ぎましょう** | ||
+ | |||
+ | ==== プログラムの違い | ||
+ | * 2024/ | ||
+ | * R4向け対応が進んでいないライブラリも多くあります | ||
+ | |||
+ | *** R4でサンプルコードですらコンパイルが通らない場合は、ボードをR3に変えてみて、コンパイルが通るか試してみましょう** | ||
+ | |||
+ | <panel type=" | ||
+ | **2024/ | ||
+ | |||
+ | ==== 嬉しい話 ==== | ||
+ | * R3よりR4のほうが安いです! | ||
+ | * プログラム書き込み用のUSBポートが、R3ではType-Bだったのが、R4ではType-Cになっています | ||
+ | * R3に比べて、書き込み容量や、スペックなどが、大幅に向上しています! | ||
+ | |||
+ | <panel type=" | ||
+ | 講師も今回の資料作成で両方とも触りましたが、R4はR3から正当にアップグレードされていると感じました。 | ||
+ | ただ繰り返しですが、現時点ではR4はまだネットに情報が少ない(R3が名機すぎてネット上に情報があふれかえっており、相対的にR4の情報にたどり着きにくいという事情もありそう…)ので、その辺りはちょっと頑張る必要があるかなと思います。</ | ||
+ | |||
+ | ===== 中級者以上向けの話 | ||
+ | ==== マイコンのbit数の違い | ||
+ | * R3のMCUは、8bitマイコンのATMega328Pですが、R4では32bitマイコンのRA4M1が採用されています | ||
+ | * これにより、R3のint型が2byteなのに対し、R4のint型では4byteとなっています | ||
+ | * 2byteと4byteで何が違うの?というと、**格納できる値の最大値・最小値**が違います | ||
+ | * 2byteだと-32768~32767 | ||
+ | * 4byteだと-2147483648~2147483647 | ||
+ | * めちゃくちゃ違います | ||
+ | * このため、R4前提のint型で最大値最小値を扱うと、R3に移植した際に、上手く動かなくなります。 | ||
+ | * また、加速度センサのような、I2C通信でデータを読み出し、シフト演算で整形するようなプログラムの場合に、上手く動かなくなります。こちらの記事がわかりやすいです。 | ||
+ | https:// | ||
+ | |||
+ | <panel type=" | ||
+ | 便利ではありますが、__実際にきぐるみの実装に使うマイコンはNanoやNano Every等のR3系である可能性が高い__です。 | ||
+ | なので互換性の観点から、個人的には当面はR4でもR3と同じ基準でintを使った方が無難かな…と思います。 | ||
+ | </ | ||
+ | |||
+ | ==== スペックの向上 | ||
+ | * R3からR4では、様々な部分のスペックが向上しています | ||
+ | | ||
+ | |||
+ | ==== 機能の追加 ==== | ||
+ | * R4はR3に比べてできることがかなり増えています。 | ||
+ | === HID機能の追加 | ||
+ | * Arduinoをキーボードやマウスといった、USB接続のコントローラとして扱うことができる機能です | ||
+ | * HIDはHuman Interface Deviceの略です | ||
+ | * Keyboard.hをインクルードすれば使えるのでお手軽に試せます | ||
+ | |||
+ | === SWD/ | ||
+ | * 高度な開発になってくると、1行ずつ挙動を見たり、プログラムの実行を止める箇所を作ったりして、どこでトラブルが起きているのかを調べる必要が出てきます。 | ||
+ | * これにはデバッガというものをつないで行うのですが、R4にはそのデバッガをつなぐためのピンが生えているのです。 | ||
+ | * 正直めちゃくちゃ待ってた機能です | ||
+ | |||
+ | === DACの追加 === | ||
+ | * R4のA0ソケットには、デジタルをアナログに変換する機能が入っています | ||
+ | * DACはDigital-to-analog Converterの略です | ||
+ | * それ以外のピンや、R3では、PWMで疑似的にアナログ電圧が出ています | ||
+ | * 精密なアナログ出力ができるようになるので、サイン波のような滑らかで連続性のある波形を出せたり、音楽を鳴らせるようになったりします | ||
+ | * こちらのサイトのサンプルを見てみると面白いと思います | ||
+ | https:// | ||
+ | https:// | ||
+ | |||
+ | <panel type=" |