Arduino开发Seeed Studio XIAO RP2040

news2024/11/25 21:52:32

前言

准备一些硬件设备

  • Seeed Studio XIAO RP2040 一块
  • 电脑——window 或 Mac 一台
  • Type-C数据线

某些USB线只支持充电,无传输数据功能。

连接电脑

  1. 按住boot按钮,然后将 Seeed Studio XIAO RP2040 连接到 PC。

Seeed Studio XIAO RP2040按键.png
2. 如果电脑文件管理器上显示了“RPI-RP2”磁盘,并且Seeed Studio XIAO RP2040上的电源指示灯亮起,则连接完成。

Arduino开发

下载Arduino

根据电脑的操作系统下载并安装最新版本的Arduino IDE。

下载地址:https://www.arduino.cc/en/software

添加开发板包

将 Seeed Studio Xiao RP2040 板卡包添加到Arduino IDE中,步骤如下:

导航到“文件>首选项”,然后使用以下 URL 填充“其他开发板管理器地址”:

https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

Seeed Studio Xiao RP2040开发包.png
导航到“工具->开发板->开发板管理器…”,在搜索框中输入“RP2040”。选择最新版本的“Raspberry Pi Pico/RP2040”并安装它。
Seeed Studio Xiao RP2040开发板管理器下载.png

注意:Seeed Xiao RP2040的开发板软件包已经停止运维,请不要下载使用!

选择开发板和端口

开发板选择:导航到“工具->开发板->Raspberry Pi Pico/RP2040->Seeed XIAO RP2040”,选择Seeed XIAO RP2040开发板。
Seeed XIAO RP2040选择开发板.png
端口选择:导航到“工具->端口”,选择你对应开发板的连接串口。

Seeed XIAO RP2040选择端口.png

运行示例代码

通过导航“文件 --> 示例—>01.基础知识 --> 闪烁”打开闪烁示例的源代码。

Seeed XIAO RP2040示例源代码.png

这里需要确认下选择开发板和端口是否正确,回顾开发板和端口选择配置

上传到开发板

单击上传按钮将闪烁示例代码上传到开发板。

上传到开发板.png

上传后,你应该能够看到板上的引脚 25 绿色 (USER) LED 每秒闪烁一次。

如果上传Arduino程序失败,请尝试按住“BOOT”按钮,然后单击“RUN”按钮。

此时,Seeed Studio XIAO RP2040将进入启动模式,这个时候可以再次烧录Arduino程序。

其他示例

输出Hello World

使用引脚 D6 作为 UART 的 TX 引脚,引脚 D7 作为 UART 的 RX 引脚发送“Hello World!

void setup() {
    Serial.begin(115200);
    while (!Serial);
}

void loop() {
    Serial.println("Hello,World");
    delay(1000);
}

代码解析

  1. void setup(): 这是一个特殊的函数,它在程序开始执行时运行一次,用于初始化设置。
    • Serial.begin(115200): 初始化串口通信,将串口的波特率设置为 115200 比特每秒。这意味着在串口上的数据传输速率为 115200 bps。
    • while (!Serial);: 这一行会等待串口准备就绪。在某些情况下,当程序开始时,串口可能需要一些时间来初始化,所以这一行确保在串口完全准备好之前不会继续执行后续的代码。
  2. void loop(): 这是另一个特殊的函数,它会不断循环执行,用于执行主要的操作。
    • Serial.println("Hello,World");: 在每次循环中,向串口发送一条包含 “Hello, World” 字符串的信息,然后换行。这会导致该信息被发送到连接到 Arduino 板上的串口(如 USB 串口),从而可以通过串口监视器查看。
    • delay(1000);: 在发送完信息后,程序会暂停执行 1000 毫秒(也就是 1 秒),然后再继续下一次循环。这样做是为了在每次发送信息后等待一段时间。

按键控制开关LED灯

将按钮连接到引脚 D0,将 LED 连接到引脚 25。然后上传以下代码以使用按钮控制 LED 的开/关。

请注意,Seeed Studio XIAO RP2040的工作电压为3.3V,如果将传感器错误地连接到5V,主板可能无法正常工作。

const int buttonPin = D0;     // 按钮引脚号
const int ledPin =  25;      // LED引脚号

int buttonState = 0;         // 变量,用于读取按钮状态

void setup() {
  // 初始化LED引脚为输出模式:
  pinMode(ledPin, OUTPUT);
  // 初始化按钮引脚为输入模式:
  pinMode(buttonPin, INPUT);
}

void loop() {
  // 读取按钮状态的值:
  buttonState = digitalRead(buttonPin);

  // 检查按钮是否被按下。如果按下,buttonState 为高电平(HIGH):
  if (buttonState == HIGH) {
    // 关闭LED灯:
    digitalWrite(ledPin, HIGH);
  } else {
    // 打开LED灯:
    digitalWrite(ledPin, LOW);
  }
}

指令控制开关LED灯

通过串口向单片机发送特定指令,如“o”指令,开发板的LED灯亮,输入特定指令,如“c”指令,开发板的LED灯灭

