基于STM32的数字舵机控制系统的设计

合集下载

stm32控制舵机程序

stm32控制舵机程序

stm32控制舵机程序章节标题:基于STM32的舵机控制程序设计第一章:引言(约250字)1.1 研究背景控制舵机是机器人、无人机、航空模型等众多领域的关键技术之一。

而STM32系列的微控制器以其高性能、低功耗和丰富的外设资源被广泛应用于嵌入式控制系统。

本章主要介绍了舵机的作用及其在控制系统中的重要性,同时说明了选择STM32微控制器作为控制舵机的硬件平台的原因。

第二章:控制理论(约250字)2.1 舵机原理舵机是一种能够根据外部输入信号控制角度的电动执行器。

其通过接收PWM信号来确定输出位置和角度,通常在0至180度之间运动。

本章介绍了舵机的工作原理,包括PWM控制信号的作用、舵机内部的反馈控制电路等内容。

2.2 PID控制理论PID控制是一种常用的闭环控制方法,能够根据反馈信号调整输出信号,通过比较实际输出与期望输出的差异来实现控制。

本章详细介绍了PID控制的原理和算法,并提出了使用PID控制舵机的基本思路。

第三章:硬件设计(约250字)3.1 系统框架在舵机控制系统中,使用STM32微控制器作为控制芯片,通过引脚与舵机进行连接,实现对舵机的控制。

本章主要介绍了硬件设计的系统框架,包括STM32微控制器的选择、电源设计、信号输入输出设计等。

3.2 电路原理图本章详细描述了电路原理图设计,包括电源管理模块、驱动电路等详细设计内容。

同时对于舵机的接线方式和引脚定义进行了说明。

第四章:软件设计(约250字)4.1 程序流程本章介绍了在STM32上开发舵机控制程序的流程,包括初始化舵机控制模块、设置PWM输出引脚、编写控制算法等。

4.2 PID算法实现详细描述了如何在STM32上实现PID控制算法,包括参数调整、误差计算、控制输出计算等步骤。

同时,结合实际舵机控制需求,对PID控制算法进行优化。

4.3 实验验证通过实验验证了基于STM32的舵机控制程序的有效性和性能优势。

通过与传统控制方法进行对比,并分析实验数据,评估了该程序的稳定性和响应速度。

STM32控制舵机的原理及代码

STM32控制舵机的原理及代码

STM32控制舵机的原理及代码1、舵机的⼯作原理:舵机内部的控制电路,电位计(可变电阻器)和电机均被连接到电路板上,如内部结构图的右边部分。

控制电路通过电位计可监控舵机的当前⾓度。

如果轴的位置与控制信号相符,那么电机就会关闭。

如果控制电路发现这个⾓度不正确,它就会控制马达转动,直到它达到指定的⾓度。

舵机⾓度根据制造商的不同⽽有所不同。

⽐如,⼀个180度的舵机,它可以在0度⾄180度之间运动。

由于限位装置被安装在主输出装置上,超出这个范围机械结构就不能再转动了。

舵机的输出功率与它所需要转动的距离成正⽐。

如果输出轴需要转动很长的距离,马达就会全速运转,如果它只需要短距离转动,马达就会以较慢的速度运⾏,这叫做速度⽐例控制。

2、如何让舵机转到指定⾓度:控制线⽤于传输⾓度控制信号。

这个⾓度是由控制信号脉冲的持续时间决定的,这叫做脉冲编码调制(PCM)。

舵机的控制⼀般需要⼀个20ms左右的时基脉冲,该脉冲的⾼电平部分⼀般为0.5ms-2.5ms范围,总间隔为2ms。

脉冲的宽度将决定马达转动的距离。

例如:1.5毫秒的脉冲,电机将转向90度的位置(通常称为中⽴位置,对于180°舵机来说,就是90°位置)。

如果脉冲宽度⼩于1.5毫秒,那么电机轴向朝向0度⽅向。

如果脉冲宽度⼤于1.5毫秒,轴向就朝向180度⽅向。

以180度舵机为例,对应的控制关系是这样的:0.5ms————-0度;1.0ms————45度;1.5ms————90度;2.0ms———–135度;2.5ms———–180度;3、舵机转动⾓度对应的占空⽐以及⽐较寄存器的值计算⽅法:舵机配置需要满⾜频率为50HZ,PWM占空⽐是指在⼀个周期内,信号处于⾼电平的时间占据整个信号周期的百分⽐,由于PWM周期为20ms,所以(以舵机会转动 45°为例),占空⽐就应该为1ms/20ms = 5%,所以TIM_SetCompare1的 TIMx 捕获⽐较 1 寄存器就为200-200*5% = 1904、STM32控制舵机的代码:控制舵机代码:Main.cpp#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "timer.h"int main(void){u16 led0pwmval=185;//u8 dir =1;delay_init();LED_Init();TIM3_PWM_Init(199, 7199);//50hzwhile(1){led0pwmval=195;//45TIM_SetCompare2(TIM3,led0pwmval); delay_ms(800);led0pwmval=190;//45TIM_SetCompare2(TIM3,led0pwmval); delay_ms(800);led0pwmval=185;//90TIM_SetCompare2(TIM3,led0pwmval); delay_ms(800);led0pwmval=180;//135TIM_SetCompare2(TIM3,led0pwmval); delay_ms(800);led0pwmval=175;//180TIM_SetCompare2(TIM3,led0pwmval); delay_ms(800);}}Timer.h#ifndef __TIMER_H#define __TIMER_H#include "sys.h"void TIM3_PWM_Init(u16 arr , u16 psc);#endifTimer.c#include "timer.h"void TIM3_PWM_Init(u16 arr , u16 psc){GPIO_InitTypeDef GPIO_InitTypestrue;TIM_TimeBaseInitTypeDef TIM_TimeBaseInitTypestrue;TIM_OCInitTypeDef TIM_OCInitTypesture;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);//使能GPIO时钟,以及TIM3时钟使能GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);//复⽤GPIO_InitTypestrue.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitTypestrue.GPIO_Pin=GPIO_Pin_5;GPIO_InitTypestrue.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitTypestrue); //GPIO初始化TIM_TimeBaseInitTypestrue.TIM_Period=arr;TIM_TimeBaseInitTypestrue.TIM_Prescaler=psc;TIM_TimeBaseInitTypestrue.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInitTypestrue.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseInit(TIM3 ,&TIM_TimeBaseInitTypestrue); //定时器初始化TIM_OCInitTypesture.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitTypesture.TIM_OCMode=TIM_OCMode_PWM2;TIM_OCInitTypesture.TIM_OCPolarity=TIM_OCPolarity_High;TIM_OC2Init(TIM3 ,&TIM_OCInitTypesture );//CH2通道初始化TIM_OC2PreloadConfig( TIM3 ,TIM_OCPreload_Enable);//使能预装载寄存器TIM_Cmd(TIM3,ENABLE);}。

