2024-9-24 17:54
223 次阅读|
0 个评论
物联网系统中为什么要使用电机 物联网系统中使用电机可以提高设备的智能化水平,实现远程控制、自动化控制、故障诊断、预测维护等功能,从而提高生产效率、降低维护成本、提高生活质量。 物联网系统中的电机应用方案通常涉及到电机控制、监测和维护等方面。以下是一些常见的物联网电机应用方案: 1、 智能家居 :在智能家居中,物联网电机可以用于控制窗帘、窗户、门锁等设备的开关。通过物联网技术,可以实现远程控制、定时控制、场景控制等功能,提高家居的智能化水平。 2、 工业自动化 :在工业自动化中,物联网电机可以用于控制生产线、物流输送线等设备的运行。通过物联网技术,可以实现设备的远程监控、故障诊断、预测维护等功能,提高生产效率和降低维护成本。 3、 智能交通 :在智能交通中,物联网电机可以用于控制信号灯、路灯、广告牌等设备的开关。通过物联网技术,可以实现设备的远程控制、自适应控制等功能,提高交通的安全性和效率。 4、 智能农业 :在智能农业中,物联网电机可以用于控制灌溉系统、通风系统、遮阳系统等设备的运行。通过物联网技术,可以实现设备的远程监控、自动化控制等功能,提高农业的生产效率和降低劳动成本。 本文会为大家详解电机家族中的重要成员——舵机。 舵机的定义 首先,舵机”这个名号其实是一个俗称,是那些玩航模、船模的人起的名字,因为这种电机常被用于舵面控制。舵机其实就是一个简单的伺服电机系统,也是最常见的伺服电机系统。 舵机是一种位置(角度)伺服的驱动器,适用于需要角度不断变化并可以保持的控制系统,由下壳、控制电路、电机、中壳、齿轮组、轴承以及上壳组成。舵机是一个闭环控制系统。控制电路板接收来自信号线的控制信号,控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘。舵机的输出轴与位置反馈电位计相连,舵盘转动的同时带动位 置反馈电位计,电位计将输出一个电压信号到控制电路板进行反馈,然后控制电路板根据所在位置决定电机转动的方向和速度,从而达到目标停止。 舵机的结构 类似舵机这样的伺服系统通常由 小型电动机 , 电位计 , 嵌入式控制系统 和变速箱组成。电机输出轴的位置由内部电位计不断采样测量,并与微控制器(例如STM32,Arduino)设置的目标位置进行比较;根据相应的偏差,控制设备会调整电机输出轴的实际位置,使其与目标位置匹配。这样就形成了 闭环控制系统 。 闭环系统 变速箱降低了电机的转速,从而增加了输出轴上的输出扭矩。输出轴的最大速度通常约为60 RPM。 具体结构如下图所示; 内部结构 ①:信号线:接收来自微控制器的控制信号; ②:电位器:可以测量输出轴的位置量,属于整个伺服机构的反馈部分; ③:内部控制器:处理来自外部控制的信号,驱动电机以及处理反馈的位置信号,是整个伺服机构的核心; ④:电机:作为执行机构,输出多少转速,转矩,位置; ⑤:传动机构/舵机系统:该机构根据一定传动比,将电机输出的行程缩放到最终输出的角度上; 舵机的原理 舵机内部的控制电路接收来自信号线的PWM控制脉冲,控制电机旋转,电机带动减速齿轮组,最后传动输出至舵盘,进而使舵机转动角度并保持。控制流程如下图所示: 舵机内部基准电路产生了周期为20ms、脉宽为1.5ms的基准信号,其体现为反馈基准电压Vref; 控制电路捕获外部PWM控制信号,经处理后输出一个直流偏置电压Vin; 将直流偏置电压Vin和反馈基准电压Vref进行比较,输出电压差; 电压差输出到电机驱动芯片驱动电机,其中电压差的正负决定电机的正反转,压差大小决定旋转的角度,电压差为0时,电机停止转动; 特别注意:采集的控制信号主要是脉冲的宽度,要使舵机输出轴角度发生变化,改变的是脉冲宽度(PWM控制时是控制占空比) 标准的舵机有3条导线,分别是:电源线(红色)、地线 (黑色或棕色)、控制线(黄色); PWM信号由接收通道进入信号解调电路进行解调,获得一个直流偏置电压。直流偏置电压与电位器的电压比较,获得电压差并输出。该输出送入电机驱动集成电路以驱动电机正反转。当电机转动时,通过级联减速齿轮带动电位器旋转,直到电压差为O,电机停止转动。 舵机的控制信号是PWM信号,利用占空比的变化,改变舵机的位置。 舵机的伺服系统由可变宽度的脉冲来进行控制,控制线是用来传送脉冲的。脉冲的参数有最小值,最大值,和频率。一般而言,舵机的基准信号都是周期为20ms,宽度为1.5ms。这个基准信号定义的位置为中间位置。舵机有最大转动角度,中间位置的定义就是从这个位置到最大角度与最小角度的量完全一样。最重要的一点是,不同舵机的最大转动角度可能不相同,但是其中间位置的脉冲宽度是一定的,那就是1.5ms。如下图: 角度是由来自控制线的持续的脉冲所产生。这种控制方法叫做脉冲调制。脉冲的长短决定舵机转动多大角度。例如:1.5毫秒脉冲会到转动到中间位置(对于180°舵机来说,就是90°位置)。当控制系统发出指令,让舵机移动到某一位置,并让他保持这个角度,这时外力的影响不会让他角度产生变化,但是这个是由上限的,上限就是他的最大扭力。除非控制系统不停的发出脉冲稳定舵机的角度,舵机的角度不会一直不变。 当舵机接收到一个小于1.5ms的脉冲,输出轴会以中间位置为标准,逆时针旋转一定角度。接收到的脉冲大于1.5ms情况相反。不同品牌,甚至同一品牌的不同舵机,都会有不同的最大值和最小值。一般而言,最小脉冲为1ms,最大脉冲为2ms。如下图: 舵机一般用单片机或者数字电路控制。舵机工作主要跟控制线的高电平持续时间有关系,一般按0.5ms(毫秒)划分,如果持续时间为0.5ms,1ms,1.5ms,2ms,2.5ms时,舵机会转过不同的角度。 舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度伺服为例,那么对应的控制关系是为:脉冲 设置为 0.5ms旋转角度为0度;脉冲 设置为 1.0ms旋转角度为45度;脉冲 设置为 1.5ms旋转角度为90度;脉冲 设置为 2.0ms旋转角度为135度;脉冲 设置为 2.5ms旋转角度为180度。 舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度伺服为例,那么对应的控制关系是这样的: 0.5ms--------------0度; 1.0ms------------45度; 1.5ms------------90度; 2.0ms-----------135度; 2.5ms-----------180度; 舵机的追随特性 假设现在舵机稳定在A点,这时候CPU发出一个PWM信号,舵机全速由A点转向B点,在这个过程中需要一段时间,舵机才能运动到B点。 保持时间为Tw 当Tw≥△T时,舵机能够到达目标,并有剩余时间; 当Tw≤△T时,舵机不能到达目标; 理论上:当Tw=△T时,系统最连贯,而且舵机运动的最快。 实际过程中w不尽相同,连贯运动时的极限△T比较难以计算出来。当PWM信号以最小变化量即(1DIV=8us)依次变化时,舵机的分辨率最高,但是速度会减慢。 相关舵机的说明 SG90舵机 32单片机驱动单个舵机源码 C++ /* 单片机:STM32F103RCT6/STM32F103C8T6 倍频 72M 8路舵机控制 舵机IO PA0~PA3 PB3~PB6 */ #include "stm32f10x_conf.h" #define tb_interrupt_open() {__enable_irq();} //总中断打开 void rcc_init(void); //主频设置 void delay_ms(unsigned int t); //毫秒级别延时 void dj_io_init(void); //舵机 IO 口初始化 void dj_io_set(u8 index, u8 level); //舵机 IO 口高低电平设置 void TIM2_Int_Init(u16 arr,u16 psc);//舵机 定时器初始化 void gpioA_pin_set(unsigned char pin, unsigned char level); void gpioB_pin_set(unsigned char pin, unsigned char level); //舵机脉冲数组 int duoji_pulse = {1500,1500,1500,1500,1500,1500,1500,1500} , i; int main(void) { rcc_init(); dj_io_init(); TIM2_Int_Init(20000,71); tb_interrupt_open(); while(1) { for(i=0;i<8;i++) { duoji_pulse = 1000;//循环把8个舵机位置设定到1000 } delay_ms(1000); for(i=0;i<8;i++) { duoji_pulse = 2000;//循环把8个舵机位置设定到2000 } delay_ms(1000); } } void rcc_init(void) { ErrorStatus HSEStartUpStatus; RCC_DeInit(); RCC_HSEConfig(RCC_HSE_ON); HSEStartUpStatus = RCC_WaitForHSEStartUp(); while(HSEStartUpStatus == ERROR); RCC_HCLKConfig(RCC_SYSCLK_Div1);//SYSCLK RCC_PCLK1Config(RCC_HCLK_Div2);//APB1 MAX = 36M RCC_PCLK2Config(RCC_HCLK_Div1);//APB2 MAX = 72M RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); RCC_PLLCmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); while(RCC_GetSYSCLKSource() != 0x08); } void delay_ms(unsigned int t) { int t1; while(t--) { t1 = 7200; while(t1--); } } void dj_io_init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6 | GPIO_Pin_14; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); } void dj_io_set(u8 index, u8 level) { switch(index) { case 0:gpioA_pin_set(0, level);break; case 1:gpioA_pin_set(1, level);break; case 2:gpioA_pin_set(2, level);break; case 3:gpioA_pin_set(3, level);break; case 4:gpioB_pin_set(3, level);break; case 5:gpioB_pin_set(4, level);break; case 6:gpioB_pin_set(5, level);break; case 7:gpioB_pin_set(6, level);break; default:break; } } void gpioA_pin_set(unsigned char pin, unsigned char level) { if(level) { GPIO_SetBits(GPIOA,1 << pin); } else { GPIO_ResetBits(GPIOA,1 << pin); } } void gpioB_pin_set(unsigned char pin, unsigned char level) { if(level) { GPIO_SetBits(GPIOB,1 << pin); } else { GPIO_ResetBits(GPIOB,1 << pin); } } void TIM2_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //①时钟 TIM2 使能 //定时器 TIM2 初始化 TIM_TimeBaseStructure.TIM_Period = arr; //设置自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置时钟频率除数的预分频值 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM 向上计数 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //②初始化 TIM2 TIM_ARRPreloadConfig(TIM2, DISABLE); TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE ); //③允许更新中断 //中断优先级 NVIC 设置 NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; //TIM2 中断 //NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0000); NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //先占优先级 0 级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; //从优先级 2 级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ 通道被使能 NVIC_Init(&NVIC_InitStructure); //④初始化 NVIC 寄存器 TIM_Cmd(TIM2, ENABLE); //⑤使能 TIM2 } void TIM2_IRQHandler(void) { static u8 flag = 0; static u8 duoji_index1 = 0; int temp; if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) //检查 TIM2 更新中断发生与否 { TIM_ClearITPendingBit(TIM2, TIM_IT_Update ); //清除 TIM2 更新中断标志 if(duoji_index1 == 8) { duoji_index1 = 0; } if(!flag) { ARR = ((unsigned int)(duoji_pulse )); dj_io_set(duoji_index1, 1); } else { temp = 2500 - (unsigned int)(duoji_pulse ); if(temp < 20)temp = 20; ARR = temp; dj_io_set(duoji_index1, 0); duoji_index1 ++; } flag = !flag; } } 原文链接:https://blog.csdn.net/m0_73931287/article/details/130445572 舵机的分类 舵机根据电子分类可以分为模拟舵机与数字舵机。模拟舵机通过简单地发送开关脉冲来调节电机的速度,对小指令的反应迟缓,马达旋转较慢快。数字舵机相对于传统模拟舵机可以根据微处理器的程序运算而调整激励马达的动力,以适应不同的功能要求,并优化舵机的性能,能提供更高的精度以及更快的响应和加速效果。根据信号类型可以分为PWM信号舵机、RS-485串口型舵机、TTL串口型舵机。主要有普通型、超小型,强力型和特殊用途型等几种。 PWM信号舵机 相对于模拟通讯对噪声的抵抗能力更强,从模拟信号转向PWM信号可以极大地延长通信距离。在接收端通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式,实现了用数字方式来控制模拟信号,其高频率、高效率、高可靠性的特点大大降低了成本和功耗。 RS-485 串口型舵机 采用平衡发送和差分接收,具有良好的抗干扰能力,信号能传输上千米。一条总线上允许挂载多个舵机,且总线上每个舵机都有一个唯一的 ID(0~250),控制器通过舵机 ID 对特定的舵机进行访问,也可以通过广播 ID(254)向总线上的全部舵机发送数据,另外可以使用超级ID(253)向总线上的舵机发送查询命令,不同 ID 的舵机进行分时应答。 TTL串口型舵机 采用并行数据传输方式,对于计算机处理器控制设备内部的数据传输较好,同时对于电源的要求不高以及热损耗也较低,另外TTL电平信号直接与集成电路连接而不需要价格昂贵的线路驱动器以及接收器电路。 CAN总线舵机 采用串行异步通信,同一时刻只能有一个发送或接收信息,由CAN_H和CAN_L两条信号线,以差分信号的形式进行通讯, 抗干扰能力强。高低电平幅度低,数据传输速度相对较高。 舵机与伺服电机区别 舵机和伺服电机虽然都是用于控制旋转角度的装置,但两者在构造、应用和工作原理等方面存在显著的差异。 构造 :舵机主要由外壳、电路板、无核心马达、齿轮与位置检测器构成。其中,位置检测器是可变电阻,当舵机转动时,电阻值会随之改变,从而可以检测转动的角度。而伺服电机通常由定子、转子和其他控制电路组成。伺服控制电路位于电机之外,使得伺服电机在某种程度上可以被视为一个系统。 应用 :舵机在航模、小型机器人等领域中常用,具有轻量、小型、简化和廉价的特点,并配备有减速机构。伺服电机则广泛应用于各种需要精确控制旋转角度的场合,如工业自动化、机器人技术、数控机床等。 工作原理 :舵机的工作原理基于可变电阻来检测转动的角度,并通过PWM信号进行控制。伺服电机则通过控制脉冲时间的长短来控制转动角度,其精度取决于编码器的精度。此外,步进电机和伺服电机在工作流程上也存在不同,步进电机需要信号脉冲和方向脉冲,而伺服电机则通过电源连接开关进行控制。 总的来说,舵机和伺服电机虽然都是用于控制旋转角度的装置,但它们在构造、应用和工作原理等方面存在明显的区别。舵机更适合用于轻量、小型和廉价的场合,而伺服电机则适用于需要高精度和快速响应的应用。 舵机的选型参数 舵机选型的参数主要包括以下几个方面: 工作电压 :这是舵机正常工作的电压范围,不同型号的舵机有不同的工作电压要求。例如,一些常见的舵机工作电压范围在4.8V到6V或4.8V到7.2V之间。 工作角度 :这是指舵机可以旋转的角度范围。一般来说,舵机的旋转角度有90度、180度等不同的选择。 扭矩 :扭矩是舵机产生的转动力矩,表现为旋转力的大小,通常以N·cm或kg/cm为单位。扭矩的大小决定了舵机能够拉动多大的负载。 速度 :速度是指舵机在没有负载的情况下旋转的速度,通常以秒/60度为单位。速度参数对于需要快速响应的应用来说非常重要。 工作电流 :这是舵机在工作时消耗的电流大小,是评估舵机功耗和选择电源的重要参数。 尺寸和重量 :尺寸和重量是考虑舵机安装空间和整体设备重量的重要因素。一般来说,尺寸越大、重量越重的舵机,扭矩也会越大。 死区 使舵机转动的最小脉冲宽度,低于该参数,舵机不转动; 停止角度的精确度,该数值越小,控制精度越高; 理解说明: 此参数是用于吸收舵机在最终停止位置往返振荡所设置的。舵机接收到控制输入信号,然后与基准信号做差值,然后输出差值脉冲用于控制舵机内部直流电机正反转,经过齿轮组减速后,驱动舵盘和电位器转动,电位器输出反馈基准信号,直到电位器反馈的基准信号与输入信号完全一致时,舵机停止转动。 舵机实际运行到停止位置时,由于存在运动惯量,电位器输出的反馈基准信号与输入信号不能完全一致,差值脉冲在很小的范围内输出,导致舵机在停止位置附近往返振荡。 最小脉冲宽度的由来:为了解决往返振荡问题,在接近停止位附近用电路方式将差值脉冲吸收。 精确度误差的由来:由于差值脉冲被吸收掉,导致实际位置与目标位置存在差异;限值的差值脉冲越小,越接近目标位置。 死区参数优缺点 : 优点:消除舵机在停止位置的往返振荡; 缺点:死区越小,精度越高,意味着死区范围内的差值脉冲调整越频繁;加剧对齿轮组和电位器的磨损; 在选择舵机时,需要根据实际项目需求,综合考虑以上参数。例如,如果项目需要舵机拉动的负载较大,就需要选择扭矩较大的舵机;如果项目对速度有要求,就需要选择速度较快的舵机。同时,还需要考虑舵机的尺寸和重量是否适合项目的安装空间和要求。 此外,还需要注意舵机的控制信号类型和控制方式。一般来说,舵机的控制信号是PWM信号,需要设置PWM的周期为50Hz。控制方式可以是模拟信号控制或数字信号控制,具体选择取决于项目的控制需求。 常见的舵机型号有SG90、MG996R、DS3218、MG90S、DS3225、FS5109M和MG995等,每种型号都有其特定的参数和应用场景。因此,在选择舵机时,需要综合考虑项目需求和实际应用场景,选择最适合的舵机型号和参数。 舵机的应用场景 舵机在多个领域都有广泛的应用,主要包括以下几个方面: 机器 人:在机器人领域中,舵机通常用于控制运动关节的转动,实现机器人的动作控制。通过精确控制舵机的角度和速度,可以使机器人完成各种复杂的动作和任务。 航模 :在航模领域中,舵机用于控制舵面的转动,从而改变飞机的飞行姿态。航模爱好者可以通过调整舵机的参数和角度,实现飞机的起飞、爬升、俯冲、翻滚等各种飞行动作。 汽车 :在汽车领域中,舵机用于控制方向盘的转动,实现车辆的转向。一些高性能汽车或智能驾驶汽车可能会使用舵机来实现更精确和快速的方向控制。 船舶 :在船舶领域中,舵机用于控制舵轮的转动,实现船舶的转向。舵机在船舶航行中发挥着至关重要的作用,可以帮助船舶保持正确的航向和稳定性。 此外,舵机还广泛应用于玩具、飞机、潜艇模型等领域。随着技术的不断发展,舵机的应用场景也在不断扩展。总之,舵机作为一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。在各种需要精确控制旋转角度的场合中,舵机都发挥着不可或缺的作用。 实例 舵机在机电系统中作为基本的输出执行机构,简单的控制和输出使得单片机系统能轻松与其进行对接,其优越的角度控制性能在飞机、潜艇模型,遥控机器人、物流、机器人、人工智能、汽车等领域中被广泛使用。例如,在无人机或航模中,舵机可以控制机翼的上下、左右转动,从而控制飞行方向、高度等。 在机器人中,舵机可以控制机器人的关节运动,使机器人能够完成各种复杂的动作,如抓取、拍摄、移动等。 供应商A:东莞市德晟智能科技有限公司 https://www.dspower.net/pd45594901.html 1、产品能力 (1)选型手册 https://www.dspower.net/pl3684832.html (2)主推型号1:DS-S006 对应的产品详情介绍 SG90舵机高精度防烧防抖遥控飞机无人机伺服器玩具车模9g数字舵机小重量,小尺寸全塑料外壳两色可选,全新外观+轻薄机身高精度全塑胶齿轮一体成型,强度高、咬合性好、有效防扫齿采用进口电位器,精度高、寿命长;(有效寿命超过五十万次,可升级为磁编码器)堵转时间和电流超过预设值,做降流和断电处理,防堵防烧 三防处理(防水等级可定制) 产品尺寸 产品规格 点击图片可查看完整电子表格 使用场景 (如有侵权,联系删除)