int LED_PIN = LED_BUILTIN; // 将LED的引脚定义为LED_BUILTIN
bool ledState = LOW; // 初始LED状态为关闭
void setup() {
	pinMode(LED_PIN, OUTPUT); // 初始化LED引脚为输出模式
	Serial.begin(9600); // 初始化串口通信,波特率设置为9600
}

void loop() {
	if (Serial.available() > 0) {
		String command = Serial.readStringUntil('\n'); // 读取串口输入直到换行符
		if (command == "o") {
			digitalWrite(LED_PIN, HIGH); // 打开LED灯
			ledState = HIGH;
		} else if (command == "c") {
			digitalWrite(LED_PIN, LOW); // 关闭LED灯
			ledState = LOW;
		}
	}
}

指令控制开关RGB LED灯

通过串口向单片机发送特定指令,如“o”指令,开发板的RGB LED灯亮,输入特定指令,如“c”指令,开发板的RGB LED灯灭。

引脚 11 是 RGB LED 的使能引脚。我没可以通过将引脚 11 设置为高点亮 RGB LED,并可以改变RGB LED颜色实现闪烁。

首先,我们需要添加一个第三方库。

打开Arduino IDE,导航到以 Sketch > Include Library > Manage Libraries... 搜索库。在 Ardunio 库管理器中键入关键字“Adafruit_NeoPixel”库并安装最新版本。

Seeed XIAO RP2040添加三方包.png

#include <Adafruit_NeoPixel.h>
int Power = 11;
int PIN = 12;
#define NUMPIXELS 1
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
	pixels.begin();
	pinMode(Power, OUTPUT);
	digitalWrite(Power, HIGH);
	Serial.begin(9600); // 初始化串口通信,波特率设置为 9600
}

void loop() {
	if (Serial.available() > 0) {
		String command = Serial.readStringUntil('\n'); // 读取串口输入直到换行符
		if (command == "o") {
			pixels.clear();
			pixels.setPixelColor(0, pixels.Color(0, 255, 0)); // 绿色
			pixels.show();
		} else if(command == "oc"){
			pixels.clear();
			pixels.setPixelColor(0, pixels.Color(15, 25, 205));
			delay(400);
			pixels.show();
			pixels.clear();
			pixels.setPixelColor(0, pixels.Color(103, 25, 205));
			delay(400);
			pixels.show();
			pixels.clear();
			pixels.setPixelColor(0, pixels.Color(233, 242, 205));
			delay(400);
			pixels.show();
			pixels.clear();
			pixels.setPixelColor(0, pixels.Color(233, 23, 23));
			delay(400);
			pixels.show();
			pixels.clear();
			pixels.setPixelColor(0, pixels.Color(12, 66, 101));
			delay(400);
			pixels.show();
			delay(500);
		} else if (command == "c") {
			pixels.clear();
			pixels.setPixelColor(0, pixels.Color(0, 0, 0)); // 关闭 LED 灯颜色为黑色
			pixels.show();
		}
	}
}

参考

  • https://wiki.seeedstudio.com/XIAO-RP2040/
  • https://wiki.seeedstudio.com/XIAO-RP2040-with-Arduino/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/922695.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一生一芯9——ubuntu22.04安装valgrind

这里安装的valgrind版本是3.19.0 下载安装包 在选定的目录下打开终端&#xff0c;输入以下指令 wget https://sourceware.org/pub/valgrind/valgrind-3.19.0.tar.bz2直至下载完成 解压安装包 输入下面指令解压安装包 tar -xvf valgrind-3.19.0.tar.bz2.tar.bz2注&#xf…

大转盘抽奖活动设计完全指南,轻松打造火爆营销

在如今竞争激烈的商业环境中&#xff0c;如何吸引顾客、提升销售额成为了每个商家都必须面对的问题。而大转盘抽奖活动作为一种互动性强、刺激性高的推广方式&#xff0c;成为了越来越多商家的首选。本文将详细介绍如何通过乔拓云后台制作大转盘抽奖活动&#xff0c;助力商家的…

高压功率放大器在管道损伤检测中的应用有哪些

高压功率放大器管道损伤检测中有着广泛的应用。管道是现代社会中重要的基础设施之一&#xff0c;用于输送各种液体或气体。然而&#xff0c;由于外部因素或长时间使用引起的磨损、腐蚀或撞击等问题&#xff0c;管道可能出现损伤&#xff0c;这可能对环境和人员安全产生严重影响…

【ag-grid-vue】基本使用

ag-grid是一款功能和性能强大外观漂亮的表格插件&#xff0c;ag-grid几乎能满足你对数据表格所有需求。固定列、拖动列大小和位置、多表头、自定义排序等等各种常用又必不可少功能。关于收费的问题&#xff0c;绝大部分应用用免费的社区版就够了&#xff0c;ag-grid-community社…

axios 进阶

axios 进阶 接口传参方式 使用 xhr 原生技术或者是 axios 时&#xff0c;它的 post 传参方式是键值对的形式 keyvalue。但是在实际开发中一般是使用对象的形式定义数据&#xff0c;方便读取和赋值。所以当我们需要发起请求时可以通过 qs 这一款插件将对象转成键值对形式&…