stm32 控制舵机

stm32 控制舵机

stm32 控制舵机章节一:引言(Introduction)在现代工业自动化系统中,舵机作为一种重要的执行器,被广泛应用于各个领域。

舵机能够提供精确的旋转运动,并可以通过调节控制信号的脉宽来改变输出角度。

在众多类型的舵机中,STM32控制舵机的方案成为了学术界和工程领域的热门研究课题。

本文将介绍STM32控制舵机的原理、实现方法以及应用实例。

章节二:STM32控制舵机的原理(Principle of STM32 Servo Control)2.1 舵机的工作原理舵机是一种具有闭环控制功能的电动执行器。

其工作原理是通过从控制器接收到的脉宽来指定输出角度,舵机根据脉宽的变化移动至相应位置,并通过内部的反馈系统达到准确的位置控制。

2.2 STM32的特性与控制原理STM32是一种强大的微控制器,具有高速、低功耗、丰富的外设接口等特点。

其通过PWM输出信号来控制舵机的转动。

PWM信号的占空比与舵机的角度成正比,通过调节占空比,可以实现对舵机角度的精确控制。

章节三:STM32控制舵机的实现方法(Implementation ofSTM32 Servo Control)3.1 硬件设计在STM32控制舵机的硬件设计中,需要配置定时器和IO口。

定时器用于产生PWM信号,IO口用于连接舵机控制线。

3.2 软件程序设计在STM32控制舵机的软件程序设计中,需要使用相关的库函数来配置定时器和IO口,并编写控制算法,实现对舵机的角度控制。

章节四:STM32控制舵机的应用实例(Application Example of STM32 Servo Control)4.1 智能小车方向控制在智能小车方向控制中,通过STM32控制舵机可以实现小车的转向功能,改变舵机的角度可以改变小车行驶的方向。

4.2 机械臂控制在机械臂控制中,通过STM32控制舵机可以实现机械臂的运动和抓取功能,通过控制不同舵机的角度,可以实现复杂的动作。

stm32舵机控制程序

stm32舵机控制程序

stm32舵机控制程序章节一:引言引言部分首先介绍了舵机控制在工业和机器人领域的应用,以及其在实际生活中的普遍应用。

接着介绍了目前市场上使用最广泛的舵机控制器——STM32,以及对其进行控制的优势和挑战。

最后对本论文的研究目的和结构进行了概述。

章节二:背景知识与理论基础本章节主要介绍了舵机的基本原理和工作方式。

首先介绍了舵机的定义和分类,包括模拟舵机和数字舵机。

然后详细讲解了舵机的内部结构,包括电机、减速器、编码器等组成部分。

接着介绍了舵机控制的基本原理,包括PWM信号的生成和控制以及位置反馈的原理。

最后讲解了STM32的基本硬件结构和特点,为后续章节的程序设计做准备。

章节三:STM32舵机控制程序设计本章节详细介绍了STM32舵机控制程序的设计过程。

首先介绍了程序设计前的准备工作,包括硬件连接和配置,以及软件开发环境的搭建。

然后详细介绍了程序的主要模块,包括PWM输出模块、位置反馈模块和控制算法模块。

其中,PWM 输出模块负责生成合适的PWM信号以控制舵机的转向和角度;位置反馈模块负责读取舵机位置信息,以实现闭环控制;控制算法模块负责根据预设的目标角度和当前位置信息进行控制计算。

最后介绍了程序的测试和调试方法,并给出了一些实验结果。

章节四:实验结果和讨论本章节主要介绍了实验结果和对实验结果的讨论。

首先给出了实验中所使用的舵机的基本参数和实验条件。

然后给出了实验结果的定量数据和图表,并对实验结果进行了详细的分析和解读。

最后总结了本论文研究的主要成果和不足之处,并对未来可能的研究方向进行了展望。

总结:本论文通过对STM32舵机控制程序的设计和实验研究,初步实现了对舵机的准确控制。

实验结果表明,所设计的控制程序能够有效地控制舵机的转向和角度,并具有较好的控制精度和稳定性。

然而,由于实验条件的限制,本论文的研究结果还存在一定的局限性,需要进一步完善和扩展。

未来的研究可以考虑使用更高精度和更稳定的舵机进行控制,进一步提高控制精度和稳定性;同时还可以考虑将该控制程序应用于机器人等领域,以实现更丰富的运动控制功能。

基于STM32的数字舵机控制系统的设计

基于STM32的数字舵机控制系统的设计

#66#计算机测量与控制.2011.19(1) Computer Measurement &Control控制技术收稿日期:2010-05-14; 修回日期:2010-06-24。

作者简介:周永龙(1986-),男,河南灵宝人,硕士研究生,主要从事电路与系统,数字伺服方向的研究。

文章编号:1671-4598(2011)01-0066-03 中图分类号:T P273文献标识码:A基于STM32的数字舵机控制系统的设计周永龙1,雷金奎2(11西北工业大学电子信息学院,陕西西安 710072;21西北工业大学第365研究所,陕西西安 710065)摘要:针对无人机舵机控制系统对位置伺服的实时性和可靠性的要求,首次提出了以S TM 32为微控制器的新型数字控制系统;硬件部分给出了系统硬件结构图,并简要介绍了主控制芯片和硬件电路结构,为了提高系统数据传输的可靠性,引入CAN 总线传输方式;在软件部分,首先简要介绍了ST M 32的标准外设固件库函数,然后介绍了三闭环数字调节算法的实现和中断任务;另外,搭建了无人机数字舵机数字控制系统的仿真模型,通过仿真研究验证了控制策略的可行性。

关键词:无人机;ST M 32;三闭环伺服调节;舵机Design of STM32-Based Digital Actuator Controlling SystemZho u Yonglong 1,Lei Jinkui2(11No rthw ester n Polytechnical U niver sity ,Xi p an 710072,China;21R esear ch Institute N o 1365,N o rthwester n P olytechnical U niver sity,Xi p an 710065,China)Abstract:In view of th e position -s ervo real-timin g and reliability r equiremen ts to th e u nman ned aerial vehicle actu ator contr olling system ,for th e fir st time a novel digital actuator con tr olling s ystem is pu t forw ard based on S TM 32micr o-controller.In the hardw are part th e structu ral graph of the system hardw are is brough t forw ard,and the micro-controller and the hardw are circuit is br iefly introduced.To im prove the reliab ility of data tran smis sion,C AN bu s is u sed.In th e softw are part,S TM 32standard peripherals firmw are library is b riefly in trodu ced at first.Then the arith metic implement of th e th ree closed loop digital modulation and th e interruption tas k is mainly recommen -ded.In addition the emulation m od el of the unm ann ed aerial vehicle digital actuator controlling s ystem is built,and the s ystem performance is validated.Key words :U AV;ST M 32;thr ee closed-loop control strategy;actuator0 引言舵机控制系统是无人机控制系统的重要部分,其性能好坏直接决定了无人机的性能。

