Lập trình python trên microcontroller với Zerynth

Zerynth, trước đây gọi là Viper, là bộ phần mềm dùng để lập trình các thiết bị nhúng, có hỗ trợ đầu đủ để phát triển cloud và IoT. Zerynth có lập trình ngôn ngữ C, Python giúp ta phát triển trên các dòng board ESP8266, ESP32, SAMD21,….

Chuẩn bị

Trong những bài viết này, hocarm sẽ hướng dẫn cho các bạn cách làm quen thư viện của Zerynth và tìm hiểu ngôn ngữ Python – đây là ngôn ngữ khá hay về mặt cú pháp sẽ giúp các bạn dễ dàng lập trình hơn.
Những bài hướng dẫn này sẽ không giải thích về phần cứng, nên các bạn không phải dân chuyên trong lĩnh vực điện-điện tử có thể tham khảo.
Để thực hiện được loạt bài viết này, các bạn nên cần 1 con ESP8266 Node MCU và một số phụ kiện như đèn LED, điện trở để phụ họ cho học tập. Nếu các bạn có kiến thức bên phần cứng và hiểu Python cơ bản thì sẽ giúp ích cho bạn nhiều hơn.

Cài Zerynth Studio

Để có thể lập trình bạn cần có công cụ IDE, thì Zerynth đã cung cấp công cụ Zerynth hỗ trợ đa nền tảng sẽ giúp bạn lập trình nhúng bằng ngôn ngữ Python.
Có bạn có thể tải ở trang chính tại đây. Sau khi tải, cài đặt và đăng nhập (tài khoản có thể từ Google hay Facebook) thì bạn đã có 1 IDE như hình:

Đây là một IDE hộ trợ khá mạnh mẽ, ngoài việc giúp ta lập trình thì có 1 tutorials học lập trình với code mẫu có sẵn, cập nhật tin tức những tính năng mới từ trang chủ, clone source code về…

Cài virtual cho thiết bị

Để thiết bị có thể hiểu được ngôn ngữ Python, ta cần phải cài Zerynth Virtual Machine cho thiết bị để nó có thể biên dịch và chạy chương trình. Bây giờ ta sẽ cắm mạch NodeMCU vào, rồi ta xem ở thanh target phía trên, khi mới cắm thiết bị thì Studio sẽ hiện (?) để yêu cầu xác nhận thiết bị, ta sẽ xác định cho nó.

Tiếp theo, ta sẽ đăng ký (registor) cho device, tại nút “Zerynth” bên phải thanh Target.

Bây giờ. Ta sẽ Virtualize thiết bị, ta lại nhấn nút “Zerynth” và chọn Virtualize thiết bị cần cài

Như vậy ta có thể lập trình cho thiết bị Node MCU. Ta có thể xem thông tin hay sơ đồ phần chân của thiết bị tại nút “Device Info” và “Device Pinmap” ở bên cạnh nút “Zerynth”

Ví dụ

Bây giờ ta sẽ chạy thử một ví dụ đơn giản để kiếm tra chương trình. Trước tiên là tạo 1 Project: Ta chọn Project -> New và điền thông tin Project vào

Sau khi tạo xong Project, ta vào File main.py để viết chương trình, ta sẽ thử bật tắt đèn LED ở trên mạch Node MCU rồi để nạp chương trình chọn Build -> Uplink

pinMode(LED0,OUTPUT)
 
# vòng lặp vô hạn
 
while True:
    #Blink LED
    sleep(300)
    digitalWrite(LED0, HIGH)
    sleep(1000)
    digitalWrite(LED0, LOW)

Ở dòng code đầu tiên, để dùng con đèn LED thì ta phải pinMode OUTPUT cho chân mà ta sử dụng đèn đó, vì ta sử dụng đèn trên board nên thường các mạch để mặc định ở chân 13, ngoài ra thư viện Zerynth cũng đặt biến LED0 là đèn mặc định của mạch.
Tiếp theo là vòng lặp while của Python, vì ta để điện kiện True nên vòng lặp sẽ thực hiện vô hạn ở những dòng code bên trong vòng lặp.
Ở trong vòng lặp đầu tiên ta dùng lệnh digitalWrite(LED0, HIGH) có nghĩa là cấp điện cho chân của đèn làm đèn bật lên. Sau đó ta dùng lệnh sleep(1000) là tạm thời dừng chương trình trong 1 giây
Tiếp theo ta lại gọi lệnh digitalWrite(LED0, LOW), nhưng ở đây ta truyền tham số là LOW có nghĩa ngừng cấp điện, thì đèn sẽ tự tắt. Rồi cho dừng chương trình trong 1 giây.

Kết

Vậy là chúng ta đã sử dụng được Zerynth để lập trình cho ESP82266 ta đã thấy sử dụng ngôn ngữ Python khá thú vị giúp ta thấy việc lập trình nó đơn giản hơn trong cú pháp, hẹn gặp lại các bạn ở bài kế tiếp.

Rất cảm ơn bạn Lê Bảo Châu vì tinh thần chia sẻ bài viết hướng dẫn này.