221. 最大正方形 Python

文章目录 一、题目描述示例 1示例 2示例 3 二、代码三、解题思路 一、题目描述 在一个由 0 和 1 组成的二维矩阵内&#xff0c;找到只包含 1 的最大正方形&#xff0c;并返回其面积。 示例 1 输入&#xff1a;matrix [["1","0","1","0&q…

视频集中存储/云存储平台EasyCVR国标GB28181协议接入的报文交互数据包分析

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理…

loss.sum.backward()为什么要sum()?

在动手学深度学习中&#xff0c;这样解释的&#xff1a; 当y不是标量时&#xff0c;向量y关于向量x的导数的最自然解释是一个矩阵。 对于高阶和高维的y和x&#xff0c;求导的结果可以是一个高阶张量。 然而&#xff0c;虽然这些更奇特的对象确实出现在高级机器学习中&#xff…

TypeScript初体验

1.安装编译TS工具包 npm i -g typescript 2. 查看版本号 tsc -v 3.创建ts文件 说明&#xff1a;创建一个index.ts文件 4.TS编译为JS tsc index.ts 5.执行JS代码 node index.js 6.简化TS的步骤 6.1安装 npm i -g ts-node 6.2执行 ts-node index.ts

PL端案例开发手册

目 录 前 言 1 工程编译、程序加载方法 1.1 工程编译 1.2 程序加载 2 led-flash 2.1 案例说明 2.2 操作说明 2.3 关键代码 更多帮助 前 言 本文主要介绍PL端案例的使用说明&#xff0c;适用开发环境&#xff1a;Windows 7/10 64bit、Xilinx Unified 20…

SpringDataRedis 使用

1. SpringDataRedis 特点2. 使用 SpringDataRedis 步骤3. 自定义 RedisTemplate 序列化4. SpringDataRedis 操作对象 1. SpringDataRedis 特点 提供了对不同 Redis 客户端的整合&#xff08;Lettuce 和 Jedis&#xff09;提供了 RedisTemplate 统一 API 来操作 Redis支持 Redi…

Python实现企业微信群告警

Python实现企业微信告警 1. 创建企业微信群机器人 1-1. 什么是企业微信群机器人&#xff1f; 企业微信群机器人是企业微信平台提供的一种功能&#xff0c;可以通过Webhook方式将消息发送到指定的企业微信群中。它可以用于自动化发送通知、告警等信息&#xff0c;实现监控和信…

机器学习深度学习——NLP实战(自然语言推断——微调BERT实现)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——针对序列级和词元级应用微调BERT &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文…

学习JAVA打卡第三十八天

String 类的常用方法 ⑴public int length&#xff08;&#xff09; String 类中的length&#xff08;&#xff09;方法获取了一个String对象的字符序列的长度&#xff0c;例如&#xff1a; String china “1945年抗战胜利”&#xff1b; int n1,n2&#xff1b; n1china.leng…

CentOS镜像下载

官网下载链接&#xff1a;http://isoredirect.centos.org/centos/7/isos/x86_64/ step1: 进入下载页&#xff0c;选择阿里云站点进行下载 Actual Country 国内资源 Nearby Countries 周边国家资源 阿里云站点&#xff1a;http://mirrors.aliyun.com/centos/7/isos/x86_64/ …

如何自己实现一个丝滑的流程图绘制工具(一)vue如何使用

背景 项目需求突然叫我实现一个类似processOn一样的在线流程图绘制工具。 这可难倒我了&#xff0c;立马去做调研&#xff0c;在github上找了很多个开源的流程图绘制工具&#xff0c; 对比下来我还是选择了 bpmn-js 原因&#xff1a; 1、他的流程图是涉及到业务的&#xff0c…

MybatisPlus 项目中使用

大家好 , 我是苏麟 , 今天带来 MybatisPlus 的简单使用 . 官方网站 : MyBatis-Plus (baomidou.com) 开始使用 初步体验 引入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version…

byte-budddy: Unexpected type reference on method: 19

使用byte-buddy版本为1.10.1 在使用agent时&#xff0c;启动应用&#xff0c;报错如下 造成报错的相关代码 Data public class CloudAccountUpdateReq implements Serializable {private List<Valid CloudAccountDiscountDTO> discountList;}已修复 issue: https://gi…

ClassLoad Of Java

序言 简单学习下ClassLoad的过程cuiyaonan2000163.com 过程 我们有一个x.java文件通过执行javac命令可以变成x.class文件&#xff0c;当我们调用Java命令的时候class文件会被装载到内存中&#xff0c;这个过程叫做classloader。 一般情况下我们自己写代码的时候会用到Java的类…

(6)(6.6) 恢复任务回放

文章目录 前言 6.6.1 配置 6.6.2 工作原理 6.6.3 局限性 前言 本页介绍了什么是"任务继续时后退"功能以及如何使用该功能。 &#xff01;Note 从 4.1 版起&#xff0c;Plane、Copter 和 Rover 均可使用此功能。 在某些应用或运行区域&#xff0c;为了消除冲突…