基于STM32的双足机器人控制系统设计与实现

基于STM32的双足机器人控制系统设计与实现

电子技术• Electronic Technology84 •电子技术与软件工程 Electronic Technology & Software Engineering【关键词】双足机器人 姿态传感器 舵机 姿态修正 测距机器人是集众多高新领域于一身的高技术产物,由于技术的不断成熟,机器人的应用领域更加广泛,发挥越来越重要的作用。

本文采用STM32单片机作为核心处理器,为姿态传感器MPU050、舵机及超声波测距传感器提供良好的控制平台。

1 系统总体设计该款机器人各关节的运动均由舵机实现,按照舵机所处位置将舵机分为四组,分别对应机器人的四肢,便于后期编程和调试。

上位机通过无线串口向机器人主控制器发出指令,主控制器判断指令后控制对应舵机协调转动实现机器人直行、转弯、后退等一系列动作。

在机器人运动的同时,姿态传感器MPU6050实时收集机器人的姿态数据并反馈到主控制器,主控制器对反馈回来的数据经过解算得到机器人的俯仰角、横滚角、航向角;根据三个姿态角的大小判明机器人运动的方向和姿态,对机器人运动路线进行修正和姿态的调节;并通过无线串口将信息发送到上位机,使操作人员及时了解运动状态,从而增强运动的稳定性;当前方有障碍物时,超声波传感器测出障碍物的距离,当距离超过预设的安全距离时,机器人将执行避障程序,绕开障碍物,确保能够继续运行。

2 硬件组成及功用系统的硬件部分主要由动力系统,控制模块,传感器模块,通信模块,电源模块等组成。

具体如下:2.1 主控制器控制系统采用STM32F103C8T6芯片核心板作为主控制器。

该芯片是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,运行频率高达72MHZ ,工作电压基于STM32的双足机器人控制系统设计与实现文/张冬冬2V~3.6V ,可以输出多路PWM 方波,能够支持多串口同时通信,体积小巧,重量轻;能够较好满足要求。

2.2 数字舵机LD-220MG数字舵机LD-220MG 主要由马达、控制电路、减速齿轮等组成;相比于传统舵机具有响应速度快、控制精度高、线性度好等优势;同时该舵机扭矩较大,能够为双足机器人运动提供充足的动力。

基于STM32的舵机控制系统毕业设计论文

基于STM32的舵机控制系统毕业设计论文

基于STM32的舵机控制系统摘要随着越来越多的高科技产品逐渐融入了日常生活中,舵机的控制系统发生了巨大的变化。

单片机、C语言等前沿学科的技术的日趋成熟与实用化,使得舵机的控制系统有了新的的研究方向与意义。

本文描述了一个由STM32微处理器、舵机、LCD 显示器、键盘等模块构成的,提供基于STM32的PWM信号舵机的控制系统。

该系统采用STM32微处理器为核心,在MDK的环境下进行编程,根据键盘的输入,使STM32产生周期性PWM信号,用此信号对舵机的速度及转角进行控制,并且通过LCD显示出数据。

结果表明该系统具有结构简单、工作可靠、精度高等特点.关键词:STM32微处理器;舵机系统;LCD显示;PWM信号AbstractAs well as the high-tech products gradually integrated into the daily life,servo control system has undergone tremendous changes.SCM and C language of the frontier disciplines such mature technology and practical,Make steering control system is a new research direction and meaning.This paper describes a STM32 microprocessors, steering, LCD display and keyboard, etc.Based on the STM32 servo control system of PWM signal,This system uses STM32 microprocessor as the core, MDK in the environment, according to the keyboard input programming, STM32 produce periodic PWM signal, with this signal to the velocity and Angle of steering gear control, and through the LCD display data. The features of the simple hardware, stable operation and high precision are incarnated in the proposed system.Keywords:STM32 microprocessors; Steering system; LCD display;pulse width modulation signal目录第1章绪论 (1)1.1 课题背景 (1)1.2 课题的研究展望 (2)课题任务及要求 (2)1.3 课题内容及安排 (3)第2章硬件设计 (4)2.1 STM32微处理单元 (4)2.2 舵机 (8)2.3 LCD显示器 (9)2.4 时钟电路的制作 (10)第3章软件设计 (12)3.1 STM32固件库简介 (12)3.2 软件的总体设计 (13)3.3 时钟初始化子程序 (14)3.4 I/O口初始化子程序 (17)3.5 PWM信号子程序 (17)3.6 A/D转换初始化子程序 (18)3.7 LCD显示子程序 (19)第4章系统调试 (21)4.1 调试方案 (21)4.1.1 硬件调试方案 (21)4.1.2 软件调试方案 (21)4.2 故障调试及解决方法 (22)4.3 联调结果 (22)结论 (26)社会经济效益分析 (27)参考文献 (28)致谢 (29)附录I 电路原理图 (30)附录Ⅱ程序清单 (35)第1章绪论舵机(servo motor),又名伺服电机,主要是由外壳、电路板、马达、减速齿轮和电位器构成。

2.STM32控制舵机方法

2.STM32控制舵机方法

单片机控制舵机我们知道,舵机和步进电机,直流电机等都是感性负载,单片机的驱动电流较小,我们驱动直流电机,步进电机的时候都是用了驱动模块,也就是功率放大器件。

那驱动舵机时候是否需要呢?因为舵机内部集成了驱动电路,可以对我我们输入的PWM信号直接采样,所以,控制舵机的时候,用一个单片机的PWM引脚即可,这大大精简了电路设计。

1.舵机供电电压和电流要使舵机工作在额定功率下,电路方面需要满足舵机的要求,包括电流和电压,这个我们可以根据舵机的具体参数选择,比如某款舵机参数如下:*扭力:13kg/cm(at4.8V)15kg/cm(at6V)*速度:0.18sec/60度(at4.8V)0.15sec/60度(at6V)*工作电压:4.8V-6V根据以上信息,我们最好能够提供6V的电压,我们知道,设备的电流是由负载决定的。

比如舵机空载控制的时候一般电流是不大于400mA,但是带负载时候可能大于1A,然后我们设计机械臂的时候有5或者6个舵机,因为处于不同关节,所以实际使用中不会每个舵机都同时达到最大电流,那这里可以选择6V5A的电源。

要输出这么大的电流,一般的LDO(线性稳压器)是无法满足的了,需要选择开关稳压芯片,而一般的芯片也没有固定5V输出,需要选择可调版本,通过电阻调节电压输出到6V。

这里我们选择XL4015,根据手册,这款芯片可以满足我们的要求,如下图所示。

