simotin13's message

simotin13といいます。記事の内容でご質問やご意見がありましたらお気軽にコメントしてください\^o^/

UdemyでESP32・ESP-IDFのコースの提供を始めました。

久しぶりにこのブログを更新します。
このたびUdemyで「実践で学ぶESP32・ESP-IDF入門講座」を公開しました。

新規に販売を始めたばかりですので、期間限定の割引価格で公開しています。
www.udemy.com

コースを作った背景

文字通り、ESP32・ESP-IDFについて学習するコースです。
この数年ESP32シリーズを使った、スマートホームの規格であるMatterの製品開発に携わっているのですが、私自身、数年前にプロジェクトに参加するまではESP32に関する経験が全くありませんでした。
ESP32の開発環境であるESP-IDFは、ESP32が持つ機能を非常にうまく抽象化していて、サンプルコードも充実しているので、他のマイコンと比べて初心者にもやさしい開発環境になっています。

ただ、基本はやさしい一方で、開発を進めていると

  • PSRAMの正しい使い方がわからない
  • mallocはどのメモリから確保されているか?
  • 不揮発のデータを扱う作法が知りたい

といった不明点や疑問がたくさん出てきます。私も最初はこのあたりで何度も手が止まりました。

また、ESP-IDFには便利な機能が数多く用意されていますが、知らないまま開発を進めると遠回りになってしまうことがあります。

開発中は公式サイトのマニュアルやChatGPTなどを使って調べながら理解を深めていましたが、

「ESP-IDFで知っておくべき機能を体系的に速習できる教材が欲しい」

と感じることがときどきありました。

私自身、何か新しい技術を扱うときはUdemyでコースを探してみることが多いのですが、日本語でESP-IDFについて学べるようなコースがありませんでした。日本語で体系的に学べるコースがないのであれば、自分で作ってみようと思ったのがきっかけです。

ESP32・ESP-IDFの豊富な機能について全てを網羅しているわけではありませんが、

  • ESP32での本格的な開発に着手される方
  • ESP-IDFを初めて触る方

が知っておくと、開発の序盤でありがちな遠回りを回避でき、学習コストを下げることができるようなコースにすることを意識しています。

コースの内容について

コースでは、ESP32-S3の基板をご用意頂いて、実際にお手元でコースで学習するプロジェクトを動かして頂く構成になっています。

セクションは以下の通りです。

セクション|*タイトル|*内容|

1 ESP32・ESP-IDFについて知ろう ESP32・ESP-IDFの基本的な説明
2 ESP-IDFの開発環境を構築しよう ESP-IDFの環境構築
3 ESP-IDFの基本的な操作を覚えよう idf.pyコマンドの使い方、プロジェクト作成、エラーハンドリング、gdbデバッグ
4 ESP32の周辺機能を使ってみよう LEDチカチカ、RGB LEDの利用、UART通信、I2C通信
5 ESP-IDFで採用されているFreeRTOS・リアルタイムOSについて理解しよう FreeRTOS、リアルタイムOS、タスク間通信API
6 WiFi・BLEの機能を使ってみよう WiFiステーションモードの利用、BLEのGATT通信
7 メモリとFlashROMの使い方を理解しよう PSRAMの利用方法、NVS,LittleFS、パーティションテーブルについて

コースの前半ではESP-IDFの基本的な知識について説明になり、後半はやや応用的な内容になります。
www.udemy.com

コースの前提知識・経験

ような方をイメージしています。
シェルの操作についてはコース内でも説明しているので多少不慣れでも問題ないかもしれませんが、C/C++言語を全く触ったことがない方は少し難しいかと思います。
ジャンルとしては組み込みソフトウェアの開発になりますが、ESP32・ESP-IDFは基板への書き込みやデバッグなど開発者がCPUの仕様について細かく把握しなくても利用できるよう開発環境全体でいい感じに抽象化されています。このため、組み込みソフトウェアの開発経験はなくても学習を進められます。

コースの環境について

コースでの説明は、Ubuntu環境にESP-IDFをインストールして、WindowsPCからSSHでログインして説明しています。
ESP-IDFはWindows,MacOS,LinuxをサポートしているのでUbuntu以外の環境でもコマンドの内容を読み替えて頂くことコースの内容を試してみて頂けます。
※ESP-IDFの環境構築についてはUbuntuWindowsについて説明しています。

コースで使用する基板について

コース内では、Freenove社のESP32-S3 WROOM-1の基板を使って説明しています。
Freenove ESP32-S3 ESP32 S3 Wi-Fi Bluetooth Board Lite, Dual-core 32-bit 240 MHz Microcontroller, Python C Code, Example Projects Tutorialstore.freenove.com

こちらはAmazonで入手可能です。
コースでは赤色のFlashROM16MBの基板を使用していますが、黒色の8MBの基板で問題ありません。また、少し値段が高くなりますがカメラ付きのタイプの基板でも問題ありません。

また、Freenoveの基板が入手できない場合はEspressif公式の ESP32-S3 DevkitC-1の基板でも試してみて頂けます。
ただし、こちらはFreenoveの基板と異なりIO2にLEDがありませんので、LEDに関する説明を確認していただく際は別途LEDや抵抗をご用意頂く必要があります。
www.marutsu.co.jp

ESP32の他のシリーズの製品でもコースの内容を参考にして頂けますが、FlashROM・PSRAMのサイズなどが異なりますのでmenuconfig設定内容などを読み替えて頂く必要があります。
なので、コースを受講頂く場合はESP32-S3 WROOM-1が搭載されている基板をご用意頂くことをお勧めします。

今後について

本コースで身につけた基礎を土台として、将来的にはより実践的なIoT機能の応用編や、esp-matterを使ったMatter開発などの発展的な内容についてもコースとして提供していきたいと考えています。

最後に

ESP32・ESP-IDFは非常に強力で、うまく使いこなせると開発効率が大きく上がります。
例えば、PWM制御やI2Cの通信の機能を実装しようとすると他のマイコンであればそれなりの規模になったりデバッグに時間がかかったり、オシロをつないで様子を見たりと苦労することがありますが、ESP32ではPWM制御もI2C通信も数十行のコードで実装でき、開発中にソフトウェアのデバッグのために波形を見ることもありませんでした。

うまく使いこなすと生産性が高いマイコンだと思いますので、ESP32・ESP-IDF開発について効率よく体系的に学びたい方は、ぜひご覧ください。
www.udemy.com