(1)  install & sample

これまでESP-32のプログラミングはArduino−IDEで行っていました。開発したプログラムは簡単な物が多くArduino−IDEで何も不自由を感じませんでした。でも最近ESP-32関係のソフトを検索するとESP-IDFで書かれた物を多く見るようになりました。その中の幾つかは動かしてみたいプログラムが有り、思い切ってESP-IDFをインストールする事にしました。

インストール環境

現在使用しているNote-PCの環境は以下の通り。

   項目   詳細
   CPU   Core i5
   Memory      8G
   SSD   120G
   OS   Ubuntus 20.04 LTS   

今、開発関係のソフトはArduino-IDEとMPLAB-X-IDEがインストールされています。これに ESP-IDFをインストールして行きます。

インストール自体は簡単

OSがUbuntuの場合は、Standard Toolchain Setup for Linux and macOS からスタートします。このインストラクションに沿ってインストールからサンプルプログラムの実行までを簡単にまとめると

  • Step 1. Install Prerequisites:インストールの為の前準備
    • 端末で下記のコマンドを実行。必要は追加プログラムのインストール。
      • sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
  • Step 2. Get ESP-IDF:ESP-IDFの取得
    • ターミナルを開いて下記を実行。ESP-IDF が~/esp/esp-idfにダウンロードされます。
      • mkdir -p ~/esp
      • cd ~/esp
      • git clone –recursive https://github.com/espressif/esp-idf.git
  • Step 3. Set up the tools:ツールの取得とインストール。
    • ターミナルを開いて下記を実行。ツールがインストールされます。
      • cd ~/esp/esp-idf
      • ./install.sh esp32
  • Step 4. Set up the environment variables:環境変数の設定。パスを通す。
    • ターミナルを開く度に下記を実行。最初のピリオドに注意。これでそのターミナルでパスの設定が出来ます。
      • . $HOME/esp/esp-idf/export.sh
    • パスが設定されていないとIDF起動時に、”IDFが見つかりません” とエラーが出ます。
    • 起動時にパスを設置する方法が説明されていますが、お勧めでは無いようです
  • Step 5. First Steps on ESP-IDF:ここからはサンプルプログラムのコンパイルと実行の説明
    • Start a Project:サンプルプログラムの読み込み
      • ターミナルを開いて下記を実行。これで~/espの下にhello_worldというフォルダーがコピーされます。
        • cd ~/esp
        • cp -r $IDF_PATH/examples/get-started/hello_world .
    • Connect Your Device:シリアルデバイスへの接続とポート名の確認。
      • ESP-32をつながないで、ターミナルから、”ls /dev/tty*”を実行。
      • 次につないで同じコマンドを実行。
      • 新しくして表示されたものがESP-32のポート名です。
      • このポート名はプログラムの書き込み時に使用します。
    • Configure your Project:ESP32の詳細設定
      • ターミナルを開いて下記を実行。
        • cd ~/esp/hello_world
          • サンプルプログラムのフォルダーに移動
        • idf.py set-target esp32
          • 使用するCPUを設定。今回はESP32を指定。
          • これは最初の一回のみ設定すれば良い
        • idf.py menuconfig
          • このコマンドを実行すると、ESP32詳細設定用の画面が表示される
      • 以下は表示された画面。今回は何も設定しないで、”ESC”を押して抜ける
        • Project configuration - Home window
    • Build the Project:プログラムのコンパイル
      • プロジェクトフォルダー(今回は、hello_world)でモニターを開き idf.py build 実行
      • コンパイルが始まり、モニターに下記の様なコメントが表示されます。
    • Flash onto the Device:プログラムの書き込み
      • プロジェクトフォルダーでモニターを開き、idf.py -p PORT [-b BAUD] flash を実行
        • PORT:先程調べたポート名。
        • [-b BAUD]:ボーレイトです。
      • 今回は、ポート、ボーレイトを指定すること無く単に idf.py flash で書き込む事が出来ました。
      • 実行後モニターは以下の様になります。
      • 正常に終了すればプログラムは実行される様ですが、念の為リセットボタンを押して再起動させます。
    •  Monitor the Output:モニターへの出力
      • モニター画面で、idf.py monitor を実行すればプログラムのPrintf関数がモニターに表示されます。

問題無くインストール出来てる様です。

次回は

言われるままに操作したので問題無くインストール出来ました。でも何か良く分かっていません。元々ESP-IDFを躊躇していたのは、このCUI(ターミナル操作)です。次回はその辺も含めて、ESP-IDSの使い方をもう少し見て行きます。