基于Vision-Board的智能应急环境监测控制小车

目录

1 项目概述

1.1 项目背景

1.2 系统功能介绍

1.2.1 下位机智能小车控制系统

1.2.2 微信小程序App

1.2.3 PC上位机App

1.3 框图介绍

1.3.1 主控板卡

1.3.2 小车控制模块

1.3.3 通信模块

1.4 系统使用的技术要点

2 系统硬件设计

2.1 Version board主控板块系统结构

2.1.1 传感器接口

2.1.2 超声波测距接口

2.1.3 显示器模块

2.1.4 WIFI通信模块

2.1.5 Version Board 与 小车控制器模块通信接口

2.2 小车控制模块

2.2.1 寻迹模块

2.2.2 电机控制模块

3 系统软件设计

3.1 主控模块

3.1.1 软件架构

3.1.2 软件实现流程图

3.1.3 数据结构定义

3.1.4 主控制模块与小车控制模块通信协议定义

3.1.5 程序架构介绍

3.2 小车控制模块

3.2.1 软件架构

3.2.2 小车速度控制的PID算法

3.2.3 程序架构

3.3 上位机部分1:微信小程序模块

3.3.1 软件架构设计

3.3.2 微信小程序AppUI

3.3.3 程序架构

3.4 上位机部分2: PC上位机Server

3.4.1 软件架构设计

3.4.2 软件UI介绍

3.4.3 程序架构

3.5 RT-Thread Nano版本在STM32F103上的移植

4 功能测试

4.1 传感器数据上传功能测试

4.2 小车功能实验测试

4.2.1 蓝牙App控制小车运行(实验测试)

4.2.2 WIFI连接PC-APP控制小车运行(实验测试)


项目设计文件和源代码下载地址:

https://club.rt-thread.org/ask/article/61550c7507ea5f89.html

[24嵌入式大赛-Vision-Board]测试视频-3:APP控制小车运行轨迹

1 项目概述

1.1 项目背景

当下是一个智能化的时代,万物互联是时代的需要。基于这样的需要应运而生了许多新的技术,以支持这样的需求。在一些比较特殊的领域,单靠人力解决这些问题的成本是很高的,例如:狭窄的甬道、微小的洞穴、火灾现场、甚至是战场。这时如果使用智能机器人进行环境探测或者现场勘探,付出的代价成本会小很多。如今出现了无人机,无人小车,无人舰艇等等。这些设备的诞生都是为了解决特辣领域的需求。

本系统是一款硬件上基于Vision-Board 开发板,应用RT-Thread嵌入式操作系统设计的一款智能控制小车。其可实现采集现场环境的温度、湿度、光照强度,同时使用超声波雷达扫描环境的参数,以了解特殊环境的地形特性,并通过WIFI和蓝牙实时的发送给系统服务器,便于决策者采取措施和行动。

1.2 系统功能介绍

本系统分为3个部分,其分别为:

1)下位机智能小车控制系统;

2)微信小程序App

3)PC上位机App

1.2.1 下位机智能小车控制系统

本系统基于Vision-Board 开发板, 该板块是 RT-Thread 推出的基于瑞萨 Cortex-M85 架构 RA8D1 芯片的一款开发板。 其主要功能如下:

1)使用Vision-Board 作为主控板卡,该板块实时读取温湿度传感器,光照传感器的数据。同时通过超声波测距模块扫描环境参数。

2)控制OLED显示器,对读取的温度、湿度、光照、测距数据进行处理,将这些数据实时的显示在OLED屏幕上。

3)控制蓝牙模块,实时接收蓝牙模块接收到的从微信小程序发送的。

4)发送命令给小车运行控制模块,实现小车运行轨迹的控制。

5)实时接收和处理微信小程序App发送的控制命令,同时将这些命令转发给小车运行控制模块,实现小车的控制

6)实时上传温度、湿度、光照、测距数据给微信小程序App

7)实时接收和处理PC上位机App发送的控制命令,同时将这些命令转发给小车运行控制模块,实现小车的控制