下面是XL4015的应用电路。

2舵机的速度控制舵机的驱动是比较容易的,当我们使用了单片机控制的时候,通过输出50HZ(20ms 周期)的PWM,控制PWM的脉宽调节舵机的转角。

为了节约篇幅,较长的PWM初始化代码就不贴出来了,大家翻看程序即可。

前面章节有说明:舵机的转角和脉宽(高电平长度)存在一一对应关系,如果要控制舵机到某一角度,就改变输出的脉宽即可,比如从1ms到1.5ms,显然,很容易就实现了舵机位置控制,但是我们如何进行舵机速度控制呢?这里我们引入了PID算法,下面先看一下程序Velocity1=Position_PID1(Position1,Target1);Position1+=velocit1;TIM4->CCR1=Position1;其中我们使用Velocity1用于代表舵机的速度,这个值根据目标值和舵机的实际位置计算得到,然后通过累积的方法,赋值给相关寄存器作用到舵机。

基于STM32F407单片机的某飞行器舵机控制系统硬件设计

基于STM32F407单片机的某飞行器舵机控制系统硬件设计

基于STM32F407单片机的某飞行器舵机控制系统硬件设计本论文采用STM32F407单片机作为舵机硬件电路的主要控制部分,在控制系统中,详细介绍了硬件电路的设计组成,该设计具有成本低、抗干扰能力强、反应速度快、精度高、容易操作等特点,该硬件系统满足飞行器的要求,可在控制中广泛使用。

标签:STM3F407芯片舵机控制系统硬件电路1 引言随着现代战争模式的发展,导弹防御体系不断完善,与此同时,新的突防手段日益增多,尤其是精确制导武器在战争中的作用越发凸显,在此背景下精确制导武器正朝着侦察、打击、毁伤评估等功能一体化方向发展,该飞行器可以执行巡逻飞行、侦察监视、毁伤评估、空中无线中继及攻击目标等任务。

与此同时,对飞行器的控制系统要求也越来越高,传统的飞行控制设计模式已经无法满足要求,为提高某飞行器的控制精度和可靠性,本文采用STM32F407为控制器核心,STM32F407是一款功能很强的芯片,将它运用在飞行器控制系统可实现控制舵机、数据采集、串口通信和人机交换等任务,该高速处理芯片的推出使研究飞行器等非线性控制系统设计具有现实和长远意义[1-3]。

2 舵机控制系统原理舵机控制系统是飞行器控制系统中的一个重要组成部分,舵机控制系统的性能直接决定了飞行器的飞行性能。

在飞行器飞行过程中,舵机系统对飞行器的飞行姿态进行不断修正与调节[4],使飞行器按规划的路线进行飞行,从而命中目标。

在舵机系统设计中,整个舵机控制系统的主芯片采用STM32F407芯片,通过舵机控制电路的设计来实现数据传输、串口通信、姿态控制等功能。

飞行过程中,飞行器的飞控计算机通过数据通讯接口将飞行控制指令传给舵机系统的控制器,舵机的控制模块接到信号后,对飞行控制指令进行处理,并根据新的位置指令与反馈信息对舵机进行实时控制。

舵机主要是由无刷电机、舵机控制器和传感器3部分组成。

其中,舵机的控制器是舵机控制系统的核心,主要有数据通讯接口、中央控制单元、逻辑换向单元、隔离放大单元以及功率驱动单元组成[5];中央控制单元完成一系列的数字调节,逻辑换向单元负责接收舵机电机的换向信息和实时位置信息,并产生新的方向变换信号,并由隔离放大单元与功率驱动单元完成该控制信号的隔离与放大。

基于STM32的舵机控制器电路设计

基于STM32的舵机控制器电路设计
module. Finally, through the actual small humanoid robot, the servo controller runs stably and meets the needs of use.
Key words: ervo controller; STM32; multi- channel adjustable PWM output; USB analog serial port; MCU minimum
22 Ω电阻 R7 和 R8,防止信号反射,D+端上拉 1.5 K 电
采用 3 个 LED 指示灯,指示控制器的运行状态。
PCB 板的面积。单片机通过 SWD 接口实现程序烧
DS1 串联 510 Ω的限流电阻,与电源和地相连,用于指
态,直接将 BOOT1 和 BOOT2 引脚,通过 10 K 的下拉
好舵机控制器的电路、PCB 板后,焊接元器件,得到图
7 所示的舵机控制器电路板。
图3
图4
电源电路
UBS 通信电路
图7
4
焊接好的舵机控制器
结语
本文基于 STM32F103RCT6 芯片,充分利用其内
设资源,设计了 24 路舵机控制器的硬件电路,包括最
小系统电路,外围电路等。本设计简化舵机控制器的
电路设计,提高了舵机控制器的运行稳定性。通过实
人设计[J].电子器件,2013(1):
128-131.
(责任编辑
王雪芬)
[8]张铁民,黄翰,黄鹏焕.电动轮式移动小车控制系
Design of servo controller based on STM32
Liu Qunming, Wang Yong, Shi Yinggang*

用stm32控制舵机

用stm32控制舵机

