【Seeed Studio XIAO ESP32S3 Sense 开箱Arduino教程】

2024-01-25 09:28

本文主要是介绍【Seeed Studio XIAO ESP32S3 Sense 开箱Arduino教程】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【Seeed Studio XIAO ESP32S3 Sense 开箱Arduino教程】

    • 1. Seeed Studio XIAO ESP32S3 (Sense) 开发板介绍
      • 1.1 开发板参数
      • 1.2 特征
    • 2. 硬件概述
      • 2.1 绑定的Pins
      • 2.2 拓展认知
    • 3. 入门
      • 3.1 出厂程序
      • 2.2 硬件准备
        • 2.2.1 焊接接头
        • 2.2.2 天线的安装
        • 2.2.3 安装扩展板(用于Sense)
      • 2.3 软件准备
      • 2.4 BootLoader模式
      • 2.5 重置
    • 3. 运行您的第一个Blink程序
    • 4. 电池使用情况
    • 5. 深度睡眠模式和唤醒
      • 5.1 Demo1: 带外部唤醒功能的深度睡眠
      • 5.2 Demo2:带定时器唤醒的深度睡眠
    • 6. 故障排除
      • 6.1 如果上传程序失败/程序运行异常/找不到设备端口,该怎么办?
      • 6.2:为什么我的xiao有圆角不齐的问题?这是质量问题吗?
    • 7. 总结

活动地址:第四届2024年“寒假在家一起练”
资料地址:Seeed Studio XIAO ESP32S3 (Sense) 开发板

在这里插入图片描述
左图是xiao esp32S3开发板,右图是带摄像头、麦克风的xiao esp32S3开发板

1. Seeed Studio XIAO ESP32S3 (Sense) 开发板介绍

Seeed Studio XIAO系列是一款小型开发板,尺寸仅为拇指大小,具备类似的硬件结构。该系列的代号“小”表示它的小巧尺寸。其中,Seeed Studio XIAO ESP32S3 Sense集成了摄像头传感器、数字麦克风和SD卡支持。借助其嵌入式ML计算和摄影能力,该开发板成为了您探索智能语音和视觉AI的入门工具。
在这里插入图片描述

1.1 开发板参数

项目Seeed Studio XIAO ESP32S3Seeed Studio XIAO ESP32S3 Sense
处理器ESP32-S3R8Xtensa LX7双核32位处理器,工作频率高达240 MHz
无线完整的2.4GHz Wi-Fi子系统BLE:蓝牙5.0,蓝牙网状
内置传感器-适用于1600*1200的OV2640摄像头传感器数字麦克风
存储器片上8M PSRAM和8MB闪存片上8M PSRAM和8MB闪存板载SD卡插槽,支持32GB FAT
接口1x UART, 1x IIC, 1x IIS, 1x SPI, 11x GPIOs (PWM), 9x ADC, 1x User LED, 1x Charge LED 1x Reset button, 1x Boot button1x UART, 1x IIC, 1x IIS, 1x SPI, 11x GPIOs (PWM), 9x ADC, 1x User LED, 1x Charge LED, 1x B2B Connector (with 2 additional GPIOs)1x Reset button, 1x Boot button
尺寸21 x 17.5mm21 x 17.5 x 15mm(带扩展板)
功率输入电压(Type-C):5V 输入电压(BAT):4.2V
-充电电池电流:100mA充电电池电流:100mA
启用Wi-Fi的功耗活动模型: ~ 100 mA活动模型: ~ 110 mA (带扩展板)
BLE启用功耗活动模型:~ 85 mA活动模型: ~ 102 mA (带扩展板)
工作温度-40°C ~ 65°C

1.2 特征

  • 强大的MCU板: 采用ESP32S3 32位双核Xtensa处理器芯片,运行频率高达240 MHz,安装多个开发端口,支持Arduino/MicroPython
  • 高级功能 (用于Sense): 可拆卸的OV2640相机传感器,分辨率为1600*1200,与OV5640相机传感器兼容,内置额外的数字麦克风精心设计的电源:锂电池充电管理功能,提供4种功耗模式,可实现低至14μA的深度睡眠模式
  • 拥有更多可能性的美好记忆: 提供8MB PSRAM和8MB FLASH,支持用于外部32GB FAT内存的SD卡插槽
  • 出色的射频性能: 支持2.4GHz Wi-Fi和BLE双无线通信,连接U.FL天线时支持100m+远程通信
  • 拇指大小的紧凑型设计:21x17.5mm,采用XIAO的经典外形,适用于可穿戴设备等空间有限的项目

