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