8)实时上传温度、湿度、光照、测距数据给PC上位机App

1.2.2 微信小程序App

微信小程序App: 其用于实时接收下位机智能小车控制系统发送的环境参数数据,同时发送控制信号给下位机,可通过App实时控制小车的运行轨迹和状态。该App的操作小车的优先级高于Wifi接口(此时PC App控制小车功能失效)。该App可以实现小车运行状态的模式切换功能。

1)自动模式:此时小车通过寻迹模块自行运行

2)手动模式:控制App上的控制按钮,实时控制小车的运行状态,当超过60s没有指令下发给下位机时,小车会自动切换到自动模式。

1.2.3 PC上位机App

PC上位机App: 通过WIFI实时接收下位机智能小车控制系统发送的环境参数数据,同时发送控制信号给下位机,可通过App实时控制小车的运行轨迹和状态。

该APP可以配置小车的运行状态:

1)自动模式:此时小车通过寻迹模块自行运行

2)手动模式:控制App上的控制按钮,实时控制小车的运行状态

1.3 框图介绍

1.3.1 主控板卡

本系统基于Vision-Board 开发板, 该板块是 RT-Thread 推出的基于瑞萨 Cortex-M85 架构 RA8D1 芯片的一款开发板。 Vision Board搭载全球首颗 480 MHz Arm Cortex-M85芯片 ,其具备优越的性能和丰富的外围资源,完全满足该系统的设计要求。

同时RT-Thread提供了丰富的应用硬件和软件模块可供选择使用。便于开发者基于RT-Thread软件平台快速搭建开发平台。

1)该板卡作为系统的主控模块,其用于控制温度、湿度、光照、距离传感器,并实时从这些sensor中读取数据,并将这些数据实时发送给上位机App。

2)发送控制指令给小车控制模块,实现小车的智能控制

3)将实时读取到的温度、湿度、光照、距离数据显示在OLED屏幕上,数据更新时间间隔为1秒。

4)使用RT-Thread实时操作系统管理系统的资源,整个系统的软件架构基于该系统进行开发。

1.3.2 小车控制模块

该模块式基于STM32F103的一块扩展模块,选择该模块的原因如下:

1) 对4路(2组)电机控制,需要4路PWM信号波,而Vision-Board 开发板的扩展IO上,不能提供4路PWM控制信号。

2)由于PWM信号由STM32F103模块负责,为了降低小车运动部分软件的开发难度,将4路寻迹信号。光电编码器测速模块放在STM32F103模块上,便于系统的效应速度的实时性。

3)控制蓝牙模块,Vision-Board 开发板只提供一个外扩UART,该接口用于和STM32F103扩展模块通信。于是将蓝牙模块放在STM32F103扩展板卡上。

4)软件架构,采用RT-Thread Nano版本实现资源管理和线程处理

1.3.3 通信模块

WIFI通信模块:

系统使用该模与上位机App通信。Vision-Board开发板已经集成 RW007 模块,且在RT-Thread中已经实现其驱动程序,在RT-Studio下可以通过配置使用LWIP协议栈,快速搭建系统。

蓝牙模块:

本系统使用的蓝牙模块为HC-08蓝牙串口通信模块 ,其最大通信距离可达到80M, 其与MCU之间通过串口连接。上位机部分使用微信小程序实现App功能,其可以实时接收下位机上传的环境参数数据,该App同时可以发送控制命令给下位机,以控制小车的运行状态。

1.4 系统使用的技术要点

1)主控模块基于RT-Thread 软件架构设计

2)使用的MCU: Renesa R7FA8D1BH, STM32F103

3) MCU配置软件: FSP, STM32Cube

4) 开发软件: RT-Studio , Keil, Visual Studio 2022, 微信小程序开发工具

5)开发语言: C语言, C#, JS, WXLL, WCSS

6) 通信模块: WIFI通信,网络通信,蓝牙通信,Socket编程