2. 硬件概述

在一切开始之前,有一些产品的基本参数是非常重要的。下表提供了有关Seeed Studio XIAO ESP32S3特性的信息。

在这里插入图片描述

XIAO ESP32S3/SIAO ESP32S3感应前端指示图
在这里插入图片描述

其中用户LED灯连接IO21
在这里插入图片描述
XIAO ESP32S3/SIAO ESP32S3感应返回指示图&XIAO ESP32S3/SIAO ESP32S3感应引脚列表

  • 5V-这是从USB端口输出的5V。你也可以将其用作电压输入,但你必须在外部电源和这个引脚之间有某种二极管(肖特基二极管、信号二极管、电源二极管),阳极到电池,阴极到5V引脚。
  • 3V3-这是车载调节器的调节输出。你可以用700mA输出
  • GND-电源/数据/信号接地

2.1 绑定的Pins

在每次启动或重置时,芯片都需要一些初始配置参数,例如加载芯片的引导模式、闪存的电压等。这些参数通过捆扎引脚传递。复位后,捆扎引脚作为常规IO引脚工作。

在芯片复位时由给定的捆扎引脚控制的参数如下:

• 芯片引导模式–GPIO0和GPIO46

• VDD_SPI电压–GPIO45

• ROM消息打印–GPIO46

• JTAG信号源–GPIO3

GPIO0、GPIO45和GPIO46在芯片复位时连接到芯片的内部弱上拉/下拉电阻器。 这些电阻器确定捆扎引脚的默认位值。此外,这些电阻器决定位 如果捆扎引脚连接到外部高阻抗电路,参考下表。
在这里插入图片描述

2.2 拓展认知

要更改位值,捆扎引脚应连接到外部下拉/上拉电阻。如果ESP32-S3被主机MCU用作设备,则捆扎引脚电压电平也可以由主机控制MCU。

所有捆扎针都有插销。在系统复位时,锁存器对其各自捆扎引脚的位值进行采样并存储它们,直到芯片断电或关闭。锁存器的状态不能以任何其他方式更改。它使捆扎引脚值在整个芯片操作期间可用,并且引脚在重置后被释放用作常规IO引脚。

关于捆扎针的定时要求,存在诸如设置时间和保持时间之类的参数。

在这里插入图片描述

3. 入门

为了让您更快地开始使用XIAO ESP32S3,请阅读下面的硬件和软件准备,以准备XIAO。

3.1 出厂程序

我们用一个简单的工厂程序对每个新的XIAO ESP32S3和XIAO ESP32_Sense进行预编程。

  1. XIAO ESP32S3

常规版本中预设的出厂程序是触针点亮程序。当你接通XIAO的电源时,触摸它的一些引脚,橙色的用户指示灯就会亮起。
在这里插入图片描述

  1. XIAO ESP32S3 Sense

XIAO ESP32S3
Sense附带预装的WebCam示例程序。你可以使用这个程序,给晓一个良好的天线安装和电源。有关详细信息,您可以阅读有关该程序的Wiki。
在这里插入图片描述

视频流

2.2 硬件准备

2.2.1 焊接接头

XIAO ESP32S3出厂时默认没有引脚头,您需要准备自己的引脚头,并将其焊接到XIAO的相应引脚上,以便连接到扩展板或传感器。

由于XIAO ESP32S3的尺寸很小,焊接接头时请小心,不要将不同的引脚粘在一起,也不要将焊料粘在屏蔽或其他部件上。否则,可能会导致XIAO短路或无法正常工作,由此造成的后果将由用户承担。
在这里插入图片描述

2.2.2 天线的安装

在XIAO ESP32S3正面的左下角,有一个单独的“WiFi/BT天线连接器”。为了获得更好的WiFi/蓝牙信号,您需要取出包装内的天线并将其安装在连接器上。天线的安装有一个小技巧,如果你直接用力按压,你会发现很难按压,你的手指会受伤!安装天线的正确方法是先将天线连接器的一侧放入连接器块中,然后在另一侧向下压一点,天线就安装好了。拆下天线也是这样,不要用蛮力直接拉天线,一侧用力提起,天线很容易取下。
在这里插入图片描述

2.2.3 安装扩展板(用于Sense)