用stm32控制舵机Chapter 1: Introduction1.1 BackgroundIn recent years, there has been a growing interest in using microcontrollers for controlling various electronic components. One such component is a servo motor, which is widely used in robotics, automation, and other applications that require precise control of angular position. The STM32 microcontroller, developed by STMicroelectronics, is a popular choice for controlling servo motors due to its powerful features and ease of use.1.2 ObjectivesThe main objective of this research is to develop a system for controlling a servo motor using the STM32 microcontroller. This system will allow users to precisely control the angular position of the servo motor through simple commands sent to the microcontroller.Chapter 2: Literature Review2.1 Servo Motor Control MethodsThere are several methods for controlling servo motors, including Pulse Width Modulation (PWM), position control, and speed control. PWM is the most commonly used method, where the angle of the servo motor is controlled by varying the width of the electrical pulses sent to it. Position control involves sending a desired angle as input and the servo motor adjusts its position accordingly. Speed control, on the other hand, allows users tocontrol the speed at which the servo motor moves.2.2 STM32 MicrocontrollerThe STM32 microcontroller is a highly versatile microcontroller that is widely used in various applications. It offers a wide range of features, including multiple GPIO pins, timers, and hardware PWM capabilities, making it suitable for servo motor control. The STM32 microcontroller can be programmed using various programming languages, including C/C++ and the STM32Cube IDE.Chapter 3: Methodology3.1 Hardware SetupTo control a servo motor using the STM32 microcontroller, a circuit needs to be set up. This involves connecting the servo motor to the microcontroller's GPIO pins and configuring the necessary hardware peripherals, such as timers and PWM channels.3.2 Software ImplementationThe software implementation involves writing code using the STM32Cube IDE to configure the microcontroller and control the servo motor. This includes initializing the necessary peripherals, setting up interrupt handlers, and implementing the desired servo motor control method (e.g., PWM or position control).Chapter 4: Results and Discussion4.1 Experimental SetupThe system was tested using a servo motor and the STM32microcontroller. The servo motor was connected to the microcontroller's GPIO pins, and the code developed in the previous chapter was uploaded to the microcontroller using the STM32Cube IDE.4.2 ResultsThe system successfully controlled the servo motor, allowing users to set the desired angular position. The system was able to accurately move the servo motor to the specified position with minimal error.4.3 DiscussionThe results indicate that the STM32 microcontroller is an effective tool for controlling servo motors. Its powerful features, such as timers and hardware PWM, allow for precise control of the servo motor's angular position. Additionally, the ease of use of theSTM32Cube IDE makes it suitable for beginners and experienced users alike.Chapter 5: Conclusion and Future Work5.1 ConclusionIn conclusion, this research successfully developed a system for controlling a servo motor using the STM32 microcontroller. The system demonstrated the capability of the microcontroller to accurately control the servo motor's angular position.5.2 Future WorkIn the future, further improvements can be made to the system, such as implementing advanced control algorithms and integratingadditional sensors for feedback control. This would enhance the servo motor's performance and allow for more advanced applications. Additionally, the research can be extended to explore the use of multiple servo motors and their coordination using the STM32 microcontroller.Chapter 1: Introduction1.1 BackgroundIn recent years, there has been a growing interest in using microcontrollers for controlling various electronic components. One such component is a servo motor, which is widely used in robotics, automation, and other applications that require precise control of angular position. The STM32 microcontroller, developed by STMicroelectronics, is a popular choice for controlling servo motors due to its powerful features and ease of use.1.2 ObjectivesThe main objective of this research is to develop a system for controlling a servo motor using the STM32 microcontroller. This system will allow users to precisely control the angular position of the servo motor through simple commands sent to the microcontroller.Chapter 2: Literature Review2.1 Servo Motor Control MethodsThere are several methods for controlling servo motors, including Pulse Width Modulation (PWM), position control, and speed control. PWM is the most commonly used method, where the angle of the servo motor is controlled by varying the width of theelectrical pulses sent to it. Position control involves sending a desired angle as input and the servo motor adjusts its position accordingly. Speed control, on the other hand, allows users to control the speed at which the servo motor moves.2.2 STM32 MicrocontrollerThe STM32 microcontroller is a highly versatile microcontroller that is widely used in various applications. It offers a wide range of features, including multiple GPIO pins, timers, and hardware PWM capabilities, making it suitable for servo motor control. The STM32 microcontroller can be programmed using various programming languages, including C/C++ and the STM32Cube IDE.Chapter 3: Methodology3.1 Hardware SetupTo control a servo motor using the STM32 microcontroller, a circuit needs to be set up. This involves connecting the servo motor to the microcontroller's GPIO pins and configuring the necessary hardware peripherals, such as timers and PWM channels.3.2 Software ImplementationThe software implementation involves writing code using the STM32Cube IDE to configure the microcontroller and control the servo motor. This includes initializing the necessary peripherals, setting up interrupt handlers, and implementing the desired servo motor control method (e.g., PWM or position control).Chapter 4: Results and Discussion4.1 Experimental SetupThe system was tested using a servo motor and the STM32 microcontroller. The servo motor was connected to the microcontroller's GPIO pins, and the code developed in the previous chapter was uploaded to the microcontroller using the STM32Cube IDE.4.2 ResultsThe system successfully controlled the servo motor, allowing users to set the desired angular position. The system was able to accurately move the servo motor to the specified position with minimal error.4.3 DiscussionThe results indicate that the STM32 microcontroller is an effective tool for controlling servo motors. Its powerful features, such as timers and hardware PWM, allow for precise control of the servo motor's angular position. Additionally, the ease of use of theSTM32Cube IDE makes it suitable for beginners and experienced users alike.Chapter 5: Conclusion and Future Work5.1 ConclusionIn conclusion, this research successfully developed a system for controlling a servo motor using the STM32 microcontroller. The system demonstrated the capability of the microcontroller to accurately control the servo motor's angular position.5.2 Future WorkIn the future, further improvements can be made to the system, such as implementing advanced control algorithms and integrating additional sensors for feedback control. This would enhance the servo motor's performance and allow for more advanced applications. Additionally, the research can be extended to explore the use of multiple servo motors and their coordination using the STM32 microcontroller.Overall, this research has shown the potential of the STM32 microcontroller in servo motor control. The system developed in this study can serve as a foundation for further developments in the field, and the knowledge gained can be applied to various applications requiring precise control of angular position.。

stm32舵机控制

stm32舵机控制

stm32舵机控制章节一:引言---近年来,随着嵌入式系统技术的发展和应用的广泛推广,越来越多的设备和装置需要实现精确的运动控制功能。

舵机是一种常见的运动控制设备,能够精确控制电动机的转动角度,并在所需位置保持稳定。

本论文将详细介绍如何利用STM32芯片实现舵机的控制以及在实际应用中的意义。

章节二:STM32芯片概述---STM32系列是一种低功耗、高性能的单片机芯片,拥有丰富的外设资源和强大的计算能力,非常适合嵌入式系统的设计与开发。

STM32芯片通过内部的定时器和数字输出口来实现舵机的控制。

定时器可以实现精确的时间控制,数字输出口则可以通过PWM信号控制舵机的转动角度。

章节三:舵机控制的实现---1. 硬件连接:将舵机的信号线连接到STM32芯片的相应数字输出口。

2. 初始化定时器:在编程中,首先需要初始化定时器的工作模式和时钟频率,以确保定时器能够正常工作。

3. 配置PWM输出:将定时器的输出通道设置为PWM模式,并设置计数器的上下限值,以控制PWM信号的频率和占空比。

4. 控制舵机:通过修改定时器的比较值,可以改变PWM信号的占空比,从而控制舵机的转动角度。

在实际应用中,可以根据具体需求编写对应的控制算法,实现舵机的精确控制。

章节四:实际应用与展望---舵机控制技术在机器人、智能家居、无人机等领域具有广泛的应用前景。

利用STM32芯片实现舵机控制可以有效提高系统的稳定性和运动精度,实现更复杂的运动轨迹和动作控制。

未来,随着人工智能、物联网等技术的发展,舵机控制技术将会得到更广泛的应用,为我们的生活和工作带来更多便利和创新。

综上所述,舵机的控制对于实现精确的运动控制至关重要。

利用STM32芯片实现舵机的控制不仅能够提高系统的稳定性和运动精度,还具有广泛的应用前景。

通过进一步研究和开发,舵机控制技术将能够在更多领域发挥重要作用,为我们提供更多便利和创新。

