【CC2530开发基础篇】继电器模块使用
一、前言
1.1 开发背景
本实验通过使用CC2530单片机控制继电器的吸合与断开,深入了解单片机GPIO的配置与应用。继电器作为一种常见的电气控制元件,广泛用于自动化系统中,用于控制大功率负载的开关操作。在本实验中,将通过GPIO口输出控制信号,控制继电器的开关状态,从而实现对外部负载的控制。
实验采用的继电器模块为低电平触发类型,意味着当输入端接收到低电平信号时,继电器将吸合,并点亮指示灯;当输入端为高电平时,继电器则断开。通过在CC2530单片机的P0.4口输出控制信号,能够精确控制继电器的工作状态。继电器模块的接线非常简单,将VCC接入电源正极,GND接入电源负极,信号输入端(IN)连接到P0.4口。通过对这些硬件配置的理解与实践,能够进一步掌握继电器在实际应用中的控制方式与电路设计。
本实验的实践过程中,不仅能加深对继电器工作原理的理解,还能通过实验操作熟悉CC2530单片机GPIO口的配置与应用,提升对硬件控制系统的理解与掌握。
这是当前实验使用的CC2530板子的实物图:
1.2 继电器模块
继电器模块是一种常用的电气控制组件,能够通过低功耗的控制信号,驱动较高功率的负载设备开关。继电器的工作原理基于电磁感应,它的核心部分是一个电磁铁,当输入端接收到触发信号时,电磁铁吸引开关触点,进而实现负载电路的通断控制。继电器广泛应用于各种自动化设备、电路保护、远程控制等场景中。
继电器模块通常包括电磁铁、触点、电路保护元件(如二极管)以及信号输入接口。电磁铁通过电流的作用产生磁场,吸引触点,使继电器连接或断开外部电路。继电器模块的信号输入端通常有两种触发方式:高电平触发和低电平触发。在本实验中,使用的是低电平触发继电器模块,这意味着当信号输入端接收到低电平信号时,继电器吸合;当信号输入端为高电平时,继电器断开。
继电器模块的接线方式相对简单,通常包括VCC、GND和IN端口。VCC端连接电源的正极,GND端连接电源的负极,而IN端是接收控制信号的输入端。在本实验中,IN端通过CC2530单片机的P0.4引脚与单片机连接,通过该引脚输出控制信号。当P0.4输出低电平时,继电器吸合,完成负载电路的闭合;当输出高电平时,继电器断开,负载电路断开。
继电器模块的输出端通常连接负载设备,如灯光、马达等。通过继电器的控制,可以实现对大功率电器的开关操作,而不需要单片机直接承担高电流负载的压力,这使得继电器成为电气控制中不可或缺的重要部件。此外,为了保护电路并提高继电器的工作稳定性,继电器模块上通常还会安装二极管,以防止继电器吸合时产生的反向电流对控制电路造成损害。
继电器模块提供了一种可靠的电气控制手段,使得低功耗的微控制器能够通过简单的信号控制,驱动更高功率的负载设备。
1.3 项目硬件模块组成
(1) CC2530单片机
作为核心控制单元,负责输出控制信号到继电器模块的输入端,通过GPIO口(P0.4)控制继电器的吸合和断开。
(2) 继电器模块
用于接收来自CC2530单片机的控制信号,继电器模块采用低电平触发方式,控制大功率负载的开关。输入端接收P0.4口的信号,继电器吸合或断开负载电路。
(3) 电源模块
提供电源给CC2530单片机和继电器模块。CC2530通常使用3.3V电源,而继电器模块一般使用5V电源。需要保证电源的稳定性,满足系统的工作需求。
(4) 控制信号输入端(IN)
继电器模块的输入端,用于接收来自单片机P0.4引脚的信号。通过该信号实现继电器的控制,高电平断开继电器,低电平使继电器吸合。
(5) 负载设备
通过继电器模块控制的电气设备,例如灯泡、电动机等。继电器模块作为开关的作用,通过控制低电平或高电平信号来启动或停止负载设备的工作。
(6) 接线端子
继电器模块的VCC、GND和IN端口用于与电源和单片机进行连接。VCC接电源的正极,GND接电源的负极,IN端与CC2530的P0.4引脚相连。
1.4 项目实现的功能
功能编号 | 功能描述 |
---|---|
(1) | 继电器控制:通过CC2530单片机的GPIO输出信号,控制继电器模块的吸合与断开,从而实现对外部负载的控制。 |
(2) | 低电平触发:继电器模块使用低电平触发方式,当P0.4口输出低电平信号时,继电器吸合并接通负载电路;当P0.4口输出高电平信号时,继电器断开,负载电路断开。 |
(3) | 负载开关控制:通过控制继电器,控制外部负载设备(如灯泡、电动机等)的开关操作,实现简单的自动化控制。 |
(4) | 硬件连接与信号传输:通过适当的接线方式连接继电器模块、CC2530单片机及电源模块,确保信号稳定传输并实现控制功能。 |
(5) | 电源管理:确保单片机和继电器模块获得所需电源(CC2530使用3.3V,继电器模块通常使用5V),并保持系统稳定运行。 |
(6) | 实时状态监控:根据继电器的吸合状态,实时控制负载的开关,适用于实际的自动化控制应用。 |
二、CC2530基础知识科普
2.1 CC2530 与 ZigBee 的含义
CC2530是什么
CC2530是一款由德州仪器(Texas Instruments,TI)推出的无线微控制器芯片,专为低功耗和无线通信应用设计。它基于8051内核,具有丰富的片上资源,包括128 KB的闪存、8 KB的RAM、多个UART和SPI接口、ADC模块等。此外,CC2530支持IEEE 802.15.4标准,这是ZigBee协议栈的基础。CC2530的低功耗特性和高集成度使其特别适用于智能家居、物联网(IoT)设备和工业自动化等应用场景。
ZigBee是什么
ZigBee是一种基于IEEE 802.15.4标准的无线通信协议,专为低功耗、低数据速率和短距离应用场景设计。它的主要特点是功耗低、组网灵活、支持大规模网络节点(如星型、网状和树形拓扑),并且具有较强的抗干扰能力。ZigBee常用于智能家居(如智能灯控、温湿度传感器)、工业物联网、医疗设备和农业监控等领域。与Wi-Fi和蓝牙相比,ZigBee适合需要低功耗、低数据速率和高网络节点容量的应用。
CC2530与ZigBee的联系
CC2530是支持ZigBee协议的硬件平台之一。CC2530的硬件架构和无线射频模块完全符合IEEE 802.15.4标准,而ZigBee协议栈则是运行在该标准之上的通信协议。通过在CC2530芯片上加载ZigBee协议栈(如TI提供的Z-Stack),用户可以构建完整的ZigBee无线通信系统。
CC2530作为ZigBee设备的实现平台,可以配置为不同类型的ZigBee节点,包括协调器(Coordinator)、路由器(Router)和终端设备(End Device)。协调器负责整个ZigBee网络的建立和管理,路由器用于中继信号扩展网络范围,终端设备通常是低功耗的传感器或执行器。
CC2530是支持ZigBee协议的硬件芯片,而ZigBee是运行在像CC2530这样的硬件平台上的通信协议。CC2530为ZigBee提供硬件支持,ZigBee则为CC2530提供实现复杂网络功能的能力。这种软硬结合使得CC2530成为ZigBee应用中的主流选择之一。
2.2 CC2530的开发环境
CC2530官方推荐的开发环境是 IAR Embedded Workbench(IAR EW8051)。
CC2530的开发环境:IAR Embedded Workbench
IAR Embedded Workbench(简称IAR)是开发CC2530的主要集成开发环境(IDE)。它是一款专业的嵌入式软件开发工具,提供了编辑、编译、调试和优化等功能,广泛支持各种嵌入式微控制器平台,包括基于8051内核的CC2530。IAR针对低功耗和无线设备开发进行了深度优化,特别适合CC2530这类资源有限的嵌入式芯片。
IAR支持德州仪器的ZigBee协议栈(如Z-Stack),并提供了配套的调试工具和编译器,使开发者能够轻松集成ZigBee协议、编写应用代码和调试固件。此外,IAR具有良好的代码优化能力,能有效减少CC2530有限内存的占用,提高程序运行效率。
为什么使用IAR开发CC2530
使用IAR开发CC2530主要是由于以下原因:
- 官方支持 德州仪器推荐使用IAR开发CC2530,因为其ZigBee协议栈(如Z-Stack)是专门为IAR优化的,许多示例代码和参考项目直接在IAR环境中运行,减少了开发者的移植工作。
- 代码优化能力强 IAR的编译器提供了高效的代码优化功能,包括针对代码大小和运行速度的优化选项。对于资源受限的CC2530(如闪存128 KB和RAM 8 KB),IAR可以显著减小二进制文件大小,让更多复杂功能得以实现。
- 调试工具完善 IAR集成了强大的调试工具,支持CC2530的片上调试功能(On-Chip Debugging)。通过与TI的调试硬件(如CC Debugger)配合,开发者可以实时查看和控制程序运行状态,进行断点设置、变量监控和性能分析。
- 多功能集成 IAR提供了丰富的功能模块,如静态分析、运行时调试和内存分析工具。这些功能特别适合复杂协议栈(如ZigBee)的开发,帮助开发者迅速定位和解决问题。
IAR与Keil的区别
Keil也是一款非常流行的嵌入式开发工具,但在开发CC2530时,IAR相比Keil具有以下显著区别:
- 官方适配支持 TI官方的ZigBee协议栈和示例项目主要为IAR设计,Keil并没有直接支持这些协议栈。因此,使用Keil开发CC2530需要进行额外的移植工作,而IAR则可以开箱即用。
- 编译器优化效果 IAR的编译器在优化代码大小方面普遍优于Keil,这对于资源有限的CC2530尤为重要。在存储和性能受限的情况下,IAR可以更高效地利用芯片资源。
- 协议栈复杂度支持 ZigBee协议栈本身较为复杂,对编译器和开发环境的要求较高。IAR对复杂嵌入式协议的支持更为成熟,而Keil的侧重点更多在通用8051开发。
- 工具链兼容性 IAR与CC2530配套的调试工具(如CC Debugger)无缝集成,调试体验更流畅。Keil在支持TI调试硬件方面不够完善,可能需要第三方工具或插件进行适配。
IAR是CC2530开发的首选环境,其强大的优化能力、完善的调试功能和与ZigBee协议的高兼容性,使得开发者能够更加高效地完成项目。而Keil尽管也支持8051平台,但在CC2530开发中的表现和适配性稍逊一筹。
2.3 IAR新建工程的步骤
三、代码设计
代码的含义看中文注释
,这里不再单独写文字介绍代码含义。
3.1 main.c
/****************************************************************************
* 文 件 名: main.c
* 描 述: 继电器接开发板P9座子上,使用P0.4口控制继电器的信息端,
* 高电平继电器断开;低电平继电器吸合,并且继电器吸合指示灯亮
****************************************************************************/
#include <ioCC2530.h>typedef unsigned char uchar;
typedef unsigned int uint;#define DATA_PIN P0_4 //定义P0.5定义为输入口/****************************************************************************
* 名 称: DelayMS()
* 功 能: 以毫秒为单位延时 16M时约为535,系统时钟不修改默认为16M
* 入口参数: msec 延时参数,值越大,延时越久
* 出口参数: 无
****************************************************************************/
void DelayMS(uint msec)
{ uint i,j;for (i=0; i<msec; i++)for (j=0; j<535; j++);
}void main(void)
{ P0DIR |= 0x10; //P0.4定义为输出口 while(1) //死循环,继电器间隔3秒开关一次{DATA_PIN = 1; //继电器断开DelayMS(3000);DATA_PIN = 0; //继电器吸合DelayMS(3000);}
}
四、总结
通过本次实验,成功地实现了CC2530单片机与继电器模块的控制应用,掌握了单片机GPIO的配置与继电器的工作原理。在实验过程中,通过P0.4口输出控制信号,成功地实现了继电器的吸合和断开,从而控制了外部负载的开关状态。实验不仅验证了继电器模块的低电平触发特性,还加深了对硬件接口和电路连接的理解。
本次实验让我们认识到,继电器作为一种常见的控制元件,能够有效地将低电平信号转化为对高功率负载的控制信号,具有广泛的应用前景。通过简单的电路设计和编程操作,可以轻松实现对各类电气设备的自动化控制。实验中的电源管理、硬件连接以及信号传输等方面,都为进一步学习和开发自动化控制系统提供了宝贵的经验。
本次实验不仅提升了对CC2530单片机硬件接口和继电器模块的应用能力,还为未来开发更复杂的控制系统奠定了基础。通过实际操作,能够更好地理解硬件与软件之间的协作方式,为后续项目的实现和优化提供了有益的参考。
相关文章:
【CC2530开发基础篇】继电器模块使用
一、前言 1.1 开发背景 本实验通过使用CC2530单片机控制继电器的吸合与断开,深入了解单片机GPIO的配置与应用。继电器作为一种常见的电气控制元件,广泛用于自动化系统中,用于控制大功率负载的开关操作。在本实验中,将通过GPIO口…...
3D 生成重建035-DiffRF直接生成nerf
3D 生成重建035-DiffRF直接生成nerf 文章目录 0 论文工作1 论文方法2 实验结果 0 论文工作 本文提出了一种基于渲染引导的三维辐射场扩散新方法DiffRF,用于高质量的三维辐射场合成。现有的方法通常难以生成具有细致纹理和几何细节的三维模型,并且容易出…...
安宝特分享 | AR技术助力医院总院与分院间的远程面诊
随着科技的迅猛发展,增强现实(AR)技术在各行各业的应用愈发广泛,特别是在医疗领域,其潜力和价值正在被不断挖掘。在现代医疗环境中,患者常常面临“看病难、看病远、看病急”等诸多挑战,而安宝特…...
【功能安全】硬件常用安全机制
目录 安全机制分类: ECC内存保护: 看门狗定时器WDT 看门狗的诊断覆盖率 程序流监控 软件自检<...
linux上qt打包(二)
sudo apt install git 新建一个文件夹 名为xiazai, chmod -R 777 xiazai cd xiazai 并进入这个文件夹,然后clone git clone https://github.com/probonopd/linuxdeployqt.git 此处可能要fanQiang才能下 cd linuxdeployqt文件夹 下载平台需要的…...
Vue3 左右2栏的宽度 比例resize
Vue3, 页面左右2栏布局,用vue-resizer.页面效果如下图。 安装 npm i vue-resizer引入 import { DragCol, DragRow, ResizeCol, ResizeRow, Resize } from vue-resizer<DragCol height"100%" width"100%" :leftPercent"15">…...
企业车辆管理系统(源码+数据库+报告)
一、项目介绍 352.基于SpringBoot的企业车辆管理系统,系统包含两种角色:管理员、用户,系统分为前台和后台两大模块 二、项目技术 编程语言:Java 数据库:MySQL 项目管理工具:Maven 前端技术:Vue 后端技术&a…...
LeetCode 1847.最近的房间:有序集合
【LetMeFly】1847.最近的房间:有序集合 力扣题目链接:https://leetcode.cn/problems/closest-room/ 一个酒店里有 n 个房间,这些房间用二维整数数组 rooms 表示,其中 rooms[i] [roomIdi, sizei] 表示有一个房间号为 roomIdi 的…...
C05S07-Tomcat服务架设
一、Tomcat 1. Tomcat概述 Tomcat也是一个Web应用程序,具有三大核心功能。 Java Servlet:Tomcat是一个Servlet容器,负责管理和执行Java Servlet、服务端的Java程序,处理客户端的HTTP请求和响应。Java Server:服务端…...
Vscode搭建C语言多文件开发环境
一、文章内容简介 本文介绍了 “Vscode搭建C语言多文件开发环境”需要用到的软件,以及vscode必备插件,最后多文件编译时tasks.json文件和launch.json文件的配置。即目录顺序。由于内容较多,建议大家在阅读时使用电脑阅读,按照目录…...
mac电脑可以使用的模拟器
BlueStacks Air 推荐-》亲测可用 BlueStacks Air https://www.bluestacks.com 支持macOS/Windows,刚新增了对Apple Silicon系列M芯片的支持 GameLoop https://www.gameloop.com/ 支持 macOS/Windows Genymotion https://www.genymotion.com/ 支持Android/macO…...
vertx idea快速使用
目录 1.官网下载项目 2.修改代码 2.1拷贝代码方式 为了能够快速使用,我另外创建一个新的maven项目,将下载项目的src文件和pom文件拷贝到新建的maven项目。 2.2删除.mvn方式 3.更新配置 4.配置application 5.idea启动项目 1.官网下载项目 从vert…...
selenium 在已打开浏览器上继续调试
关闭浏览器,终端执行如下指令,--user-data-dir换成自己的User Data路径 chrome.exe --remote-debugging-port9222 --user-data-dir"C:\Users\xxx\AppData\Local\Google\Chrome\User Data" 会打开浏览器,打开百度,如下状…...
RequestContextHolder 与 HttpServletRequest 的联系
1. 什么是 RequestContextHolder? RequestContextHolder 是 Spring 框架 提供的一个工具类,用于在当前线程中存储和获取与请求相关的上下文信息。它是基于 ThreadLocal 实现的,能够保证每个线程独立存储和访问请求信息。 与 HttpServletReq…...
力扣hot100——普通数组
53. 最大子数组和 class Solution { public:int maxSubArray(vector<int>& nums) {int n nums.size();int ans nums[0];int sum 0;for (int i 0; i < n; i) {sum nums[i];ans max(ans, sum);if (sum < 0) sum 0;}return ans;} }; 最大子数组和…...
本地部署大模型QPS推理测试
目录 1、测试环境1.1、显卡1.2、模型1.3、部署环境1.3.1、docker1.3.2、执行命令 2、测试问题2.1、20字左右问题2.2、50字左右问题2.3、100字左右问题 3、测试代码3.1、通用测试代码3.2、通用测试代码(仅供参考) 4、测试结果4.1、通用测试结果4.2、RAG测…...
内存、硬盘、DRAM、FLASH
内存 内存是计算机系统中用于临时存储和快速存取当前正在处理的数据和指令的组件,属于临时存储设备,它在计算机运行时用于存储活跃的程序和数据。内存的性能直接影响计算机的处理速度和响应能力。 内存的类型主要分为: DRAM(动态随…...
全景图转6面体图 全景图与6面体图互转
目录 图片转360度全景中心图 依赖项: 库的使用方法: 源代码: 全景图拆成6面体图: 全景图,转6面体,再转全景图: 图片转360度全景中心图 原图: 效果图: 依赖项: pip install py360convert pip install numpy==2.2 库的使用方法: https://g...
【psutil模块02】Python运维模块之系统进程管理方法
系统进程管理方法 获取当前系统的进程信息,包括进程的启动时间、查看或设置CPU亲和度、内存使用率、IO信息、socket连接、线程数等。 1.进程信息 psutil.pids()获取所有PID,使用psutil.Process()接收单个进程的PID,获取进程名、路径、状态、系统资源等…...
Java-08
类的抽象是将类的实现和使用分离, 而类的封装是将实现的细节封装起来并且对用户隐藏,用户只需会用就行。 类的合约指的是从类外可以访问的方法和数据域的集合以及与其这些成员如何行为的描述 isAlive()方法的返回值类型为布尔型(Boolean)。这个方法用于…...
四轴用的无刷电机到底是属于直流电机还是交流电机?
四轴用的无刷电机因其高效、稳定、体积小巧等特点,成为了广泛应用的动力系统之一。尽管其名称中包含“直流”二字,但无刷电机到底是属于直流电机还是交流电机,这一问题常常引发人们的探讨与困惑。 一、无刷电机的工作原理 首先,…...
Redis中的Hot key排查和解决思路
什么是Hot key Hot key其实就是被频繁访问的key,比普通的key访问量要高于十倍或者几十倍不等。例如: QPS集中在特定的Key:实例的总QPS(每秒查询率)为10,000,而其中一个Key的每秒访问量达到了7,000。带宽使…...
CMake 保姆级教程(上)
整理自 视频 【CMake 保姆级教程【C/C】】 https://www.bilibili.com/video/BV14s4y1g7Zj/?p5&share_sourcecopy_web&vd_source6eb8f46d194c5ef9f89d3331f623a9c3 1、cmake简介 源文件(.cpp / .c)要经过 工具链 1.1 工具链 1、预处理&#…...
C++类模板的应用
template <class T> class mylist{ public: // 这是一个链表的节点 struct Link{ T val; Link* next; } 增 :insert(T val) 在链表中创建新节点,节点上保存的数据为 val 删:remove(T val) 移除链表中数据为 val 的节点 改: operator[](…...
Ubuntu 18.04无有线图表且无法设置有线网络
问题背景: 今天在登陆自己的虚拟机Ubuntu系统的时候突然出现 有线连接无法连接的问题,有线连接的图标变为没有了,无法点击网络菜单的Setting模块选项。我的虚拟机有线网络连接方式是NAT方式。 没有如下有线连接图标 解决方法: …...
QoS分类和标记
https://zhuanlan.zhihu.com/p/160937314 1111111 分类和标记是识别每个数据包优先级的过程。 这是QoS控制的第一步,应在源主机附近完成。 分组通常通过其分组报头来分类。下图指定的规则仔细检查了数据包头 : 下表列出了分类标准: 普通二…...
企业内训|阅读行业产品运营实战训练营-某运营商数字娱乐公司
近日,TsingtaoAI公司为某运营商旗下数字娱乐公司组织的“阅读行业产品运营实战训练营”在杭州落下帷幕。此次训练营由TsingtaoAI资深互联网产品专家程靖主持。该公司的业务骨干——来自内容、市场、业务、产品与技术等跨部门核心岗位、拥有8-10年实战经验的中坚力量…...
杭州乘云联合信通院发布《云计算智能化可观测性能力成熟度模型》
原文地址:杭州乘云联合中国信通院等单位正式发布《云计算智能化可观测性能力成熟度模型》标准 2024年12月3日,由全球数字经济大会组委会主办、中国信通院承办的 2024全球数字经济大会 云AI计算创新发展大会(2024 Cloud AI Compute Ignite&…...
SimAI万卡集群模拟器,LLM大模型训练通信计算模拟
SimAI,是阿里巴巴构建的一个统一的模拟器,旨在大规模精确有效地模拟LLM训练过程。通过将训练框架、内核计算和集体通信库有选择地高保真集成到仿真过程中,SimAI在仿真中实现了高精度。 简单点来说,SimAI就是模拟,大模…...
Axure9设置画布固定
在使用AxureRP9设计原型时,如果遇到画布在拖动时变得难以控制,可以尝试在Windows系统中通过‘文件’>‘首选项’,或在Mac系统中通过‘AxureRP9’>‘偏好设置’进行设置,以稳定画布的行为。 现象 页面底层的画布࿰…...
window.getSelection() 获取划线内容并实现 dom 追随功能
功能:鼠标对一段文本中某些文字进行划线之后,需要在当前划线文本处出现一个功能按钮显示对划线内容进行操作,比如收藏、添加样本库等功能。 一、需要了解的鼠标事件对象属性 给 dom 元素注册鼠标事件之后,会有 event 属性&#…...
mybatis-plus超详细讲解
mybatis-plus (简化代码神器) 地址:https://mp.baomidou.com/ 目录 mybatis-plus 简介 特性 支持数据库 参与贡献 快速指南 1、创建数据库 mybatis_plus 2、导入相关的依赖 3、创建对应的文件夹 4、编写配置文件 5、编写代码 …...
浏览器可以直接请求 websocket
一、原生支持 浏览器原生支持 WebSocket 协议,这使得开发者可以直接在 JavaScript 代码中使用 WebSocket 来建立与服务器的双向通信通道。 const socket new WebSocket("ws://localhost:8080");socket.addEventListener("open", function (e…...
* 和 .* 的区别(MATLAB)
在 MATLAB 中,* 和 .* 都是用来进行乘法操作的运算符,但它们有不同的应用场景。我们将从数学和编程的角度详细解析这两者的区别,并且讲解 MATLAB 中 . 运算符的其他常见用法。 1. * 和 .* 的区别 *:矩阵乘法(线性代数…...
51c视觉~合集30
我自己的原文哦~ https://blog.51cto.com/whaosoft/12059371 #SaRA 修改一行代码就能实现高效微调!上海交大&腾讯开源:兼顾原始生成和下游任务 仅修改一行训练代码即可实现微调过程。 文章链接:https://arxiv.org/pdf/2409.06633 …...
JVM虚拟机总揽
为什么 Java 要在虚拟机里运行? 先说结论: 可以一次编译,在各个硬件平台如 Windows_x64、Linux_aarch64)都可以执行建立一个托管环境(Managed Runtime),这个托管环境能够代替我们处理一些代码…...
PCL点云库入门——PCL库可视化之PCLVisualizer类显示复杂点云信息等(持续更新)
1、PCLVisualizer类可视化 PCLVisualizer类作为PCL库可视化到的高级功能,不仅支持点云等数据的可视化,还提供了丰富的交互功能和自定义选项,如颜色调整、视角切换、标注添加等。用户可以通过PCLVisualizer类轻松实现复杂的数据分析和处理任务…...
Hugface国内镜像
问题: urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(hosthuggingface.co, port443): Max retries exceeded with url: /Salesforce/blip-image-captioning-base/resolve/main/preprocessor_config.json (Caused by ProxyError(Cannot connect to proxy.,…...
Vue3 重置ref或者reactive属性值
需要重新定义一个对象绑定复制给原对象 。 实例代码: const data () > ({groupId: ,groupCode: ,groupName: ,groupType: ,});const formData ref(data());//重置对象值 const reset()>{Object.assign(formData, data()…...
前端的Python入门指南(完):错误和异常处理策略及最佳实践
《前端的 Python 入门指南》系列文章: (一):常用语法和关键字对比(二):函数的定义、参数、作用域对比(三):数据类型对比 - 彻底的一切皆对象实现和包装对象异…...
c++:std::map下标运算符的不合理使用
这是我分析之前遗留代码时发现的一个隐藏点;不过我并不认为这样使用std::map是合理的。 看看简化后的代码,v1、v2的值应该是多少呢? #include <map>std::map<int, int> cm[2];int get_cm_value(int device, int ctrl) { auto …...
音频数据采样入门详解 - 给Python初学者的简单解释
音频数据采样入门详解 - 给Python初学者的简单解释 声音是如何变成数字的?什么是采样率?为什么要懂这个?Python小例子总结 大家好!今天我们来聊一个有趣的话题:音频数据是如何在计算机中处理的。让我用最简单的方式来解…...
vue el-dialog实现可拖拉
el-dialog实现拖拉,每次点击度居中显示,以下贴出代码具体实现,我是可以正常拖拉并且每次度显示在中间,效果还可以,需要的可以丢上去跑跑 组件部分: <el-dialog:visible.sync"dialogVisible"…...
iOS在项目中设置 Dev、Staging 和 Prod 三个不同的环境
在 Objective-C 项目中设置 Dev、Staging 和 Prod 三个不同的环境,并为每个环境使用不同的 Bundle ID,可以通过以下步骤实现: 步骤 1: 创建不同的 Build Configuration 打开项目: 启动 Xcode 并打开你的项目。 选择项目文件&…...
开源实时多模态AI Agent,搭载Gemini多模态API(在线体验)
今天发现一个惊艳的开源项目,利用多模态大模型API进行多智能体交互。支持RAG、搜索等。 TEN Agent 是一款由 TEN 提供支持的对话式 AI,集成了 Gemini 2.0 Multimodal Live API、OpenAI Realtime API、RTC 等。它提供实时的看、听和说功能࿰…...
【持续更新】Github实用命令
Intro 最近高强度使用github,遂小计于此作为备忘。 Basic github是一个代码管理软件,能够track文件变动并且管理版本,是当代coding必不可少的工具。当你安装好github在本地以后,你可以通过以下命令初始化当前文件夹(…...
B树的性质和插入过程
性质 平衡性:所有叶子节点都在同一层多路:m 阶 B 树 最多: m 个分支,m-1 个元素 最少: 根节点 2 个分支 1个元素 其他节点 ⌈ m / 2 ⌉ \lceil m/2\rceil ⌈m/2⌉ 个分支 ⌈ m / 2 ⌉ \lceil m/2\rceil ⌈m/2⌉ −…...
分布式链路追踪-02-Dapper 论文介绍
开源项目 auto-log 自动日志输出 概要 现代互联网服务通常被实现为复杂的、大规模的分布式系统。 这些应用程序是由软件模块的集合构建的,这些模块可能由不同的团队使用不同的编程语言开发,并且可以跨越多个物理设施的数千台机器。 在这样的环境中&…...
python:用 sklearn 构建线性回归模型,并评价
编写 test_sklearn_6.py 如下 # -*- coding: utf-8 -*- """ 使用 sklearn 估计器构建线性回归模型 """ import numpy as np import pandas as pd import matplotlib.pyplot as plt from matplotlib import rcParamsfrom sklearn import dataset…...
CTFHUB 信息泄露 备份文件下载-网站源码
根据提示应是猜测网站源码的备份文件,可以采用bp拼接文件名和后缀 开启bp抓包后设置第一个攻击点导入文件名 第二个攻击点导入后缀 开始暴力破解,有成功响应的 拼接到网站后缀后可以直接下载 解压缩后记事本的名字就是flag 总结: …...