RaspberryPi PicoとArduino UNO R4

ようやく2023年6月27日に、全世界では発売が開始されたArduino UNO R4。マイコンはMicrochipの8bitマイコン ATMEGA328Pから純国産・ルネサスの32bit ARMマイコンRA4M1 (R7FA4M1AB3CFM#AA0)に変更され、大幅性能アップでリリースされました。

ここで、よく聞くのが、「すでにRaspberry Pi Picoがあるから、Arduino UNO R4は不要じゃない?」という意見です。

それは一部の分野では正しいかもしれませんが、ある分野では見当違いの意見です。かなりの多くの分野では、見当違いになってしまうのではないでしょうか。

Raspberry Pi Picoに使われるRP2040マイコンと、UNO R4のRA4M1マイコンは、全く異なるコンセプトで作られており、用途も全く異なります。そこを正しく理解しないと、使いこなすことは残念ながら難しいでしょう。使いこなす必要もない用途に使っているからこそ、それぞれの違いを認識できないのかもしれません。

RP2040マイコンは、非常に尖った性質を持つマイコンです。フラッシュを内蔵できず、外付けの高速なSPIフラッシュメモリにプログラムを格納してロードします。代わりに、Cortex-M0という非力なARMアーキテクチャのコアながら、125MHzもの高速クロックで動き、さらにデュアルコアマイコンです。マイコンという性質を持ちつつ、構造としてはプロセッサに近い形です。ESP32とマイコンの間に位置するような形です。消費電力は大きく、IO関連やタイマも貧弱で、リアルタイム性の高い制御をゴリゴリ使うような用途には不向きでしょう。FPUもなく、除算器もないので、演算能力も中途半端というところです。ちょっとした処理なら問題は無いのですが、細かいことをしだすと、欠点に悩まされることになるでしょう。その解決策として、プログラマブルIO(PIO)という独特の周辺機能を持っていますが、これも制約があり、うまく合えば良いですが、合わないと厳しいです。

一方、UNO R4で使われるRA4M1マイコンは、Cortex-M4の48MHzとクロックは低いですが、FPU内蔵で演算能力はそれなりにあり、IO関連やタイマも従来のルネサスの流れを汲んでいるため非常にリッチです。ADCも十分な数があり、DACやオペアンプ機能も入っています。USB,SPI,UART,I2Cは当然ながら、さらにCANもサポートしています。今までのマイコンの用途であれば、こまることはほとんどないでしょう。いわば、王道を進んでいるマイコンです。

Arduino UNO R4には、minimaとWifiという2種類のボードが提供されていますが、WiFi版ではESP32のモジュールが搭載されており、WiFiとBluetooth機能がサポートされます。このとき、「ESP32があるからRA4M1は不要じゃないか」という意見も散見されますが、これは知識のなさを自身で披露されている恥ずかしい発言になります。
そもそもESP32はプロセッサに分類されるものであり、RA4M1はマイコン(MCU)です。用途が全く違うので、役割を分担させているために、分けています。たとえばインテルのCPUが速いですが、それを冷蔵庫や洗濯機に入れて動かしたら、良いことはありますでしょうか?無理やり動かしたとしても、環境の悪さに影響されて、すぐに故障したり、使い勝手が悪くなることでしょう。コンピュータも種類があり、用途や特徴に応じて、使い分けをします。ESP32は、数百msレベルの単位でも問題なく、まとまった計算量が多いWiFi処理やHTTPのサーバー処理などを行わせ、RA4M1ではモータやIO、LED制御等の時間制約がmsやusレベルのような非常に細かいことをやらせます。

SmileSoundでは、大容量のフラッシュが必須条件で、RP2040はその仕組みが最初から提供されていたので非常にサウンドデコーダとして相性は良かったのですが、消費電力が大きいことや、ADCやタイマなどの周辺機能が貧弱、DACは無いなど、今後の機能強化がなかなか厳しいという制約があります。

用途に応じてマイコンを選定するのは基本中の基本です。自分自身が、何をしたいのかをよく考え、適材適所で、Raspberry Pi PicoやArduino UNO R4を選ぶことが望ましいです。そして、用途が分からないけど、とりあえず使いたいというあいまいな状況であるならば、Raspberry Pi Picoはお勧めしません。Arduino UNO R4の方が、幅広い用途に使えるでしょう。

タイトルとURLをコピーしました