Loading Now

Frameworks Giúp Lập Trình Arduino Chuyên Nghiệp

Trong bài viết này mình sẽ hướng dẫn mọi người một vài phần mềm, editor hay platform giúp cho việc lập trình Arduino trở nên thú vị hơn. Nếu bạn đã quen lập trình với Arduino IDE muốn tìm hiểu nhiều hơn những điều mình nêu trên hay bạn là người mới bắt đầu muốn tìm hiểu lập trình nhúng thì đây là bài viết tuyệt vời dành cho bạn để lựa chọn một framework phù hợp. Bắt đầu thôi!

Giới thiệu về Arduino

Về cơ bản, Arduino là một nền tảng gồm cả phần mềm và phần cứng được chuẩn hóa, một cộng đồng phát triền và cung cấp. Mục đích của việc chuẩn hóa này đề đơn giản về phần cứng, giúp mọi người tiếp cận dễ hơn. Thay vì phải hiểu sâu về kiến trúc vi xử lý, các khối ALU, ngoại vi, các thanh ghi cho đến  những thứ phức tạp hơn như xử lý tín hiệu, điều chế giải điều chế sóng WiFi, Bluetooth, mã hóa,… người sử dụng chỉ cần có nền tảng lập trình cơ bản đồng thời có niềm đam mê với lập trình nhúng.

Nếu bạn đã quen lập trình cho ứng dụng trên máy tính rồi mà muốn chuyển qua lập trình nhúng có được không? Thì câu trả lời là có. Với Arduino thì chỉ đơn giản là thay vì lập trình cho PC hay laptop thì bạn lập trình cho những chiếc máy tính nhỏ hơn. Những chiếc máy tính nhỏ đó chính là những chiếc kit Arduino. Ngôn ngữ mà nó sử dụng là C/C++ hướng đối tượng nên sẽ thân quen với lập trình viên.

Có rất nhiều bài viết cộng đồng chính thức ở Việt Nam như Arduino.vn, họ chia sẻ về arduino rồi và rất chi tiết, các bạn hãy tham khảo tại đây nhé. 

Arduino IDE

Các bạn vào trang chủ của Arduino tại phần software download hoặc theo link này

Nếu các bạn dùng hệ điều hành Window thì khuyên các bạn nên sử dụng phiên bản installer hoặc ZIP, không nên dùng bản window app vì nó liên quan đến vấn đề cấp quyền ứng dụng và đường dẫn. Nếu các bạn cài phiên bản ở window app thì sẽ thường xuyên gặp phải lỗi không tìm thấy thư viện. 

Mình sẽ tải phiên bản installer cho window. Khi cài thì các bạn cứ ấn next oke và agree thôi nhé. Nhớ là để cài đặt ở folder mặc định là C:\Program Files (x86)\Arduino để dễ thao tác hơn sau này khi cài đặt thêm hoặc mở rộng.

Giao diện sẽ trông như này:

Hẳn là nó sẽ làm một số bạn lập trình viên thất vọng. Nói thật đây là cái editor chán nhất mà mình từng biết, chẳng khác gì Notepad cả, sử dụng Notepad ++ còn tốt hơn vì nó có gợi ý cho một vài ngôn ngữ.

Điểm bất cập của Arduino IDE:

  • Editor không có gợi ý, edit code khó khăn
  • Không có hệ thống debug code

Vậy chúng ta hãy cùng đi tìm giải pháp cho những vấn đề này ngay sau đây

Edit file Arduino.ino với editor khác

Arduino IDE cho phép người dùng edit trực tiếp trên editor khác sau đó quay lại biên dịch và nạp code. Các bạn chọn File -> References

  

Sau đó chọn tích vào Use external editor. Tiếp đến mở file sketch đang edit với một editor khác. Trong ví dụ này mình mở file sketch_may10.ino bằng Notepad++

