🌱 [Python] 0 - Tại sao nên học Python? - Embedded

🌱 [Python] 0 - Tại sao nên học Python? - Embedded

    Câu hỏi này mình dành cho những người theo học và làm việc trong lĩnh vực embedded software giống như mình, còn đối với lập trình nói chung thì chắc chắn không cần phải giải thích nhiều rồi, python rõ ràng là một ngôn ngữ "tốt", đơn giản dễ tiếp cận. 
    ➤ Vậy đối với embedded software, học python có thể làm được gì? và tại sao chúng ta nên học nó?

    👉 Python hỗ trợ trên nền tảng Linux, Windows, và cả trên các máy tính nhúng như Raspberry Pi. Nó là một ngôn ngữ mới trong nhiều năm qua và ngày càng được sử dụng rộng rãi. Chúng ta có thể kể đến một số ưu điểm của ngôn ngữ Python:

  • Cấu trúc đơn giản, dễ học, dễ sử dụng (ít nhất là so với C/C++/asm thì Python đơn giản và tự nhiên hơn rất nhiều). 
  • Hỗ trợ nhiều thư viện, package cho các công việc khác nhau. Chẳng hạn như xử lý file eEcel chúng ta có package riêng cung cấp các API để thao tác với file Excel. Với file Word, hay PDF, hoặc Web lại có những package hỗ trợ riêng. 
  • Cộng đồng lớn - Tất nhiên rồi, một ngôn ngữ "tốt" như vậy thì cộng đồng phát triển cũng rất lớn, đặc biệt là cộng đồng bên ngành IT. 
Trong lập trình nhúng, mình có nhận thấy một số tác dụng sau của ngôn ngữ Python mà chúng ta nên học: 

     👉 MicroPython - "Làm nhanh, chạy chậm"

    Tác dụng dễ thấy nhất mà chúng ta thấy, Python cũng được sử dụng như một ngôn ngữ cho Vi điều khiển, giống như C. Áp dụng đối với dòng chip Wifi ESP, chúng ta có MicroPython, là một biến thể của Python được sử dụng riêng cho Vi điều khiển. Hiện nay thì MicroPython hỗ trợ cho rất nhiều Vi điều khiển, trong đó có cả STM32, hay Raspberry Pi. 

Python

    Nếu bạn có ESP32 trong tay, hãy thử một lần với MicroPython. Học và phát triển các ứng dụng dùng MicroPython sẽ rất nhanh. Tuy nhiên nhược điểm của nó là khá chậm (Build & Run), và code size chương trình cũng khá lớn so với sử dụng C. 

    Ngoài ra với Raspberry Pi, chúng ta cũng có thể sử dụng Python, đặc biệt với những bài toán yêu cầu xử lý ảnh, xử lý dữ liệu.  

    👉 Automation Testing

    Một ứng dụng khác được sử dụng trong thực tế đó là viết ra các script - kịch bản để thử nghiệm chương trình nhúng. Chẳng hạn một function có 4 parameters, mỗi parameter cần check 2 giá trị, thì chúng ta cần check tổng cộng  2^4 = 16 trường hợp và xem từng trường hợp có thực hiện đúng hay không. 

    Vậy nếu viết tay để check thì rất là cực, và chúng ta cần một công cụ để giúp copy paste nhanh hơn 😅 Python là một sự lựa chọn tuyệt vời. 

    👉 Xây dựng GUI - App

    Python rất hữu ích trong việc thực hiện các ứng dụng trên máy tính một cách nhanh chóng, và điều đó có thể sử dụng cho các ứng dụng nhúng. Mình lấy một ví dụ, đó chính là Thử thách Bootloader. Chúng ta cần xây dựng một App để chọn, parse file hex để truyền dữ liệu qua cổng USB của máy tính. Việc dùng Python để parse hex file khá đơn giản, nó cũng cung cấp các API để tương tác với cổng USB của máy tính. Vậy nếu bạn đang muốn tìm một ngôn ngữ để làm ứng dụng Thử thách Bootloader của mình, hãy thử sử dụng Python. 

    Một số ứng dụng khác mà chúng ta có thể kể đến, giống như Hercules, RealTerm, ... để check tín hiệu USART, chúng ta cũng có thể viết bằng Python. Python cung cấp rất nhiều API để giao tiếp với các phần cứng nhúng (Ví dụ API cho PCAN giúp cho việc giao tiếp mạng CAN trở nên đơn giản).

    👉 Tự động hóa những công việc đơn giản

    Không chỉ là lập tình nhúng, mà ngay cả những công việc khác, Python cũng có thể giúp chúng ta đơn giản hóa những công việc lặp đi lặp lại. 

    Ví dụ copy một file code 100 lần, mà chỉ thay đổi một số ký tự 😊 Thao tác với các cột hàng trong excel, ...

    Hoặc đối mặt với một đống report, hàng trăm ngàn file mà chúng ta sẽ mất rất nhiều thời gian để check bằng tay, hãy dùng Python!

    Nhìn chung là còn rất nhiều ứng dụng khác trong hệ thống nhúng mà chúng ta có thể sử dụng Python, Nếu thật sự yêu thích lập trình, hãy thử một lần sử dụng Python!

Chúc các bạn học tập tốt 😊 

Bắt đầu học lập trình Python tại đây!

Nguyễn Văn Nghĩa

Mình là một người thích học hỏi và chia sẻ các kiến thức về Nhúng IOT.

Đăng nhận xét

Mới hơn Cũ hơn