新建日志   展示   相册  日志列表
 

ARDUINO开发入门:基于PlatformIO平台使用 FastLED 控制 WS2812 LED


​ PlatformIO是一个用于物联网开发的开源生态系统。它提供跨平台的开发环境和统一的调试器,还支持远程单元测试和固件更新...

PlatformIO的用处是什么

​ 简单来说,就是不管你用什么型号的芯片,都可以直接在platformio这个平台上直接编码烧录。对于有些芯片,官方的编码软件可能是你没有接触过的,这时你就需要熟悉新得软件,而platformio集成了大多数芯片的SDK,使得在这一个平台上就可以解决绝大部分的问题。

如何安装PlatformIO

  1. 在线安装(安装的成功率低)

    首先你得有个VScode,然后在扩展这里搜索点击安装就可以了

    image-20211214154744756

  2. 官方包安装(程序复杂,成功率高)

​ 安装PlatformIO时,大部分可能卡在Core部分无法安装,所以直接去官方下载Core并安装,首先给出官方文档

  1. 安装python

    ​ 官方文档中,安装PlatformIO是基于python来实现的,为了省去python配置环境路径的步骤,选择Microsoft Store 中下载python 3.7,高版本可能出现问题

​ 安装完python后,先win+R 打开CMD ,输入python,这时如果弹出了Python的版本信息,则 为安装成功

  1. 安装virtualenv

    输入pip install virtualenv 安装python的虚拟环境管理包 virtualenv

  2. 创建虚拟环境

    创建格式为:virtualenv 虚拟环境名

    如:virtualenv andy

    由于Platformio默认安装在C:\Users\Username中,所以要在Username下创建一个名为.platformio 的文件夹( 这里的USername表示登入的windows的用户的文件名)

​ 然后win + R 打开cmd ,输入指令

call C:\
cd C:\Users\Username\.platformio
virtualenv andy
 
  1. 安装虚拟环境必备组件
call C:\
cd C:\Users\Username\.platformio
andy\Scripts\activate
pip install git
pip install  platformio
 
  1. 正式安装Platformio
 这时就可以回到VScode,在拓展中选择旧版本安装,选择的python路径就是虚拟环境内的python路径,等待上半小时,差不多就安装完了(可能还要失败个几次)
 
 

VSCode 下 PlatformIO 的安装教程

本文提供了VSCode的安装步骤,建议选择SystemInstaller版本,并指导如何设置PlatformIOIDE使用已有的Python环境。此外,详细说明了PlatformIO插件的安装方法,包括如何处理下载慢的问题以及手动添加数据包的步骤。对于首次使用PlatformIO的开发者,文中还介绍了新建项目以下载特定板子数据包的流程。

也可通过 我的博客 访问

1. 安装VSCode软件

前往VSCode官网 ,建议下载 System Installer 版本的安装包,该版本安装在非用户目录,例如C盘根目录。如果下载速度太慢可查看 国内下载vscode速度慢问题解决 文章解决。

1

下载完毕后进行安装,安装时建议按如下进行勾选。

安装完毕后打开软件,安装中文插件。

2. 设置PlatformIO IDE使用非内置Python

此步骤可跳过,直接跳转到 3. 安装PlatformIO插件 。
PlatformIO依靠Python运行,默认情况下会重新下载一个Python,如果电脑上已经安装过Python且不想再安装一次的,可进行如下步骤,否则直接前往 3. 安装PlatformIO插件 。

按下图打开设置的 JSON 文件。


在这里插入图片描述
打开配置文件后,输入如下两条配置信息,设置PlatformIO IDE使用非内置Python,其中 customPATH 为电脑已装的Python路径,需按照实际情况填写。

    "platformio-ide.useBuiltinPython": false,
    "platformio-ide.customPATH": "C:\\Users\\yourname\\AppData\\Local\\Programs\\Python\\Python310\\Scripts",
json
Untitled

3. 安装PlatformIO插件

在VSCode中根据下图步骤安装PlatformIO IDE插件。

在这里插入图片描述

插件安装完毕后,VSCode右下角会出现PlatformIO的下载进程,等待其下载完毕后即可。由于PlatformIO的服务器在国外,下载速度特别慢,如一直无法下载成功,可前往 4. 手动添加PlatformIO数据包 。

下载完毕后,PlatformIO只下载了公共的数据包,没有下载特定板子的数据包,因此如需使用他人的工程,需依照该工程所用芯片新建一个工程,在第一次新建工程时,PlatformIO会下载好该工程所需的文件。

