【FastBond2阶段1——基于ESP32C3开发的简易IO调试设备】

news2025/7/28 1:03:19

【FastBond2阶段1——基于ESP32C3开发的简易IO调试设备】

  • 1. 功能介绍
  • 2. 主要元器件介绍
    • 2.1 主控板:CORE ESP32-C3核心板
    • 2.2 传感器
      • 2.2.1 旋转编码器:
      • 2.2.2 模拟ADC:
      • 2.2.3 GPIO接口:
    • 2.3 执行器
      • 2.3.1 WS2812:
      • 2.3.2 90舵机:
      • 2.3.3 SSD1306:
    • 2.4 相关外设
  • 3. 设计思路
  • 4. 心得体会

基于ESP32C3开发的简易IO调试设备

1. 功能介绍

设计用户操作界面,该设备具备简单易用的操作界面,外加显示屏SSD1306和旋转编码器进行显示和控制,用户后期可进行二次开发WiFi或蓝牙连接电脑或手机监控。

多种数字和模拟信号的输入输出:用户可以选择不同的输入输出模式,并通过设备的操作界面进行设置。例如,用户可以选择某个GPIO口作为模拟输入引脚,然后通过设备的操作界面设置输入的电压值,以模拟外部信号的输入,达到调试简易传感器读取和执行器输出功能。

支持PWM输出、舵机控制特性:用户可以选择某个GPIO口作为PWM输出引脚,并通过设备的操作界面设置PWM输出的频率和占空比。用户还可以选择某个GPIO口作为舵机控制引脚,并通过设备的操作界面设置舵机的角度。

因此系统具有一定的电流输出能力、信号辨识能力和显示交互功能。

2. 主要元器件介绍

主要元器件包括主控板、传感器,执行器、相关外设四部分组成。

2.1 主控板:CORE ESP32-C3核心板

是基于乐鑫ESP32-C3芯片进行设计的一款开发板。 尺寸仅有21mm×51mm,板边采用邮票孔设计,板载 Wi-Fi/BLE天线,方便开发者在不同场景下的使用。核心板支持UART、GPIO、SPI、I2C、ADC、PWM等接口,可根据实际需要选用。

FqY5m26fkFBCUKIuSy2lL3x0B4RF

  1. 功能强应用广
    合宙ESP32-C3开发板高集成化设计,板载 Wi-Fi/BLE天线、4MB Flash,支持UART、GPIO、SPI、I2C、ADC、PWM等接口,满足大多数应用;板载CH343P芯片实现更高速率的USB转串口,固件下载更快更稳。

  2. 用料足信号好
    合宙ESP32-C3开发板采用4层PCB,板载2.4G天线,实测2.38到2.48GHz范围内的驻波比(VSWR)值比较好,能够有效的将发射功率辐射到无线空间。

  3. 多样化开发更便捷
    合宙ESP32-C3开发板目前支持:LuatOS/乐鑫IDF/Arduino/MicroPython等多样化开发方式,使用更便捷。LuatOS固件在社区大神梦程的努力下现已支持以下功能,其他内容正在不断更新

关键¥9.9包邮

ESP32-C3开发板开发参考指南:https://wiki.luatos.com/chips/esp32c3/index.html

2.2 传感器

