Arduino Uno R3、R4、Pico W、ESP32のスペック性能比較してみた
この記事では2023年に発売されたばかりのArduino Uno R4とRaspberry Pi Pico Wの性能を、Uno R3やESP32などの普及しているマイコンボードと比較します。
▼ Arduinoにはさまざまな互換品がありますので、どれを選べば良いかわからない方はこちらの記事もご参考ください。
チップ、動作速度、ビット
マイコン | マイコンチップ | 動作周波数 | ビット |
---|---|---|---|
Uno R3 | ATmega328P | 16MHz | 8ビット |
Uno R4 | Renesas RA4M1(Arm Cortex-M4) | 48MHz | 32ビット |
ESP32 | Tensilica Xtensa LX6 マイクロプロセッサ | 240MHz | 32ビット |
Pico W | RP2040(Dual-core Arm Cortex-M0+) | 133MHz | 32ビット |
Arduino Uno R3ではMicrochip Technology社のATMega328PをMCUとして搭載してましたが、R4からはルネサス社のRA4M1というマイコンが搭載されてます。32ビットのArmマイコンですね。FreeRTOSもサポートしているようです。
Pico WではPicoと同様にRP2040が使われてます。Raspberry Pi PicoではMicro Pythonをはじめ、Arduino IDEでC/C++言語での開発も可能となってます。
メモリ
マイコン | SRAM | フラッシュメモリ | 内蔵フラッシュメモリ |
---|---|---|---|
Uno R3 | 2KB | 32kB | 1KB(EEPROM) |
Uno R4 | 32KB | 256KB | 8kB(EEPROM) |
ESP32 | 520KB | 64MB | 4MB (SPIFFS) |
Pico W | 264KB | 2MB | なし |
SRAMは、プログラムの実行中に変数などの操作で一時的に利用されるメモリです。フラッシュメモリは、スケッチなどのプログラムを保存するメモリです。そして内蔵フラッシュメモリは、プログラムから操作でき、長期的保存可能なメモリとなります。とくにこの内蔵メモリはArduinoであればEEPROM、ESP32であればSPIFFSを使用します。それぞれの使い方は下記の記事をご覧ください。
Raspberry Pi Pico Wでは内蔵フラッシュメモリは使えません。ただし、外付けフラッシュメモリの接続が可能で、Quad SPI、USB 1.1といったインタフェースが備わってます。
USB端子
マイコン | USB |
---|---|
Uno R3 | Type-B |
Uno R4 | Type-C |
ESP32 | USB microB |
Pico W | USB microB |
Arduino Uno R4のUSB端子がType-Cになりました。R3がType-Bだっただけに、非常に使いやすくなるんじゃないでしょうか。Pico WもType-Cだと良いのになと思いましたが、小型化を優先するためでしょうか?ESP32と同様のUSB microBです。
ADコンバータ
マイコン | ADC |
---|---|
Uno R3 | 6x 10ビット |
Uno R4 | 6x 12/14ビット |
ESP32 | 18x 12ビット |
Pico W | 3x 12ビット |
Arduino Uno R3では分解能が10ビットのADコンバータでしたが、R4からは12ビットまたは14ビットへ性能アップしました。デフォルトでは12ビットが使われ、下記の記事の通り analogReadResolution(14) を指定することで14ビットの解像度が使えるようになります。 Arduino UNO R4 Minima ADC Resolution | Arduino Documentation
またPico Wの場合、実際のADコンバータは5個ありますが、2個は内部システムで割り当てられているためユーザーが使えるのは3個です。
WiFiの有無
マイコン | WiFiの有無 |
---|---|
Uno R3 | x |
Uno R4 | △ |
ESP32 | ○ |
Pico W | ○ |
Arduino Unoでは基本的にWiFiは使えません。R4で「△」と記したのは、実はArduino Uno R4には「UNO R4 Minima」と「UNO R4 WiFi」があります。しかし「UNO R4 WiFi」では技適が通ってないため、日本では基本的に使用できません。 Raspberry Pi Pico Wの場合は技適が通っているため安心してお使いになれます。「Zero」→「Zero W」からも予想してたと思いますがやはり「Pico」→「Pico W」発売されましたね(笑) ちなみにESP32はたくさんの種類が存在しますが、中には技適が通っていないものがAmazonなんかで入手可能となってます。私の方で技適マークを確認できたESP32をご紹介しておきます。
通信インタフェース
マイコン | その他 |
---|---|
Uno R3 | 1x UART、1x I2C、1x SPI |
Uno R4 | 1 x UART、1 x I2C、1 x SPI |
ESP32 | 4x SPI、2x I2C、2x I2S、3x UART |
Pico W | 2 x UART、2 x I2C、2 x SPI、1 x RTC |
UART、I2C、SPIなどの通信インタフェースに関しては、どのボードも標準で備わってます。一点気になったのがPico WのRTC(リアルタイムクロック)です。RTCで現在時間を保持できるわけですが、Arduinoには備わっていないため RTCの外部モジュール を用意しなければなりませんでした。Pico Wだとそこらへん便利になりますね。とはいえWiFiが使えますので NTPで時刻合わせ という手もありますが。
マイコンボードのスペックまとめ(一覧表)
ここまでのマイコンボードのスペックをまとめます。次はArduino Uno R3とUno R4、Raspberry Pi Pico WとESP32のスペック一覧表です。
マイコン | マイコンチップ | 動作周波数 | ビット | SRAM | フラッシュメモリ | 内蔵フラッシュメモリ | USB | ADC | WiFiの有無 | その他 |
---|---|---|---|---|---|---|---|---|---|---|
Uno R3 | ATmega328P | 16MHz | 8ビット | 2KB | 32kB | 1KB(EEPROM) | Type-B | 6x 10ビット | x | 1x UART、1x I2C、1x SPI |
Uno R4 | Renesas RA4M1(Arm Cortex-M4) | 48MHz | 32ビット | 32KB | 256KB | 8kB(EEPROM) | Type-C | 6x 12/14ビット | △ | 1 x UART、1 x I2C、1 x SPI |
ESP32 | Tensilica Xtensa LX6 マイクロプロセッサ | 240MHz | 32ビット | 520KB | 64MB | 4MB (SPIFFS) | USB microB | 18x 12ビット | ○ | 4x SPI、2x I2C、2x I2S、3x UART |
Pico W | RP2040(Dual-core Arm Cortex-M0+) | 133MHz | 32ビット | 264KB | 2MB | なし | USB microB | 3x 12ビット | ○ | 2 x UART、2 x I2C、2 x SPI、1 x RTC |