Python có thể được sử dụng cho các hệ thống nhúng không?

Viết mã chạy trong thiết bị đầu cuối hoặc trong trình duyệt web của bạn thật thú vị. Tuy nhiên, việc viết mã ảnh hưởng đến thế giới thực có thể thỏa mãn ở một cấp độ hoàn toàn khác. Viết loại mã này được gọi là phát triển nhúng và Python đang làm cho nó dễ tiếp cận hơn bao giờ hết

Trong hướng dẫn này, bạn sẽ học

  • Phát triển nhúng là gì và tại sao bạn sẽ sử dụng Python để làm điều đó
  • Tùy chọn phần cứng và phần mềm của bạn là gì để chạy Python trên hệ thống nhúng
  • Khi Python phù hợp với một hệ thống nhúng và khi nào thì không
  • Cách viết game cơ bản trên BBC micro. bit với MicroPython

Hướng dẫn này chứa các đoạn mã cho phép bạn xây dựng một trò chơi đơn giản trên máy vi tính BBC. chút. Để truy cập toàn bộ mã và xem trước những gì bạn sẽ xây dựng, hãy nhấp vào liên kết bên dưới

Nhận mã mẫu. Nhấp vào đây để lấy mã mẫu mà bạn sẽ sử dụng để tìm hiểu về phát triển nhúng với Python trong hướng dẫn này

Phát triển nhúng là gì?

Phát triển nhúng là viết mã cho bất kỳ thiết bị nào không phải là máy tính đa năng. Định nghĩa này hơi mơ hồ, vì vậy một số ví dụ có thể hữu ích

  • Máy tính đa năng bao gồm máy tính xách tay, máy tính để bàn, điện thoại thông minh, v.v.
  • Hệ thống nhúng bao gồm máy giặt, máy kỹ thuật số, robot, v.v.

Theo nguyên tắc chung, nếu bạn không gọi thứ gì đó là máy tính, nhưng nó vẫn có mã chạy trên đó, thì đó có thể là một hệ thống nhúng. Cái tên này xuất phát từ ý tưởng nhúng máy tính vào một hệ thống vật lý để thực hiện một số nhiệm vụ.

Các hệ thống nhúng có xu hướng được thiết kế để thực hiện một nhiệm vụ duy nhất, đó là lý do tại sao chúng tôi gọi các máy tính thông thường là “mục đích chung”. chúng được thiết kế để làm nhiều hơn một nhiệm vụ

Giống như bạn cần một máy tính để chạy mã thông thường, để chạy mã nhúng, bạn cần một số loại phần cứng. Những phần cứng này thường được gọi là bảng phát triển và hướng dẫn này sẽ giới thiệu cho bạn một số được thiết kế để chạy Python

Loại bỏ các quảng cáo

Python để phát triển nhúng

Một trong những điều tuyệt vời nhất khi học Python là nó có thể áp dụng ở rất nhiều nơi. Bạn có thể viết mã chạy ở mọi nơi, ngay cả trên các hệ thống nhúng. Trong phần này, bạn sẽ tìm hiểu về những đánh đổi khi sử dụng Python cho dự án nhúng của mình và một số điều cần lưu ý khi bắt đầu

Lợi ích của việc sử dụng Python

Lợi ích cốt lõi mà Python mang lại khi xây dựng hệ thống nhúng là tốc độ phát triển. Python có sẵn các thư viện cho hầu hết các tác vụ và điều này hầu như vẫn đúng với các triển khai nhúng của nó. Bạn có thể tập trung vào việc xây dựng hệ thống của mình vì nhiều vấn đề bạn gặp phải đã được giải quyết

Vì Python ở cấp độ cao hơn các ngôn ngữ nhúng phổ biến khác nên mã bạn viết sẽ ngắn gọn hơn. Điều này giúp tăng tốc độ phát triển, nghĩa là bạn sẽ viết mã nhanh hơn, nhưng nó cũng giúp mã của bạn dễ hiểu

Python được quản lý bộ nhớ. C++, một lựa chọn phổ biến cho phát triển nhúng, không phải là. Trong C++, bạn chịu trách nhiệm giải phóng bộ nhớ khi làm xong, điều này rất dễ quên, dẫn đến chương trình của bạn hết bộ nhớ. Python làm điều này cho bạn

