[TH] How To Compile MicroPython To Use With ESP32.

บทความนี้เป็นบันทึกย่อขั้นตอนการคอมไพล์ MicroPython เพื่อใช้งานกับบอร์ด ESP32 ด้วยระบบปฏิบัติการลินุกซ์ที่อยู่ในระบบปฏิบัติการ Windows 10 หรือ WSL รุ่น 1 หรือ 2 เพื่อนำไบนารีไฟล์ที่ได้ไปเขียนลงบอร์ด ESP32 ต่อไป

ขั้นตอนวิธี

  1. ติดตั้ง WSL จากขั้นตอนตามที่เขียนในเว็บนี้
    Windows Subsystem for Linux Installation Guide for Windows 10
  2. จาก Windows Store เลือกติดตั้ง Ubuntu 18.04
  3. เข้า Ubuntu 18.04 แล้วติดตั้งสิ่งที่ต้องใช้
    1. sudo apt install build-essential git python3 python3-dev python3-pip python3-setuptools python3-venv
    2. sudo pip3 install –upgrade virtualenv==16.7.9
  4. ดาวน์โหลด MicroPython
    1. cd ~
    2. git clone –recurse-submodule https://github.com/micropython/micropython.git
  5. หา ID ของ ESP-IDF เพื่อใช้ในการดาวน์โหลดจากเว็บของ espressif และเป็นรุ่นที่ใช้สำหรับ MicroPython
    1. cd ~/micropython/ports/esp32
    2. make ESPIDF=
    3. หลังจากนั้นคัดลอกข้อความที่อยู่ด้านหลัง Supported git hash (V4.x): เอาไว้ เพื่อใช้ในขั้นตอนการติดตั้ง ESP-Tools
  6. ดาวน์โหลด ESP-IDF
    1. export ESPIDF=$HOME/esp-idf
    2. mkdir -p $ESPIDF
    3. cd $ESPIDF
    4. git clone https://github.com/espressif/esp-idf.git $ESPIDF
    5. git checkout ข้อความที่ได้จากขั้นตอนที่5
    6. git submodule update –init –recursive
  7. ติดตั้ง ESP-Tools
    1. ./install.sh
    2. เมื่อติดตั้งเสร็จให้เรียก export.sh เพื่อให้ระบบมองเห็นไดเร็กทอรีองเครื่องมือที่ติดตั้ง
      . ./export.sh
  8. คอมไพล์ mpy-cross ซึ่งเป็นเครื่องมือแปลภาษาไพธอนให้เป็นไบต์โค้ด ทำให้นำไปใส่ในบอร์ดได้โดยไม่ต้องให้โค้ดต้นฉบับ ช่วยประหยัดพื้นที่ของรอม และลดเวลาในการแปลภาษา
    1. cd ~/micropython/mpy-cross
    2. make
  9. ติดตั้ง venv เพื่อติดตั้งระบบไลบรารีของภาษาไพธอนที่ใช้กับ MicroPython โดยไม่กระทบกับไลบรารีหลักของระบบ ขั้นตอนการสร้างระบบสิ่งแวดล้อมเสมือน
    1. กรณีที่ยังไม่เคยสร้างระบบสิ่งแวดล้อมเสมือนมาก่อน
      1. cd ~/micropython/ports/esp32
      2. venv viren
      3. . viren/bin/activate
      4. pip install –upgrade pip
      5. pip install -r $ESPIDF/requirements.txt
    2. กรณีที่ได้สร้างไว้แล้วสามารถเรียกใช้ระบบสิ่งแวดล้อมเสมือนได้จากคคำสั่งต่อไปนี้
      . viren/bin/activate
  10. คอมไพล์ MicroPython
    1. สำหรับบอร์ดทั่วไป
      1. cd ~/micropython/ports/esp32
      2. make clean
      3. make submodyles
      4. make BOARD=GENERIC
    2. หรือ สำหรับบอร์ดที่มี SPIRAM
      1. cd ~/micropython/ports/esp32
      2. make clean
      3. make submodyles
      4. make BOARD=GENERIC_SPIRAM
  11. การนำออกเฟิร์มแวร์ปกติไปไว้ที่ Drive D
    cp build-GENERIC/firmware.bin /mnt/d

    หรือ สำหรับบอร์ดที่มี SPIRAM
    cp build-GENERIC_SPIRAM/firmware.bin /mnt/D

สรุป

จากบทความนี้จะได้ว่า เราได้ทราบขั้นตอนของการคอมไพล์ MicroPython เพื่อนำไปใช้กับบอร์ด ESP32 แบบ DIY หรือทำด้วยตัวของเราเอง พร้อมกันนี้เราได้เครื่องมือ mpy-cross สำหรับคอมไพล์โค้ดภาษาไพธอนของ MicroPython เพื่อนำไปใช้งาน ทำให้ประหยัดพื้นที่และลดเวลาในการแปลภาษาอีกด้วย

สุดท้ายหวังว่าบทความนี้คงเป็นประโยชน์ต่อผู้อ่านบ้างไม่มากก็น้อย ขอให้สนุกกับการเขียนโปรแกรมครับ

(C) 2020, โดย อ.ดนัย เจษฎาฐิติกุล/อ.จารุต บุศราทิจ
ปรับปรุงเมื่อ 2020-11-24
ปรับปรุงเมื่อ 2021-08-19