假设需运行的工程所使用的芯片为ESP32-C3,使用的框架为arduino,那么在第一次运行该工程前需先按照如下步骤新建一次工程,只有第一次需要,后续就可以直接运行了。

点击VSCode左下角的桌面图标。
在这里插入图片描述

点击 New Project 。

设置工程信息。
在这里插入图片描述

点击 Finish 后,需要较长的一段时间,此阶段PlatformIO会下载该工程所需的文件,新建完成后,即可关闭此工程(直接关闭VSCode软件)。接着打开我们所需运行的工程即可(在工程路径下,鼠标右键后,选择通过 Code 打开)。

左下角的图标含义如图。

在这里插入图片描述

4. 手动添加PlatformIO数据包

如在进行 3. 安装PlatformIO插件 时已正常下载完成,则无需进行此步骤。
如无法正常下载,则可进行此步骤。

PlatformIO相关的文件均在路径 C:\Users\yourname\.platformio 下,其中 yourname 为电脑用户名称,因此将下载好的文件复制到此处即可。

在这里插入图片描述

下面提供我的PlatformIO数据包,包含ESP32和ESP8266的arduino框架。

在这里插入图片描述
在这里插入图片描述

 
 

PlatformIO平台下Arduino的开发过程-基于Visual Studio Code平台

本文详细介绍了Arduino开源硬件和软件平台,以及如何使用PlatformIO在Visual Studio Code中搭建Arduino开发环境。涵盖了Arduino的历史、特点,PlatformIO的安装,库的导入,以及编写和上传代码的全过程。

 

一.平台背景与关联

如果你是初学者建议阅读这一章节,搞清楚平台的结构对于开发而言有事半功倍的效果

(1)什么是Arduino?

Arduino是一家制作开源硬件软件的公司,同时兼有项目和用户社区,该公司负责设计和制造单板微控制器微控制器包,用于构建数字设备和交互式对象,以便在物理和数字世界中感知和控制对象。该项目的产品是按照GNU宽通用公共许可证(LGPL)或GNU通用公共许可证(GPL)[1]许可的开源硬件和软件分发的,Arduino允许任何人制造Arduino板和软件分发。 Arduino板可以以预装的形式商业销售,也可以作为DIY包购买。

Arduino电路板设计使用各种微处理器和控制器。这些电路板配有一组数字和模拟I/O引脚,可以连接各种扩展板或面包板(屏蔽板)和其他电路。这些电路板具有串行通信接口,包括某些型号上的通用串行总线(USB),也用于从个人计算机加载程序。微控制器通常使用C/C++编程语言。除了使用传统的编译工具链之外,Arduino项目还提供了一个基于Processing语言项目的集成开发环境

Arduino项目始于2003年,作为意大利伊夫雷亚地区伊夫雷亚交互设计研究所的学生项目,目的是为新手和专业人员提供一种低成本且简单的方法,以创建使用传感器与环境相互作用的设备执行器。适用于初学者爱好者的此类设备的常见示例包括简单机器人恒温器运动检测器

Arduino这个名字来自意大利伊夫雷亚的一家酒吧,该项目的一些创始人过去常常会去这家酒吧。 酒吧以伊夫雷亚的Arduin命名,他是伊夫雷亚边疆伯爵,也是1002年至1014年期间的意大利国王[2]

它使用 Atmel AVR 单片机,采用开放源代码的软硬件平台,构建于开放源代码 simple I/O 接口板,并具有使用类似 Java,C 语言的 Processing/Wiring 开发环境。

【https://zh.wikipedia.org/wiki/Arduino

(2)什么是PlatformIO和Visual Studio Code

PlatformIO可以简单的理解为是Visual Studio Code(简称VS)的集成开发平台之一,属于VS的分支之一;它是一个GitHub上的开源项目,作者把这个平台称作An open source ecosystem for IoT development(物联网开发的开源生态系统),事实上它的开发语言不仅仅有Arduino,根据现在的版本来看至少支持5种编译语言;而VS属于由微软开发的免费、开源的代码编辑器,下面文章会详细介绍。

GitHub地址:https://github.com/platformio

Vs下载地址:https://visualstudio.microsoft.com/zh-hans/free-developer-offers/

二、开始搭建我们的开发环境

首先安装下载VS,安装过程比较简单,双击安装包选择路径或默认下一步即可。

打开我们的平台

选择“拓展”

在搜索框内搜索“PlatformIO”,点击第一个“安装”

接下来开始创建项目

选择左下角“HOME”的logo,进入ide的主界面。

选择“new project”来创建我们的项目

项目名称:不支持中文,仅仅支持(a-z,0-9,-,_)

