icantech
Lập trình Python
2649
01/11/2023

Tìm hiểu về lập trình Esp32 với MicroPython

ESP32 có được biết đến là vi điều khiển của Espressif Systems với tích hợp Wifi và Bluetooth. Nếu bạn đã từng làm việc với ESP8266, thì ESP32 là một phiên bản nâng cấp với nhiều tính năng hoàn thiện hơn. Trong bài viết này, hãy cùng ICANTECH tìm hiểu về lập trình ESP32 bằng MicroPython.

1. Tổng quan về Esp32

1.1. ESP32 là gì?

ESP32 là một vi điều khiển có chi phí và tiêu thụ điện năng thấp, hỗ trợ cả kết nối WiFi và Bluetooth chế độ kép. Nó sử dụng bộ vi xử lý Tensilica Xtensa LX6 có sẵn ở cả hai biến thể lõi kép và lõi đơn. 

esp32

ESP32 tích hợp sẵn các thành phần như ăng-ten tích hợp, RF balun, bộ khuếch đại công suất, bộ khuếch đại thu nhiễu thấp, bộ lọc và module quản lý năng lượng.

Espressif System được chế tạo và phát triển bởi một công ty có trụ sở tại Thượng Hải, Trung Quốc. Vi điều khiển này được sản xuất bằng công nghệ 40 nm bởi TSMC và là một phiên bản tiếp theo của ESP8266.

1.2. Cấu hình của Esp32

Cấu hình của một vi điều khiển ESP32 bao gồm các thành phần chính sau:

  • Vi xử lý (CPU): ESP32 sử dụng vi xử lý Tensilica Xtensa LX6 có thể hoạt động ở hai chế độ lõi kép hoặc lõi đơn.
  • Bộ nhớ RAM: ESP32 thường đi kèm với một lượng RAM tích hợp. Số lượng RAM có thể thay đổi tùy thuộc vào phiên bản cụ thể của ESP32.
  • Bộ nhớ lưu trữ: ESP32 thường có một bộ nhớ lưu trữ tích hợp hoặc hỗ trợ thẻ nhớ ngoài (microSD card) để lưu trữ dữ liệu và chương trình.
  • Kết nối không dây:
  • WiFi: ESP32 hỗ trợ kết nối WiFi, cho phép việc truyền và nhận dữ liệu qua mạng không dây.
  • Bluetooth: ESP32 hỗ trợ cả Bluetooth truyền thống và Bluetooth Low Energy (BLE).
  • Chân GPIO (General-Purpose Input/Output): ESP32 đi kèm với nhiều chân GPIO cho phép bạn kết nối và điều khiển các thiết bị ngoại vi như cảm biến, màn hình LCD, hoặc đèn LED.
  • Giao diện UART, SPI, I2C: ESP32 có nhiều giao diện phần cứng cho phép giao tiếp với các thiết bị ngoại vi như cảm biến, mô-đun giao tiếp, hoặc thiết bị khác qua các giao thức như UART, SPI, và I2C.
  • Ngắt và Tạm dừng: ESP32 hỗ trợ khả năng tạo ra ngắt và tạm dừng để xử lý sự kiện và quản lý nguồn năng lượng.
  • Các linh kiện tích hợp khác: ESP32 thường tích hợp các linh kiện như ăng-ten, RF balun, bộ khuếch đại công suất, bộ khuếch đại thu nhiễu thấp, bộ lọc, và module quản lý năng lượng.
  • Điện áp và tiêu thụ điện năng: ESP32 thường hoạt động ở điện áp và dòng tiêu thụ điện năng cụ thể, và có khả năng tối ưu hóa việc quản lý năng lượng để tiết kiệm pin.

2. Lập trình Esp32 bằng MicroPython

2.1. Giới thiệu về MicroPython

MicroPython là một biến thể của Python3, được tối ưu hóa cho việc sử dụng trên vi điều khiển và hệ thống nhúng. MicroPython sử dụng ngôn ngữ phổ biến Python. Không giống như Python tiêu chuẩn, MicroPython sở hữu thư viện tối giản, cấp các mô-đun cho việc tương tác với phần cứng cấp thấp, hỗ trợ tương tác với ứng dụng nhúng.

micropython