7) 控制算法: PID控制技术

8)光电编码测试技术

9)寻迹检测

10)双MCU之间的协同通信

11) I2C总线挂载多个设备,实时进行数据传输

12)智能小车智能控制:PWM调速,运动方向控制

13)RT-Thread Nano版本在STM32F103上的移植

2 系统硬件设计

本系统的硬件分为两个部分:

1)Version board主控板块

2)小车驱动控制部分

2.1 Version board主控板块系统结构

2.1.1 传感器接口

该系统挂载了两个传感器:温度传感器SHT20和光照传感器ISL29035,其与Version board通过I2C接口连接,系统硬件连接图如下:

硬件实物图如下:

2.1.2 超声波测距接口

系统使用HC-SR04模块,用于探测环境情况,其硬件连接图如下:

HC-SR04模块与Version board的接口连接关系:

模块引脚Version Board IO 引脚注释
SR-04 TRIGPORT_05_PIN_10测距触发信号
SR-04 ECHOPORT_00_PIN_06测距信息

硬件实物图如下:

2.1.3 显示器模块

系统选用OLED显示屏,用于实时显示温度、湿度、光照和HC-SR04测到的距离数据,该模块与Version Board之间通过I2C接口连接。其具体连接图如下:

硬件实物图如下:

2.1.4 WIFI通信模块

Renesa Version Board中WIFI功能,该模块基于RW007模块设计,RT-Thread软件架构已经实现该硬件相关的驱动接口。笔者基于该模块的相关接口在LWIP软件框架的基础上实现Client功能。实现数据的发送和接收。其硬件实物图如下:

2.1.5 Version Board 与 小车控制器模块通信接口

由于Version board的可使用的扩展接口,不能满足小车驱动控制的要求,因此本系统将小车驱动控制部分单独设计,该模块基于STM32F103,其与主控MCU Version Board通过串口通信,其通信连接图如下:

硬件实物图如下:

2.2 小车控制模块

2.2.1 寻迹模块

本系统选用4个寻迹模块TR5000,其小车控制模块之间通过IO连接起来,连接方式如下:

硬件实物图:

2.2.2 电机控制模块

系统使用4路PWM信号控制两组电机,同时,使用光电编码器监测电机的转动速度。以实现PID闭环扣控制。

硬件实物图如下:

3 系统软件设计

3.1 主控模块

3.1.1 软件架构

基于Version board 的软件架构分为三个层级:

1) MCU驱动层接口

主要实现MCU底层驱动,包括I2C接口驱动,SPI驱动,UART接口驱动,Timer接口驱动,RTC接口驱动,IO接口驱动。

2)RT-Thread 应用层接口

RT-Thread集成了相关的驱动接口,首先使用Renesa 的配置软件FSP使能各个模块的驱动参数,然后在RT-Studio Setting中使能RT-Thread的驱动框架下的接口,就可以完成这些驱动的应用设计,此时,在App中就可以调用相关驱动,实现相应的功能。

3)App应用层

该软件层主要实现系统的相关功能,其具体内容包括如下这些:

外围资源驱动程序:

项目名称
1sht20 驱动和应用程序接口
2ISL29036驱动和应用程序接口
3HC-SR04驱动和引用程序接口
4OLED驱动程序和应用接口
5WIFI驱动模块

功能程序接口

项目名称
1LWIP Client功能
2控制小车运行状态模块
3数据上传软件模块
4系统运行状态灯模块

3.1.2 软件实现流程图

软件流程图功能介绍:

1)MCU初始化

主要包括内容: I2C接口,UART接口,IO口,配置定时器参数,初始化SPI接口,配置和使能RTC。

2)RT-Thread初始化

主要初始化RT-Thread栈空间,创建Task,初始化console控制台等。

3)外围资源初始化

主要包括初始化SHT20 Sensor, 光照传感器Sensor ISL29030,创建和HC-SR04相关的对象

4)主函数功能

