Hello anh em, lại là mình đây, sau khi hoàn thành serie micropython thì đây sẽ là bài tổng hợp của mình tóm gọn nhẹ nhàng tình cảm lại cho anh em có thể theo dõi.

Micropython về cơ bản là dễ, dễ hiểu dễ đọc, dễ làm, nhanh gọn lẹ và có thể nói là giống mì ăn liền như Arduino. Tùy mỗi người một mục đích khác nhau, 1 nhu cầu khác nhau cũng như khẩu vị riêng. Nếu bạn thực sự muốn thử nghiệm python trên device cũng như microcontroller thì đây là series dành cho bạn. Mình tin với 15-30p xem qua cũng như có kiến thức cơ bản về python rồi thì dăm ba cái này chỉ là muỗi thôi.

Đúng với tinh thần bài tổng hợp để đi theo được series này thì bạn cần chuẩn bị 1 chút những thứ sau

Phần cứng và môi trường

  • Board NodeMCU ESP32 hoặc ESP8266 có nạp firmware Micropython bản mới nhất
  • PC với hệ điều hành Windows hoặc Ubuntu linux, hoặc cả 2, trong series này mình dùng cả 2, thường thì Ubuntu để xài esptool flash xóa trắng và nạp firmware cho nhanh gọn lẹ, sau khi đã nạp xong Micropython thì mình lại về windows cho quen thuộc

Các bạn có thể tham khảo 2 bài viết sau đây về làm quen cơ bản cũng như setup môi trường ban đầu cho Micropython

MicroPython và ESP8266 | Học ARM
Micropython và ESP8266 có liên quan gì với nhau? Python có thể chạy được trên các phần cứng nhúng được không ? Hẳn là các bạn có nghe nói nhiều về Micropython, tuy nhiên để chạy thử được micropython thì cũng hơi vất vả, mình xin chia sẻ với các bạn 1 số cách đơn giản để có thể chạy và thử micropytho…
Micropython với WebREPL | Học ARM
Hello anh em, mời ae quay về những năm về trước với series học tập, bắt đầu lại với serie micropython để khởi động cho nóng người. MicroPython và ESP8266 | Học ARMMicropython và ESP8266 có liên quan gì với nhau? Python có thể chạy được trên các phần cứng nhúng được không ? Hẳn là các bạn có nghe nó…

Phần mềm

Có yêu cầu nhỏ trước khi bắt đầu là bạn phải biết python cơ bản nhé, nếu không thì cũng không sao, mình sẽ có khóa python easy cho ae theo dõi ngay, python rất đơn giản dễ hiểu cho những người mới bắt đầu nên anh em cũng không cần phải quá lo lắng

Sau khi chuẩn bị đầy đủ môi trường cần thiết thì bạn có thể bắt tay vào nghiên cứu các ngoại vi khác nhau, cách để kết nối với các board khác, điều khiển IO, DHT22, ADC,PWM, giao tiếp I2C, SPI, UART thông qua các bài viết sau

Micropython điều khiển GPIO | Học ARM
Trong bài trước chúng ta đã biết được cách để setup môi trường lập trình micropython rồi, giờ chúng ta thử lập trình GPIO cơ bản với micropython xem thế nào Nếu các bạn đã lỡ bỏ qua bài đầu tiên trong series micropython thì có thể quay lại bài viết sau Micropython với WebREPL | Học ARMHello anh em…
Micropython với Analog IO | Học ARM
Vậy là ta đã đi được tới bài viết thứ 3 trong chuỗi series Micropython thần thánh. 2 bài viết trước mình đã nói về việc setup môi trường và dùng WebREPL để lập trình micropython, giờ thì chúng ta sẽ tiếp tục với Analog I/O Micropython với WebREPL | Học ARMHello anh em, lâu lắm rồi mới lại về lại se…
Micropython với DHT22 | Học ARM
Sau 3 bài với micropython các bạn đã thấy có hứng thú gì với món này chưa ? Nay thì mình tiếp tục với DHT22 quen thuộc, ta sẽ làm một đoạn code python để lấy thông tin từ DHT, đây là modul nhiệt độ và độ ẩm. Trước khi bắt đầu là 5p quảng cáo cho các bài viết cùng series nếu bạn đang cảm thấy bối r…
Micropython với UART/SPI/I2C | Học ARM
Micropython, micropython, ôi làm xong serie này chắc ám ảnh micropython luôn quá anh em, bài cuối rồi nhé, hết bài này là không còn được nghiên cứu micropython nữa đâu. Quay lại lúc bắt đầu, series này gồm 4 bài đã cho ra mắt và đây là bài chốt hạ, anh em nếu lỡ bỏ sót thì có thể quay lại để xem tạ…

Với những bài viết trên bạn có thể hiểu được cách làm việc của Micropython, cách để thao tác với các ngoại vi thông qua các thư viện, cách đưa file vào Micropython board và điều khiển nó để tương tác với các board khác. Ưu điểm lớn nhất của nó là không cần phải biên dịch code, load file py vào và chạy luôn.

Ưu điểm Micropython