2.2.1 旋转编码器:

  1. 硬件连接:旋转编码器通常包含两个输出引脚A和B,这两个引脚连接到ESP32C3的GPIO引脚上。此外,还需要将旋转编码器的电源引脚连接到ESP32C3的电源引脚上,以供其工作。

  2. 编码器工作原理:旋转编码器通过检测旋转方向和旋转的步数来实现位置检测。当旋转编码器旋转时,引脚A和B会产生脉冲信号,并且这两个信号的相位关系可以确定旋转的方向。此外,旋转编码器还可以通过检测脉冲信号的数量来计算旋转的步数。

  3. ESP32C3读取旋转编码器信号:ESP32C3的GPIO引脚可以配置为输入模式,从而可以读取旋转编码器的信号。通过调用相应的GPIO读取函数,可以获取引脚A和B上的脉冲信号,并且根据相位关系确定旋转的方向。

  4. 手动握手连接:在旋转编码器与ESP32C3建立连接之前,需要进行手动握手连接。这可以通过旋转编码器的旋转来实现。当旋转编码器旋转时,ESP32C3可以读取引脚A和B上的信号,并根据旋转的方向和步数来确定旋转编码器的初始位置。

  5. 自动握手连接:为了简化连接过程,可以通过编码器的初始位置来自动进行握手连接。在旋转编码器初始位置确定后,ESP32C3可以将该位置信息保存在内存中,以便后续的旋转编码器读取和使用。这样,在下次启动时,ESP32C3可以通过读取保存的位置信息来自动建立与旋转编码器的连接。

    总结起来,旋转编码器与ESP32C3的握手连接原理是通过读取旋转编码器的脉冲信号来确定旋转的方向和步数,并将其与ESP32C3进行同步。通过手动或自动握手连接,可以建立稳定的连接,实现旋转编码器的位置检测和控制。

FnDXoxxrHvm7JOvIpyWBwcRrF_FI

2.2.2 模拟ADC:

ADC(Analog-to-Digital Converter)是一种用于将模拟信号转换为数字信号的电路或设备。ESP32-C3是一款低功耗、高性能的Wi-Fi和蓝牙微控制器芯片。

ADC与ESP32-C3握手连接的原理如下:

  1. ESP32-C3的GPIO引脚配置为ADC输入模式,并通过电路连接到外部的模拟信号源(例如传感器)。
  2. ADC模块从引脚接收模拟信号,并将其转换为数字信号。
  3. ESP32-C3的固件通过编程访问ADC模块,以获取转换后的数字信号值。
  4. 在握手连接过程中,ADC模块可以周期性地对模拟信号进行采样,并将采样结果传输给ESP32-C3。
  5. ESP32-C3可以通过读取ADC模块的输出寄存器获取最新的采样数据。
  6. ESP32-C3可以根据采样数据进行处理和分析,例如将其发送到云端服务器或用于控制其他设备。

需要注意的是,ADC与ESP32-C3的握手连接可能需要根据具体的硬件和软件设计进行配置和编程。上述原理提供了一个基本的框架,但具体实现取决于所使用的ADC和ESP32-C3的规格和要求。

FgGjsJVo3od8DMcvx2sBoOTFuCLw

2.2.3 GPIO接口:

GPIO接口是一种通用输入输出接口,用于连接外部设备和微控制器或单片机。ESP32C3是一款基于RISC-V架构的低功耗Wi-Fi和蓝牙SoC芯片,它具有丰富的GPIO接口,可以与外部设备进行连接。握手连接是指在两个设备之间建立通信连接之前的一系列交互步骤。下面是GPIO接口与ESP32C3握手连接的原理:

  1. 硬件连接:首先,将外部设备的GPIO引脚与ESP32C3的GPIO引脚进行物理连接。这可以通过将设备的输出引脚连接到ESP32C3的输入引脚,或将设备的输入引脚连接到ESP32C3的输出引脚来完成。
  2. 引脚配置:在ESP32C3上设置GPIO引脚的工作模式和电平状态。这可以通过编程方式来完成,通常使用开发板上的软件开发工具(如Arduino IDE)进行配置。
  3. 初始化:在ESP32C3上初始化GPIO接口和相关的通信模块。这包括设置引脚的输入/输出模式、电平状态、中断触发方式等。
  4. 握手信号:在通信的起始阶段,可以通过GPIO引脚发送握手信号进行连接确认。例如,ESP32C3可以发送一个特定的电平或脉冲信号,外部设备通过检测该信号来确认连接。
  5. 状态确认:ESP32C3可以通过读取外部设备的GPIO引脚状态来确认连接是否成功建立。这可以通过检测外部设备发送的握手信号或其他状态信号来实现。
  6. 数据传输:一旦握手连接成功建立,ESP32C3和外部设备可以通过GPIO接口进行数据传输。这可以通过读取和写入GPIO引脚的状态来实现。