Task-1: 使用RT-Thread 创建一个Task,在该task中实时读取各类Sensor的数据,并将这些数据存储到相应的数据结构中。

Task-2:读取上位机数据,并对该数据包进行解析,同时对命令进行打包,然后将该控制命令下发给小车控制模块

Task-3: 上传实时数据给上位机App,包括微信小程序App和基于WIFI模块通信的上位机App

3.1.3 数据结构定义

该数据结构主要用于将系统的Sensor和控制命令打包在一个整体的数据结构中,便于在其他模块中使用这些数据结构。系统上位机发送回传控制时,可以直接将这个数据结构发送出去,上位机接收数据包时,也直接使用该数据结构解析数据。

typedef struct
{uint8_t mode;uint8_t mcmd;union{float sr_value;uint8_t sr_valueList[4];};
​union{float humidity;uint8_t humidity_valueList[4];};
​union{float temperature;uint8_t temperature_valueList[4];};
​unsigned int luxValue;
}Struc_SensorPack;

3.1.4 主控制模块与小车控制模块通信协议定义

主控模块与小车控制模块之间通过串口进行通信,当主控模块接收上上位机发送的命令后,解析完成命令,然后对这些控制数据进行打包。并同时传送命令给小车控制模块。控制协议数据结构定义如下:

#define   HEAD                              '['
#define   END                               ']'
#define   DATALEN                           256
​
#define   RCS_SUCESS                        0x8000
#define   RCS_READ                          0x4000
#define   CAL_CMD_CODE                      0x3fff
​
#define PROTOCOL_HEADER_OFFSET              0
#define PROTOCOL_SOURADDR_OFFSET            1
#define PROTOCOL_TARADDR_OFFSET             2
#define PROTOCOL_FUMN_OFFSET                3
#define PROTOCOL_CMD_OFFSET                 5
#define PROTOCOL_DATA_LENGTH_OFFSET         7
#define PROTOCOL_DATA_OFFSET                8
​
typedef enum
{ERROR_NONE                 = 0,ERROR_OUT_OF_RANGE         = 0x0001,ERROR_UN_RECONGNITION      = 0x0002,ERROR_FAIL_SAVE_PARAMATER  = 0x0003,ERROR_PARAMATER_NOT_ESIXIT = 0x0004,
}RCS_ErrorCode_enum;
​
typedef struct {uint16_t OptCode        :14;uint16_t TransfMode     :1;uint16_t OptMode        :1;
} RCS_CommStatus;
​
typedef struct
{uint8_t *RcsParserBuff;uint8_t  HostSendBuf[DATALEN];uint8_t  sourAddress;uint8_t  targetAddress;uint8_t  frumIndex;uint8_t  dataLength;uint8_t  crc;uint16_t cmdCode;uint8_t  *dataBuff;void     (*pf_SendPut)(uint8_t*, uint16_t);void*    CmdTable;uint16_t CmdTotal;
}RCS;
​
typedef void (*PFNCT_RCS)(RCS *);
​
typedef struct
{uint8_t     command;PFNCT_MCS   pf_FuncPtr;
} RCS_CmdNode;
​

3.1.5 程序架构介绍

本程序使用RT-Studio IDE进行软件开发,系统基于Version board板卡创建项目。主控模块的程序主要在如下两个代码包中开发。

3.2 小车控制模块

3.2.1 软件架构

软件流程图功能介绍:

1) 初始化MCU外围的资源:包括定时器,IO,UART,外部中断

2)初始化外围资源:该模块的外围资源主要的定义IO的状态,以及关电编码器所使用的控制接口

3)主程序功能:

Task-1: 实时读取TR5000的状态,并将这些数据保存起来。

Task-2: 解析上位机发送的命令,执行相关的操作

Task-3: 上传从主控模块中接收到的传感器数据给微信小程序App

Task-4: 小车运行状态控制。

3.2.2 小车速度控制的PID算法

3.2.3 程序架构

小车功能控制模块使用Keil IDE开发,软件基于RT-Thread Nano架构进行开发,该软件部分主要包括两个模块