Có nhiều bo mạch phổ biến trên thị trường hỗ trợ MicroPython. Ví dụ như: 

  • ESP8266 và ESP32: Đây là hai bo mạch nổi tiếng được sản xuất bởi Espressif Systems. Cả hai đều có sự hỗ trợ tốt cho MicroPython. ESP8266 là phiên bản trước của ESP32, và cả hai đều được sử dụng rộng rãi cho các dự án IoT và nhúng.
  • Raspberry Pi Pico: Raspberry Pi Pico là một vi điều khiển nhúng do Raspberry Pi Foundation sản xuất. Nó sử dụng vi xử lý RP2040 và được hỗ trợ chính thức bởi MicroPython.
  • BBC micro:bit: BBC micro:bit là một bo mạch giáo dục cho trẻ em và cũng có sự hỗ trợ cho MicroPython. 
  • Adafruit CircuitPython Boards: Adafruit sản xuất một loạt bo mạch dựa trên vi xử lý của Microchip SAMD21 hoặc ESP8266/ESP32. Chúng hỗ trợ CircuitPython, một biến thể tương tự với MicroPython.
  • PyBoard: PyBoard là một bo mạch nhúng được sản xuất bởi MicroPython. Nó được thiết kế đặc biệt để làm việc với MicroPython và cung cấp nhiều tính năng hữu ích cho việc phát triển ứng dụng nhúng.
  • Wio Terminal: Wio Terminal là một bo mạch nhúng do Seeedstudio sản xuất. Nó được hỗ trợ bởi MicroPython và có màn hình cảm ứng, các cổng I/O và nhiều tính năng khác.
  • NodeMCU: NodeMCU là một bo mạch dựa trên ESP8266 và được sử dụng rộng rãi cho các ứng dụng IoT.
  • Particle Boards: Các bo mạch của Particle, như Particle Photon và Particle Electron, cung cấp hỗ trợ cho MicroPython.

2.2. Lập trình ESP32 bằng MicroPython

Chúng ta có thể sử dụng MU Editor để lập trình cho Esp32 bằng MicroPython

MU Editor là một môi trường lập trình Python dễ sử dụng và phù hợp để lập trình ESP32 bằng MicroPython. Dưới đây là các bước cơ bản để sử dụng MU Editor để lập trình cho ESP32:

  • Cài đặt MU Editor: Trước tiên, hãy tải và cài đặt MU Editor từ trang web chính thức (https://codewith.mu/).
  • Kết nối ESP32 với máy tính: Sử dụng cáp USB, kết nối ESP32 với máy tính của bạn. Đảm bảo rằng ESP32 đã được cài đặt MicroPython và nhận diện bởi máy tính.
  • Mở MU Editor: Khởi động MU Editor sau khi cài đặt.
  • Chọn Board: Bấm vào biểu tượng bánh răng góc trên bên phải của giao diện MU Editor để mở cài đặt. Chọn "Adafruit CircuitPython" trong danh sách các loại bo mạch nếu bạn sử dụng ESP32. Điều này sẽ thiết lập MU Editor cho việc lập trình ESP32 với MicroPython.
  • Chọn Port: Chọn cổng serial (Port) mà ESP32 đã kết nối với máy tính trong mục "Serial Ports." Nếu không chắc chắn, bạn có thể kiểm tra trong trình Quản lý Thiết bị hoặc Terminal để xem ESP32 đang hoạt động ở cổng nào.
  • Khởi tạo kết nối: Bấm vào biểu tượng sổ tay màu xanh lá cây (REPL) ở góc dưới bên phải của MU Editor để mở cửa sổ kết nối với ESP32 qua REPL (Read-Eval-Print Loop).
  • Lập trình và nạp code: Bạn có thể viết code Python trực tiếp trong MU Editor. Code sẽ được thực thi trên ESP32 sau khi bạn nhấn nút "Flash" (biểu tượng mũi tên xuống) để nạp code vào bo mạch.
  • Chạy chương trình: Sau khi code được nạp vào ESP32, bạn có thể chạy chương trình bằng cách nhấn nút "Run" (biểu tượng tam giác) trên MU Editor.
chạy-chuong-trinh
  • Xem kết quả và gỡ lỗi: Dùng cửa sổ REPL để xem kết quả và gỡ lỗi khi cần thiết.

Dưới đây là một đoạn lập trình hiển thị led trên ESP32:

import machine

import time

 

# Đặt chân GPIO cho đèn LED

led = machine.Pin(2, machine.Pin.OUT)

 

# Chuyển đèn LED bật/tắt trong vòng 1 giây

while True:

    led.value(1)  # Bật đèn LED

    time.sleep(1)

    led.value(0)  # Tắt đèn LED

    time.sleep(1)

3. Lời Kết

Trong bài viết trên, ICANTECH đã hướng dẫn bạn sử dụng MU Editor để lập trình Esp32 với ngôn ngữ lập trình Micro Python. Hi vọng bài viết sẽ giúp bạn hiểu sâu hơn về Micro Python, ứng dụng của Esp32 và cách để lập trình Esp32.

Nếu bạn đang quan tâm đến Python hay Micro Python thì hãy tham khảo ngay khóa học lập trình Python tại Icantech nhé

Nguồn ảnh: ICANTECH.

Share
Tags
Lập trình Python

Bài tương tự