如果您正在购买XIAO ESP32S3 Sense,那么您还应该包括一个扩展板。此扩展板具有1600*1200 OV2640摄像头传感器、板载SD卡插槽和数字麦克风。通过使用XIAO ESP32S3 Sense安装扩展板,您可以使用扩展板上的功能。安装扩展板非常简单,只需将扩展板上的连接器与XIAO ESP32S3上的B2B连接器对齐,用力按压并听到“咔嗒”一声,即可完成安装。

在这里插入图片描述

现在,我们的货架上有一款新的完全兼容XIAO ESP32S3 Sense的强大相机OV5640,如果您购买了它,您可以更换相机来使用它。

2.3 软件准备

XIAO ESP32S3的推荐编程工具是Arduino IDE,因此作为软件准备的一部分,您需要完成Arduino的安装。

:::提示 如果这是您第一次使用Arduino,我们强烈建议您参考 Arduino入门. :::

  • 步骤1根据您的操作系统下载并安装Arduino IDE的稳定版本。
    下载 Arduino IDE
  • 步骤 2. 启动Arduino应用程序。
  • 步骤p 3. 将ESP32板包添加到您的Arduino IDE中。

导航到文件>首选项,并用以下url填充“Additional Boards Manager url”:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
在这里插入图片描述

导航到Tools > Board > Boards Manager..., 在搜索框中键入关键字* esp32 选择最新版本的 esp32, 然后安装它。

在这里插入图片描述

:::警告 XIAO ESP32S3的车载软件包至少需要提供版本2.0.8。 :::

如果下载失败:可以尝试离线下载esp32
2.0.11可以参照这个教程解决办法三,亲测有效https://blog.csdn.net/weixin_43034503/article/details/128733085

  • 步骤4 - 选择您的板和端口。 在Arduino IDE的顶部,您可以直接选择端口。这可能是COM3或更高版本(COM1和COM2通常保留用于硬件串行端口)。

此外,在左侧的开发板中搜索xiao。选择XIAO_ESP32S3。

在这里插入图片描述

有了这些准备,您就可以开始为XIAO ESP32S3编写程序进行编译和上传。

2.4 BootLoader模式

有时,我们使用错误的程序会使XIAO看起来失去端口或无法正常工作。具体性能为:

  • 已连接到计算机,但找不到肖的端口号。
  • 计算机已连接,端口号出现,但上载程序失败。

当你遇到以上两种情况时,你可以尝试将XIAO置于BootLoader模式,这可以解决大多数设备无法识别和上传失败的问题。具体方法是:

  • 步骤1 按住XIAO ESP32S3上的BOOT(引导)按钮,不要松开它。
  • 第2步 按住BOOT(引导)按钮,然后通过数据线连接到计算机,右边会常亮起红色LED。连接到计算机后释放BOOT按钮。
  • 步骤3 上传Blink程序以检查XIAO ESP32S3的操作。

在这里插入图片描述

2.5 重置

当程序运行异常时,您可以在通电时按一次Reset,让XIAO重新执行上传的程序。 当您在通电时按住BOOT键,然后按一次Reset键时,您也可以进入BootLoader模式。

3. 运行您的第一个Blink程序

到目前为止,我相信您已经对晓ESP32S3的功能和硬件有了很好的了解。接下来,让我们以最简单的眨眼程序为例,为您的XIAO ESP32S3执行第一次眨眼!

  • 步骤1. 启动Arduino应用程序。

  • 步骤 2. 引导到 File > Examples > 01.Basics > Blink,打开程序。
    在这里插入图片描述

  • 步骤 3. 将板卡型号选择为XIAO ESP32S3,然后选择正确的端口号上传程序。
    在这里插入图片描述

其中用户LED灯连接IO21,从下面pins_arduino.h可以得出LED_BUILTIN =21

blink.ino

/*BlinkTurns an LED on for one second, then off for one second, repeatedly.Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZEROit is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set tothe correct LED pin independent of which board is used.If you want to know what pin the on-board LED is connected to on your Arduinomodel, check the Technical Specs of your board at:https://www.arduino.cc/en/Main/Productsmodified 8 May 2014by Scott Fitzgeraldmodified 2 Sep 2016by Arturo Guadalupimodified 8 Sep 2016by Colby NewmanThis example code is in the public domain.https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
*/// the setup function runs once when you press reset or power the board
void setup() {// initialize digital pin LED_BUILTIN as an output.pinMode(LED_BUILTIN, OUTPUT);
}// the loop function runs over and over again forever
void loop() {digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)delay(1000);                      // wait for a seconddigitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOWdelay(1000);                      // wait for a second
}