1)电机控制部分

2)运行状态功能控制部分

3.3 上位机部分1:微信小程序模块

微信小程序App通过蓝牙模块与下位机通信,其实时读取下位机上传的温度、湿度、光照强度数据,以及超声波测距参数。该App上还设计了5个按键,用于控制小车的运行状态。

3.3.1 软件架构设计

3.3.2 微信小程序AppUI

微信小程序的UI分为两个部分

1)界面-1: 主要用于扫描蓝牙Client

2) 界面-2:微信小程序主界面,该UI分为两个部分:

part-1: 显示Sensor的实时数据,包括:温度、湿度、光照、SR测距数据

part-2: 小车运行轨迹控制

3.3.3 程序架构

本程序使用微信小程序开发工具编写,其程序架构如下:

3.4 上位机部分2: PC上位机Server

PC上位机主要与Version board 的WIFI模块实现Client通信,该上位机实现了一个Server功能,可支持多个Client同时连接该设备。其主要实现实时显示下位机上传的温度、湿度、光照、SR测距数据。用户同时可以在该软件上配置小车的工作模式。操作小车的运行轨迹。

3.4.1 软件架构设计

3.4.2 软件UI介绍

软件UI分为5个区域

Part-1: 网络相关参数配置,启动或者停止监听网络Client

Part-2: 模式配置,配置为手动模式时,此时可以通过蓝牙或者PC-Client控制小车的运行状态,配置为自动模式时,此时小车启动自动寻迹功能。

Part-3: 智能车控制:该区域有5个Button,用于控制小车的运行状态。

Part-4: 传感器数据显示区

Part-5: 消息监控区,实时打印网络接收到的log。

3.4.3 程序架构

本程序使用Visual stdio 2022 开发工具编写代码,开发语言为C#, 其程序框架结构如下:

UI设计框架

3.5 RT-Thread Nano版本在STM32F103上的移植

笔者使用STM32F103板卡作为电机的控制模块,为了更好的利用STM32F103的资源,这里选用RT-Thread Nano版本作为该MCU的操作系统。在使用该系统之前,需要移植该系统,其具体步骤如下:

Step -1: 在Keil IDE上选择RTOS(笔者已经安装了RT-Thread packet)

Step-2: 配置相关的代码

1)在board.c文件中添加MCU的时钟初始化函数

2)在rtconfig.h文件中使能RT_USING_CONSOLE

3) 实现console的相关接口

4)控制台命令接口

5) SysTick_Handler函数调用rt_os_tick_callback函数

step-3: 测试RT-Thread运行情况,当系统打印如下log信息,说明RT-Thread在板卡上已经移植成功。

4 功能测试

4.1 传感器数据上传功能测试

功能一: Version board读取温度、湿度、光照强度、距离数据,并将这些数据显示在OLED屏幕上

功能二:Version board 通过WIFI连接上位机PC-App

version board 连接上服务器的log信息

PC-App上监测到Version board的连接信息,并收到message,同时在数据显示区,实时展示传感器的数据信息

功能三:微信小程序通过蓝牙接收到sensor 数据并实施显示出来

1)启动微信小程序真机调试功能

2)手机客户端启动App,并得到Sensor数据

4.2 小车功能实验测试

4.2.1 蓝牙App控制小车运行(实验测试)

测试视频链接地址:

[24嵌入式大赛-Vision-Board]测试视频-3:APP控制小车运行轨迹

微信小程序和蓝牙模块控制小车运行状态

[24嵌入式大赛-Vision-Board]测试视频-3:APP控制小车运行轨迹哔哩哔哩bilibili

微信小程序和蓝牙模块控制小车运行状态哔哩哔哩bilibili

4.2.2 WIFI连接PC-APP控制小车运行(实验测试)

step-1: 在PC-App上配置手动模式

Step-2: 点击方向按钮控制小车

Version board 收到上位机发送的log:

 测试视频链接:

