- PlatformIO là gì?
- Thiết lập PlatformIO cho Arduino Uno
- Lập trình Arduino UNO bằng IDE PlatformIO
- Lập trình bo mạch STM32 bằng PlatformIO IDE
Việc phát triển Arduino và Arduino IDE luôn dễ dàng và thú vị với giao diện người dùng đơn giản của chúng. Arduino IDE là nguồn mở và miễn phí để sử dụng Môi trường phát triển với tất cả các tính năng như viết, biên dịch và tải mã lên Bảng Arduino. Nó dựa trên Java và chạy trên hệ điều hành chính như Windows, OS X và Linux. Nhưng với tất cả sự đơn giản và cộng đồng lớn, nó không có một số tính năng mà một nhà phát triển có kinh nghiệm sẽ yêu cầu để phát triển nhanh có thể làm giảm thời gian phát triển. Có rất nhiều môi trường phát triển có sẵn cho Arduino, nhưng tất cả đều có một số ưu và nhược điểm. Hôm nay, chúng ta sẽ bắt đầu với môi trường phát triển PlatformIO dễ sử dụng và có thêm các tính năng so với môi trường Arduino.
PlatformIO là gì?
PlatformIO là một hệ sinh thái mã nguồn mở dựa trên Python để phát triển IoT và một IDE đa nền tảng với trình gỡ lỗi hợp nhất chạy trên Windows, Mac và Linux. PlatformIO đi kèm với trình quản lý thư viện cho các nền tảng như hỗ trợ Arduino hoặc MBED cùng với kiểm tra đơn vị và cập nhật chương trình cơ sở. PlatformIO hỗ trợ một số Nền tảng, Khung công tác, Bảng như Arduino, ESP32, ESP8266 và đi kèm với một số ví dụ và thư viện. Nó độc lập với nền tảng mà nó đang chạy và nó chỉ yêu cầu Python được cài đặt trên máy tính.
Ưu điểm của PlatformIO
PlatformIO có tính năng phát triển nhanh chóng với các tính năng như Hoàn thành mã C / C ++ và Linter mã thông minh để phát triển chuyên nghiệp nhanh chóng mà không có trong Arduino IDE. Ngoài ra, PlatformIO cung cấp hỗ trợ chủ đề với các màu tối và sáng để phát triển bất cứ lúc nào. Nó cũng đi kèm với Điều hướng mã thông minh và Định dạng mã. Các tính năng cốt lõi bao gồm Hệ thống xây dựng đa nền tảng, Trình quản lý thư viện, Giám sát cổng nối tiếp, v.v.
Các Debugger Unified với một sự hỗ trợ cho nhiều kiến trúc và nền tảng phát triển cho phép debug nhiều bo mạch nhúng với Zero-Configuration. Trình gỡ lỗi hợp nhất PlatformIO có các tính năng như Điểm ngắt có điều kiện, Biểu thức và Điểm theo dõi, Trình xem bộ nhớ, Khởi động lại nóng phiên gỡ lỗi đang hoạt động. PlatformIO Core được viết bằng Python 2.7 và hoạt động trên Windows, macOS, Linux, FreeBSD và thậm chí cả các máy tính có kích thước thẻ tín dụng dựa trên ARM như Raspberry Pi, BeagleBone, CubieBoard, Samsung ARTIK, v.v. Ngoài ra, PlatformIO còn có File Explorer giúp tổ chức các tệp khi dự án phát triển đến một mức nhất định và việc tổ chức trở nên cần thiết.
Thiết lập PlatformIO cho Arduino Uno
Sử dụng PlatformIO rất đơn giản và chỉ cần vài bước để bắt đầu. PlatformIO yêu cầu cài đặt Python trên máy tính vì như đã giải thích ở trên rằng lõi PlatformIO được viết bằng Python 2.7. Lưu ý rằng PlatformIO không hỗ trợ Python 3, vì vậy, bạn nên cài đặt phiên bản Python 2 và sau đó tiến hành thiết lập PlatformIO IDE. PlatformIO là một IDE cộng với nó cung cấp các gói chính thức (plugin, tiện ích mở rộng) cho các IDE và trình soạn thảo văn bản phổ biến nhất.
Hôm nay chúng ta sẽ cài đặt PlatformIO vào trình soạn thảo văn bản như Atom và Visual Studio Code. Trong tài liệu chính thức của Platform IDE, nó nói rằng IDE PlatformIO cho VS Code (Visual Studio Code) cung cấp hiệu suất hệ thống tốt hơn và người dùng thấy bắt đầu dễ dàng hơn. Vì vậy, chúng tôi sẽ thiết lập PlatformIO trong Visual Studio Code. VS Code là một trình soạn thảo văn bản nổi tiếng với một số phần mở rộng cho phép chúng tôi phát triển bằng các ngôn ngữ lập trình khác nhau.
Hãy bắt đầu thiết lập PlatformIO để bắt đầu phát triển mã trong Arduino UNO. Có các bước liên quan được giải thích bên dưới:
- Đầu tiên hãy cài đặt Mã Visual Studio từ trang web chính thức của nó. Các bước cài đặt của Visual Studio Code sẽ không được giải thích ở đây nhưng bạn có thể tìm thấy nó trên trang web VS Code. Có các bước chung liên quan giống như cài đặt bất kỳ phần mềm nào khác trên hệ điều hành Windows.
- Mã Visual Studio sẽ trông giống như sau khi nó được cài đặt thành công.
- Bước tiếp theo bao gồm cài đặt PlatformIO bằng VS Code Extensions. Đối với điều này, bạn cần đi tới Biểu tượng tiện ích mở rộng ở góc trên bên trái của Mã VS. Có Biểu tượng Hộp vuông là biểu tượng thứ 5 ở góc trên cùng bên trái. Chỉ cần nhấp vào đó và một hộp tìm kiếm sẽ xuất hiện ngay bên cạnh nơi bạn có thể tìm thấy nhiều tiện ích mở rộng cho các ngôn ngữ lập trình khác nhau như C / C ++, C #, Python, PHP, Go, JavaScript, TypeScript và Node.js, v.v.
- Tìm kiếm “PlatformIO” trong hộp tìm kiếm của tiện ích mở rộng và bạn sẽ thấy Biểu tượng PlatformIO với Tên và Mô tả. Chỉ cần nhấp vào nó và cài đặt nó. Có thể mất một chút thời gian để cài đặt các công cụ và các phụ thuộc khác. Sự phụ thuộc bao gồm môi trường C / C ++ vì việc phát triển Arduino hầu hết được thực hiện trên C / C ++.
- Khi cài đặt hoàn tất, bạn sẽ thấy giao diện sau. Giao diện bao gồm tất cả các điều hướng cần thiết như tạo dự án mới, nhập dự án Arduino, dự án mở, ví dụ dự án, v.v. Bạn nên khởi động lại VS Code Editor sau khi cài đặt PlatformIO.
Điều này kết thúc các bước cài đặt của PlatformIO. Bây giờ PlatformIO đã được cài đặt và sẵn sàng sử dụng. Cũng giống như Arduino IDE, chúng ta sẽ bắt đầu với Chương trình Blink và cố gắng tải lên Chương trình Blink trong Arduino UNO.
Lập trình Arduino UNO bằng IDE PlatformIO
Giao diện PlatformIO sẽ được giải thích đồng thời trong khi lập trình Arduino UNO. Ở đây chúng tôi đang lập trình Arduino cho đèn LED nhấp nháy bằng PlatformIO. Điều tương tự cũng có thể được thực hiện bằng Arduino IDE. Làm theo các bước dưới đây để tạo một dự án mới cho đèn LED nhấp nháy.
- Chọn tab “Dự án mới” từ menu truy cập nhanh.
- Đặt tên cho dự án (Đây là 'Blink'). Tìm kiếm và Chọn bảng là Arduino UNO. Vì chúng tôi đang làm việc trong khung Arduino, nên khung được chọn sẽ là Arduino. Sau khi điền tất cả các chi tiết chỉ cần nhấp vào Hoàn tất.
- Dự án sẽ bắt đầu được tạo bằng cách thu thập tài nguyên và các phụ thuộc khác.
- Khi dự án được tạo thành công, bạn sẽ nhận được thông báo nhắc nhở là “Dự án đã được khởi tạo thành công” với tất cả các chi tiết đã điền.
- Để mở dự án đã tạo, chỉ cần cuộn xuống Menu Home của PlatformIO và bạn sẽ thấy tất cả danh sách các dự án đã tạo từ đầu. Ở góc phải của dự án đã tạo, nhấp vào 'Mở' để mở dự án và bắt đầu chỉnh sửa.
- Khi dự án được mở, ban đầu nó sẽ giống như bị ẩn, nhưng đừng lo lắng, PlatformIO có tính năng khám phá tệp nơi tất cả các tệp của dự án hiện tại sẽ được tìm thấy. Chỉ cần chuyển đến góc trên cùng bên trái và mở 'Không có tiêu đề (Nơi làm việc)'. Khi nhấp vào nó, tất cả các tệp sẽ xuất hiện dưới dạng menu thả xuống. Để tìm trình soạn thảo văn bản để chỉnh sửa 'Mã', hãy chọn 'src' và mở 'main.cpp'. Chế độ soạn thảo văn bản sẽ xuất hiện trên Màn hình chính khi mở một Tab mới. Tại đây bạn có thể viết tất cả các mã của Dự án đang thực hiện hiện tại.
- Đơn giản chỉ cần viết Mã Blink cho Arduino UNO. Lưu ý rằng, PlatformIO không có quyền truy cập mặc định vào các thư viện Arduino, vì vậy mỗi khi bạn viết mã cho Arduino, hãy luôn bao gồm thư viện Arduino, tức là “#include” ở đầu chương trình.
- Bước tiếp theo sẽ là biên dịch và tải lên mã. Để làm như vậy, hãy xem xét các chức năng được cung cấp bởi PlatformIO. Cũng theo mặc định, PlatformIO chọn Cổng COM. Nhưng bạn cũng có thể thay đổi Cổng nếu nó không phải là cổng COM mong muốn. Việc thay đổi cổng COM sẽ được giải thích ở phần sau của hướng dẫn này. PlatformIO có các chức năng như Xây dựng, Tải lên, Tải lên Thiết bị Từ xa, Dọn dẹp, Kiểm tra, Chạy tác vụ, Theo dõi nối tiếp, Thiết bị đầu cuối mới. Tất cả các chức năng có thể được tìm thấy ở góc dưới bên trái của Trình chỉnh sửa. Khi bạn Di chuột qua các biểu tượng, các chức năng sẽ được hiển thị.
- Để tạo bản phác thảo, hãy nhấp vào 'Xây dựng' và để tải bản phác thảo lên, hãy nhấp vào biểu tượng 'Tải lên'. Khi quá trình tải lên hoàn tất, bạn sẽ có thể xem thời gian tải lên cùng với tất cả các chi tiết khác và thông báo “Thành công”. Mã được tải lên thành công và bạn sẽ có thể thấy Đèn LED nhấp nháy trong Bảng Arduino.
Để chọn hoặc thay đổi bất kỳ Cổng COM nào, chỉ cần vào Màn hình chính của PlatformIO, sau đó chuyển đến Thiết bị, tại đây bạn có thể xem tất cả các thiết bị có sẵn được kết nối. Chọn cổng COM thích hợp và làm theo quy trình tương tự để Tải lên bản phác thảo.
Lập trình bo mạch STM32 bằng PlatformIO IDE
Lập trình Board STM32 sẽ có các bước hoàn toàn tương tự như Lập trình Arduino UNO đã giải thích ở trên. Sự khác biệt sẽ là chọn Board cho STM32 khi mở một dự án mới cho STM32. Điều tốt về PlatformIO là, nó không cần bất kỳ gói bên ngoài nào cho bất kỳ bảng nào để tải xuống riêng biệt, nó tự động tải xuống tất cả các gói và giúp chúng tôi dễ dàng chọn bảng và chuyển đến trình chỉnh sửa. Chúng tôi sẽ sử dụng JLink / JTAG / STLink / Serial Programmer bên ngoài để tải sketch lên STM32. STM32 cũng có thể được lập trình với Arduino IDE. Tiến hành các bước sau để lập trình nó với PlatformIO.
- Chỉ cần đặt tên cho Dự án (Đây là 'Blink STM32'). Sau đó chọn bảng cho STM32 tức là ' BluePill F103C8 (Chung) '. Sau đó chọn Framework là Arduino. Nhấp vào Kết thúc và đợi một lúc vì ban đầu sẽ mất thời gian để tải xuống các gói và phụ thuộc cho bo mạch STM32.
- Sau khi Thiết lập, thời gian tạo dự án tiếp theo sẽ ít hơn so với lần đầu tiên. Bây giờ, chỉ cần đi tới Untitled (Workspace) -> src -> main.cpp trong trình khám phá tệp bên trái.
- Bây giờ, các bước sắp tới sẽ rất quan trọng vì cần phải quyết định rằng chúng ta nên sử dụng lập trình viên nào để lập trình Board STM32. Có rất nhiều trình lập trình có sẵn như JTAG, STLink, JLink, Serial, v.v. Tất cả đều sẽ hoạt động nhưng bạn cần định cấu hình trang hoặc tệp cấu hình 'platformio.ini'.
- Trong Dự án này, chúng tôi đang sử dụng Serial Programmer CP210x USB to UART Bridge. Chúng tôi đã thực hiện Lập trình bo mạch STM32F103C8 sử dụng cổng USB, hầu hết các bước sẽ chỉ được thực hiện từ đó. Bạn có thể truy cập liên kết và tìm thêm về điều này.
- Đầu tiên, Kết nối Bộ lập trình nối tiếp với Bảng STM32 bằng ánh xạ chân sau và kết nối nó với PC.
Bộ lập trình nối tiếp USB sang |
Bảng STM32 |
5V |
5V |
Gnd |
Gnd |
Rx |
A9 |
Tx |
A10 |
- Bây giờ hãy truy cập trình khám phá dự án và mở trang 'platformio.ini' và thay đổi câu lệnh như trong hình. Các upload_protocol sẽ nói rằng đó lập trình viên nên sử dụng (STLink, JLink, Serial vv). Các upload_port chọn cổng COM. Bạn có thể tìm thấy bằng cách truy cập 'Thiết bị' trong Trang chủ. Thay đổi cổng COM theo cổng COM của bạn.
- Đi đến 'main.cpp' và thay đổi chương trình để Blink chương trình. Bây giờ chỉ cần tải lên chương trình và nó sẽ hiển thị thông báo thành công và thời gian tải lên. Bây giờ đèn LED sẽ bắt đầu nhấp nháy được kết nối tại chân PC13 của bảng STM32.
Phần này kết thúc hướng dẫn hoàn chỉnh về lập trình Arduino UNO cũng như Bo mạch STM32 bằng PlatformIO. Nếu bạn gặp bất kỳ khó khăn nào trong khi làm theo các bước, vui lòng viết thư cho diễn đàn của chúng tôi hoặc bình luận bên dưới.