Tin tức
Tin tức
Giới thiệu dễ dàng về Hệ thống nhúng (1) - MicroPython là gì?
2022-03-08 1224

Khi Python trở thành ngôn ngữ lập trình thống trị, MicroPython ngày càng trở nên phổ biến trong không gian hệ thống nhúng, đặc biệt là trong mô-đun Pico dựa trên bộ vi điều khiển ESP32 và RP2040 vừa được Raspberry PI Foundation phát hành.

Là một bannon không thể viết một dòng mã nào, tôi cảm thấy rất hạn chế trong hầu hết thời gian và thề sẽ tìm thời điểm thích hợp để học một ngôn ngữ lập trình. Tôi đã cống hiến hết mình cho MicroPython trong kỳ nghỉ Quốc khánh 7 ngày và nhận ra tất cả các chức năng của các thiết bị ngoại vi trên bảng trên bảng học mở rộng Pico do chính tôi thiết kế:

  • Ánh sáng lạ mắt - đơn sắc, ba màu RGB, đủ loại kết hợp, cũng có thể được điều khiển bằng các nút và cảm biến

  • Màn hình OLED hiển thị văn bản, hình ảnh và dạng sóng

  • Tín hiệu âm thanh được thu thập và hiển thị trên màn hình OLED - tạo ra màn hình dạng sóng thú vị

  • Chơi bài "Tôi và đất nước của tôi" với còi trên bảng

  • Chuyển mã của người khác để tạo dạng sóng tùy ý - thay đổi dạng sóng, thay đổi tần số, thay đổi cường độ, v.v.



Điều khiến tôi ấn tượng nhất trong suốt 7 ngày "khám phá" là việc bắt đầu với các hệ thống nhúng trong MicroPython thật dễ dàng - nguồn tài nguyên nguồn mở phong phú, nhiều hình thức tham khảo khác nhau, chẳng hạn như các khóa học video, trường hợp văn bản, v.v.

MicroPython thực sự là một ngôn ngữ lập trình tuyệt vời - hướng đối tượng, linh hoạt, đơn giản, thanh lịch!

Việc học tập của cá nhân tôi được hưởng lợi từ việc chia sẻ của người khác (nguồn mở) và cách tốt nhất để truyền đạt kiến ​​thức là chia sẻ những gì tôi đã học và những gì tôi đã học được. Vì vậy, tôi dự định ra mắt hướng dẫn lập trình nhúng Micro Python dựa trên Pico, sẽ ra mắt chính thức sau một tháng nữa. Tất nhiên rồi, Trong giai đoạn đầu, sẽ có 15 khóa học trực tiếp về thiết kế PCB, hướng dẫn bạn tự thiết kế bảng học tập Pico. Xét cho cùng, trong môi trường thuận tiện với bảng in miễn phí và vận chuyển miễn phí, dựa trên bảng lõi Pico, mọi người đều có thể thiết kế PCB để tạo ra nhiều ứng dụng thú vị khác nhau trong tương lai. Học cách thiết kế PCB cũng có thể là một lợi thế cho các kỹ sư hệ thống nhúng.

Từ giờ trở đi sẽ có hàng loạt bài viết kỹ thuật liên quan đến khóa học này. Hôm nay là ngày đầu tiên:

1. MicroPython là gì

MicroPython là một trình thông dịch ngôn ngữ lập trình Python mã nguồn mở nhỏ chạy trên một bảng phát triển nhúng nhỏ. Với MicroPython, bạn có thể viết mã Python đơn giản, rõ ràng để điều khiển phần cứng mà không cần phải sử dụng các ngôn ngữ cơ bản phức tạp như C hay C++ (Arduino để lập trình).


Logo MicroPython

Sự đơn giản của ngôn ngữ lập trình Python khiến MicroPython trở thành lựa chọn lý tưởng cho những người mới bắt đầu học lập trình và phần cứng. MicroPython rất đầy đủ tính năng và hỗ trợ hầu hết cú pháp Python, vì vậy ngay cả những người kỳ cựu về Python có kinh nghiệm cũng sẽ thấy việc sử dụng MicroPython quen thuộc và thú vị.

Ngoài việc dễ sử dụng, MicroPython còn có một số tính năng độc đáo khiến nó khác biệt với các hệ thống nhúng khác:

Sử dụng trình thông dịch tương tác: REPL (Đọc Đọc- Đánh giá Đánh giá- In In- Vòng lặp vòng lặp) - điều này cho phép bạn kết nối với bảng và yêu cầu nó thực thi mã mà không cần biên dịch hoặc tải lên - hoàn hảo để học nhanh và thử nghiệm phần cứng!

Thư viện phần mềm phong phú - Giống như ngôn ngữ lập trình Python thông thường, MicroPython có một số lượng lớn các thư viện được tích hợp sẵn để hỗ trợ nhiều tác vụ. Ví dụ: thông qua các thư viện tích hợp của MicroPython, bạn có thể dễ dàng phân tích dữ liệu JSON từ các dịch vụ Web, tìm kiếm văn bản bằng cách sử dụng các biểu thức thông thường và thậm chí thực hiện lập trình socket mạng.