[24嵌入式大赛-Vision-Board]测试视频-1:基于Vision-Board的智能应急环境监测控制小车之自动模式寻迹模式

[24嵌入式大赛-Vision-Board]测试视频-2:基于Vision-Board的智能应急环境监测控制小车之手动模式控制小车运行轨迹和环境参数数据实时上传

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

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

相关文章

《深度学习》卷积神经网络CNN 实现手写数字识别

目录 一、卷积神经网络CNN 1、什么是CNN 2、核心 3、构造 二、案例实现 1、下载训练集、测试集 代码实现如下: 2、展示部分图片 运行结果: 3、图片打包 运行结果: 4、判断当前使用的CPU还是GPU 5、定义卷积神经网络 运行结果&a…

通信工程学习:什么是NFVO网络功能虚拟化编排器

NFVO:网络功能虚拟化编排器 NFVO(Network Functions Virtualization Orchestrator),即网络功能虚拟化编排器,是网络功能虚拟化(NFV)架构中的核心组件之一。NFV是一种将传统电信网络中的网络节点…

Linux学习笔记13---GPIO 中断实验

中断系统是一个处理器重要的组成部分,中断系统极大的提高了 CPU 的执行效率,本章会将 I.MX6U 的一个 IO 作为输入中断,借此来讲解如何对 I.MX6U 的中断系统进行编程。 GIC 控制器简介 1、GIC 控制器总览 I.MX6U(Cortex-A)的中断控制器…

全栈开发(三):springBoot3中使用mybatis-plus

MyBatis-Plus &#x1f680; 为简化开发而生 (baomidou.com) 1.配置pom.xml <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.7</version></dependency&g…

90%的爆文作者都在用的AI标题公式 超实用7个迭代技巧

本文背景 我的上篇文章&#xff0c;关于我是如何在5分钟之内写出AI爆文结构化提示词的&#xff08;附50条优化指令词&#xff09;&#xff0c;已经详细的讲解了如何快速生成提示词&#xff0c;以及一些常用的优化提示词的指令&#xff0c;今天大象再来详细掰头掰头如何迭代提示…

虚拟摄像头抓屏

目录 一、下载: 二、安装 三、使用 前两天跟客户闲聊,说的了一个应用需求。他想实现将服务器操作过程实时记录下来,好比现在很多博主拍摄Vlog,再具体一点儿就是维修类短视频,可以记录维修过程,发现错误可以参照视频恢复,成功了也可以作为日后培训的教程。 实现的方法…

第一个Web项目(java+servlet+jsp)

通过百度网盘分享的文件&#xff1a;第一个Web项目 链接&#xff1a;https://pan.baidu.com/s/11vnAPeAf6Dtax7H6aYKZgA 提取码&#xff1a;1234 目录 声明&#xff1a; 简介&#xff1a; 注意&#xff1a; 操作步骤&#xff1a; 1.在idea中新建java项目&#xff0c;项目…

手写数字识别案例分析(torch,深度学习入门)

在人工智能和机器学习的广阔领域中&#xff0c;手写数字识别是一个经典的入门级问题&#xff0c;它不仅能够帮助我们理解深度学习的基本原理&#xff0c;还能作为实践编程和模型训练的良好起点。本文将带您踏上手写数字识别的深度学习之旅&#xff0c;从数据集介绍、模型构建到…

U盘格式化了怎么办?这4个工具能帮你恢复数据。

如果你思维U盘被格式化了&#xff0c;也不用太过担心&#xff0c;其实里面的数据并没有被删除&#xff0c;只是被标记为了可覆盖的状态。只要我们及时采取正确的数据恢复措施&#xff0c;就有很大的机会可以将数据找回。比如使用专业得的数据恢复软件&#xff0c;我也可以跟大家…

Keysight 下载信源 Visa 指令

