Cytron Technologies
Giờ làm việc: 8:00 - 17:00
Thứ 2 - Thứ 6 (trừ ngày lễ)
Hotline 0362917357
Chạy nhiều nhiệm vụ trên bộ vi điều khiển có thể hơi phức tạp khi sử dụng kiểu mã hóa truyền thống (Hình 1). Đôi khi chúng ta phải sắp xếp lại cả mã code vừa được thêm vào tính năng mới đến hệ thống. Sử dụng kiểu mã hóa hệ thống điều hành thời gian thực (RTOS) (Hình 2), việc quản lý nhiệm vụ trở nên dễ dàng hơn. Trong phần hướng dẫn này mình sẽ sử dụng pyRTOS trên Maker Pi Pico.
Hệ thống điều hành thời gian thực (RTOS) à một linh kiện phần mềm chuyển đổi nhanh chóng giữa các tác vụ, tạo cảm giác rằng nhiều chương trình đang được thực thi cùng một lúc (xem Hình 3). Các hệ thống đa lõi có thể thực sự chạy các tác vụ đồng thời bằng cách sử dụng các lõi khác nhau để chạy các tác vụ khác nhau. RTOS hữu ích để chạy nhiều tác vụ có thời gian thực thi nghiêm ngặt. Ví dụ: máy dò độ bền của NASA sử dụng RTOS (VxWorks) để vận hành các công cụ khoa học khác nhau trong thời gian thực.
RTOS làm cho nhiều dự án phát triển dễ dàng hơn và nó làm cho chúng có thể mở rộng, bảo trì, di động và an toàn hơn. Tiết kiệm thời gian và chi phí cho việc phát triển. Một chương trình lặp đơn giản sẽ ngày càng lộn xộn hơn, biến thành mã spaghetti, trở nên khó quản lý khi các tính năng mới được thêm vào mã. Nó sẽ khó khăn hơn để duy trì, sửa đổi và mở rộng.
Đa nhiệm, một mình, là đủ lý do để sử dụng RTOS trong nhiều hệ thống. Nó cho phép bạn chia một vấn đề phức tạp thành các phần đơn giản hơn và tập trung vào sự phát triển của từng nhiệm vụ hơn là lên lịch khi mọi thứ chạy. Nó cũng giúp cho việc phân quyền giữa các thành viên trong nhóm trở nên dễ dàng hơn. RTOS cũng cho phép chúng tôi sử dụng khả năng tối đa của vi điều khiển, thậm chí còn hơn thế nữa trên vi điều khiển lõi kép như Pico.
Step | CircuitPython | MicroPython |
1 | Download Mu Editor | Download Thonny |
2 | Download libraries for Maker Pi Pico | |
3 | Copy pyRTOS folder from CircuitPython example code to Maker Pi Pico lib folder | Copy pyRTOS folder from MicroPython example code to Maker Pi Pico through Thonny (video below) |
1. Nhập pyRTOS và các phụ thuộc nhiệm vụ
import pyRTOS
import machine # import task dependencies
2. Xác định nhiệm vụ
def task1(self):
ledpin1 = machine.Pin(0, machine.Pin.OUT) # Task1 setup
ledpin1.value(0)
yield
while True:
ledpin1.toggle() # Task1 loop
yield [pyRTOS.timeout(1)] # Delay for 1 second (Other task can run)
3. Thêm nhiệm vụ.
pyRTOS.add_task(pyRTOS.Task(task1))
4. Khởi động RTOS
pyRTOS.start()