STM32第十一课:STM32-基于标准库的42步进电机的简单IO控制(附电机教程,看到即赚到)
一:步进电机简介
步进电机又称为脉冲电机,简而言之,就是一步一步前进的电机。基于最基本的电磁铁原理,它是一种可以自由回转的电磁铁,其动作原理是依靠气隙磁导的变化来产生电磁转矩,步进电机的角位移量与输入的脉冲个数严格成正比,而且在时间上与脉冲同步,因而只要控制脉冲的数量、频率和电机绕组的相序,即可获得所需的转角、速度和方向。
1.1 步进电机主要分类
目前市面上主要的步进电机,按照绕组来分的话,共有二相、三相和五相等系列,最受欢迎的是两相混合式步进电机,约占97%以上的市场份额,其原因是性价比高,配上细分驱动器后效果良好。
该种电机的基本步距角为1.8°/步,配上半步驱动器后,步距角减少为0.9°,配上细分驱动器后其步距角可细分达256倍(0.007°/微步),由于摩擦力和制造精度等原因,实际控制精度略低,同一步进电机可配不同细分的驱动器以改变精度和效果。
目前主流的步进电机一般是42步进电机和57步进电机,42步进电机的42,是指长宽各42mm,而不是其它含义。高一点的力矩大一些。步距角为1.8°。42步进电机在3D打印、网友DIY的各种写字机中用的非常多。
42步进电机:
57步进电机:
1.2 步进电机结构拆解
实际上,步进电机内部的结构主要是由很多小齿交错而成的,每交错一次步距角就可以缩小一倍,步距角越小则步进电机越精密,旋转一圈所需要的脉冲也就越多。目前市面上不管是42电机,还是57电机,亦或者是86电机,步距角一般都是1.8°。
混合式42步进电机爆炸视图:
42步进电机实物拆卸图:
42步进电机内部齿图:
二:TB6600驱动器简介
步进电机驱动器有很多,就比如说28步进电机驱动器ULN2003,A4988以及我们使用的TB6600等等。
2.1 TB6600驱动器原理介绍
额,说实话驱动器的原理十分复杂,以我的能力我也讲不清楚,你也听不明白,所以还是搬出来最权威的手册吧!
TB6600驱动器手册地址:20161012102520yg1obn.pdf (dfrobot.com.cn)
虽然驱动器原理咱看不明白,但是不妨碍我们使用啊!
我们只要知道每一个端口分别是什么功能,怎么接,完全就可以了。
三:电路接线图示
3.1 TB6600驱动器端口功能讲解
如下图所示,TB6600驱动器一共有12个端口,以及一排小开关。12个端口分别为电机使能信号(EN+)(EN-)、方向控制信号(DIR+)(DIR-)、步进脉冲信号(PIL+)(PUL-)、电机两相(A+,A-,B+,B-)、驱动电源(+,-)。一排小开关分别是细分设置和电流设置,sw1-sw3是细分设置,sw4-sw6是电流设置。
①电机使能信号(EN+)(EN-):电机使能信号,全名enable。顾名思义,就是让电机有旋转的能力和失去旋转的能力,他就相当于一个软件开关,只需要通过代码设计就可以实现步进电机使能或者失能,在失能的状态下,无论做何种操作,电机都不会有反应。
②方向控制信号(DIR+)(DIR-):方向控制信号,全名direction。顾名思义,就是可以通过控制这个端口的高低电平进而控制电机的旋转方向。后续我们可以使用这个驱动器的特性实现按键控制电机旋转方向或者其他一些操作。
③步进脉冲信号(PIL+)(PUL-):步进脉冲信号,全名pulse。步进脉冲信号是控制步进电机的灵魂信号,简而言之,控制步进电机,使能信号端口可以不接,顶多就让电机一直转呗。方向信号也可以不接,顶多步进电机无法改变方向。但是脉冲信号一定要接,根据目前对驱动器的了解,驱动器内部的芯片会根据你的脉冲信号,转换成能让步进电机旋转的信号,具体怎么做的还是去看驱动器技术文档哈。
④电机两相(A+,A-,B+,B-):按照目前的步进电机来说,市场上目前现行的步进电机一般都是二相步进电机,因为这样做在保证精度的情况下,更省成本。
⑤拨码开关:拨码开关的sw1-sw3是细分设置,sw4-sw6是电流设置。像42电机,我们假设采用8细分,转一圈需要1600个脉冲。他的额定电流是1.5A,那么我们就需要根据电流设定表,给他设定成 SW4 ON ,SW5 ON ,SW6 OFF。
至于怎么设置拨码开关,在驱动器背部都写的明明白白的,按照上面写的来做就行了。
3.2 步进电机接线示意图
想要实现控制,必须有控制器、驱动器和控制对象。控制器我们就选用STM32F407单片机进行控制,至于为什么选这个因为我只有这个,用STM32F103单片机也不是不可以。驱动器我们就选用TB6600步进电机驱动器,控制对象就是我们的42步进电机。
3.3.1 驱动器接线
驱动器接线一般有两种,共阴极接法和共阳极接法。其实本质上都是一致的,共阴极即是把EN-、DIR-、PUL-全部都接到控制器上面的GND,也就是把他们全部接为低电位,其他端口只要设置为高电平就可以实现功能;共阳极也就是反过来接线,EN-、DIR-、PUL-全部都接到控制器上面的VCC,也就是把他们全部接为高电位,其他端口只要设置为低电平就可以实现功能。本质上都是检测到电位差实现相关功能。我们在此采用共阴极的接法。
先凑合看一下吧,本人画图能力实在有限。
注意到驱动器能够接受的输入电压在直流9-42V左右,最合适的还是在24V。注意驱动器VCC和GND不要接反了,接反了驱动器就要抽烟抽死了。
剩下的A、B两相,A+A-,B+B-,你不用担心步进电机的四根线,到底谁是A相,谁是B相。电机内部结构特性决定了谁是都可以,只是旋转方向会有差别而已(好像是这样)。教你一个小妙招,电机上面一共四根线,从中找出两根,只要这样根线碰在一起,步进电机手动旋转起来有阻力,那就说明这是同一相,不需要管是A相B相,暂定是A相,那另外两根线就是B相了。
3.3.2 控制器接线
控制器接线很简单,接那个I/O口全看自己的设置,就像我的话,我设置的PB3是控制步进电机旋转的I/O口,PB4是控制步进电机方向的I/O口,接线时只需要将PUL+接到PB3,DIR+接到PB4即可,这点没有什么可说的。
四:代码编写思路
下面就是紧张又刺激的代码编写阶段了。在这里我说一下主要最为重要的代码怎么编写,想要全套源码的uu们可以在文档结尾下载工程源码。
其实在代码里面,注释已经写得很清楚了,基本上不需要再怎么介绍了,直接上代码。
Motor.c
#include "Motor.h"
#include "Delay.h"
#include "led.h"#define TotalNulses 1600 //设置步进电机为8细分,脉冲总数为1600脉冲// Motor 配置
void Motor_Init(void)
{ //首先打开准备输出引脚的时钟RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);//紧接着初始化对应的GPIO端口,进行相应的参数配置GPIO_InitTypeDef GPIO_InitStructure; //创建GPIO_InitStructure结构体GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //设置引脚模式为输出模式GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //设置为推挽输出GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4; //设置引脚为PB3和PB4引脚GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN; //设置为下拉输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置为输出速度为50MHzGPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_SetBits(GPIOB,GPIO_Pin_3 | GPIO_Pin_4); //设置引脚的初始状态为高电位状态
}void Motor_Start(void)
{LED_BLUE_OFF; //宏定义,蓝灯打开LED_RED_ON; //宏定义,红灯熄灭Delay_ms(1000);GPIO_SetBits(GPIOB,GPIO_Pin_4);for(int i= 0; i < TotalNulses*2; i++) //模拟PWM控制步进电机{GPIO_SetBits(GPIOB,GPIO_Pin_3);Delay_us(500); //可以修改延时函数里面的参数,更改步进电机旋转的速度。本质上是模拟改变了PWM的频率,进而改变了速度GPIO_ResetBits(GPIOB,GPIO_Pin_3);Delay_us(500);}LED_BLUE_ON;LED_RED_OFF;Delay_ms(1000);GPIO_ResetBits(GPIOB,GPIO_Pin_4); //置PB4为低电位,改变旋转方向for(int i= 0; i < TotalNulses*2; i++) //跟上文一样,不过是改变了步进电机旋转的方向{GPIO_SetBits(GPIOB,GPIO_Pin_3);Delay_us(500);GPIO_ResetBits(GPIOB,GPIO_Pin_3);Delay_us(500);}
}
这段代码主要配置了控制步进电机脉冲和方向的两个端口引脚,然后自定义了一个电机控制函数,在函数里面模仿了PWM波形进行步进电机的控制。
Main.c
#include "stm32f4xx.h"
#include "led.h"
#include "Delay.h"
#include "usart.h"
#include "Motor.h"
#include "stm32f4xx_tim.h"uint16_t speed=500;// 程序入口主函数
int main(void)
{USART1_Init(115200); // 初始化USART1; 注意, 在bsp_USART.c文件底部,printf已重定向到usart1, 可用于与电脑上位机通信;Led_Init(); // LED 初始化Motor_Init(); // 配置TIMwhile (1) // while函数死循环;作用:不能让main函数运行结束,否则会产生硬件错误{Motor_Start();}
}// 每个代码文件的末尾,注意要加两个空行
还有其他例如通信USART,LED模块在mian函数里面运行,移植时可能会出现灯不亮等情况,只需要简单的修改参数就可以了。至于工程源码大家可以到文章结尾进行下载。
五:实操效果展示
当然是可以旋转的更快的,只需要修改Motor,c里面的模拟PWM波形函数里面的Delay_us()的参数即可,本质上是修改了模拟PWM的频率,频率越高电机旋转的就越快。
文件源码分享:02-1 Simple IO Port Control Of Stepper Motor.zip - 蓝奏云
关于后续的PWM控制,将会在后面进行讲解。看在码字不易,用的不是某盘的份上,uu们可以点个赞嘛!谢谢。
,关注我,持续更新中~
相关文章:
STM32第十一课:STM32-基于标准库的42步进电机的简单IO控制(附电机教程,看到即赚到)
一:步进电机简介 步进电机又称为脉冲电机,简而言之,就是一步一步前进的电机。基于最基本的电磁铁原理,它是一种可以自由回转的电磁铁,其动作原理是依靠气隙磁导的变化来产生电磁转矩,步进电机的角位移量与输入的脉冲个数严格成正…...
模拟(算法-6)
模拟简介 模拟就是根据题目要求,比着葫芦画瓢,即直接按照题目要求写就行了 考察的是我们的编码能力 步骤: 演草纸上画图模拟(重要) 代码编写 虽然很多时候此类题比较简单,但是也有例外,如本文第…...
Clickhouse集群部署(3分片1副本)
Clickhouse集群部署 3台Linux服务器,搭建Clickhouse集群3分片1副本模式 1、安装Java、Clickhouse、Zookeeper dpkg -i clickhouse-client_23.2.6.34_amd64.deb dpkg -i clickhouse-common-static_23.2.6.34_amd64.deb dpkg -i clickhouse-server_23.2.6.34_amd64…...
MySQL(六)MySQL 案例
1. MySQL 案例 1.1. 设计数据库 1、首先根据相关业务需求(主要参考输出输入条件)规划出表的基本结构 2、根据业务规则进行状态字段设计 3、预估相关表的数据量进行容量规划 4、确定主键 5、根据对相关处理语句的分析对数据结构进行相应的变更。 设计表的时…...
【网络协议栈】TCP/IP协议栈中重要协议和技术(DNS、ICMP、NAT、代理服务器、以及内网穿透)
每日激励:“请给自己一个鼓励说:Jack我很棒!—Jack” 绪论: 本章是TCP/IP网络协议层的完结篇,本章将主要去补充一些重要的协议和了解一些网络中常见的名词,具体如:DNS、ICMP、NAT、代理服务器…...
NLP中特征提取方法的总结
1. Bag of Words (BOW) 描述:将文本表示为一个词汇表中的词频向量,忽略词的顺序。 优点:实现简单,广泛应用。 缺点:不考虑词序和上下文信息,向量空间维度可能非常大。 应用:文本分类、情感分…...
《HarmonyOS第一课》焕新升级,赋能开发者快速掌握鸿蒙应用开发
随着HarmonyOS NEXT发布,鸿蒙生态日益壮大,广大开发者对于系统化学习平台和课程的需求愈发强烈。近日,华为精心打造的《HarmonyOS第一课》全新上线,集“学、练、考”于一体,凭借多维融合的教学模式与系统课程设置&…...
JMeter + Grafana +InfluxDB性能监控 (二)
您可以通过JMeter、Grafana 和 InfluxDB来搭建一个炫酷的基于JMeter测试数据的性能测试监控平台。 下面,笔者详细介绍具体的搭建过程。 安装并配置InfluxDB 您可以从清华大学开源软件镜像站等获得InfluxDB的RPM包,这里笔者下载的是influxdb-1.8.0.x86_…...
【微服务】3、配置管理
微服务配置管理 已掌握的微服务组件及配置管理问题引出 已掌握注册中心、Openfan、远程调用、负载均衡、网关等组件,具备微服务开发能力,但仍存在其他问题待解决。微服务和网关存在大量配置文件,其中包含很多重复配置,如数据库、日…...
数据结构(顺序表)
文章目录 数据结构概述什么是数据结构数据结构的类型常见的数据结构 线性表概念举例 顺序表基本概念基本操作 完整代码顺序表优缺点总结 数据结构概述 什么是数据结构 数据结构:数据结构就是计算机存储,组织,管理数据的方式方法 数据结构的…...
ARM架构服务器安装部署KVM虚拟化环境
一、查看内核是否支持KVM虚拟化 针对ARM架构服务器,若/dev/kvm 和 /sys/module/kvm任意一个不存在,都说明内核不支持KVM虚拟化 [rootlocalhost ~]# ls -l /dev/kvm crw-rw---- 1 root kvm 10, 232 May 6 09:18 /dev/kvm[rootlocalhost ~]# ls /sys/mo…...
Azkaban其二,具体使用以及告警设置
目录 Azkaban的使用 1、使用Flow1.0(比较老旧) 2、Flow2.0的用法 1、小试牛刀 2、YAML格式的数据 3、多任务依赖 4、内嵌流(嵌套流)案例 5、动态传参 3、Azkaban的报警机制 1)邮箱通知 2)电话报警机制 4、关…...
不只是mini-react第一节:实现最简单mini-react
项目总结构: ├─ 📁core │ ├─ 📄React.js │ └─ 📄ReactDom.js ├─ 📁node_modules ├─ 📁tests │ └─ 📄createElement.spec.js ├─ 📄App.js ├─ 📄in…...
MySQL数据库备份与恢复策略
数据是企业和应用的核心资产,可靠的备份和恢复策略是确保数据安全性和业务连续性的关键。在本篇文章中,我们将详细介绍 MySQL 数据库的备份和恢复方法,包括逻辑备份、物理备份、自动化备份,以及常见问题的处理方法。 一、逻辑备份 逻辑备份是通过导出数据库的结构和数据生…...
SpringBoot下载文件的几种方式
小文件:直接将文件一次性读取到内存中,文件大可能会导致OOM GetMapping("/download1")public void download1(HttpServletResponse response) throws IOException {// 指定要下载的文件File file new File("C:\\Users\\syd\\Desktop\\do…...
探索现代 Web 开发中的流行技术:深入学习 Vite 的使用
在前端开发的世界中,构建工具扮演着越来越重要的角色。从 Webpack 到 Parcel,再到 Rollup,每个工具都有自己的独特定位和目标。而今天,我们要讨论的是一款近年来迅速崛起并受到广泛欢迎的构建工具— Vite。 本文将从基本原理到实…...
React虚拟DOM:理解和应用
写在前面 在现代前端开发中,React 是一个非常流行的 JavaScript 库,用于构建用户界面。它引入了一个名为“虚拟 DOM”(Virtual DOM)的概念,这个概念对于 React 的高效性能和易用性至关重要。本文将深入探讨 React Vir…...
C++和SFML游戏入门
让我们深入探讨一下如何使用C和SFML(Simple and Fast Multimedia Library)来创建一个更为详细的游戏代码示例。我们将构建一个简单的2D游戏,其中包含一个可移动的角色、基本的碰撞检测以及简单的得分系统。 项目结构 首先,我们定…...
Django 表单
Django 表单 Django 表单是 Web 开发中一个重要的组成部分,它允许用户与网站进行交互。在 Django 框架中,表单用于收集和验证用户输入的数据。Django 提供了一个强大的表单处理系统,使得开发者能够轻松地创建表单,处理表单数据,并进行验证。 1. Django 表单基础 Django…...
Ubuntu 安装英伟达显卡驱动问题记录
建议 无论什么版本的系统,都建议从官网下载驱动,一般下载下来后是一个 run 开头的可执行程序,直接在命令行执行就可以。 之所以这么建议,是因为使用 包管理工具安装的驱动一般都是社区版本,社区版本的问题就是没有签名,需要在 BIOS 内关闭 security boot 才可以加载对应…...
机器视觉面试题PDF
以下是一些机器视觉面试题PDF资源的推荐: GitHub仓库• 《百面计算机视觉》面试题整理:这个GitHub仓库整理了计算机视觉算法岗的面试题,包括深度学习基础、机器学习高频面试题、传统CV(Opencv面试题)、目标检测、图像分类、图像分割、Transfo…...
【网络协议】IPv4 地址分配 - 第一部分
文章目录 十进制与二进制网络如何被寻址地址类型网络地址广播地址主机地址 如何确定网络和主机部分的位数?网络中的主机数量与前缀号的关系计算每个前缀的主机数量公式 子网掩码二进制与操作(Binary ANDing)与操作(AND Operation&…...
掌握 Dockerfile:格式、解析器指令、环境变量替换
Docker 是一个开源平台,旨在自动化应用程序的构建、交付和运行。通过 Dockerfile,您可以定义镜像的构建过程。Dockerfile 是由一系列指令组成的文件,Docker 根据这些指令构建镜像。本文将介绍常用的 Dockerfile 指令、格式、解析器指令以及环…...
AWS Glue基础知识
AWS Glue 是一项完全托管的 ETL(提取、转换、加载)服务,与考试相关,尤其是在数据集成、处理和分析方面。 1.数据集成和 ETL(提取、转换、加载) AWS Glue 主要用于构建 ETL 管道以准备数据以进行分析。作为…...
单片机-LED实验
1、51工程模版 #include "reg52.h" void main(){ while(1){ } } 2、LED灯亮 #include "reg52.h" sbit LED1P2^0; void main(){ while(1){ LED10; } } 3、LED闪烁 #include "reg52.h" sbit LED1P2^0; //P2大…...
使用Python实现健康跟踪应用:打造智能健康管理助手
随着人们对健康的关注日益增强,智能健康管理逐渐成为热门趋势。通过持续跟踪身体状况、饮食、运动和睡眠等方面的数据,我们可以更好地了解自己的健康状态,并采取相应的措施来保持身体健康。Python,作为一种简洁且功能强大的编程语言,非常适合用来开发健康跟踪应用。本文将…...
结构型模式6.享元模式
结构型模式 适配器模式(Adapter Pattern)桥接模式(Bridge Pattern)组合模式(Composite Pattern)装饰器模式(Decorator Pattern)外观模式(Facade Pattern)享元…...
AWS S3文件存储工具类
pom依赖 <!--aws-s3--> <dependency><groupId>com.amazonaws</groupId><artifactId>aws-java-sdk-s3</artifactId><version>1.12.95</version></dependency>S3Utils import cn.hutool.core.util.ZipUtil; import com.a…...
MacDriver 项目推荐
MacDriver 项目推荐 macdriver Native Mac APIs for Go. Soon to be renamed DarwinKit! 项目地址: https://gitcode.com/gh_mirrors/ma/macdriver 1. 项目基础介绍和主要编程语言 MacDriver 是一个开源项目,旨在为 Go 语言提供原生的 macOS API 支持。该项…...
笔记:一次mysql主从复制延迟高的处理尝试
背景 mysql 5.7 主从复制 主库进行了一次灌数,导致多个大事务产生,主从延迟下不去,经确认该表最终truncate,并且该表仅有insert和select操作,故对该表的事务进行跳过,直到同步至truncate 跳过事务需谨慎&…...
《Vue3实战教程》40:Vue3安全
如果您有疑问,请观看视频教程《Vue3实战教程》 安全 报告漏洞 当一个漏洞被上报时,它会立刻成为我们最关心的问题,会有全职的贡献者暂时搁置其他所有任务来解决这个问题。如需报告漏洞,请发送电子邮件至 securityvuejs.org。…...
Linux 基础 6.进程
文章目录 6.1 进程和程序1. **程序 (Program)**2. **进程 (Process)**3. **程序与进程的区别**4. **进程的创建与执行**5. **总结** 6.2 进程号和父进程号1. **进程号 (PID)**2. **进程号的分配**3. **父进程号 (PPID)**4. **进程树结构**5. **进程号的限制与调整**6. **总结**…...
LeetCode:700.二叉搜索树中的搜索
跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的! 代码随想录 LeetCode:700.二叉搜索树中的搜索 给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你…...
web实操9——session
概念 数据保存在服务器HttpSession对象里。 session也是域对象,有setAttribute和getAttribute方法 快速入门 代码 获取session和塞入数据: 获取session获取数据: 请求存储: 请求获取: 数据正常打印:…...
有哪几种方法可以使html脱离文档流?
position: absolute:会使元素脱离文档流,并且相对于最近的已定位的祖先元素进行定位。如果没有已定位的祖先元素,则相对于 <html> 元素定位。 元素脱离文档流,不再占据空间。 不会影响后续元素的位置和布局。 可以通过 top、right、…...
戴尔/Dell 电脑按什么快捷键可以进入 Bios 设置界面?
BIOS(基本输入输出系统)是计算机硬件与操作系统之间的桥梁,它负责初始化和测试系统硬件组件,并加载启动操作系统。在某些情况下,如调整启动顺序、更改系统时间或日期、修改硬件配置等,您可能需要进入BIOS进…...
Fast R-CNN模型详解及分析
模型背景 在目标检测领域的发展历程中,R-CNN系列模型标志着一个重要转折点。然而,在Fast R-CNN问世之前,这一领域的研究仍面临一些显著挑战: 计算效率低下 :早期模型如R-CNN和SPPNet虽然在准确性方面取得进展,但在计算效率上仍有待提高。特别是R-CNN需要多次运行CNN并单…...
android studio 写一个小计时器(版本二)
as版本:23.3.1patch2 例程:timer 在前一个版本的基本上改的,增加了继续的功能,实现方法稍微不同。 动画演示: activity_main.xml <?xml version"1.0" encoding"utf-8"?> <androidx…...
STM32完全学习——使用定时器1精确延时
一、定时器的相关配置 首先一定要是递减定时器,递增的不太行,控制的不够准确,其次在大于10微秒的延时是非常准确的,小于的话,就没有那没准,但是凑合能用。误差都在一个微秒以内。使用高级定时器也就是时钟…...
如何在 Ubuntu 22.04 上安装 Cassandra NoSQL 数据库教程
简介 本教程将向你介绍如何在 Ubuntu 22.04 上安装 Cassandra NoSQL 数据库。 Apache Cassandra 是一个分布式的 NoSQL 数据库,旨在处理跨多个普通服务器的大量数据,并提供高可用性,没有单点故障。Apache Cassandra 是一个高度可扩展的分布…...
【MATLAB第112期】基于MATLAB的SHAP可解释神经网络回归模型(敏感性分析方法)
【MATLAB第112期】基于MATLAB的SHAP可解释神经网络回归模型(敏感性分析方法) 引言 该文章实现了一个可解释的神经网络回归模型,使用BP神经网络(BPNN)来预测特征输出。该模型利用七个变量参数作为输入特征进行训练。为…...
小程序学习06——uniapp组件常规引入和easycom引入语法
目录 一 组件注册 1.1 组件全局注册 1.2 组件全局引入 1.3 组件局部引入 页面引入组件方式 1.3.1 传统vue规范: 1.3.2 通过uni-app的easycom 二 组件的类型 2.1 基础组件列表 一 组件注册 1.1 组件全局注册 (a)新建compoents文件…...
回归预测 | MATLAB实现CNN-BiLSTM-Attention多输入单输出回归预测
回归预测 | MATLAB实现CNN-BiLSTM-Attention多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-BiLSTM-Attention多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 一、方法概述 CNN-BiLSTM-Attention多输入单输出回归预测方法旨在通过融合CNN的局…...
直接插入排序、折半插入排序、2路插入排序、希尔排序
本篇是排序专栏博客的第一篇,主要探讨以 “插入” 为核心思想的排序算法该如何实现 文章目录 一、前言二、直接插入排序1. 算法思想与操作分析2. 代码实现version 1version 2 3. 复杂度分析 三、折半插入排序1. 算法思想与操作分析2. 代码实现3. 复杂度分析 四、2路…...
HTML-列表标签
列表是一系列排列好的项目,主要分成两类:有序列表和无序列表。 有序列表是每个列表项前面有编号,呈现出顺序,就像下面这样。 1. 列表项 A 2. 列表项 B 3. 列表项 C无序列表则是列表项前面没有编号,只有一个列表符号&…...
计算机网络原理(一)
嘿! 新年的第一篇博客,大家新年快乐呀!希望大家新的一年要多多进步噢! 1.TCP/IP的四层/五层参考模型有哪些层,各层的特点是?计算机网络分层的好处是? TCP/IP 四层参考模型 应用层:直接为用户…...
扩散模型论文概述(二):Google系列工作【学习笔记】
视频链接:扩散模型论文概述(二):Google系列工作_哔哩哔哩_bilibili 本视频讲的是Google在图像生成的工作。 同样,第一张图片是神作,总结的太好了! 在生成式AI的时代,OpenAI和Google不…...
第四届计算机、人工智能与控制工程
第四届计算机、人工智能与控制工程 The 4th International Conference on Computer, Artificial Intelligence and Control Engineering 重要信息 大会官网:www.ic-caice.net 大会时间:2025年1月10-12日 大会地点:中国合肥 (安徽大学磬苑…...
UE4.27 Android环境下获取手机电量
获取电量方法 使用的方法时FAndroidMisc::GetBatteryLevel(); 出现的问题 但是在电脑上编译时发现,会发现编译无法通过。 因为安卓环境下编译时,包含 #include "Android/AndroidPlatformMisc.h" 头文件是可以正常链接的,但在电…...
【人工智能】基于Python与OpenCV构建简单车道检测算法:自动驾驶技术的入门与实践
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着自动驾驶技术的快速发展,车道检测作为自动驾驶系统中的一个重要组成部分,起着至关重要的作用。本文将介绍如何利用Python与OpenCV库构…...