章节三:舵机控制的实现---1. 硬件连接:将舵机的信号线连接到STM32芯片的相应数字输出口。

stm32控制舵机的程序

stm32控制舵机的程序

stm32控制舵机的程序第一章:引言在现代机械系统领域,舵机是一种常见的旋转执行器,经常用于控制机械装置的运动。

舵机通过接收控制信号来控制旋转角度,具有精准定位、快速响应和稳定性好的特点,因此在无人机、机器人、摄像头稳定器等领域广泛应用。

然而,要实现舵机的精确控制,需要使用专门的硬件电路和相应的控制算法。

本论文将介绍一种基于STM32单片机控制舵机的方法。

第二章:STM32舵机控制原理2.1 舵机的工作原理舵机是一种综合了伺服电机和反馈控制系统的特殊电机。

它由电机、位置反馈装置和控制电路组成。

当控制信号输入到控制电路中时,电机根据信号的宽度来确定要旋转的角度,位置反馈装置则用于检测电机的实际位置。

2.2 STM32控制舵机的原理STM32单片机是一类功能强大且易于使用的微控制器,具有高性能、低功耗和丰富的外设资源。

为了控制舵机,我们需要将STM32的IO口与舵机的控制信号线相连接,并在程序中通过设置IO口的高低电平来生成PWM(脉宽调制)信号,从而控制舵机的角度。

第三章:STM32舵机控制程序设计在本章中,我们将介绍具体的STM32舵机控制程序设计步骤。

3.1 硬件连接首先,需要将舵机的控制信号线连接至STM32单片机的某个IO口。

具体连接方式可以参考相关的舵机控制电路图。

3.2 建立工程使用Keil等开发工具,根据STM32型号建立一个新工程,并配置好相应的时钟和引脚设置。

3.3 编写程序在主函数中,需要先初始化IO口,并配置为输出模式。

然后编写一个循环,不断改变IO口的电平状态,以产生PWM信号。

根据舵机的角度范围(一般为0到180度),通过改变IO口电平的时间间隔和占空比,可以控制舵机旋转到相应的角度。

3.4 烧录程序最后,将生成的可执行程序烧录到STM32单片机中,然后连接电源即可运行舵机控制程序。

第四章:实验结果与分析为了验证上述STM32舵机控制程序的有效性,我们进行了一系列实验。

实验结果表明,通过控制不同的PWM信号,可以实现对舵机的精确控制,使其旋转到相应的角度。

stm32控制舵机

stm32控制舵机

stm32控制舵机章节一:引言(200字)随着科技的不断进步,舵机在机器人技术、无人机和模型控制等领域中扮演着重要的角色。

舵机作为一种能够精确控制角度位置的电机,被广泛应用于各种机械系统中。

然而,如何有效地控制舵机的角度位置一直是一个挑战。

本论文将介绍如何使用STM32微控制器来控制舵机,并详细讨论了实现舵机控制的方法和步骤。

章节二:STM32舵机控制的原理与方法(300字)舵机控制系统主要由两部分组成:信号生成部分和舵机控制部分。

信号生成部分通过发送脉冲宽度调制(PWM)信号来控制舵机,而舵机控制部分通过接收并解码PWM信号来控制舵机的角度位置。

在STM32控制舵机之前,需要先了解PWM信号的工作原理,即通过调整脉冲宽度来控制电机的角度位置。

然后,使用STM32的定时器模块来生成PWM信号,通过配置定时器的计数值和比较值,可以实现不同占空比的PWM信号。

接下来,将生成的PWM信号通过IO口连接到舵机控制部分,舵机控制部分通过解码PWM信号来控制舵机的角度位置。

章节三:STM32舵机控制系统的设计与实现(300字)在实际应用中,舵机控制系统需要考虑实时性、精确性和可靠性。

为了实现这些要求,需要进行系统设计和软件编程的工作。

首先,设计一个合适的系统架构,包括STM32微控制器、舵机控制电路和外部输入设备等。

然后,进行软件编程,包括配置STM32的定时器模块、设置PWM信号的频率和占空比、配置IO口和编写解码PWM信号的代码等。

最后,进行系统调试和性能测试,通过验证系统是否能够实现精确的角度位置控制,以及满足实时性和可靠性的要求。

章节四:实验结果与讨论(200字)在本章节中,将介绍实验结果和对实验结果的讨论。

为了验证STM32控制舵机的效果,进行了一系列实验,包括不同角度位置的控制、响应速度的测试以及系统的实时性和可靠性。

实验结果表明,使用STM32微控制器可以有效控制舵机的角度位置,并且具有很高的精确性和实时性。

32舵机控制器

32舵机控制器

32舵机控制器章节一:引言 (250字左右)在现代机器人控制系统中,舵机是一种常用的执行器。

它们经常被用来控制机器人的各个关节和运动。

然而,当需要使用大量的舵机时,如在多关节机械臂或仿生机器人中,传统的舵机控制方法变得非常复杂和困难。

为了解决这个问题,32舵机控制器成为一种有效的解决方案。

本论文将介绍32舵机控制器的原理和应用,并探讨其优点和限制。

章节二:32舵机控制器原理 (250字左右)32舵机控制器是一种专门设计用于控制多个舵机的电子设备。

它通常由32个独立的电路和控制芯片组成,每个芯片可用于控制一个舵机。

这些芯片可以通过总线或串行通信协议与主控制器连接,从而实现对舵机的精确控制。

该控制器的工作原理是基于时分多路复用技术。

每个芯片有自己的时钟,并在每个时钟周期内选择一个舵机进行控制。

这种方式可以实现对多个舵机的同时控制,而不会发生冲突。

通过调整每个舵机信号的占空比和频率,可以实现舵机的位置和速度控制。

章节三:32舵机控制器的应用 (250字左右)32舵机控制器广泛应用于机器人领域。

例如,在多关节机械臂中,每个关节通常需要一个舵机来实现自由度的运动。

传统的方法是使用多个独立的控制器来控制每个舵机,这不仅复杂而且昂贵。

而使用32舵机控制器,可以将所有舵机连接到同一个控制器上,大大简化了机械臂的控制系统。

此外,32舵机控制器还可以应用于仿生机器人。

仿生机器人是一种模仿生物体形态和功能的机器人。

它通常具有大量的关节和舵机,用于实现生物类似的运动。

使用32舵机控制器,可以更方便地控制和调整仿生机器人的运动。

这对于研究人员来说是非常重要的,因为他们可以更快地进行实验,改进和优化仿生机器人的设计。

章节四:32舵机控制器的优点和限制 (250字左右)32舵机控制器有许多优点,其中最重要的是简化了控制系统。

传统的方法需要使用多个控制器和复杂的电路来控制大量的舵机,而32舵机控制器将所有舵机集中在一个控制器上,大大减少了系统的复杂性和成本。

32路舵机控制器软件

