目录
前言
最近打算做一个ros小车,由于之前没怎么接触过电控方面的东西,所以打算用arduino来入门,查阅网上资料后说是vscode的PlatformIO插件非常方便,比arduino自带的IDE人性化,所以尝试配置了一下(踩了很多坑……)。
一、下载platformio插件
在VScode插件中搜索PlatformIO,找到插件并安装,因为比较热门,打几个字母就出来了:
安装完之后vscode左侧会出来一个 PlatformIO的图标:
点开这个图标,在里面找到pio home的open并点开:
这一步我就卡住了,理论上来说会进入一个GUI界面,但是我一直在loading……
二、终端在虚拟环境中安装platformio
试了很多办法最终也没有解决,所以尝试另一种办法,直接在终端安装。由于PlatformIO IDE主要用python编写,所以我使用了anaconda创建虚拟环境隔离版本,这里我创建一个叫做pio的虚拟环境,python版本为3.10, 并且启动这个虚拟环境:
~$ conda create -n pio python=3.10
~$ conda activate pio
然后在这个虚拟环境中用清华源安装platformio:
~$ pip install platformio -i https://pypi.tuna.tsinghua.edu.cn/simple
三、创建项目编写hello_world程序
安装完成后我们可以打开vscode终端,输入:pio --help 查看pio都有什么命令:
可以看到有一个pio home命令可以打开GUI,尝试一下果然在浏览器中打开了:
这时候就可以在这里创建新的项目
因为我的单片机是Arduino Uno R3,所以board选择Arduino Uno,点击finish很快就创建好了:
在vscode当中可以打开这个项目并在src下创建main.cpp文件编写如下代码:
#include <Arduino.h>
void setup(){
Serial.begin(115200);
}
void loop(){
Serial.println("Hello World arduino");
delay(1000);
}
四、编译并烧录代码
然后理论上就可以编译并上传到arduino里,如果vscode安装了platformio插件就会看到下面的编译:
点击编译后,编译成功:
但是点击上传却报错了:
第一个报错
说是/etc/udev/rules.d/99-platformio-udev.rules这个文件过期了,我顺着路径找了一下确实有这个文件 ,过期了就得重新下载,在platformio的官网中我找到一个解决办法:99-platformio-udev.rules — PlatformIO v6.1 documentation
根据这个办法输入第一行代码却告诉我访问被拒绝,我仔细看了一下这个代码写的什么:
curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/develop/platformio/assets/system/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
前半行代码是在raw.githubusercontent.com网站中找这个文件并下载,所以我就手动尝试了一下访问这个网站,结果也是一样,显示这个网站关闭了连接,然后我又找到一个大佬的解决方案:访问raw.githubusercontent.com失败问题处理-优快云博客 他是通过修改hosts文件处理的。
由于我是linux系统,修改hosts文件要root权限,所以我先运行这个代码:
sudo nano /etc/hosts
输入完密码就进入文件内,然后根据上面那个网址修改,就是在文件后面添加四行:
185.199.108.133 raw.githubusercontent.com
185.199.109.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
185.199.111.133 raw.githubusercontent.com
添加完再运行 官网给的命令就可以了:
curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/develop/platformio/assets/system/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
显示这一堆东西就是成功了:
别忘了更新完这个规则文件之后还要更新一下,还要把arduino板子拔掉重新插一下等等,按照官网说的解决办法操作。
第二个报错
说我这个连接arduino的端口太忙了,我检查了一下原来是我打开arduinoIDE忘了关,一直在占用端口。
这些问题都解决完就可以upload代码了,下面是成功的状态
有时候烧录不成功很有可能是接触的问题,如果不成功建议先拔掉再重新插一下单片机。
五、串口监视
现在程序已经正常烧录到单片机中但是我们不知道串口的运行状态,所以可以下载一下串口监视插件:
安装完之后在VScode的终端上面一行会出现串口监视:
设置好波特率和端口就可以点击开始监视看发送的数据了:
这样就大概熟悉了用VScode在arduino上编程的办法。