使用Visual Studio Code作为Arduino IDE

在快速启动和配置项目方面,Arduino IDE做得非常出色。但其内置的代码编辑器在功能上却存在不少缺失,即使可以使用外部编辑器,体验仍有提升空间。随着跨平台的Visual Studio Code发布,我们有机会让为Arduino编写代码变得更愉快,同时还能保留直接从编辑器编译和上传草图的能力。请注意,至少需要一次使用Arduino环境来管理项目导入的库、目标板设置、串口设置等。
本项目文档将指导您通过三个简单步骤实现这一目标。
1. 让'arduino'可执行文件变得可见
默认情况下,Linux上的Arduino环境在其安装目录外是不可见的,需要将其暴露为命令,以便Visual Studio Code在编译和上传Arduino草图时可以调用它。
如果Arduino环境已经可以从任何地方访问,则跳过此步。
以下步骤创建一个符号链接,使Arduino环境可以在任何位置访问。假设Arduino环境已安装在用户的/home目录中,如:
~/arduino-1.6.4
切换到*/usr/local/bin*目录,创建一个名为arduino的指向Arduino安装目录的符号链接。
cd /usr/local/bin
sudo ln -s ~/arduino-1.6.4/arduino arduino
通过命令行启动Arduino IDE以检查符号链接是否正确。只需在完成后关闭IDE即可。
cd /
arduino
对于Windows用户,请确保Arduino环境已在PATH中。
2. 将'ino'文件夹复制到本地Visual Studio Code扩展文件夹
仓库中的ino文件夹为Visual Studio Code提供了Arduino关键字定义,用于语法高亮。此外,它还指定.ino文件应被视为C/C++文件。
仓库包括以下文件和目录:
drwxr-xr-x 3 fabien fabien 4096 Oct 13 09:43 ino
-rw-rw-r-- 1 fabien fabien 7652 Oct 1 18:05 LICENSE
drwxrwxr-x 2 fabien fabien 4096 Oct 2 18:45 pics
-rw-rw-r-- 1 fabien fabien 4605 Oct 13 09:43 README.md
-rw-rw-r-- 1 fabien fabien 1997 Oct 13 08:43 tasks.json
将ino文件夹复制到由首次运行Visual Studio Code时在主目录下创建的隐藏.vscode/extensions文件夹。
cp -r ~/VisualStudioCodeArduino/ino ~/.vscode/extensions
3. 添加支持Arduino的Visual Studio Code任务运行器
在Visual Studio Code中进行以下操作:
- 打开“文件”菜单并选择“打开文件夹...”。
- 导航到存储Arduino项目文件的文件夹。
- 使用快捷键
Ctrl+Shift+P调出命令面板。 - 在命令窗口中输入"task"。
- 选择“配置任务运行器”。这将在第2步中选定的Arduino项目文件夹根目录中创建一个隐藏的
.vscode文件夹。 ![/pics/ConfigureTaskRunner.png] - 替换
.vscode/tasks.json为~/VisualStudioCodeArduino/tasks.json。 - 重启Visual Studio Code。
现在,Visual Studio Code的配置已完成,准备用于处理Arduino .ino项目文件。
4. 使用方法
- 打开一个*.ino*项目文件。
- 调出命令面板,按
Ctrl+Shift+P。 - 在命令窗口中输入"task"。
- 选择“运行任务”。
![/pics/ArduinoTasksSelection.png]
选择--verify以验证/编译Arduino项目。或使用快捷键Ctrl+Shift+B。
如果编译项目时出现问题,它们会显示在编辑器左下角。
![/pics/ProblemIndicators.png]
点击错误或警告图标将显示问题列表。
![/pics/problems.png]
单击一个问题会在*.ino*文件中突出显示它。
或者,通过Ctrl+Shift+P + view: show ouput显示输出,会展示详细的编译结果。
![/pics/compilex600.png]
选择--upload或按Shift+Ctrl+T以验证/编译并上传Arduino草图到目标板。这总是会显示输出。
![/pics/uploadx600.png]
最后,目前没有好的方法通过外部方式调用Arduino原生串行监视器。相反,可以通过按Ctrl+Shift+C打开终端窗口,并使用不同的终端模拟器,如minicom。
![/pics/terminalx600.png]
注意
已验证以下配置可正常工作:
- Ubuntu Linux 14.04 LTS
- arduino 1.6.4
- Visual Studio Code 0.9.x
通过这个项目,您可以享受到更强大、更高效的开发体验,利用Visual Studio Code的强大功能管理您的Arduino项目。快来试试看,让您的编程旅程更加精彩!
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00- DDeepSeek-OCR暂无简介Python00
openPangu-Ultra-MoE-718B-V1.1昇腾原生的开源盘古 Ultra-MoE-718B-V1.1 语言模型Python00
HunyuanWorld-Mirror混元3D世界重建模型,支持多模态先验注入和多任务统一输出Python00
AI内容魔方AI内容专区,汇集全球AI开源项目,集结模块、可组合的内容,致力于分享、交流。03
Spark-Scilit-X1-13BFLYTEK Spark Scilit-X1-13B is based on the latest generation of iFLYTEK Foundation Model, and has been trained on multiple core tasks derived from scientific literature. As a large language model tailored for academic research scenarios, it has shown excellent performance in Paper Assisted Reading, Academic Translation, English Polishing, and Review Generation, aiming to provide efficient and accurate intelligent assistance for researchers, faculty members, and students.Python00
GOT-OCR-2.0-hf阶跃星辰StepFun推出的GOT-OCR-2.0-hf是一款强大的多语言OCR开源模型,支持从普通文档到复杂场景的文字识别。它能精准处理表格、图表、数学公式、几何图形甚至乐谱等特殊内容,输出结果可通过第三方工具渲染成多种格式。模型支持1024×1024高分辨率输入,具备多页批量处理、动态分块识别和交互式区域选择等创新功能,用户可通过坐标或颜色指定识别区域。基于Apache 2.0协议开源,提供Hugging Face演示和完整代码,适用于学术研究到工业应用的广泛场景,为OCR领域带来突破性解决方案。00- HHowToCook程序员在家做饭方法指南。Programmer's guide about how to cook at home (Chinese only).Dockerfile013
Spark-Chemistry-X1-13B科大讯飞星火化学-X1-13B (iFLYTEK Spark Chemistry-X1-13B) 是一款专为化学领域优化的大语言模型。它由星火-X1 (Spark-X1) 基础模型微调而来,在化学知识问答、分子性质预测、化学名称转换和科学推理方面展现出强大的能力,同时保持了强大的通用语言理解与生成能力。Python00- PpathwayPathway is an open framework for high-throughput and low-latency real-time data processing.Python00