Sau khi edit thì nhớ lưu và quay lại Arduino IDE để thực hiện biên dịch và nạp code cho kit. Các bạn có thế kết hợp với nhiều editor tùy mình thích.

Cách này tuy đã khắc phục được điểm edit code nhưng chưa triệt để.

Các Arduino extensions/frameworks

1. VScode

Không còn xa lạ với developer nữa, vscode chính là công cụ soạn thảo văn bản lập trình phổ biến nhất hiện nay. Arduino cũng được Microsoft ưu ái xây dựng một extension riêng.

Các bạn vào phần extension gõ Arduino và chọn phiên bản của Microsoft rồi nhấn install.

Sau khi thực hiện reload cửa sổ chương trình, các bạn chọn một folder mình muốn lưu trữ rồi nhấn Shift Crtl P để mở command palette. Sau đó gõ Arduino để thực hiện các lệnh giống như trong Arduino IDE. Lệnh đầu tiên cần thực hiện là initialize để khởi tạo, sau đó Board Config.

Edit code

Các công cụ biên dịch và nạp code có thể sử dụng ở góc trên bên phải màn hình

 

Bản chất của Extension này chỉ là một editor kết nối với Arduino IDE qua đường dẫn arduio.path trong phần setting extention. Vì vậy các bạn nhớ là cài Arduio IDE trước nhé. Mình nói các bạn cần nhớ vị trí cài đặt Arduino IDE là vì nguyên nhân này, nhưng vấn đề khó khăn đó thường xảy ra với các bạn cài ubuntu thôi. Một nhược điểm nữa, đó là Extension này vẫn chưa hỗ trợ gợi ý code Arduino nên còn khá bất tiện. 

2. Platformio

PlatformIO là mội plugin có khả năng lập trình Arduino/ARM mbed nó hỗ trợ tới hơn 800 board khác nhau ở thời điểm hiện tại. Các bạn có thể xem danh sách hỗ trợ của platformio tại đây. Riêng với các board thông dụng hiện nay như Arduino Uno, Mega, ESP 8266, ESP32, TIVA đều hỗ trợ hết, nghĩa là chỉ dùng Platformio bạn có thể lập trình tất cả, tiện quá phải không nào? Mình khuyên các bạn beginner với lập trình nhúng nên dùng platformio này vì tính dễ sử dụng của nó. Các bạn cứ việc code, còn thế giới thì để platformio lo.

PlatformIO có thể tích hợp được vào rất nhiều Text Editor khác nhau, và thật may mắn rằng visual studio code là một trong số đó. Tương tự như hướng dẫn trên, các bạn vào phần Extension, gõ platformio rồi tiến hành install.

Sau khi install và reload lại cửa sổ vscode, home page của platformio sẽ hiện ra. Để bắt đầu với project mới, các bạn chọn New Project

 
Điền thông tin vào, nhớ rằng platformio sẽ cấu hình luôn board mạch bạn sử dụng ngay khi khởi tạo project.

Cấu trúc một project sẽ hơi phức tạp một chút với những bạn quen dùng Arduino IDE nhưng sẽ quen với những developer phần mềm. File chứa source code nằm trong folder src và file main.cpp là file bắt đầu.

Sử dụng command palette nhấn tổ hợp phím Shift Ctrl P rồi gõ platformio. Trong các lệnh này thì chú ý đến lệnh build để biên dịch và Upload để nạp code cho board.

Platformio đã rất tuyệt vời khi đã khắc phục được hầu hết nhược điểm của Arduino IDE. Các bạn nên tham khảo thêm về platform tại đây. Nhưng hãy đến với phần tuyệt vời nhất khi đội ngũ phát triền Arduino đang tự hoàn thiện lại đứa con của mình.

3. Arduino CLI

Nếu bạn yêu command line thì đây là phiên bản Arduino dành cho bạn