Nhược điểm của việc sử dụng Python

Mặc dù quản lý bộ nhớ của Python là một trợ giúp lớn, nhưng nó phát sinh một chút tốc độ và chi phí bộ nhớ. Các tài liệu MicroPython có một cuộc thảo luận tốt về các vấn đề bộ nhớ

Một điều khác cần xem xét là bản thân trình thông dịch Python chiếm dung lượng. Với ngôn ngữ được biên dịch, kích thước chương trình của bạn chỉ phụ thuộc vào chương trình của bạn, nhưng chương trình Python cần trình thông dịch chạy chúng. Trình thông dịch Python cũng chiếm RAM. trên vi mô. một chút, bạn không thể viết mã Bluetooth bằng Python vì không có đủ chỗ cho Python và Bluetooth cùng một lúc

Vì Python được thông dịch nên nó không bao giờ có thể nhanh bằng ngôn ngữ được biên dịch. Một ngôn ngữ được giải thích cần giải mã từng lệnh trước khi chạy nó, nhưng một ngôn ngữ được biên dịch chỉ có thể chạy. Tuy nhiên, trên thực tế, điều này hiếm khi thành vấn đề vì các chương trình Python vẫn chạy đủ nhanh cho hầu hết các trường hợp sử dụng

Những điều cần chú ý khi mới phát triển nhúng

Máy tính hiện đại có rất nhiều bộ nhớ để làm việc với. Khi bạn lập trình chúng, bạn không phải lo lắng quá nhiều về kích thước của danh sách bạn tạo hoặc tải toàn bộ tệp cùng một lúc. Tuy nhiên, các hệ thống nhúng có bộ nhớ hạn chế. Bạn phải cẩn thận khi viết chương trình của mình để không có quá nhiều thứ trong bộ nhớ cùng một lúc

Tương tự, tốc độ bộ xử lý trên hệ thống nhúng chậm hơn nhiều so với trên máy tính để bàn. Tốc độ bộ xử lý xác định mã của bạn được thực thi nhanh như thế nào, do đó, chạy chương trình trên máy tính nhúng sẽ mất nhiều thời gian hơn chạy chương trình trên máy tính để bàn. Điều quan trọng hơn là nghĩ về hiệu quả của mã nhúng—bạn không muốn nó chạy mãi mãi

Có lẽ thay đổi lớn nhất khi lập trình hệ thống nhúng là yêu cầu về nguồn điện. Máy tính xách tay, điện thoại và máy tính để bàn cắm vào tường hoặc có pin lớn. Các hệ thống nhúng thường có pin nhỏ và phải tồn tại trong một thời gian rất dài, đôi khi thậm chí hàng năm. Mỗi dòng mã mà bạn chạy đều tiêu tốn một chút thời lượng pin và tất cả sẽ tăng lên

Dưới đây là một số điều khác mà bạn nên biết khi bắt đầu

  • Nếu bạn có kết nối mạng trên thiết bị của mình thì có thể kết nối đó chậm hoặc không đáng tin cậy
  • Bạn có nhiều lựa chọn thư viện nhỏ hơn để lựa chọn
  • Các hệ thống nhúng thường không có dung lượng lưu trữ liên tục lớn

Phát triển nhúng là một lĩnh vực rộng lớn, có rất nhiều thứ cho người mới học. Tuy nhiên, hiện tại, chỉ cần nhớ rằng điều quan trọng hơn là viết mã tinh gọn trên các hệ thống nhúng. Điều này làm cho các hệ thống nhúng tuyệt vời cho hiệu quả học tập trong mã của bạn

Tùy chọn phần cứng để chạy Python nhúng

Trước khi viết bất kỳ mã nhúng nào, bạn phải chọn mã của bạn sẽ chạy trên phần cứng nào. Có rất nhiều bảng phát triển có sẵn, ngay cả trong những bảng chạy Python. Sự lựa chọn của bạn sẽ thuộc về dự án mà bạn sử dụng chúng cho. Trong phần này, bạn sẽ xem qua một số tùy chọn có sẵn

