使用簡單的用戶界面,在 Arduino 和 Arduino IDE 中進(jìn)行開發(fā)總是簡單而有趣。Arduino IDE 是開源的,可免費(fèi)使用開發(fā)環(huán)境,具有編寫、編譯和上傳代碼到 Arduino Boards 等所有功能。它基于 Java,可在 Windows、OS X 和 Linux 等主要操作系統(tǒng)上運(yùn)行。但是,由于它的簡單性和龐大的社區(qū),它沒有一些經(jīng)驗(yàn)豐富的開發(fā)人員需要的快速開發(fā)功能,可以縮短開發(fā)周期。有許多可用于 Arduino 的開發(fā)環(huán)境,但都有一些優(yōu)點(diǎn)和缺點(diǎn)。今天,我們將從易于使用且與 Arduino 環(huán)境相比增加了功能的PlatformIO 開發(fā)環(huán)境開始。
什么是 PlatformIO?
PlatformIO 是一個基于 Python 的物聯(lián)網(wǎng)開發(fā)開源生態(tài)系統(tǒng),是一個在 Windows、Mac 和 Linux 上運(yùn)行的具有統(tǒng)一調(diào)試器的跨平臺 IDE。PlatformIO 帶有用于 Arduino 或 MBED 等平臺的庫管理器,以及單元測試和固件更新。PlatformIO 支持許多平臺、框架、板,如 Arduino、ESP32、ESP8266,并附帶許多示例和庫。它獨(dú)立于運(yùn)行它的平臺,只需要在計算機(jī)上安裝 Python。
PlatformIO的優(yōu)勢
PlatformIO 具有快速開發(fā)的特點(diǎn),它的 C/C++ 代碼完成和智能代碼檢查器等功能可用于快速專業(yè)開發(fā),而 Arduino IDE 中沒有這些功能。除此之外,PlatformIO 還提供深色和淺色主題支持,以便隨時進(jìn)行開發(fā)。它還帶有智能代碼導(dǎo)航和代碼格式化。核心功能包括多平臺構(gòu)建系統(tǒng)、庫管理器、串行端口監(jiān)視器等。
支持多種架構(gòu)和開發(fā)平臺的統(tǒng)一調(diào)試器允許使用零配置調(diào)試多個嵌入式板。PlatformIO 統(tǒng)一調(diào)試器具有條件斷點(diǎn)、表達(dá)式和觀察點(diǎn)、內(nèi)存查看器、活動調(diào)試會話的熱重啟等功能。PlatformIO Core 是用 Python 2.7 編寫的,適用于 Windows、macOS、Linux、FreeBSD 甚至基于 ARM 的信用卡大小的計算機(jī),如 Raspberry Pi、BeagleBone、CubieBoard、Samsung ARTIK 等。除此之外,PlatformIO 還具有文件資源管理器,這有助于當(dāng)項目發(fā)展到一定水平并且組織變得必要時組織文件。
為 Arduino Uno 設(shè)置 PlatformIO
使用 PlatformIO 非常簡單,只需幾個步驟即可開始。PlatformIO 需要在計算機(jī)上安裝 Python,因?yàn)槿缟纤?PlatformIO 核心是用 Python 2.7 編寫的。請注意,PlatformIO 不支持 Python 3,因此建議安裝 Python 2 版本,然后繼續(xù)設(shè)置 PlatformIO IDE。PlatformIO 是一個 IDE,它為最流行的 IDE 和文本編輯器提供官方包(插件、擴(kuò)展)。
今天我們將 PlatformIO 安裝到像 Atom 和 Visual Studio Code 這樣的文本編輯器中。在 Platform IDE 的官方文檔中,它指出 PlatformIO IDE for VS Code (Visual Studio Code) 提供了更好的系統(tǒng)性能,并且用戶發(fā)現(xiàn)它更容易上手。所以我們將在 Visual Studio Code 中設(shè)置 PlatformIO。VS Code 是一個著名的文本編輯器,具有許多擴(kuò)展,允許我們使用不同的編程語言進(jìn)行開發(fā)。
讓我們開始設(shè)置 PlatformIO 以開始在 Arduino UNO 中開發(fā)代碼。涉及的步驟如下所述:
首先從其官方網(wǎng)站安裝Visual Studio Code 。Visual Studio Code的安裝步驟在此不做說明,您可以在 VS Code 網(wǎng)站上找到。就像在 Windows 操作系統(tǒng)上安裝任何其他軟件一樣,涉及到一般步驟。
成功安裝后,Visual Studio 代碼將如下所示。
下一步包括使用 VS Code Extensions 安裝 PlatformIO。為此,您需要轉(zhuǎn)到 VS Code 左上角的擴(kuò)展圖標(biāo)。左上角的第 5個圖標(biāo)是方形框圖標(biāo)。只需點(diǎn)擊它,旁邊就會出現(xiàn)一個搜索框,您可以在其中找到許多針對不同編程語言的擴(kuò)展,例如 C/C++、C#、Python、PHP、Go、JavaScript、TypeScript 和 Node.js 等。
在擴(kuò)展搜索框中搜索“PlatformIO”,您將看到帶有名稱和描述的 PlatformIO 圖標(biāo)。只需單擊它并安裝它。安裝工具鏈和其他依賴項可能需要一些時間。依賴項包括 C/C++ 環(huán)境,因?yàn)?Arduino 開發(fā)主要在 C/C++ 上完成。
安裝完成后會看到如下界面。該界面包括所有必要的導(dǎo)航,例如創(chuàng)建新項目,導(dǎo)入Arduino項目,打開項目,項目示例等。建議在安裝完P(guān)latformIO后重新啟動VS Code Editor。
這樣就完成了 PlatformIO 的安裝步驟。現(xiàn)在 PlatformIO 已安裝并可以使用了。就像 Arduino IDE 一樣,我們將從 Blink Program 開始,并嘗試在 Arduino UNO 中上傳 Blink Program。
使用 PlatformIO IDE 對 Arduino UNO 進(jìn)行編程
PlatformIO 接口將在編程 Arduino UNO 的同時進(jìn)行講解。在這里,我們正在使用 PlatformIO 對 Arduino 進(jìn)行編程以使 LED 閃爍。使用 Arduino IDE也可以做到這一點(diǎn)。按照以下步驟創(chuàng)建一個用于閃爍 LED 的新項目。
從快速訪問菜單中選擇“新建項目”選項卡。
為項目命名(此處為“Blink”)。搜索并選擇 Arduino UNO 板。由于我們在 Arduino 框架中工作,所以選擇的框架將是 Arduino。填寫所有詳細(xì)信息后,只需單擊完成。
該項目將通過收集資源和其他依賴項開始創(chuàng)建。
成功創(chuàng)建項目后,您將收到“項目已成功初始化”的提示消息,并填寫所有詳細(xì)信息。
要打開創(chuàng)建的項目,只需向下滾動 PlatformIO 的主菜單,您將看到從頭開始創(chuàng)建的所有項目列表。在創(chuàng)建的項目的右上角單擊“打開”以打開項目并開始編輯。
打開項目時,最初它看起來像是隱藏的,但不用擔(dān)心,PlatformIO 具有文件瀏覽器功能,可以找到當(dāng)前項目的所有文件。只需轉(zhuǎn)到左上角并打開“無標(biāo)題(工作場所)”。單擊它時,所有文件將顯示為下拉菜單。要找到文本編輯器來編輯“代碼”,請選擇“src”并打開“main.cpp”。文本編輯器模式將出現(xiàn)在主屏幕上,并打開一個新選項卡。在這里您可以編寫 Current Ongoing Project 的所有代碼。
只需為 Arduino UNO 編寫閃爍代碼。請注意,PlatformIO 沒有默認(rèn)訪問 Arduino 庫,因此每次為 Arduino 編寫代碼時,始終在程序開頭包含 Arduino 庫,即“#include 《Arduino.h》” 。
下一步是編譯和上傳代碼。為此,讓我們看一下 PlatformIO 提供的功能。此外,PlatformIO 默認(rèn)選擇 COM 端口。但如果它不是所需的 COM 端口,您也可以更改端口。COM 端口的變化將在本教程后面解釋。PlatformIO 具有 Build、Upload、Upload to Remote Device、Clean、Test、Run Task、Serial Monitor、New Terminal等功能。所有功能都可以在編輯器的左下角找到。當(dāng)您將鼠標(biāo)懸停在圖標(biāo)上時,將顯示功能。
要構(gòu)建草圖,請單擊“構(gòu)建”并上傳草圖,請單擊“上傳”圖標(biāo)。上傳完成后,您將能夠看到上傳所需的時間以及所有其他詳細(xì)信息以及一條消息“成功”。代碼上傳成功,您將能夠看到 Arduino Board 中的 LED 閃爍。
要選擇或更改任何 COM 端口,只需轉(zhuǎn)到 PlatformIO 主屏幕,然后轉(zhuǎn)到設(shè)備,在這里您可以看到所有連接的可用設(shè)備。選擇適當(dāng)?shù)?COM 端口并按照相同的程序上傳草圖。
使用 PlatformIO IDE 對 STM32 板進(jìn)行編程
對 STM32 板進(jìn)行編程將具有與上述編程 Arduino UNO 完全相同的步驟。不同之處在于為 STM32 打開新項目時選擇 STM32 的板。PlatformIO的好處是,它不需要任何板子單獨(dú)下載任何外部包,它會自動下載所有包,方便我們選擇板子和進(jìn)入編輯器。我們將使用外部 JLink/ JTAG/ STLink/ 串行編程器將草圖上傳到 STM32。
只需命名項目(此處為“Blink STM32”)。然后選擇STM32的板子,即‘ BluePill F103C8(Generic) ’。然后選擇框架作為 Arduino。單擊完成并等待一段時間,因?yàn)樽畛跸螺d板 STM32 的包和依賴項需要一些時間。
一旦設(shè)置,下一個項目創(chuàng)建時間將比第一次少?,F(xiàn)在只需轉(zhuǎn)到左側(cè)文件資源管理器中的 Untitled(Workspace) -》 src -》 main.cpp。
現(xiàn)在接下來的步驟將很重要,因?yàn)樾枰獩Q定我們應(yīng)該使用哪個程序員來對 STM32 板進(jìn)行編程。有許多可用的編程器,例如 JTAG、STLink、JLink、Serial 等。所有這些都可以工作,但您需要配置“platformio.ini”配置頁面或文件。
在這個項目中,我們使用串行編程器 CP210x USB 到 UART 橋接器。
首先,使用以下引腳映射將串行編程器連接到 STM32 板,并將其連接到 PC。
現(xiàn)在轉(zhuǎn)到項目資源管理器并打開“platformio.ini”頁面并更改語句,如圖所示。upload_protocol將告訴程序員應(yīng)該使用哪個(STLink、JLink、Serial 等)。upload_port選擇 COM 端口。您可以通過轉(zhuǎn)到主頁中的“設(shè)備”來找到。根據(jù)您的 COM 端口更改 COM 端口。
轉(zhuǎn)到“main.cpp”并將程序更改為Blink程序。現(xiàn)在只需上傳程序,它將顯示成功消息和上傳時間?,F(xiàn)在 LED 將開始閃爍連接到 STM32 板的 PC13 引腳。
這完成了使用 PlatformIO對 Arduino UNO和 STM32 板進(jìn)行編程的完整教程。
#include
無效設(shè)置(){
// 將數(shù)字引腳 LED_BUILTIN 初始化為輸出。
pinMode(LED_BUILTIN,輸出);
}
// 循環(huán)函數(shù)永遠(yuǎn)一遍又一遍地運(yùn)行
無效循環(huán)(){
數(shù)字寫入(LED_BUILTIN,高);//打開LED(HIGH是電壓電平)
延遲(100);// 等待一秒鐘
數(shù)字寫入(LED_BUILTIN,低);//通過使電壓低來關(guān)閉LED
延遲(100);// 等待一秒鐘
}
評論
查看更多