32路舵机控制器软件

32路舵机控制器软件第一章:引言(200字)随着机器人技术的发展,舵机作为重要的控制元件,被广泛应用于各个领域。

而传统的舵机控制器往往只能控制有限数量的舵机,已不能满足实际需求。

因此,设计一种能够同时控制多路舵机的控制器软件具有重要意义。

本论文基于32路舵机控制器软件的设计与开发,旨在完善舵机控制系统,提高其稳定性和可扩展性。

第二章:系统设计(300字)2.1 控制器硬件设计本文设计的32路舵机控制器采用单片机作为核心芯片,配备合适的输入输出接口,通过与PC机或其他主控设备的串口通信,实现对舵机的控制。

同时,控制器还具备强大的通信功能,能够实现与其他设备的信息交互。

2.2 控制器软件设计控制器软件采用分层结构设计,主要包括底层驱动、通信协议、舵机控制和用户界面。

底层驱动部分负责与硬件进行通信,提供控制舵机所需的底层功能;通信协议部分定义了舵机控制命令的传输格式和协议规范;舵机控制部分负责接收控制命令并将其转换为舵机动作;用户界面部分提供友好的图形界面,方便用户操作和监控。

第三章:系统实现(300字)3.1 硬件实现本文选取了适用的单片机作为控制器的核心芯片,并设计了合理的电路和外围接口,使其能够正常工作并与其他设备实现通信。

3.2 软件实现设计采用C语言编程,利用单片机的引脚和外设接口实现舵机控制。

通过良好的软件设计架构,实现了舵机的角度控制、速度控制和位置控制等功能。

同时,利用图形界面库实现了用户界面,方便用户进行配置和操作。

第四章:系统测试与评估(200字)为了验证32路舵机控制器软件的性能,我们进行了一系列的测试与评估。

测试中,我们通过控制器软件对多路舵机进行了同时控制,测试了其对舵机动作的精确度和稳定性。

评估中,我们对控制器的通信速度、可扩展性和稳定性进行了分析,并与现有的舵机控制器进行了对比,结果表明本论文所设计的32路舵机控制器软件具有较高的性能和稳定性。

总结(200字)本文基于32路舵机控制器软件的设计与开发,通过详细的系统设计、实现和测试与评估,展示了该控制器的有效性和可行性。

基于STM32的多型号舵机调试器设计

基于STM32的多型号舵机调试器设计

2020年第2期No. 2, 2020(总第129期)No. 129)九工学院学很(自然科学版)Journal of jiujiang University ( natural sciences )基于STM32的多型号舵机调试器设计王世伟杨越高城江汇洋(淮南师范学院机械与电气工程学院安徽淮南232038)摘要:为了实现多型号舵机的同时调节,文章以STM32F103RBT6为核心设计了一种多通道舵机调试器,通过按键和旋钮操作完成舵机电压和角度的调节,并将相应参数显示 在OLED 显示屏上。

首先,分析了舵机控制原理,并设计了舵机调试器的硬件电路;其次,根据所要实现的功能,完成了软件设计;最后,制作了舵机调试器样机,并搭建了两 种实验环境,进行了实验验证。

实验结果表明,所设计的舵机调试器能够同时实现4路不同型号舵机的精确角度控制。

关键词:舵机,多型号,舵机调试器,电压调节中图分类号:TP23 文献标识码:A 文章编号:1674 - 9545 ( 2020 ) 02 - 0033 - (04)D0I : 10. 19717/j. cnki. jjun. 2020. 02. 009舵机以其调试方便、控制简单和精度高的优 势,被广泛应用到了小型机器人位姿调试和航模 飞行姿态调试之中⑴。

为了实现精确的姿态控制,就必须提高舵机角度控制的精度,基于此,学者们研究出了多种性能优异的控制系统,并设计制作出了不同的舵机调试器I"。

但是,现有舵机工作电压一般为5V~&4V,而且舵机调节参数也 不相同,因此为实现不同类型舵机的快速调试,需设计一种新型的舵机调试器。

文章以STM32单片机为核心,设计了一种高精度舵机调试器,实现了不同类型舵机的同时调试。

1舵机控制原理舵机是一种角位置伺服电机,一般通过脉宽调制(PWM)信号进行控制,由电机、减速器、电位器和控制电路四部分组成,通过输出端的电 位器检测转动角度,实现精确地角度转动控 制[8-9]o 图1为舵机的控制原理框图,由调试器所产生的PWM 信号通过舵机的控制信号线传送至控制电路后,舵机输出轴会转动至对应角度,该角度与PWM 信号的脉宽成正比。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#66#计算机测量与控制.2011.19(1) Computer Measurement &Control控制技术收稿日期:2010-05-14; 修回日期:2010-06-24。

作者简介:周永龙(1986-),男,河南灵宝人,硕士研究生,主要从事电路与系统,数字伺服方向的研究。

文章编号:1671-4598(2011)01-0066-03 中图分类号:T P273文献标识码:A基于STM32的数字舵机控制系统的设计周永龙1,雷金奎2(11西北工业大学电子信息学院,陕西西安 710072;21西北工业大学第365研究所,陕西西安 710065)摘要:针对无人机舵机控制系统对位置伺服的实时性和可靠性的要求,首次提出了以S TM 32为微控制器的新型数字控制系统;硬件部分给出了系统硬件结构图,并简要介绍了主控制芯片和硬件电路结构,为了提高系统数据传输的可靠性,引入CAN 总线传输方式;在软件部分,首先简要介绍了ST M 32的标准外设固件库函数,然后介绍了三闭环数字调节算法的实现和中断任务;另外,搭建了无人机数字舵机数字控制系统的仿真模型,通过仿真研究验证了控制策略的可行性。

关键词:无人机;ST M 32;三闭环伺服调节;舵机Design of STM32-Based Digital Actuator Controlling SystemZho u Yonglong 1,Lei Jinkui2(11No rthw ester n Polytechnical U niver sity ,Xi p an 710072,China;21R esear ch Institute N o 1365,N o rthwester n P olytechnical U niver sity,Xi p an 710065,China)Abstract:In view of th e position -s ervo real-timin g and reliability r equiremen ts to th e u nman ned aerial vehicle actu ator contr olling system ,for th e fir st time a novel digital actuator con tr olling s ystem is pu t forw ard based on S TM 32micr o-controller.In the hardw are part th e structu ral graph of the system hardw are is brough t forw ard,and the micro-controller and the hardw are circuit is br iefly introduced.To im prove the reliab ility of data tran smis sion,C AN bu s is u sed.In th e softw are part,S TM 32standard peripherals firmw are library is b riefly in trodu ced at first.Then the arith metic implement of th e th ree closed loop digital modulation and th e interruption tas k is mainly recommen -ded.In addition the emulation m od el of the unm ann ed aerial vehicle digital actuator controlling s ystem is built,and the s ystem performance is validated.Key words :U AV;ST M 32;thr ee closed-loop control strategy;actuator0 引言舵机控制系统是无人机控制系统的重要部分,其性能好坏直接决定了无人机的性能。

