ESP-WROOM-32とは
ESP-WROOM-32はESP32と呼ばれるマイコンを搭載したワイヤレスモジュールです。ESP32は上海に拠点を置くEspressif Systemsが販売するWiFiとBluetoothを搭載したMCU(Micro Controller Unit)で、動作温度が-40℃から+125℃まで安定した動作が可能な堅牢な設計、超低消費電力設計、さまざまなモジュールを内蔵した高度な統一性を意識した設計などの特徴があります。動作温度に注目すると、ラズパイが0℃から70℃、Arduinoが0℃から60℃といわれているので大変過酷な環境での利用も視野に入れていることがうかがえます。また、ESP32マイコンはデュアルコア、動作クロックは240MHz、RAMは520KB、フラッシュメモリは64MBとなっており、Raspberry Pi Picoに比べ圧倒的に優れたスペックとなっており、マイコンとしては十分すぎるほどの性能です。
少しややこしいですが、ESP-WROOM-32のことを毎回その名で呼んでいると長いのでESP32と略してしまうのが大抵です。以降では、モジュールの方をESP32モジュール、マイコンの方をESP32マイコンと呼ぶことにします。ESP32モジュールを搭載した開発ボードはAmazonやAliexpressなどで大変安く購入できます。多くの場合、1000円以で購入できるでしょう。
ただし、安いボードはどちらかというと玄人向けです。近年だとESP32モジュールに加えてディスプレイやバッテリー、スピーカーなどを積んだM5Stackと呼ばれる開発キットが売られており、情報も結構あるため入門者にはとてもおすすめです。
M5STACKについては、YouTubeでも解説しているのでぜひご覧ください。
Arduino Unoとの比較
ESP32はArduinoととても類似しています。実際、Arduinoとの違いはどこにあるのでしょうか?
Arduinoについて簡単に説明すると、入門者向けのマイコンボードで、Arduino IDEと呼ばれる無料の統合開発環境を用いてC言語ライクのArduino言語を用いて開発ができ、また、多種多様なシールドやモジュールを用いることで電気回路や電子回路の専門的な知識がなくても容易にハードウェアの拡張も可能です。
Arduinoは、とにかく初心者に優しく設計されていますが、もちろん使用するのは初心者だけではありません。近年のIoT化や高機能化の流れなどを鑑みると、物足りないところがあります。具体的には、計算コストの高い処理は不得手であること、また、デフォルトでは無線通信が不可能であることが挙げられます。初心者でなければ、追加の無線通信モジュール等を購入して機能を拡張することは何ら難しいことではないと思いますが、サイズが大きくなってしまいます(それだけではないですが)。
そのような中、Arduinoの利点を引き継ぎつつも、これらの欠点を克服したようなマイコンボードとして登場したのがESP32搭載ボードです。ESP32の演算能力はArduinoに比べて圧倒的に高く、同時にデフォルトで無線通信機能がついています。にも関わらずArduinoに比べ圧倒的に安いのです。凄すぎますね!
より詳細なスペックを比較してみましょう。比較結果を見ればESP32搭載の開発ボードを使わない理由が見当たらなくなります。
このサイズのマイコンでデュアルコア採用、240MHzという点だけでも驚きですが、RAMやROMのサイズ共にArduino Unoより遥かに大きいものとなっています。Wi-Fiや Bluetoothの搭載の有無は既述の通りです。また、GPIOのピン数は、Arduino Unoが20、ESP32 DevKit v1が25となっており、こちらもパワーアップしています。GPIOの詳細も比較してみます。上の表のGPIO項目を切り取って詳細情報を書き込みました(下図)。
Arduino UnoのデジタルピンでPWMに対応しているのは一部のピンのみに限られる一方で、ESP32 DevKit v1は全てのデジタルピンがPWM出力に対応ています。また、アナログ出力ピンの本数もArduino Unoに比べ多く、さらにアナログ出力に対応したピンも用意されており、とても機能が豪華になっていることがわかります。
さいごに
本記事では、ESP32による開発の導入として、ESP32マイコンやESPモジュールとは何か、どのような機能を持つのか、について簡単に紹介し、Arduino UNOとも比較しました。次回は、今回メインで使用するボードについて簡単に紹介します。