pins_arduino.h

#ifndef Pins_Arduino_h
#define Pins_Arduino_h#include <stdint.h>
#include "soc/soc_caps.h"#define USB_VID 0x2886
#define USB_PID 0x0056#define EXTERNAL_NUM_INTERRUPTS 46
#define NUM_DIGITAL_PINS        48
#define NUM_ANALOG_INPUTS       20static const uint8_t LED_BUILTIN = 21;
#define BUILTIN_LED  LED_BUILTIN // backward compatibility
#define LED_BUILTIN LED_BUILTIN#define analogInputToDigitalPin(p)  (((p)<NUM_ANALOG_INPUTS)?(analogChannelToDigitalPin(p)):-1)
#define digitalPinToInterrupt(p)    (((p)<NUM_DIGITAL_PINS)?(p):-1)
#define digitalPinHasPWM(p)         (p < EXTERNAL_NUM_INTERRUPTS)static const uint8_t TX = 43;
static const uint8_t RX = 44;static const uint8_t SDA = 5;
static const uint8_t SCL = 6;static const uint8_t SS   = 44;
static const uint8_t MOSI = 9;
static const uint8_t MISO = 8;
static const uint8_t SCK  = 7;static const uint8_t A0 = 1;
static const uint8_t A1 = 2;
static const uint8_t A2 = 3;
static const uint8_t A3 = 4;
static const uint8_t A4 = 5;
static const uint8_t A5 = 6;
static const uint8_t A8 = 7;
static const uint8_t A9 = 8;
static const uint8_t A10 = 9;static const uint8_t D0 = 1;
static const uint8_t D1 = 2;
static const uint8_t D2 = 3;
static const uint8_t D3 = 4;
static const uint8_t D4 = 5;
static const uint8_t D5 = 6;
static const uint8_t D6 = 43;
static const uint8_t D7 = 44;
static const uint8_t D8 = 7;
static const uint8_t D9 = 8;
static const uint8_t D10 = 9;static const uint8_t T1 = 1;
static const uint8_t T2 = 2;
static const uint8_t T3 = 3;
static const uint8_t T4 = 4;
static const uint8_t T5 = 5;
static const uint8_t T6 = 6;
static const uint8_t T7 = 7;
static const uint8_t T8 = 8;
static const uint8_t T9 = 9;#endif /* Pins_Arduino_h */

一旦程序成功上传,您将看到以下输出消息,您可以观察到XIAO ESP32S3右侧的橙色LED正在闪烁。

在这里插入图片描述

祝贺你,你已经学会了如何为XIAO ESP32S3编写和上传程序!👍👍👍

:::提示 只有当XIAO ESP32S3上的用户LED引脚设置为高电平时,LED才会熄灭,只有当引脚设置为低电平时,它才会点亮。 :::

4. 电池使用情况

XIAO ESP32S3系列内置电源管理芯片,可使用电池独立供电,或通过XIAO ESP32S3的USB端口为电池充电。如果您想为XIAO连接电池,我们建议您购买合格的3.7V可充电锂电池。焊接电池时,请小心区分正极和负极端子。电源的负极端子应位于离USB端口最近的一侧,电源的正极端子应位于远离USB端口的一侧。

在这里插入图片描述

:::提示 由于XIAO ESP32S3的所有GPIO引脚都分配了自己的功能,因此我们没有为电池引脚配置GPIO。这意味着我们无法通过读取其中一个GPIO的模拟值来获得软件级别的电池电压。如有必要,可以考虑将蓄电池的正极和负极端子连接到其中两个引脚上,以测量蓄电池电压。

在这里插入图片描述

:::警告 当您使用电池电源时,5V引脚上将没有电压。 :::

同时,我们设计了一个用于电池充电的红色指示灯,通过指示灯显示屏告知用户电池在充电中的当前状态。

1.当XIAO ESP32S3未连接到电池时,当连接Type-C电缆时红灯亮起,30秒后熄灭。 2.当连接电池并连接C型电缆进行充电时,红灯会闪烁。 3.当连接Type-C为电池充满电时,红灯熄灭。
在这里插入图片描述

5. 深度睡眠模式和唤醒