用于传输原始的IQ数据 file.wiq 或者 file.bin wave_bin:bytes with open("./WaveForm.wfm","rb") as f:wave_bin f.read()log.info("File:WaveForm.wfm Size:%d Bytes"%len(wave_bin)) IMPL.sendCommand(":MEM:DATA \"WFM1:FILE1\&q…

使用 IntelliJ IDEA 连接到达梦数据库(DM)

前言 达梦数据库是一款国产的关系型数据库管理系统&#xff0c;因其高性能和稳定性而被广泛应用于政府、金融等多个领域。本文将详细介绍如何在 IntelliJ IDEA 中配置并连接到达梦数据库。 准备工作 获取达梦JDBC驱动&#xff1a; 访问达梦在线服务平台网站或通过其他官方渠道…

远程升级又双叒叕失败?背后原因竟然是。。。

最近又遇到了远程升级接连失败的情况&#xff0c;耐心和信心都备受折磨&#xff01; 事情是这样的&#xff1a;有客户反馈在乡村里频繁出现掉线的情况&#xff0c;不敢耽搁&#xff0c;赶紧联系小伙伴排查测试&#xff0c;最后发现&#xff0c;只有去年某一批模块在当下环境才…

Redis:持久化

1. Redis持久化机制 Redis 支持 RDB 和 AOF 两种持久化机制&#xff0c;持久化功能有效地避免因进程退出造成数据丢失问题&#xff0c; 当下次重启时利⽤之前持久化的文件即可实现数据恢复。 2.RDB RDB 持久化是把当前进程数据⽣成快照保存到硬盘的过程&#xff0c;触发 RDB…

c++类中的特殊函数

My_string.cpp #include <iostream> #include "my_string.h" #include <string.h> using namespace std; My_string::My_string():size(15) { this->ptr new char[size] ; this->ptr[0]\0;//串为空串 this->len 0; }; My_string::My_str…

如何使用ssm实现疫苗预约系统+vue

TOC ssm673疫苗预约系统vue 第1章 绪论 1.1选题动因 当前的网络技术&#xff0c;软件技术等都具备成熟的理论基础&#xff0c;市场上也出现各种技术开发的软件&#xff0c;这些软件都被用于各个领域&#xff0c;包括生活和工作的领域。随着电脑和笔记本的广泛运用&#xff…

Django 数据库配置以及字段设置详解

配置PostGre 要在 Django 中配置连接 PostgreSQL 数据库&#xff0c;并创建一个包含“使用人”和“车牌号”等字段的 Car 表 1. 配置 PostgreSQL 数据库连接 首先&#xff0c;在 Django 项目的 settings.py 中配置 PostgreSQL 连接。 修改 settings.py 文件&#xff1a; …

数据结构篇--折半查找【详解】

折半查找也叫做二分查找或者对数查找&#xff0c;是一种在有序数组中查找特定元素的查找算法。 折半查找的算法步骤如下&#xff1a; 将目标关键字key与数组中的中间元素比较&#xff0c;若相等则查找成功。key大于中间元素&#xff0c;就到数组中大于中间元素的部分进行查找&…

超详细超实用!!!AI编程之cursor编写官网新增轮播效果(三)

云风网 云风笔记 云风知识库 index.html内容如下&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&g…

AI绘画,让AI穿上指定衣服(附工具)

前言 AI绘画的商业应用前景非常广阔&#xff0c;用stable diffusion进行AI绘画时&#xff0c;不仅可以很容易的制作真实人物图片&#xff0c;还能让AI穿上自己指定的衣服&#xff0c;对于做服装生意的电商&#xff0c;可以节省雇佣模特的时间和费用&#xff0c;有效降低成本&a…

JEDEC DDR3 SRAM standard

DDRDouble Data Rate双倍速率,DDR SDRAM双倍速率同步动态随机存储器&#xff0c;人们习惯称为DDR&#xff0c;其中&#xff0c;SDRAM 是Synchronous Dynamic Random Access Memory的缩写&#xff0c;即同步动态随机存取存储器。而DDR SDRAM是Double Data Rate SDRAM的缩写&…