需要注意的是,具体的GPIO接口和握手连接的原理可能会因外部设备的不同而有所差异。因此,在实际应用中,需要根据外部设备的规格和通信协议来进行具体的接口配置和握手连接设置。

在这里插入图片描述

2.3 执行器

2.3.1 WS2812:

WS2812是一种常见的RGB LED灯带,它具有内置的控制芯片,可以通过单一的数据线进行控制。ESP32C3是一款基于RISC-V架构的低功耗Wi-Fi和蓝牙SoC芯片,它可以与WS2812灯带进行连接和控制。

下面是WS2812与ESP32C3握手连接的原理:

  1. 硬件连接:首先,将WS2812灯带的数据线(通常是DIN引脚)与ESP32C3的一个GPIO引脚进行物理连接。此外,还需要将WS2812的电源线(VCC引脚)和地线(GND引脚)连接到适当的电源和地线上。
  2. 引脚配置:在ESP32C3上设置GPIO引脚的工作模式和电平状态。这可以通过编程方式来完成,通常使用开发板上的软件开发工具(如Arduino IDE或ESP-IDF)进行配置。对于WS2812,需要将所选的GPIO引脚配置为输出模式。
  3. 初始化:在ESP32C3上初始化WS2812控制器。这可以通过使用相应的库或驱动程序来完成。通常,需要指定连接的GPIO引脚和WS2812灯带的数量。
  4. 握手信号:WS2812灯带不需要显式的握手连接步骤。它使用一种特定的数据协议,即时传输数据。ESP32C3可以通过向WS2812发送特定格式的数据信号来与其进行通信。
  5. 数据传输:一旦初始化完成,ESP32C3可以通过发送数据信号来控制WS2812灯带的颜色和亮度。数据信号由一系列时间间隔组成,其中每个时间间隔代表一个比特位。根据时间间隔的长短,WS2812会解析数据并相应地控制每个RGB
    LED的颜色。

需要注意的是,WS2812与ESP32C3的连接原理主要涉及硬件连接和数据传输的设置。具体的连接和控制步骤可能会因使用的库或驱动程序而有所不同。因此,在实际应用中,需要参考WS2812和ESP32C3的规格和文档,以确保正确的连接和控制方式。

在这里插入图片描述

2.3.2 90舵机:

90舵机是一种常见的舵机,用于控制机械装置的角度。ESP32C3是一款基于RISC-V架构的低功耗Wi-Fi和蓝牙SoC芯片,它可以与90舵机进行连接和控制。

下面是90舵机与ESP32C3握手连接的原理:

  1. 硬件连接:首先,将90舵机的信号线(通常是控制线)与ESP32C3的一个GPIO引脚进行物理连接。此外,还需要将90舵机的电源线(通常是VCC引脚)和地线(通常是GND引脚)连接到适当的电源和地线上。
  2. 引脚配置:在ESP32C3上设置GPIO引脚的工作模式和电平状态。这可以通过编程方式来完成,通常使用开发板上的软件开发工具(如Arduino IDE或ESP-IDF)进行配置。对于90舵机,需要将所选的GPIO引脚配置为输出模式。
  3. 初始化:在ESP32C3上初始化舵机控制器。这可以通过使用相应的库或驱动程序来完成。通常,需要指定连接的GPIO引脚和舵机的参数,如舵机的最小角度、最大角度和初始位置。
  4. 握手信号:90舵机通常不需要显式的握手连接步骤。它通过接收特定的脉冲信号来控制角度。ESP32C3可以通过向舵机发送特定宽度的脉冲信号来控制其角度。通常,一个周期的脉冲信号的宽度范围是500-2500微秒,其中1500微秒表示中间位置。
  5. 数据传输:一旦初始化完成,ESP32C3可以通过发送脉冲信号来控制90舵机的角度。通过改变脉冲信号的宽度,可以控制舵机的位置。较小的脉冲宽度将使舵机转到最小角度,较大的脉冲宽度将使舵机转到最大角度。