随着国防军事的发展,人们对无人机的性能要求也越来越高。

本文研究的目的就在于设计新型数字舵机控制系统,以满足无人机舵机控制系统的快速性﹑精确性和稳定性等指标。

该数字舵机控制系统是以微控制器ST M 32F 103R 为主控制单元,外围电路包括信号调制电路,信号采集电路和换向控制电路。

该系统接收由上位机发出的位置指令,驱动舵机转动,从而实现了对无人机飞行的准确控制。

1 系统组成框图舵机控制系统是无人机控制系统的重要组成部分。

系统使用ST M 32系列微控制器作为主控制芯片,完成数字舵机控制系统的设计和实现。

系统的飞行控制指令由飞控计算机提供,通过数据接口接入航机控制器。

航机控制器依据最新的位置指令与反馈信息,产生舵机飞行的控制信息。

航机控制器有数据接口模块、中央控制单元模块、电机的逻辑换向模块及隔离与功率驱动模块。

中央控制单元完成数字调节,逻辑单元接收电机位置信息和换向信息,产生新的换向信号,并由隔离与驱动模块完成该信号的隔离与放大。

驱动电机通过减速器带动舵面发生偏转。

电机的速度信息与舵面的位置反馈信息通过传感器输入到航机控制器。

系统组成框图如图1所示。

图1 系统组成框图2 基于微控制器STM32F103R 的硬件描述211 微控制器STM32F 103RST M 32F10X 系列微控制器使用灵活而丰富的电源控制策略,为内部的各个模块提供工作电压。

各个模块时钟频率可以软件配置。

该控制器内嵌了丰富的外设功能模块。

该系列控制器中有4个定时控制器,可以工作在编码模式和PWM 模式,对于电机控制很有用处。

212 硬件设计系统硬件主要包括主控制器﹑接口部分﹑逻辑换向部分﹑信号反馈部分和驱动部分。

(1)接口部分该系统使用CAN 总线接口,接受位置指令。

由于ST M 32系列微控制器内嵌CA N 模块控制器,所以使用CAN 总线传输数据时,非常方便。

外部接口只需要外接一个CA N 总线收第1期周永龙,等:基于ST M32的数字舵机控制系统的设计 #67#发模块。

接口电路可以直接挂接到CA N 总线[1],接收上位机位置指令。

(2)换向部分该系统使用可编程逻辑器件完成电机换向的控制。

输入信号包括电机反馈的三相霍尔信号﹑方向信号和占空比信号,输出为六相PW M 控制信号。

可编程逻辑器件的时钟信号由主控制器的主时钟输出引脚提供。

本系统使用可编程逻辑器件,完成换向策略,从而避免了使用微控制器实现逻辑换向过程的复杂性。

(3)反馈部分由于本设计采用三闭环数字调节,反馈量包括位置反馈,速度反馈和电流反馈。

位置反馈过程对实际舵面偏转量进行反馈和信号调制,然后输入到主控制器的模数转换接口。

电流反馈部分使用流压转换器件将驱动电流转换为电压信号,调制之后输入到主控制器的A D 转换接口。

速度反馈利用光电编码接收器件,将正交编码信号输入到主控制器的定时控制器,使用主控制器编码模式计算速度反馈[2]。

(4)驱动部分系统使用的驱动电压为28V ,远大于控制电路部分的5V 和313V 电压。

因此,必须使用隔离元件进行隔离,将PWM 电压控制信号隔离放大之后输入到驱动芯片的输入端,驱动芯片输出三相交流驱动电流,驱动电机转动。

系统采用三相无刷直流电机星型连接全桥驱动方式,输入为6路PWM 信号,产生A,B,C 三相输出,驱动电机旋转[3]。

驱动电路图如图2所示。

图2 驱动电路3 系统软件描述本系统软件是基于EWA RM 的开发平台,使用了ST M 32F10X 标准外设固件库函数开发。

该系统软件设计包括系统初始化、中断程序设计和主程序设计。

初始化程序设计包括工作时钟设置,CAN 接口初始化,A D 转换接口初始化。

中断程序设计包括由CA N 接口接受数据,和驱动芯片异常情况处理。

主程序是一个无限循环程序,它不断检测是否有新的数据输入,或者有中断信号产生。

然后停止检测,并完成处理。

完成处理后跳回主循环继续检测。

CAN 中断程序包括接受新的位置指令[4]。

主程序包括从AD 转换接口接收反馈信号,并完成三环PID 调节,输出PW M 占空比信号。

311 STM 32F 10X 标准外设固件库函数的应用ST M 32F10X 标准外设固件库函数基于32位AR M 微控制器ST M 32F101xx 与ST M 32F103x x ,包括了微控制器所有外设的性能特征,覆盖了外设所有功能,可以很方便实现各种应用。

软件要做的工作包括以下几个方面:(1)stm32f10x _conf 1h 参数设置文件,起到应用和库之间界面的作用。

在这个文件中,设置使能AD 转换和CA N 控制器模块,并且设置H SI 时钟频率为8000000H z 。

(2)stm32f10x _it 1c 中断设置文件,在硬件异常中断H ardFaultExcept ion ()中添加硬件保护措施,在CAN 接收中断U SB _L P _CAN _RX0_IR QH andler ()中添加接收超时处理。

(3)主程序ma in ()函数。

在这个函数中CA N ﹑DM A 和AD 等模块的时钟配置;配置端口模式;配置A D 模块的工作模式;在主循环中进行数字调节,产生新的电压占空比信号,并且存储最新的反馈信息。

主程序如下:int main(void){**RCC_Configu ration();NVIC_Configuration();GPIO_Configuration ();DM A_DeIn it(DM A_Channel1);**DM A_Init(DM A_Channel1,&DM A_InitStructu re);DM A_Cmd(DM A_Chan nel1,ENABLE);**ADC_In it(ADC1,&ADC_InitS tru cture);ADC_DM ACmd(ADC1,ENABLE);ADC_Cmd(ADC1,ENABLE);w hile (1){*****三环数字调节*****}}312 软件流程该系统的主要功能是接收位置指令,并使用传感器得到位置﹑速度和电流的反馈信息,计算得到新的驱动电压波形。

其流程图如图3所示。

图3 软件流程图4 控制系统仿真与建模本系统采用matlab 作为仿真工具在simulink 环境下搭建舵机模块。

系统建模的指导思想是对该系统的各个部分进行建模,包括无刷电机模块、直流电源模块、M OSF ET 功率开关器件模块、换向逻辑模块、减速器模块和三闭环调节模块。

相关文档
最新文档