板子型号:选择对应开发板型号,有近700种选择

 框架(Framework):选择对应开发语言,这里支持5种,我们选择Arduino框架。

 

 

完成创建后点击“Finish”,稍等片刻,即可成功创建项目。

项目创建完成后,将自动创建项目文件。

 

项目主要文件结构

(1)展开项目文件后发现有一个命名为“src”的文件夹,里面的“main”文件就是我们

编写的主函数部分。

(2)展开项目文件后,图示第四行为“libdeps”文件用于存放libraries,也就是我们常常使用的库(库的安装使用过程将在下面介绍)

(3)最后一个文件名为“platformio.ini”,该文件有点类似Android的权限文件,一般我们开发需要在其添加烧录模式(stlink,jlink,Serial.....),并且我们在使用其他库函数之前需要在此文件夹中添加声明。

开发流程(添加开发板,导入库,编写ini文件,编译运行)

(1)添加开发板

首先如果是串口设备添加后将会显示CMOS端口,选择右下角“HOME”图表,进入主界面,选择“device”

如果电脑USB抠已经接入了串口设备,在电脑“设备管理器”和该页面显示。

如何是使用虚拟串口(jlink,stlink)这里不显示设备,如何判断虚拟串口设备有无接入:

在接入虚拟串口设别后,打开我们电脑的“设备管理器”,在“通用串行总线控制器”下查看。

 

串口模式下

 

虚拟串口模式下(jlink)

虚拟串口设备(stlink)

至此设备已完成接入

(2)导入库

同理,我们进入“HOME”主界面,选择“libraries”,在索引栏添加你想要添加的库名称

这里以“LiquidCrystal”为例子。

找到我们所习惯编写的库,点击标题

进入库后,安装库分为全局安装和单项目添加,个人推荐单项目添加,减少出错几率。

接下来我们要为项目导入库,选择install旁边的三点,选择“install to”

选择我们的项目名称,拉到底部点击install。

当我们看到提示信息“success”,至此,项目导入库成功。

我们发现我们的项目路径上已经添加了该库

 

(3) 编写ini文件

     首先打开ini文件

首先我们添加我们串口,在后面添加一句

upload_protocol = jlink
cpp

如果是其他模式请参考官方文档

接下来我们声明库

在后面添加

  1. lib_deps =
  2. # Using a library name
  3. LiquidCrystal
cpp

注意第二第三行强制缩进2个空格,不缩进将会报错,第三行填写库名。

至此,完成了ini文件的配置

接下来切换到main函数添加头文件并编写代码

  1. #include <Arduino.h>
    #include <LiquidCrystal.h>
     
    #define pin 13
    #define pin2 2
    LiquidCrystal lcd(8,9,4,5,6,7);
    volatile float frequency;
     
    int sensorValue = 0;
    int j=0;
    int o=0;
    int a2d_data=0;
    void function();
    void setup() {
    lcd.begin(16, 2);
     
    pinMode(13,INPUT);
    pinMode(2,INPUT);
    Serial.begin(9600);
    attachInterrupt(0,function,RISING);
    }
     
     
     
    void function()
    {
    j=j+1;
     
    }
     
    void view()
    {
    lcd.setCursor(4,0);
    lcd.print("monitor");
     
    lcd.setCursor(0,1);
    lcd.print("number = ");
    lcd.print(a2d_data);
     
    lcd.setCursor(11,1);
    lcd.print("n=");
    lcd.print(j);
    }
    void logg()
    {
    if(digitalRead(pin2)==0)
    {
    j=j+1;
    return;
    }
    }
    void beginning()
    {
     
    digitalRead(pin);
    delay(100);
    digitalRead(pin2);
    delay(100);
     
    a2d_data=digitalRead(pin);
    o=digitalRead(pin);
     
    }
     
     
    void loop() {
    beginning();
    delay(10);
    logg();
    delay(10);
    view();
    }

     

cpp

讲讲Arduino ide和PlatformIO 的一点区别

Arduino ide写基本函数delay(),digitalWrite()等时,不需要添加#include<Arduino.h>但在该平台必须添加才能调用

还有就是arduino main内部写函数,不需要前置声明(指函数写在调用之后),但是PlatformIO严格按照C的语法,这种情况需要添加前置声明。

接下来就可以对代码进行编译上传了

 

编译成功

上传成功

附加:

若要了解更多此平台库函数的用法,可以在此网站得到例程和补充说明

https://platformio.org/lib/search?query=keyword%253A%2522analog%2522

 

最后,感谢各位阅读到最后,希望能对你们有所帮助!

 

 
 

 