需要注意的是,90舵机与ESP32C3的连接原理主要涉及硬件连接和脉冲信号的设置。具体的连接和控制步骤可能会因使用的库或驱动程序而有所不同。因此,在实际应用中,需要参考90舵机和ESP32C3的规格和文档,以确保正确的连接和控制方式

在这里插入图片描述

2.3.3 SSD1306:

SSD1306是一种常见的OLED显示屏,用于显示图形和文本。ESP32C3是一款基于RISC-V架构的低功耗Wi-Fi和蓝牙SoC芯片,它可以与SSD1306显示屏进行连接和控制。

下面是SSD1306与ESP32C3握手连接的原理:

  1. 硬件连接:首先,将SSD1306的SCL引脚(时钟线)与ESP32C3的一个GPIO引脚进行物理连接。同时,将SSD1306的SDA/SCL引脚(数据线)与ESP32C3的另一个GPIO引脚进行物理连接。此外,还需要将SSD1306的电源线(通常是VCC引脚)和地线(通常是GND引脚)连接到适当的电源和地线上。
  2. 引脚配置:在ESP32C3上设置GPIO引脚的工作模式和电平状态。这可以通过编程方式来完成,通常使用开发板上的软件开发工具(如Arduino IDE或ESP-IDF)进行配置。对于SSD1306,需要将所选的GPIO引脚配置为输出模式,并设置适当的电平状态。
  3. 初始化:在ESP32C3上初始化SSD1306显示屏。这可以通过使用相应的库或驱动程序来完成。通常,需要指定连接的GPIO引脚和显示屏的参数,如显示屏的分辨率和通信协议。
  4. 握手信号:SSD1306使用I2C或SPI协议与ESP32C3进行通信。对于I2C协议,ESP32C3作为主设备发送命令和数据到SSD1306作为从设备。对于SPI协议,ESP32C3通过发送时钟和数据信号来与SSD1306进行通信。具体的握手连接步骤和协议细节将取决于所选择的通信协议。
  5. 数据传输:一旦初始化完成,ESP32C3可以通过发送命令和数据来控制SSD1306显示屏的内容。根据所选择的通信协议,需要发送特定格式的数据包或字节序列。这些数据可以包括要显示的图形、文本和其他相关信息。

需要注意的是,SSD1306与ESP32C3的连接原理主要涉及硬件连接和通信协议的设置。具体的连接和控制步骤可能会因使用的库或驱动程序而有所不同。因此,在实际应用中,需要参考SSD1306和ESP32C3的规格和文档,以确保正确的连接和控制方式
在这里插入图片描述

2.4 相关外设

此部分是电源以及外壳设计制造流程

设计ESP32C3拓展板

3. 设计思路

项目地址:https://www.digikey.cn/schemeit/project/detail/4d7b30803c3c47a3877ec71aa55871cd

得捷电子的Scheme-it工具融合了原理图、框图和流程图绘制等功能,支持多种格式导出。并且,得捷电子提供原理图kicad格式导出的功能,同步导出对应器件的封装,减少查找封装的麻烦。Scheme-it无需专门下载安装,在浏览器在线运行,上手速度很快。这里我非常迅速画了系统的方案框图:

FkFFb9AJBQpD3USFMamDHeOdeN75

接下来就是一步一个脚印把模块调通,最后进行解耦实验,有机会就用3D打印机打印一个外壳。如系统设计流程图所示

FnYfZ8CSE3OHdLzNlYngdhyQryc0

4. 心得体会

可以用于FastBond2活动主题4 - 测量仪器(单片机开发测试领域),或者用于单片机简单应用开发教育等领域。

这次fastbond2活动提供了How to make自主设计的机会,而且给到各种技术支持,非常值得大学生们来参加活动,这个不是非常卷(立创那个都被挤掉啦!)

恰好学以致用,为后面开展大型系统项目开发解耦奠定基础。今后有机会,将会继续尝试scheme-it工具的使用。目前逐步熟悉了kicad原理图,还需阶段二实物验证阶段,我会用博客和视频慢慢记录这一次次有趣的开发过程。

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

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

相关文章

