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