Linux系统VScode配置platformio控制Arduino以及多个问题的解决方法

目录

前言

一、下载platformio插件

二、终端在虚拟环境中安装platformio

三、创建项目编写hello_world程序 

四、编译并烧录代码 

第一个报错

第二个报错

五、串口监视


前言

最近打算做一个ros小车,由于之前没怎么接触过电控方面的东西,所以打算用arduino来入门,查阅网上资料后说是vscode的PlatformIO插件非常方便,比arduino自带的IDE人性化,所以尝试配置了一下(踩了很多坑……)。

一、下载platformio插件

在VScode插件中搜索PlatformIO,找到插件并安装,因为比较热门,打几个字母就出来了:

安装完之后vscode左侧会出来一个 PlatformIO的图标:

点开这个图标,在里面找到pio homeopen并点开:

这一步我就卡住了,理论上来说会进入一个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上编程的办法。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值