Arduino CLI là một giải pháp cung cấp builder, boards/library manager, uploader, discovery và nhiều tool khác cần cho mạch Arduino và platform. Trong phiên bản này thì bạn sẽ thao tác với command line là chính, nhỏ gọn, hỗ trợ cả ba nền tảng là Window, Linux và Mac OSX. Ở bài viết này mình cài đặt trên Ubuntu/Linux, các bạn có thế tham khảo thêm cách cài đặt ở trang chủ của arduino tại đây nhé.

Cài đặt

Bước 1: Các bạn kiểm tra phiên bản Homebrew bằng commad sau:
brew --version

Nếu kết bạn chưa có cài hombrew thì thực hiện các lệnh sau:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

chờ cho cài đặt xong thì thêm đường dẫn Homebrew vào PATH 

test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profile
echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile

Sau đó hay khởi động lại máy bằng lệnh reboot

reboot

Giờ bạn có thế kiểm tra lại bản Homebrew 

Bước 2: cài đặt Arduino-cli
  • Sử dụng Lệnh
brew update
brew install arduino-cli

Thao tác với Arduino-cli

Trước khi update và compiling và uploading sketches thì ta cần setup một số thứ sau:

  • Update board index để tìm kiểm tất cả board bạn có thể install
  • Tìm kiếm các board (hay cores) mà bạn muốn cài
  • Install những board (hay cores) mà bạn cần

Sau những bước đó thì bạn có thế bắt đầu biên dịch và nạp code.

Mỗi command trong arduino-cli có hướng dẫn của nó, bạn có thể sử dụng lênh help để kiểm tra, ví dụ như sau:

Còn nhiều command thú vị nữa, các bạn hãy tìm hiểu thêm ở đây nhé. 

Vì giao diện của phiên bản là là commad line nên phần edit code thì các bạn cần lựa chọn cho mình một editor như gedit, nano, vim,… Đảm bảo rằng các bạn sẽ có một trải nghiệm mới lại khi làm việc với Arduino-cli.

4. Arduino pro IDE

To hơn, nhanh hơn và khỏe hơn. Đây mới là thứ một developer cần. Mặc dù là phiên bản thử nghiệm alpha, song ta thấy được rõ những cải tiến nâng cấp rõ rệt so với người tiền nhiệm.

  • Modern, fully featured development environment
  • Dual Mode, Classic Mode (identical to the Classic Arduino IDE) and Pro Mode (File System view)
  • New Board Manager
  • New Library Manager
  • Board List
  • Basic Auto Completion (Arm targets only)
  • Git Integration
  • Serial Monitor
  • Dark Mode
  • Sketch synchronisation with Arduino Create Editor
  • Debugger
  • Fully open to third party plug-ins
  • Support for additional languages other than C++

Các bạn có thể trải nghiệm bằng việc download tại đây

Mình sử dụng phiên bản cho window, chỉ cần download về và giải nén

Đây là giao diện của Arduino pro IDE ở Pro mode

Mình sẽ để các bạn tự khám phá phiên bản này, hãy tham khảo và bàn luận thêm ở đây nhé. Do vẫn đang trong giai đoạn phát triền nên phiên bản alpha này còn nhiều bất ổn định. Mong một ngày không xa chúng ta sẽ có một Arduino pro IDE hoàn chỉnh. 

5. Khác

Ngoài những framework mình nêu trên, các bạn có thể sử dụng visual studio hay eclipse để thực hiện.

Kết luận

Hi vọng qua đây các bạn đã tìm được một framework thích hợp để thỏa mãn đam mê lập trình nhúng. Nếu các bạn thấy bài viết này hay thì đừng ngại chia sẻ và đánh giá 5*, đấy sẽ là động lực để mình tiếp tục ra những blog về chủ đề lập trình nhúng. Còn nếu có câu hỏi thì cũng đừng ngần ngại đưa ra, mình sẽ cố gắng trả lời hết. Cảm ơn mọi người đã theo dõi.

Post Comment

Contact