Lua RTOS for ESP32 を入れたお話。(その1)


【対象ボード】

・DOIT Esp32 DevKit v1

https://docs.zerynth.com/latest/official/board.zerynth.doit_esp32/docs/index.html

2017/11にaliexpressで購入。(約650円)

購入して満足してその後放置してました。(^-^;)

部屋の整理で見つけたので、そろそろ触るかと一念発起しました。


【開発言語】

・Lua

購入したキッカケが「Luaで開発出来る」と書いてあったので、今回はLuaで

開発出来る環境を作ります。ちなみに個人的にRTOSという用語が気になるので

「Lua RTOS for ESP32」を入れてみたいと思います。

https://github.com/whitecatboard/Lua-RTOS-ESP32


【導入環境】

・Windows10 Professional 64bit

ヘタレプログラマなのでWindowsで環境を作っていきます。


【導入の流れ】

基本的には「Lua RTOS for ESP32」の「How to build」を見れば導入は

問題ないかと思います。英語読める方は↓見た方が手っ取りばやいかと。

https://github.com/whitecatboard/Lua-RTOS-ESP32/wiki/How-to-build


1. MSYS2を入れる。

Unixシェル環境の「MSYS2」を入れます。

http://www.msys2.org/

ちなみにESP32のツールチェーン環境は32bitで提供されているので、

ここではMSYS2の32bit版を標準インストールします。(C:\msys32)


2. MSYS2フォルダを入れ替える。

折角入れたMSYS2フォルダですが、リネームします。(msys32 → msys32_old)

ESP-IDFのページよりツールチェインを取得します。

https://docs.espressif.com/projects/esp-idf/en/latest/get-started/windows-setup.html

https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20180110.zip

zipファイルを解凍すると、「msys32」フォルダが展開されるのでCドライブ

直下に入れます。(C:\msys32) リネームしたMSYS2フォルダよりhomeフォルダ

をコピーします。(C:\msys32_old\home → C:\msys32\home)

この時点で C:\msys32_old フォルダは不要なので削除しても問題ないみたいです。


3. MSYS2を起動する。

Windowsメニュー → [MSYS2 32bit] → [MSYS2 MinGW 32-bit] で起動します。

ESP開発をHomeディレクトリ直下で行うのもアレなので、「esp」フォルダを作ります。


$ mkdir -p ~/esp

$ cd ~/esp



4. ESP32の開発環境をGitから取得する。


$ git clone --recursive https://github.com/espressif/esp-idf.git

Cloning into 'esp-idf'...

... (省略) ...

$ git clone --recursive https://github.com/whitecatboard/Lua-RTOS-ESP32

Cloning into 'Lua-RTOS-ESP32'...

... (省略) ...



5. 「Lua RTOS for ESP32」をビルドします。

はじめに環境ファイルを編集して、ツールのパスを修正します。


$ cd Lua-RTOS-ESP32

$ vim ./env

export PATH=$PATH:/usr/local/xtensa-esp32-elf/bin

export IDF_PATH=~/esp/esp-idf /* パスを変える */

export LIBRARY_PATH="/usr/local/opt/gettext/lib:$LIBRARY_PATH";

export PKG_CONFIG_PATH="/usr/local/opt/ncurses/lib/pkgconfig:$PKG_CONFIG_PATH"

export CPATH="/usr/local/opt/gettext/include:$CPATH"


次に対象ボードを設定します。

$ make SDKCONFIG_DEFAULTS={BOARD_SYMBOL} defconfig

{BOARD_SYMBOL}は対象ボードによって、値が異なります。

WHITECAT ESP32 N1 = WHITECAT-ESP32-N1

ESP32 CORE = ESP32-CORE-BOARD

ESP32 THING = ESP32-THING

GENERIC = GENERIC

今回は「ESP32-CORE-BOARD」を設定します。


$ make SDKCONFIG_DEFAULTS=ESP32-CORE-BOARD defconfig


次にメニュー設定を開いて、UARTのポート指定を行います。


$ make menuconfig


コマンドを入力すると、メニュー画面に入ります。

「Serial flasher config / Default serial port」を選択します。

初期値は「/dev/tty.SLAB_USBtoUART」と設定されていますが、

これをESP32ボードをUSB接続した際に認識したCOMポートに変えます。

今回は「/dev/tty.SLAB_USBtoUART」→「COM8」に変更しました。


6. ESP32ボードをUSB接続して、Flash書き込みを行う。


$ make flash

$ make flashfs



  1. リセットして、Lua RTOS のプロンプトが表示されたら成功です。


Lua RTOS beta 0.1. Copyright (C) 2015 - 2018 whitecatboard.org

build 1535960810

commit 0c27ef294a8a1bb87a4202022a1cb8636521ceed

Running from factory partition

board type ESP32COREBOARD

cpu ESP32 rev 1 at 240 Mhz

spiffs0 start address at 0x310000, size 512 Kb, partition spiffs

spiffs0 mounted

Lua RTOS beta 0.1 powered by Lua 5.3.4

Executing /system.lua ...

Executing /autorun.lua ...

/ >


とりあえず当初の目的である Lua RTOS は入れることが出来ました。

次回以降は Lua RTOS 上での開発について調査してみます。

続く...かも