BBC vi. chút

BBC vi mô. bit là một hệ thống nhúng được thiết kế cho mục đích giáo dục. Trên tàu một micro. một chút, có rất nhiều thành phần, bao gồm các nút, màn hình LED 5x5, loa và micrô, máy đo gia tốc và mô-đun Bluetooth. Thật không may, mô-đun Bluetooth không sử dụng được với Python, nhưng bạn vẫn có thể sử dụng radio trực tiếp. Nó có thể lập trình bằng Scratch, JavaScript và quan trọng nhất là Python

Đây là ảnh của một cái từ phía sau hiển thị một số thành phần thú vị có sẵn

BBC vi mô. bit [Hình ảnh. ]

vi mô. bit có rất nhiều tài nguyên trực tuyến tuyệt vời để giúp bạn bắt đầu và đưa ra ý tưởng dự án

Loại bỏ các quảng cáo

quả mâm xôi

Hầu hết Raspberry Pi về mặt kỹ thuật là máy tính bảng đơn thay vì hệ thống nhúng, nhưng tất cả chúng vẫn cho phép truy cập vào phần cứng bên ngoài thông qua các chân GPIO của chúng. Một ngoại lệ đối với quy tắc là Raspberry Pi Pico, một bảng phát triển vi điều khiển. Các Raspberry Pi khác chạy Linux, nghĩa là bạn có thể sử dụng chúng như một máy tính hoàn chỉnh và tất cả các Pi đều hỗ trợ Python ngay lập tức

Có sẵn một số mẫu Raspberry Pi khác nhau, nhưng tất cả chúng đều có thể chạy Python và hoạt động với thiết bị điện tử. Bạn nên chọn mô hình nào tùy thuộc vào nhu cầu dự án của bạn. Đây là một trong những mẫu mới nhất

Raspberry Pi 4 Model B [Hình ảnh. ]

Bạn có thể tìm hiểu thêm về các mẫu Raspberry Pi khác nhau trên trang web chính thức. Để biết ví dụ về một dự án bạn có thể thực hiện với Raspberry Pi và Python, hãy xem Xây dựng các dự án vật lý với Python trên Raspberry Pi

ván ép

Pyboard là một bảng phát triển điện tử được thiết kế để chạy MicroPython. Nó mạnh hơn rất nhiều so với micro. một chút nhưng không có bất kỳ tính năng bổ sung nào như màn hình tích hợp và cảm biến của micro. chút. Đây là pyboard 1. 0

ván ép 1. 0 [Hình ảnh. GitHub micropython/pyboard]

Bạn có thể nhận thấy rất nhiều vòng tròn vàng trên bảng. Chúng được gọi là chân và được sử dụng để kết nối pyboard với các thành phần điện tử khác. Ví dụ: nếu bạn đang chế tạo ô tô điều khiển từ xa, bạn có thể kết nối một số động cơ với chúng

Người khác

Có rất nhiều bảng và bộ công cụ tương thích với Python, quá nhiều để liệt kê ở đây. Tuy nhiên, có một vài cái thú vị rất hay để gọi ra

  • LoPy từ Pycom kết nối với các mạng Internet vạn vật chuyên dụng như LoRa và Sigfox
  • Tất cả các bo mạch dựa trên ESP8266 đều chạy MicroPython. ESP8266 là một bộ vi điều khiển hỗ trợ Wi-Fi giá rẻ. Những người kế nhiệm của nó, dòng chip ESP32, cũng chạy MicroPython
  • Python cũng chạy trên Nintendo DS. Việc thiết lập có vẻ hơi phức tạp đối với người mới bắt đầu, nhưng dự án này quá thú vị để không đề cập đến

Có nhiều bảng tương thích với MicroPython hơn hướng dẫn này có không gian cho. Bạn nên thực hiện một số nghiên cứu để tìm ra cái phù hợp cho các dự án của mình. Một nơi tốt để bắt đầu có thể là cửa hàng MicroPython của Adaf nhung

Tùy chọn phần mềm để viết Python nhúng