XIAO ESP32S3具有完整的深度睡眠模式和唤醒功能。在这里,我们将展示ESP提供的两个更常见的例子。

5.1 Demo1: 带外部唤醒功能的深度睡眠

此代码显示如何使用具有外部触发器的深度睡眠作为唤醒源,以及如何将数据存储在RTC内存中以在重新启动时使用。

/*
=====================================
This code is under Public Domain License.Hardware Connections
======================
Push Button to GPIO 33 pulled down with a 10K Ohm
resistorNOTE:
======
Only RTC IO can be used as a source for external wake
source. They are pins: 0,2,4,12-15,25-27,32-39.Author:
Pranav Cherukupalli <cherukupallip@gmail.com>
*/#define BUTTON_PIN_BITMASK 0x200000000 // 2^33 in hexRTC_DATA_ATTR int bootCount = 0;/*
Method to print the reason by which ESP32
has been awaken from sleep
*/
void print_wakeup_reason(){esp_sleep_wakeup_cause_t wakeup_reason;wakeup_reason = esp_sleep_get_wakeup_cause();switch(wakeup_reason){case ESP_SLEEP_WAKEUP_EXT0 : Serial.println("Wakeup caused by external signal using RTC_IO"); break;case ESP_SLEEP_WAKEUP_EXT1 : Serial.println("Wakeup caused by external signal using RTC_CNTL"); break;case ESP_SLEEP_WAKEUP_TIMER : Serial.println("Wakeup caused by timer"); break;case ESP_SLEEP_WAKEUP_TOUCHPAD : Serial.println("Wakeup caused by touchpad"); break;case ESP_SLEEP_WAKEUP_ULP : Serial.println("Wakeup caused by ULP program"); break;default : Serial.printf("Wakeup was not caused by deep sleep: %d\n",wakeup_reason); break;}
}void setup(){Serial.begin(115200);delay(1000); //Take some time to open up the Serial Monitor//Increment boot number and print it every reboot++bootCount;Serial.println("Boot number: " + String(bootCount));//Print the wakeup reason for ESP32print_wakeup_reason();/*First we configure the wake up sourceWe set our ESP32 to wake up for an external trigger.There are two types for ESP32, ext0 and ext1 .ext0 uses RTC_IO to wakeup thus requires RTC peripheralsto be on while ext1 uses RTC Controller so doesnt needperipherals to be powered on.Note that using internal pullups/pulldowns also requiresRTC peripherals to be turned on.*/esp_sleep_enable_ext0_wakeup(GPIO_NUM_33,1); //1 = High, 0 = Low//If you were to use ext1, you would use it like//esp_sleep_enable_ext1_wakeup(BUTTON_PIN_BITMASK,ESP_EXT1_WAKEUP_ANY_HIGH);//Go to sleep nowSerial.println("Going to sleep now");esp_deep_sleep_start();Serial.println("This will never be printed");
}void loop(){//This is not going to be called
}

5.2 Demo2:带定时器唤醒的深度睡眠

ESP32提供了一种深度睡眠模式,可有效节能,因为功率是物联网应用的重要因素。在这种模式下,CPU、大部分RAM和所有由APB_CLK计时的数字外围设备都关闭了电源。芯片中唯一可以通电的部分是:RTC控制器、RTC外围设备和RTC存储器。

此代码显示了最基本的深度睡眠,并带有一个定时器来唤醒它,以及如何将数据存储在RTC内存中以在重新启动时使用它。

