Arduino官方的整合開發工具Arduino IDE簡單易用,但是功能有點陽春。例如,它的程式編輯器不支援語法提示(Code Hinting,或稱作自動完成Auto Complete,或者IntelliSense)功能。
下圖是在微軟Visual Studio Code程式編輯器(以下簡稱VS Code)編寫Arduino程式的樣子。在“Serial”之後輸入“.”,編輯器將提示可用的指令,我們可以按方向鍵、Tab和Enter等按鍵,從它提示的指令清單中挑選,所以指令不會拼錯,也能減少敲打程式碼的時間。
Arduino IDE實際上整合了不同的工具程式,包括程式編輯器、編譯器和上傳(燒錄)工具。VS Code只能取代Arduino IDE的程式編輯器,編譯和上傳程式還是得由Arduino IDE裡的工具程式處理。因此,使用VS Code編寫Arduino程式,電腦必須先安裝好Arduino IDE(註:至少安裝1.6.x版,1.8.7版有bug,請安裝1.8.8或更新版)。
在VS Code中安裝Arduino延伸模組
在VS Code的延伸模組窗格中搜尋關鍵字“Arduino”,即可找到微軟開發的擴充程式,請安裝它。安裝Arduino延伸模組時,它會一併安裝C/C++ for Visual Studio Code模組,因為Arduino語言本質上是C/C++,這個延伸模組讓VS Code具備C/C++語法提示、自動格式化、除錯、瀏覽…等功能。
安裝完畢後,需要告訴VS Code你的Arduino IDE的安裝路徑。從主功能表選擇「檔案→喜好設定→設定」命令,搜尋“arduino”關鍵字,找到Arduino設定選項裡的“Arduino:Path”,確認Arduino IDE的安裝路徑是正確的,否則請自行修改(註:筆者的Arduino IDE安裝在D磁碟的Program Files路徑)。
VS Code編輯器的Arduino相關命令
在VS Code中,按F1功能鍵,或者CTRL+SHIFT+P鍵,可開啟命令面板(Command Palette)。「命令面板」可讓我們執行VS Code的全部功能,例如,輸入“file:open”(各個命令名稱中間用冒號隔開),等同用滑鼠選擇「檔案→開啟檔案」命令,只是你的雙手不用離開鍵盤,所以可提高工作效率。
在「命令面板」輸入“arduino”,它將顯示Arduino相關命令,例如:“Arduino:Examples”命令,可開啟Arduino IDE預裝的範例檔案。
範例檔列表將開啟在另一個窗格:
VS Code的Arduino延伸模組,提供下列命令:
- Arduino: Board Manager:開啟「控制板管理員」
- Arduino: Change Baud Rate:修改序列埠的傳輸速率
- Arduino: Change Board Type:選擇控制板
- Arduino: Close Serial Monitor:關閉序列監控視窗
- Arduino: Examples:顯示Arduino範例程式列表
- Arduino: Initialize:初始化VS Code的Arduino程式開發環境
- Arduino: Library Manager:瀏覽與管理程式庫:開啟序列監控視窗
- Arduino: Select Serial Port:選擇序列埠
- Arduino: Send Text to Serial Port:透過序列埠傳遞一行文字
- Arduino: Upload:編譯並上傳程式到Arduino板
- Arduino: Upload Using Programmer:透過外接的燒錄器上傳程式檔
- Arduino: Verify:驗證與編譯程式
上面某些命令也可從VS Code編輯器視窗取用,例如,編輯器視窗右上角提供驗證和上傳程式鈕:
編輯器視窗底下則可選擇控制板類型和序列埠:
赵老师,您好!
我是您大陆的读者,在《使用微软Visual Studio Code编写Arduino程式(一)》的文章中,填写Arduino Path中需要填写的是arduino IDE文件夹的安装路径,赵老师该篇文章中提供的截图上的路径显示为“D:\Program Files\Arduino”,而实际路径应该为”D:/Program Files/Arduino”才可以(两个路径中的斜杠不一样),否则会出现路径错误的提示。
感谢告知!不过…我找不到路径出错的那一张截图…
thanks,
jeffrey
https://swf.com.tw/images/books/arduino/vs_code/vs_code_arduino_setting.png
图中的最后一行就是Arduino Path的路径,里面的斜框反了。
哦~那个斜杠是正确的,Windows的路径分隔线是”\”,macOS和Linux则是”/”。
thanks,
jeffrey
你好 , 我想要直接修改TCNT1暫存器的數值,用VS CODE Verify後會卻出現TCNT1未定義的訊息,請問該如何修改呢?
拍謝,麻煩請教Google大神。
thanks,
jeffrey
您好 我是剛使用Arduino與VS連線測試的人,發現Arduino回傳到VB所製作的顯示視窗的信息,是亂碼。
在Arduino定義為Char 在VS也定義 Char,請問如何處理?
應該是傳輸速率或格式(如:資料位元、停止位元…)等設置不同導致,我之前用JavaScript (Node.js)和Python連線並沒有亂碼。
thanks,
jeffrey