Khi bạn cài đặt Python trên máy tính của mình, bạn thường cài đặt một triển khai cụ thể của Python có tên là CPython. Việc triển khai Python là chương trình chạy mã Python của bạn

Bạn có thể gọi CPython là triển khai Python mặc định vì nó được viết bởi những người xác định chính ngôn ngữ đó. Tuy nhiên, CPython không phải là triển khai duy nhất của Python. Trong phần này, bạn sẽ tìm hiểu về một số triển khai dành riêng cho việc viết mã nhúng

MicroPython

MicroPython là triển khai Python nhúng tiêu chuẩn thực tế. Nó là một con trăn 3. triển khai x được thiết kế để chạy trên vi điều khiển. Nó không tương thích 100% với CPython, nhưng nó rất gần. Điều này có nghĩa là nếu bạn đã viết mã để chạy trên các phiên bản lên tới Python 3. 4, thì rất có thể bạn có thể chạy nó trong MicroPython

MạchPython

CircuitPython là một nhánh của MicroPython hỗ trợ danh sách bảng hơi khác và có một số thay đổi để làm cho nó thân thiện hơn với người mới bắt đầu. Phần lớn, trải nghiệm của bạn sẽ rất giống khi sử dụng CircuitPython giống như khi sử dụng MicroPython. Bạn có thể chọn sử dụng CircuitPython nếu bo mạch của bạn chỉ hỗ trợ nó chứ không hỗ trợ các triển khai khác

Loại bỏ các quảng cáo

Dự định. Trò chơi A Simon Says trên BBC micro. chút

Không có gì có thể so sánh với trải nghiệm thực tế, vì vậy trong phần này, bạn sẽ xây dựng một trò chơi Simon Says trên BBC micro. chút. Đừng lo lắng nếu bạn không có. Có sẵn các trình mô phỏng trực tuyến để giúp bạn bắt đầu

Simon Says là một trò chơi dành cho trẻ em trong đó một người hướng dẫn cho một nhóm. Nếu họ đặt trước hướng dẫn của mình bằng “Simon nói,” thì nhóm phải thực hiện. Nếu họ đưa ra hướng dẫn mà không nói “Simon nói” trước, thì cả nhóm phải bỏ qua hướng dẫn. Để làm cho trò chơi của chúng tôi đơn giản hơn, chúng tôi sẽ chỉ tập trung vào phần hướng dẫn

Trò chơi sẽ hoạt động như sau

  • vi mô. bit sẽ nghĩ ra một hướng và nói với người chơi
  • Người chơi sẽ cố gắng nghiêng micro. chút về hướng đó
  • Nếu người chơi xoay sở để nghiêng micro một cách chính xác. một chút trong thời gian, sau đó họ nhận được một điểm
  • Nếu người chơi không thực hiện độ nghiêng chính xác kịp thời, thì micro. bit hiển thị điểm số của họ và trò chơi bắt đầu lại

Trước khi bắt đầu viết mã, bạn sẽ cần thiết lập môi trường của mình

Thiết lập môi trường của bạn

Cho dù bạn có một micro vật lý hay không. bit, con đường nhanh nhất để bắt đầu viết mã là sử dụng các trình chỉnh sửa trực tuyến có sẵn. Đối với hướng dẫn này, bạn sẽ sử dụng công cụ tạo. biên tập code. Khi bạn mở trình chỉnh sửa, bạn sẽ thấy màn hình sau

Hầu hết màn hình được sử dụng với bộ đệm văn bản nơi bạn có thể nhập mã của mình. Ở dưới cùng bên phải, bạn sẽ thấy một nút phát. Điều này sẽ cho phép bạn chạy mã của mình sau khi bạn viết nó

Hiển thị hướng dẫn trên màn hình

Điều đầu tiên mà trò chơi của bạn cần làm là đưa ra một hướng đi và nói điều đó với người chơi. Với mục đích của trò chơi này, bạn có thể sử dụng ba hướng.

# Previous code...

while True:
    # Previous code...

    # Get the X-axis [left-right] tilt
    acc_x = accelerometer.get_x[]
    # Determine direction
    if acc_x 

Chủ Đề