更好的arduino編碼與vs編碼和平臺

想要一個簡單的方法開始編寫Arduino?使用PlatformIO和VS程式碼,您可以簡化Arduino專案並更快地學習。...

ArduinoIDE是許多人的第一次編碼體驗。雖然它完成了任務,但它缺少了大多數現代代碼編輯器所具有的關鍵特性。

better-arduino-coding

visualstudio代碼(VS-Code)很快成為最流行的代碼編輯器之一,但不支持標準的Arduino開發。

進入PlatformIO,一個用於編程Arduino板(以及更多)的開源工具!學習如何獲得PlatformIO並使用它在VS代碼中創建一個簡單的Arduino草圖。

項目要求

您需要:

  • Arduino兼容板。本教程使用納米克隆。
  • Arduino IDE可從Arduino網站獲得(免費)。
  • Visual Studio代碼,可從Microsoft獲得(免費)。

今天的指南是針對windows10的,但這應該也適用於Linux和Mac。

注意:Windows 10應用程序版本的Arduino IDE不適用於本教程。

如何安裝platformio

VS代碼有許多擴展來幫助程序員,PlatformIO也不例外。從左面板打開VS代碼擴展市場,搜索PlatformIO IDE。單擊“安裝”,準備等待一段時間。

注意:在此過程中不要關閉VS代碼,因為這可能會導致安裝錯誤。

PlatformIO Extension in VS Code

安裝完成後,右下角將出現一個提示,提示重新加載VS代碼。單擊它,程序將重新啟動,顯示PlatformIO擴展主頁。

設置項目

PlatformIO主頁提供了幾個選項,包括打開現有的Arduino項目和指向項目想法的鏈接。今天您將重新開始,所以請單擊新建項目。

PlatformIO home page

系統將提示您輸入項目名稱和要使用的板。本教程使用Arduino Nano;PlatformIO支持超過650個板,因此您可能會在列表中找到您的板。

如果您使用的是Arduino兼容板,框架選項卡應自動填充為Arduino。保留“位置”複選框以使用默認安裝位置。如果您使用的是以前**的Arduino項目,則只需取消選中此選項。

PlatformIO new project window

單擊Finish,準備等待一小段時間。PlatformIO將下載並安裝項目所需的任何依賴項,並在完成後重新啟動IDE。

PlatformIO Initialization

平臺工作流

VS代碼重新啟動後,您將注意到在資源管理器面板中打開了一個新的項目文件夾。在這個階段,您不必知道這個目錄中的每個文件都做了什麼,您將只在Arduino草圖中使用SRC目錄。

PlatformIO project structure

您還會注意到VS代碼的底部欄上有幾個新圖標。這些按鈕相當於ArduinoIDE中的按鈕—編譯的記號、上傳的箭頭和串行監視器的插頭。

New Ic*** in the VS Code bottom toolbar

現在一切都準備好了,讓我們開始編碼吧!

空白程序

PlatformIO為每個新項目創建一個空白草圖。

通過導航到SRC在Explorer選項卡中打開它/主.cpp打開草圖。您會注意到,該文件與普通的Arduino草圖具有不同的擴展名。CPP代表C + PLUS(C++),是ARDUINO語言和IDE的編程語言。

注意:本教程使用工作草圖,因為它是那些具有ArduinoIDE背景的人所熟悉的。然而,C++草圖通常被稱為程序。

你會在這裡看到一些熟悉的東西---這個草圖有設置和循環功能,就像一個普通的Arduino草圖。主要的區別在程序的頂部。每個PlatformIO項目中都必須有include<Arduino.h>頭文件才能正常工作。

the main.cpp file for Arduino Sketches in PlatformIO

現在,讓我們來建立硬件的Hello世界——一個閃爍的LED草圖。

閃爍的LED

你將創建這個閃爍的草圖,我們將遍歷下面的每一行。

Simple Blink Sketch for Arduino

從定義板載LED引腳開始。如果您使用的板不使用插腳13作為板載LED,請相應地進行更改:

#define onboard 13

使用設置功能設置pin模式。

pinMode(onboard,OUTPUT);

注意VS代碼將如何向您建議代碼,並在按Enter鍵時完成它!

VS Code suggests and completes code

最後,通過延遲設置引腳的高電平和低電平,創建環路中閃爍LED邏輯功能。

digitalWrite(onboard, LOW); delay(1000); digitalWrite(onboard, HIGH); delay(1000);

如果您有任何錯誤,VS代碼會在編碼時告訴您,而不是等到編譯或上載代碼時才告訴您。實時錯誤檢查和完成使編碼更少令人沮喪,更快!

下一步,你將學習如何上傳你的草圖到你的董事會。

上傳到董事會

如果還沒有,請將電路板**USB端口。保存草圖,然後單擊底部欄上的勾號圖標進行編譯,或者單擊箭頭按鈕一次性編譯並上載草圖。經過短暫的等待後,您的LED應該會閃爍!

Arduino Nano clone with blinking LED