Linux期末复习——C编程基础

Linux下C语言编译环境概述 编译器:VI 编译器:GCC 调试器:GDB 项目管理器:make vi编辑器 三种模式 命令行模式:默认模式,不可以编辑,只可以上下移动光标“整行删除,删除字符”&…

【C++】多态 ⑨ ( vptr 指针初始化问题 | 构造函数 中 调用 虚函数 - 没有多态效果 )

文章目录 一、vptr 指针初始化问题1、vptr 指针与虚函数表2、vptr 指针初始化时机3、构造函数 中 调用 虚函数 - 没有多态效果4、代码示例 构造函数 的 作用就是 创建对象 , 构造函数 最后 一行代码 执行完成 , 才意味着 对象构建完成 , 对象构建完成后 , 才会将 vptr 指针 指向…

前端面试 面试多起来了

就在昨天 10.17 号,同时收到了三个同学面试的消息。他们的基本情况都是双非院校本科、没有实习经历、不会消息中间件和 Spring Cloud 微服务,做的都是单体项目。但他们投递简历还算积极,从今年 9 月初就开始投递简历了,到现在也有一个多月了。 来看看,这些消息。 为…

自定义表格的表头根据后端的数据进行筛选是否进行自定义表头添加按钮

自定义表格的表头根据后端的数据进行筛选是否进行自定义表头添加按钮 自定义表格的表头根据后端的数据进行筛选是否进行自定义表头添加按钮 <template><div class"box"><el-table :data"msgMapList" border class"table">&l…

药明合联港股IPO,能否撑起生物偶联药物市场的新希望?

据港交所10月29日披露&#xff0c;药明合联生物技术有限公司(简称&#xff1a;药明合联)通过港交所主板上市聆讯&#xff0c;大摩、小摩、高盛为其联席保荐人。 此消息公布后&#xff0c;进一步点燃了市场药明生物的热情&#xff0c;29-30日药明生物收获两根大阳线&#xff0c…

Linux————内置命令大全

&#xff08;一&#xff09;内置命令 Shell 内置命令&#xff0c;就是由 Bash Shell 自身提供的命令&#xff0c;而不是文件系统中的可执行脚本文件。内置命令的执行速度通常优于外部命令&#xff0c;因为执行外部命令不仅会导致磁盘I/O操作&#xff0c;而且还需要为其fork一个…

Rand-RCCA安全接收者匿名

只是学习过程记录供参考,SPHF部分未完 论文&#xff1a;Receiver-anonymity in rerandomizable RCCA-secure cryptosystems resolved(CRYPTO 2021) SPHF论文参考&#xff1a; A practical public key cryptosystem provably secure against adaptive chosen ciphertext attack…

SQLITE3 函数接口

简述 sqlite3 接口的核心元素: 两大对象&#xff0c;八大函数&#xff1b; 其中两个对象指的是: sqlite3 数据库连接对象 数据库的连接句柄(数据库的文件描述符) 代表你打开的那个 sqlite3 的数据库文件,后序对数据库的操作都需要用到这个对象 sqlite3_stmt SQL 语句对象…

android中的Package安装、卸载、更新替换流程

android系统在安装&#xff0c;删除&#xff0c;替换&#xff0c;清除数据等与应用相关的动作时&#xff0c;会发出对应的Broadcast&#xff0c;上层的应用通过注册相应的广播事件来做相应的处理。 官方文档中给出了详尽的罗列&#xff1a; ACTION_PACKAGE_ADDED 一个新应用包已…

批量修改文件名称(现学现卖版)

目录 一、复制所有文件路径二、批量修改 一、复制所有文件路径 ctrlA选中所有文件&#xff0c;点击主页&#xff0c;复制路径 粘贴到excal表格中 添加新文件名 组合命令&#xff0c;插入函数CONCATENATE ren空格<旧文件名>空格<新文件名><后缀名> …

《商业模式的逻辑》-1-为什么要学习商业模式