/*
Simple Deep Sleep with Timer Wake Up
=====================================
This code is under Public Domain License.Author:
Pranav Cherukupalli <cherukupallip@gmail.com>
*/#define uS_TO_S_FACTOR 1000000ULL  /* Conversion factor for micro seconds to seconds */
#define TIME_TO_SLEEP  5        /* Time ESP32 will go to sleep (in seconds) */RTC_DATA_ATTR int bootCount = 0;/*
Method to print the reason by which ESP32
has been awaken from sleep
*/
void print_wakeup_reason(){esp_sleep_wakeup_cause_t wakeup_reason;wakeup_reason = esp_sleep_get_wakeup_cause();switch(wakeup_reason){case ESP_SLEEP_WAKEUP_EXT0 : Serial.println("Wakeup caused by external signal using RTC_IO"); break;case ESP_SLEEP_WAKEUP_EXT1 : Serial.println("Wakeup caused by external signal using RTC_CNTL"); break;case ESP_SLEEP_WAKEUP_TIMER : Serial.println("Wakeup caused by timer"); break;case ESP_SLEEP_WAKEUP_TOUCHPAD : Serial.println("Wakeup caused by touchpad"); break;case ESP_SLEEP_WAKEUP_ULP : Serial.println("Wakeup caused by ULP program"); break;default : Serial.printf("Wakeup was not caused by deep sleep: %d\n",wakeup_reason); break;}
}void setup(){Serial.begin(115200);delay(1000); //Take some time to open up the Serial Monitor//Increment boot number and print it every reboot++bootCount;Serial.println("Boot number: " + String(bootCount));//Print the wakeup reason for ESP32print_wakeup_reason();/*First we configure the wake up sourceWe set our ESP32 to wake up every 5 seconds*/esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);Serial.println("Setup ESP32 to sleep for every " + String(TIME_TO_SLEEP) +" Seconds");/*Next we decide what all peripherals to shut down/keep onBy default, ESP32 will automatically power down the peripheralsnot needed by the wakeup source, but if you want to be a poweruserthis is for you. Read in detail at the API docshttp://esp-idf.readthedocs.io/en/latest/api-reference/system/deep_sleep.htmlLeft the line commented as an example of how to configure peripherals.The line below turns off all RTC peripherals in deep sleep.*///esp_deep_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_OFF);//Serial.println("Configured all RTC Peripherals to be powered down in sleep");/*Now that we have setup a wake cause and if needed setup theperipherals state in deep sleep, we can now start going todeep sleep.In the case that no wake up sources were provided but deepsleep was started, it will sleep forever unless hardwarereset occurs.*/Serial.println("Going to sleep now");Serial.flush(); esp_deep_sleep_start();Serial.println("This will never be printed");
}void loop(){//This is not going to be called
}

:::提示 如果你想学习更多地使用深度睡眠模式和唤醒功能,你可以在Arduino IDE中找到更多ESP为芯片正式编写的示例程序。

在这里插入图片描述

6. 故障排除

6.1 如果上传程序失败/程序运行异常/找不到设备端口,该怎么办?

如果您遇到上述问题,建议您首先尝试按下XIAO ESP32S3上的重置按钮,尝试重新运行程序。如果问题仍然存在,请重新检查您的程序并阅读中提供的方法BootLoader Mode 以恢复设备。

6.2:为什么我的xiao有圆角不齐的问题?这是质量问题吗?

在这里插入图片描述

首先,需要注意的是,这不是质量问题,不会影响晓的正常功能。

XIAO ESP32S3是所有XIAO中最复杂的一个,因为它的集成度很高,并且PCB需要在工厂生产中组装在一起。由于集成度高,拼接板连接只能放在四个圆角处,这会导致图片圆角不均匀的问题。我们将努力改进工艺,以确保在后续生产中解决这个问题。

7. 总结

通过Seeed Studio XIAO ESP32S3 Sense 开箱Arduino教程,我们可以让ESP32作为主心骨,接下来就是学习其他外设有机衔接从而完成功能,进而丰富我们的生活。🛹🛹🛹

从而实现对外部世界进行感知,充分认识这个有机与无机的环境,科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。🤣🤣🤣

  1. 我会持续更新对应专栏博客,非常期待你的三连!!!🎉🎉🎉
  2. 如果鹏鹏有哪里说的不妥,还请大佬多多评论指教!!!👍👍👍
  3. 下面有我的🐧🐧🐧群推广,欢迎志同道合的朋友们加入,期待与你的思维碰撞😘😘😘

参考资源
Seeed Studio XIAO ESP32S3 (Sense) 开发板
[PDF] ESP32-S3 Datasheet

For Seeed Studio XIAO ESP32S3
[PDF] Seeed Studio XIAO ESP32S3 Schematic

[ZIP] Seeed Studio XIAO ESP32S3 Factory firmware

[STEP] Seeed Studio XIAO ESP32S3 3D Model

For Seeed Studio XIAO ESP32S3 Sense
[PDF] Seeed Studio XIAO ESP32S3 Sense Schematic

[ZIP] Seeed Studio XIAO ESP32S3 Sense Factory firmware

[STEP] Seeed Studio XIAO ESP32S3 Sense 3D Model

这篇关于【Seeed Studio XIAO ESP32S3 Sense 开箱Arduino教程】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/642833

相关文章

Eclipse+ADT与Android Studio开发的区别