ESP32 开发入门(二):基于PlatformIO平台使用 FastLED 控制 WS2812 LED

本教程将带你从零开始使用 VSCode 和 PlatformIO IDE 开发 ESP32项目。主要通过配置ESP32-S3芯片的项目,实现使用 FastLED 库控制 WS2812 LED 灯在不同颜色之间的闪烁,带你入门ESP32从项目新建->项目配置->项目烧录的整个过程。

一、准备工作

1. 安装必要软件

环境搭建可参考ESP32开发入门:基于VSCode+PlatformIO环境搭建指南

2. 硬件准备

  • ESP32-S3 开发板

  • WS2812 LED 灯条或单个 LED

  • 连接线若干

二、项目创建

  1. 打开 VSCode

  2. 点击左侧 PlatformIO 图标(类似小蚂蚁的标志)

  3. 在 PlatformIO 主页点击 "New Project"

  4. 填写项目信息:

    • Name: 项目名称

    • Board: 需要根据自己开发板选择对应的板卡(很重要)

    • Framework: 选择 "Arduino"

    • 可自定义新建项目路径

  5. 点击 "Finish" 创建项目。入下图所示

    项目新建完成后,对应的主函数和配置文件如下图所示

三、编写代码

  1. 打开 src/main.cpp 文件

  2. 删除原有内容,替换为以下代码:

  1. #include <Arduino.h>
    // #define FASTLED_RMT_MAX_CHANNELS 4 // 如需多通道可调整RMT数量
    #include <FastLED.h>#define DATA_PIN 48    // ESP32-S3的GPIO48
    #define NUM_LEDS 1     // 控制LED的数量(根据实际灯带长度修改)
    #define LED_TYPE WS2812B  // 选择LED类型(根据实际灯带类型修改)
    #define COLOR_ORDER GRB  // 选择颜色顺序(根据实际灯带颜色顺序修改)
    ​
    CRGB leds[NUM_LEDS];   // 创建LED数组
    void setup() {
     FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS);
     FastLED.setBrightness(128);  // 初始亮度(0-255)
     FastLED.clear();
     FastLED.show();
    }
    ​
    void loop() {
     // 显示红色(R, G, B)
     leds[0] = CRGB(255, 0, 0);
     FastLED.show();
     delay(1000);
     
     // 显示绿色(注意某些灯珠需要GRB顺序)
     leds[0] = CRGB(0, 255, 0);
     FastLED.show();
     delay(1000);
     
     // 显示自定义颜色(紫色)
     leds[0] = CRGB(148, 0, 211);
     FastLED.show();
     delay(1000);
    }

     

cpp

四、项目配置

  1. 由于使用了FastLED这个库,所以需要将此库添加进项目;添加步骤见下图

2.双击FsatLED,选择把此库添加进对应的项目;步骤见下图

3.导入完成后会自动往配置文件PlatformIO.ini中添加lib_deps = fastled/FastLED@^3.9.15。入下图所示

五、编译项目

  1. 点击 VSCode 底部状态栏的 "√" 图标(或按快捷键 Ctrl+Alt+B)

  2. 等待编译完成,检查输出窗口是否有错误

    项目编译成功入下图所示

六、下载程序到开发板

  1. 使用 USB 线连接 ESP32-S3 开发板到电脑,选择对应的COM口,如下图所示;不知道COM口的可以在电脑的设备管理器中查看。

  2. 点击 VSCode 底部状态栏的 "→" 图标(或按快捷键 Ctrl+Alt+U),等待上传完成即实现了程序烧录进对应的开发板中了,如下图所示。

七、验证结果

  1. 程序上传成功后,WS2812 LED 应该开始循环显示红、绿、蓝三种颜色,每种颜色持续1秒

  2. 可以打开串口监视器(点击底部插头图标)查看调试信息

八、扩展学习

  1. 尝试控制多个LED(把对应的控制数组长度添加为你想要控制的LED灯的数量即可)

  2. 实现彩虹渐变效果

  3. 添加外部控制(如按钮或传感器)

  4. 关于串联WS2812 LED灯的控制原理,推荐WS2812炫彩灯控魔术师,我愿称之为最好的视频教程。

希望这个教程对你有所帮助!如果有任何问题,可以参考PlatformIO官方文档或FastLED库的文档获取更多信息。

如果你对物联网、智能家居、无线传感器感兴趣,欢迎点赞收藏,此后会持续更新相关内容。

 
 
posted @ 2025-12-10 10:06  前沿风暴  阅读(80)  评论(0)    收藏  举报

校内网 © 2004-2025

京公网安备 33010602011771号 浙ICP备2021040463号-3