Nội dung
Python là một ngôn ngữ lập trình có cú pháp đơn giản, dễ hiểu cho người mới bắt đầu. Ngoài ra, Python còn cung cấp môi trường REPL, tích hợp nhiều module (built-in modules), có tài liệu hướng dẫn đầy đủ.
Vì thế, không có gì lạ khi mình quyết định sử dụng MicroPython để lập trình ESP.
Đối với người dùng Linux và MacOS, quá trình nạp firmware, lập trình và nạp code hoàn toàn có thể thực hiện trên dòng lệnh mà không cần cài đặt nhiều chương trình.
Sau đây là các bước thiết lập và lập trình ESP với MicroPython được thực hiện trên hệ điều hành Linux.
Nạp firmware
- Truy cập trang web https://micropython.org/download để tải firmware về máy.
- Cài đặt Python.
- Cài đặt module esptool bằng lệnh:
pip install esptool
. - Kết nối ESP với máy tính bằng cáp USB, xác định cổng USB:
ls /dev/ | grep USB
. - Xóa firmware cũ:
esptool --chip esp32 --port /dev/ttyUSB0 erase_flash
. - Lưu ý, nếu hệ thống báo lỗi không có quyền hạn thì phải thêm người dùng vào nhóm dialout:
sudo usermod -aG dialout username.
. - Nạp firmware:
esptool --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 --baud 460800 firmware.bin
. - Xong, bước này chỉ thực hiện 1 lần cho ESP mới.
Thử MicroPython REPL
Khác với Arduino IDE, MicroPython có hỗ trợ REPL, mình có thể thực thi từng dòng code điều khiển ESP ngay lập tức mà không cần phải compile và execute.
- Linux có thể dùng công cụ screen hoặc picocom để kết nối với ESP thông qua UART. Lệnh screen dùng như sau:
screen /dev/ttyUSB0 115200
. - Thấy màn hình trắng (blank screen), nhấn Enter hoặc Ctrl+C, xuất hiện prompt.
- Hàm help() sẽ in ra một số gợi ý như kết nối wifi.
- Nhấn Ctrl+d để reset board.
- Phím tắt để thoát screen là Ctrl+a,k.
Nạp và thực thi code
- Cài module hỗ trợ nạp code:
pip install adafruit-ampy
. - Khi khởi động, ESP sẽ đọc file boot.py trước, sau đó là main.py, vì vậy, chúng ta cần lưu source code thành file main.py.
- Nạp code:
ampy -p /dev/ttyUSB0 put main.py
. - Thực thi code:
ampy /dev/ttyUSB0 run main.py
.
Kết
Phía trên là một số thông tin mà mình đã tìm hiểu được về lập trình ESP bằng MicroPython. Trong những bài viết sau này, mình sẽ viết về một số ví dụ về lập trình ESP bằng MicroPython.