下文的EA指Eclipse+ADT,AS就是指Android Studio。 就编写界面布局来说AS可以边开发边预览(所见即所得,以及多个屏幕预览),这个优势比较大。AS运行时占的内存比EA的要小。AS创建项目时要创建gradle项目框架,so,创建项目时AS比较慢。android studio基于gradle构建项目,你无法同时集中管理和维护多个项目的源码,而eclipse ADT可以同时打开

Visual Studio中,MSBUild版本问题

假如项目规定了MSBUild版本,那么在安装完Visual Studio后,假如带的MSBUild版本与项目要求的版本不符合要求,那么可以把需要的MSBUild添加到系统中,然后即可使用。步骤如下:            假如项目需要使用V12的MSBUild,而安装的Visual Studio带的MSBUild版本为V14。 ①到MSDN下载V12 MSBUild包,把V12包解压到目录(

Steam邮件推送内容有哪些?配置教程详解!

Steam邮件推送功能是否安全?如何个性化邮件推送内容? Steam作为全球最大的数字游戏分发平台之一,不仅提供了海量的游戏资源,还通过邮件推送为用户提供最新的游戏信息、促销活动和个性化推荐。AokSend将详细介绍Steam邮件推送的主要内容。 Steam邮件推送:促销优惠 每当平台举办大型促销活动,如夏季促销、冬季促销、黑色星期五等,用户都会收到邮件通知。这些邮件详细列出了打折游戏、

X-AnyLabeling使用教程

1.AI 模型自动分割标注使用教程 2.AI 模型自动目标检测标注使用教程

青龙面板2.9之Cdle傻妞机器人编译教程

看到有的朋友对傻妞机器人感兴趣,这里写一下傻妞机器人的编译教程。 第一步,这里以linux amd64为例,去官网下载安装go语言安装包: 第二步,输入下方指令 cd /usr/local && wget https://golang.google.cn/dl/go1.16.7.linux-amd64.tar.gz -O go1.16.7.linux-amd64.tar.gz

青龙面板部署通用教程,含服务器、路由器、X86等部署方法

1. 拉取镜像/更新镜像 docker pull whyour/qinglong:latest 2. 删除镜像 docker rmi whyour/qinglong:latest 3. 启动容器 普通服务器 docker run -dit \-v $PWD/ql/config:/ql/config \-v $PWD/ql/log:/ql/log \-v $PWD/ql/db:

宝塔面板部署青龙面板教程【简单易上手】

首先,你得有一台部署了宝塔面板的服务器(自己用本地电脑也可以)。 宝塔面板部署自行百度一下,很简单,这里就不走流程了,官网版本就可以,无需开心版。 首先,打开宝塔面板的软件商店,找到下图这个软件(Docker管理器)安装,青龙面板还是安装在docker里,这里依赖宝塔面板安装和管理docker。 安装完成后,进入SSH终端管理,输入代码安装青龙面板。ssh可以直接宝塔里操作,也可以安装ssh连接

PS系统教程25

介绍软件 BR(bridge) PS 配套软件,方便素材整理、管理素材 作用:起到桥梁作用 注意:PS和BR尽量保持版本一致 下载和安装可通过CSDN社区搜索,有免费安装指导。 安装之后,我们打开照片只需双击照片,就自动在Ps软件中打开。 前提:电脑上有PS软件 三种预览格式 全屏预览 评星级 直接按数字键就可以 方向键可以更换图片 esc退出 幻灯片放

flex布局学习笔记(flex布局教程)

前端笔试⾯试经常会问到:不定宽⾼如何⽔平垂直居中。最简单的实现⽅法就是flex布局,⽗元素加上如下代码即 可: display: flex; justify-content: center; align-items :center; 。下⾯详细介绍下flex布局吧。   2009年,W3C提出了 Flex布局,可以简便⼂完整⼂响应式地实现各种页⾯布局。⽬前已得到了所有浏览器的⽀持,这意味着,现

IPython小白教程:提升你的Python交互式编程技巧,通俗易懂!

IPython是一个增强的Python交互式shell,它提供了丰富的功能和便捷的交互方式,使得Python开发和数据分析工作更加高效。本文将详细介绍IPython的基本概念、使用方法、主要作用以及注意事项。 一、IPython简介 1. IPython的起源 IPython由Fernando Pérez于2001年创建,旨在提供一个更高效的Python交互式编程环境。 2. IPyt