Khả năng mở rộng - Đối với người dùng nâng cao, MicroPython có thể được mở rộng bằng các hàm C/C++ cấp thấp, do đó bạn có thể kết hợp mã MicroPython cấp cao mang tính biểu cảm với mã cấp thấp nhanh hơn khi cần.

MicroPython là một biến thể của ngôn ngữ Python 3. Nó là sản phẩm trí tuệ của Tiến sĩ Darrien P. George, thuộc Đại học Cambridge, người đã làm việc với một nhóm gây quỹ cộng đồng để phát triển một bảng phát triển phần cứng hỗ trợ microPython có tên là PyBoard vào năm 2013. MicroPython1.0 đã được trình bày tại hội nghị Python ( PyCon) vào năm 2014. Tiến sĩ George cũng đã thiết lập trang web Micro Python.org (www.micropython.org) để hỗ trợ MicroPython và Pyboard.


Logo MicroPython.Org chính thức

MicroPython.Org PyBoard, dựa trên bộ điều khiển STM32.


2. MicroPython có thể làm được những gì?

MicroPython được thiết kế để tạo các chương trình điều khiển hệ thống nhúng một cách nhanh chóng và hiệu quả. Hệ thống nhúng có thể được định nghĩa đơn giản là bất kỳ dự án nào yêu cầu sử dụng bộ vi điều khiển để đáp ứng nhu cầu kỹ thuật. Các hệ thống nhúng điển hình thường sử dụng cảm biến và đôi khi là bộ truyền động cơ điện để giao tiếp với bộ vi điều khiển. Chúng có thể được gắn vào các thiết bị giao diện người-máy để dễ dàng tương tác nhưng được tự động hóa hơn, để hoạt động độc lập hoặc truy cập từ xa vào đám mây.

Cũng giống như bo mạch Arduino, MicroPython có thể điều khiển phần cứng và các thiết bị được kết nối -- bạn có thể điều khiển đèn nhấp nháy ở chân GPIO, công tắc đọc và hơn thế nữa; Có thể điều khiển tín hiệuPWM có thể điều khiển máy chủ và đèn LED; Cảm biến analog có thể được đọc và đọc thông qua bộ chuyển đổi analog sang digital. Nó cũng dễ dàng giao tiếp với các thiết bị I2C hoặc SPI. Bạn thậm chí có thể tìm thấy hỗ trợ mạng và WiFi trên một số bảng. MicroPython thậm chí còn có các thư viện để điều khiển phần cứng khác, chẳng hạn như NeoPixels và dải đèn LED, màn hình OLED thu nhỏ, v.v. Tóm lại, MicroPython có thể làm được rất nhiều thứ!

Những hạn chế của MicroPython là gì?

MicroPython có rất ít hạn chế và hầu hết mọi thứ Arduino có thể làm đều có thể được thực hiện thông qua bảng MicroPython. Tuy nhiên, điều quan trọng cần lưu ý là mã MicroPython không nhanh bằng và có thể cần nhiều bộ nhớ hơn so với mã cấp thấp dựa trên Arduino hoặc mã cấp thấp dựa trên C/C++ tương tự khác, mặc dù điều này thường không thành vấn đề vì sự khác biệt về tốc độ và bộ nhớ không đủ lớn để ảnh hưởng đến hầu hết các ứng dụng. Xin lưu ý rằng mã quan trọng về thời gian hoặc hiệu suất có thể không hoạt động trong MicroPython. Ví dụ: sử dụng hoàn toàn phần mềm để điều khiển các chân IO nhằm triển khai một số giao thức truyền thông nối tiếp tốc độ cao trong MicroPython có thể không phải là ý tưởng hay nhất. Tuy nhiên, có nhiều cách để kết hợp mã MicroPython và mã C/C++ cấp thấp để chúng ta có thể tận dụng tối đa cả hai thế giới - logic chính là mã MicroPython rõ ràng và dễ hiểu, trong khi các phần quan trọng về hiệu năng được viết bằng mã cấp thấp nhanh hơn.

Ngôn ngữ MicroPython triển khai hầu hết ngôn ngữ cốt lõi của Python 3, nhưng MicroPython không triển khai toàn bộ thư viện chuẩn Python 3. Python nổi tiếng là có một thư viện tiêu chuẩn phong phú, nhưng cố gắng nén một thư viện lớn như vậy vào một bảng nhỏ chỉ có hàng kilobyte bộ nhớ là không thể. Thay vào đó, MicroPython triển khai một số phiên bản nhỏ hơn của thư viện chuẩn Python, mang lại trải nghiệm phát triển tuyệt vời.


Tuyên bố miễn trừ trách nhiệm: Bài viết này được in lại từ “rừng điện tử”, bài viết này chỉ thể hiện quan điểm cá nhân của tác giả, không thể hiện quan điểm của Sakwei và ngành, chỉ sao chép và chia sẻ, hỗ trợ bảo vệ quyền sở hữu trí tuệ, vui lòng ghi rõ nguồn gốc và tác giả nếu có vi phạm vui lòng liên hệ để xóa.



whatsapp

Đường dây nóng Dịch vụ

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950