Tiện đây thì  có các ưu điểm của micropython mình list theo bài viết này ra cho ae xem luôn:

  • Interactive REPL, or read-evaluate-print loop: Cho phép bạn kết nối với một bo mạch và để nó thực thi mã mà không cần biên dịch hoặc tải lên - quá hoàn hảo để nhanh chóng tìm hiểu và thử nghiệm với phần cứng!
  • Extensive software library: Giống như ngôn ngữ lập trình Python bình thường, MicroPython có các thư viện được tích hợp để hỗ trợ nhiều tác vụ. Ví dụ: parsing JSON file từ web service, tìm kiếm văn bản bằng regular expression hoặc thậm chí thực hiện lập trình socket dễ dàng với các thư viện tích hợp sẵn cho MicroPython.
  • Extensibility. Đối với người dùng cao cấp, MicroPython có thể mở rộng với các function low-level của C/C ++ để bạn có thể trộn code với code high-level MicroPython khi bạn cần.

Micropython có thể làm được gì ?

Bạn có thể tưởng tượng bất kỳ thứ gì mà Arduino Board làm được thì MicroPython cũng làm đc, giống như điều khiển hardware và kết nối device. Bạn có thể dùng GPIO, PWM, I2C,UART, SPI, thậm chí tìm mạng và Wifi, kết nối mạng với Micropython như những ví dụ trên của mình rồi đấy.

Nói tóm lại thì MicroPython làm được rất nhiều thứ. Tất cả mọi thứ mà bạn có thể tưởng tượng ra được.

So sánh Micropython với Arduino

Có một vài điểm khác biệt quan trọng giữa Arduino và MicroPython. Đầu tiên là Arduino là một 'hệ sinh thái' với Arduino IDE, ngôn ngữ lập trình Arduino (dựa trên C/C ++) và phần cứng Arduino như Arduino Uno R3.

MicroPython chỉ là một trình thông dịch ngôn ngữ lập trình và không bao gồm một trình soạn thảo (IDE). Một số board MicroPython hỗ trợ trình chỉnh sửa/ nhắcode dựa trên web, nhưng với hầu hết các board MicroPython, bạn sẽ viết mã trong trình soạn thảo văn bản mong muốn của mình và sau đó sử dụng các công cụ để tải lên và chạy code trên board.

Sự khác biệt quan trọng thứ hai là ngôn ngữ MicroPython được thông dịch(interpreter) thay vì được biên dịch thành tập lệnh để CPU có thể chạy trực tiếp như với ngôn ngữ lập trình C/C++ của Arduino. Được thông dịch có nghĩa là khi code MicroPython chạy, nó phải thực hiện thêm một chút công việc để chuyển đổi từ code MicroPython thành các lệnh mà CPU hiểu được.

Một ưu điểm chính của mã thông dịch là nó có thể gọn gàng và đơn giản hơn nhiều so với các ngôn ngữ biên dịch trực tiếp theo lệnh CPU. Bạn thậm chí có thể viết và chạy mã thông dịch như MicroPython trực tiếp trên board mà không cần biên dịch hoặc tải lên - điều này không thể với Arduino!

Một nhược điểm của mã được thông dịch và MicroPython so với Arduino là performance sẽ thấp hơn và đôi khi sử dụng nhiều bộ nhớ hơn khi thông dịch code. Một chương trình được viết bằng Arduino sẽ chạy nhanh nhất có thể trên CPU của board trong khi mã tương tự trong MicroPython sẽ chậm hơn một chút vì nó phải giải thích mọi lệnh và chuyển đổi nó thành mã CPU (tất nhiên ở đây mình không so sánh với cách lập trình bằng C với thanh ghi hoặc assembly code). Trong thực tế, hiệu suất này hiếm khi là một vấn đềlớn  đối với các loại dự án mà bạn có thể tạo với Arduino. Nếu bạn gặp sự cố về performance hoặc bộ nhớ, MicroPython cho phép bạn viết mã bằng C/C ++ hoặc assembly instruction với CPU gốc của board để đạt hiệu suất tối đa. Thế thì quá khủng rồi còn đòi hỏi gì nữa...

Cuối cùng thì không có câu trả lời đơn giản nào cho sự lựa chọn giữa MicroPython và Arduino. Mỗi loại đều có điểm mạnh và điểm yếu cần được xem xét cho các dự án của riêng bạn. Đừng ngại thử MicroPython - đối với một số board như ESP8266, bạn thực sự có thể sử dụng MicroPython hoặc Arduino và chọn đâu là cái tốt nhất cho nhu cầu của mình.

Hướng phát triển

Tất nhiên học xong rồi phải tiếp tục phát triển lên tiếp chứ, thế nguồn ở đâu mà coi bây giờ ? yên tâm nhé bạn tôi ơi, link bên dưới đầy đủ cho bạn ngâm cứu

Nếu gặp issue thì phải làm sao ? Vào link này giao lưu với các bạn trên thế giới nha bạn

Thế là đủ mọi thông tin cho anh em rồi nhé. Tới giờ bấm nút rồi, thân chào ace và hẹn gặp lại ở series sau.