您可能已經注意到通常的Arduino工作流缺少一個步驟。通常,您需要指定Arduino連接到哪個COM端口。如果在將草圖上傳到電路板時滾動輸出,您會注意到PlatformIO會自動為您檢測電路板。

Platform IO upload output

串行監視器

最後,為每個函數添加一行代碼以測試串行監視器。在安裝程序中添加:

Serial.begin(9600);

並在循環函數中添加一條消息,以便在循環完成時打印到串行監視器:

Serial.println("loop completed");

上傳草圖,點擊底部欄上的插頭圖標打開串行監視器並查看您的消息。

Arduino Serial Monitor in VS Code

arduino編碼的新世界

使用VS編碼和PlatformIO為Arduino編碼帶來一股新鮮空氣。由於visualstudio的liveshare特性,遠程協作也變得更加容易。

本教程只介紹了基礎知識,但是在ArduinoIDE中可以通過PlatformIO做的所有事情都是可能的,所以選擇一個很棒的項目並進行編碼吧!

  • 發表於 2021-03-20 05:18
  • 閱讀 ( 60 )
  • 分類:程式設計

你可能感興趣的文章

編碼(coding)和非編碼dna(noncoding dna)的區別

關鍵區別——編碼與非編碼dna 一個有機體的基因組被定義為包括其所有基因的完整的DNA集合。基因組由存在於細胞核中的整套染色體組成。DNA由具有不同結構和功能特性的特定核苷酸序列組成。一些DNA序列包含合成蛋白質的...

  • 發佈於 2020-10-17 10:38
  • 閲讀 ( 44 )

遺傳密碼(genetic code)和密碼子(codon)的區別

...有生物的遺傳物質,以基因的形式攜帶遺傳資訊。它們被編碼成**蛋白質所必需的所有指令。這些基因被轉錄成mRNA序列,然後被翻譯成氨基酸序列,形成蛋白質。基因中有一個精確的核苷酸序列。它負責蛋白質氨基酸合成的正確...

  • 發佈於 2020-10-20 08:07
  • 閲讀 ( 41 )

郵政編碼(zip code)和郵政編碼(postal code)的區別

郵政編碼和郵政編碼的主要區別在於,郵政編碼是一種為地理位置分配不同程式碼的系統,以便於郵件的分類,而郵政編碼在美國和菲律賓是一種郵政編碼系統。 雖然簡訊和電子郵件的出現對實體郵件的業務產生了不利影響...

  • 發佈於 2020-10-25 07:19
  • 閲讀 ( 42 )

如何使用adobe media encoder將影片上傳到社交媒體

...頂級平臺,但Vimeo確實為影片**者提供了一些優勢,包括更好的編碼和影片質量。要將專案直接上載到Vimeo,請執行以下簡單步驟: ...

  • 發佈於 2021-03-11 02:21
  • 閲讀 ( 40 )

如何用python程式設計和控制arduino

...。隨著這門新語言的興起,DIY電子領域也蓬勃發展。來自Arduino和Raspberry Pi等公司的開發板和單板計算機改變了人們生產家用電子產品的方式。如果你能用Python程式設計一個Arduino,那不是很棒嗎? ...

  • 發佈於 2021-03-11 16:20
  • 閲讀 ( 72 )

6種將arduino連線到android的簡單方法

Arduino板和類似的微控制器使創造力比以往任何時候都更容易獲得。無論你是控制LED燈帶,自動化你的家,甚至保護你的財產,這些小奇蹟是大多數DIY電子產品的核心。 ...

  • 發佈於 2021-03-12 23:13
  • 閲讀 ( 59 )

關於arduino你一直想知道的10件事

Arduino是你能學到的最好的極客愛好之一,因為它涉及到一點點東西:電路、編碼、自己動手、解決問題、創造力等等。但即使你沒有任何這方面的經驗,你仍然應該學習Arduino——即使只是基礎知識。 ...

  • 發佈於 2021-03-13 02:49
  • 閲讀 ( 53 )

作為一個arduino初學者不要犯的10個錯誤

Arduino板,以及隨之而來的許多價格合理的微控制器,永遠改變了人們的電子愛好。曾經是超級極客的領域,擁有廣泛的電子和計算知識,現在所有人都可以使用。 ...

  • 發佈於 2021-03-13 03:20
  • 閲讀 ( 50 )

在下一個專案中不使用正版arduino的5個理由

Arduino這個名字已經成為DIY技術的代名詞。很多人都是從一個機器人開始他們的電子和機器人之旅的。在MakeUseOf,我們已經廣泛地介紹了它們的用法,從初學者指南到更復雜的專案,比如鐳射炮塔。 ...

  • 發佈於 2021-03-13 19:08
  • 閲讀 ( 44 )

10個涉及程式設計或指令碼的有益愛好

... Arduino是電子、程式設計和休閒的完美結合。它是一個開源的微控制器(即一個微型的單電路計算機),具有各種元件和可程式設計邏輯。把它想象成**使用的樂高,使用實...

  • 發佈於 2021-03-14 18:18
  • 閲讀 ( 66 )