学习商业模式&#xff0c;也许你的idea会因为有商业模式的加持而变为现实^_^ 视频参考&#xff1a;【商业模式的逻辑】1. 为什么要学习商业模式_哔哩哔哩_bilibili【商业模式的逻辑】1. 为什么要学习商业模式是【商业模式的逻辑】清华大学&#xff08;全11讲&#xff09;沈拓 …

第四章 应用SysML基本特性集的汽车示例 P1|系统建模语言SysML实用指南学习

仅供个人学习记录 汽车模型 主要就是应用练习建模了 Automobile Domain包 用于组织模型的包图 将模型组织入包的包图 应用需求图捕获汽车规范 汽车规范中包含系统需求的需求图 应用块定义图定义车辆及其外部环境 汽车域块定义图 应用用例图表示操作车辆 描述车辆…

照片编辑软件Affinity Photo 2 for Mac v2.1.1中文激活版 2024年最新中文版下载

照片编辑软件Affinity Photo 2 for Mac v2.1.1中文激活版是一款功能强大的专业级图像编辑软件&#xff0c;由Serif公司开发。它提供了广泛的工具和功能&#xff0c;适用于摄影师、设计师和艺术家。 照片编辑软件Affinity Photo 2 for Mac v2.1.1中文激活版软件介绍 TIFF&#…

图扑 HT for Web 手机端运维管理系统

随着信息技术的快速发展&#xff0c;网络技术的应用涉及到人们生活的方方面面。其中&#xff0c;手机运维管理系统可提供数字化、智能化的方式&#xff0c;帮助企业和组织管理监控企业的 IT 环境&#xff0c;提高运维效率、降低维护成本、增强安全性、提升服务质量&#xff0c;…

HCIA数据通信——静态路由

之前的文章中我提到过静态路由&#xff1a; 数据通信——网络层&#xff08;路由器以及数据转发流程&#xff09;_路由器如何转发数据_咕噜跳的博客-CSDN博客这里只做一些简单描述。 路由器关注的是网络之间的通信。路由器以自身为中心&#xff0c;考虑的是如何将数据发送到目…

面试算法46:二叉树的右侧视图

题目 给定一棵二叉树&#xff0c;如果站在该二叉树的右侧&#xff0c;那么从上到下看到的节点构成二叉树的右侧视图。例如&#xff0c;图7.6中二叉树的右侧视图包含节点8、节点10和节点7。请写一个函数返回二叉树的右侧视图节点的值。 分析 既然这个题目和二叉树的层相关&a…

菜单栏翻译软件Bob录屏权限在哪打开

Bob是一款Mac翻译软件&#xff0c;翻译方式支持划词翻译、截图翻译以及实时翻译&#xff0c;翻译引擎支持有道翻译、百度翻译和谷歌翻译&#xff08;国内和国外双版本&#xff09;。速度非常快&#xff0c;使用简单&#xff0c;bob使用这款好用的翻译软件吧. 注意事项&#xff…

用起来顺手的在线表结构设计软件工具Itbuilder,与你共享

在线表结构设计软件工具需功能简洁&#xff0c;去除晦涩难懂的设置&#xff0c;化繁为简&#xff0c;实用为上&#xff0c;上手非常容易&#xff0c;这些itbuilder统统可以做到。 itbuilder是一款基于浏览器开发的在线表结构设计软件工具&#xff0c;借助人工智能提高效率&…

C/C++选择排序算法

文章目录 例题原理阐述代码实现总结 例题 原理阐述 从小到大排序&#xff0c;每次选择序列的最小的一个数&#xff1b; 将原来的序列A分割为排好序的序列a和未排序的序列b&#xff1b; 从未排好序的序列b中找到最小值&#xff0c;插入到排好序的序列a后面&#xff0c;形成从小…

golang 实现雪花算法

雪花算法概述 snowflake 是 twitter 开源的分布式ID生成算法&#xff0c;其核心思想为&#xff0c;一个long型的ID&#xff1a; 41 bit 作为毫秒数 - 41位的长度可以使用69年10 bit 作为机器编号 &#xff08;5个bit是数据中心&#xff0c;5个bit的机器ID&#xff09; - 10位…