大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
- 系统方案
- 总体设计方案
本系统主要由电位器模块、直流减速电机模块、电源模块、电机驱动模块、单片机最小系统班组成。电位器与主控芯片STM32F407ZGT6相连,通过电位的测算实时向MCU发送摆杆的状态,MCU通过控制LM298N电机驱动模块来控制直流减速电机,进而控制摆杆的状态,并使用LCD显示相关参数。
- 方案的比较与选择
2.1传感器的选择
方案一:采用三轴陀螺仪测量摆杆的偏转角度。当选用三轴陀螺仪检测摆杆的偏转角度时,虽然可以计算摆杆的偏转角度,但是传感器必须要固定在摆杆上,同时需与MCU直连以进行通信,给硬件的搭建与连接及软件的编写大大增加了难度,可行性较差。
方案二:采用电位器测量摆杆的偏转角度。当选用电位器测量摆杆的偏转角度时,虽然在测量时可能会因电位器的固有误差导致角度换算误差,但当使用较高精度的电位器时便可有效降低此类误差。且其机械结构使其可作为摆杆的转动主轴,故可有效降低硬件部分的复杂性,并增强其稳定性。此外,其较为简单的原理也便于软 件的编写,故此方案的可行性较强。
综上所述,选择方案二。
2.2电机的选择
方案一:采用步进电机驱动旋转臂。步进电机具有动态响应快、易于启停、易于正反转的切换及变速的优点。但缺点是它以步进式跟进,角度小于一个步进角时是系统的响应盲区,此外,在实际测试时,步进电机在驱动旋转臂时,抖动较大,且易出现卡顿现象,故其不适合倒立摆的控制。
方案二:采用直流减速电机驱动旋转臂。直流减速电机相较于直流电机虽然转速较低,但扭矩大,且转速足以使用。且其体积小,驱动电路简单,稳定性强,负载能力强,不会出现类似步进电机的卡顿、抖动的现象。
综上所述,选择方案二。
2.3主控芯片的选择
方案一:选用传统的51单片机。当选用51单片机作为控制系统时,可以通过外部AD芯片对传感器发回的模拟量进行检测,并采用PID算法对摆杆的状态进行控制,但由于51单片机的运算速度经过十二分频,且需使用IO口模拟SPI总线协议,这样对单片机的性能有着很高的挑战性,同时还要在此基础上对直流减速电机进行实时操控,可实行性较差,很难实现预期效果。
方案二:选用STM32F407ZGT6单片机。当选用F4单片机作为控制系统时,因其片内自带AD转换、PWM脉宽调制和SPI总线接口。且F4单片机比传统的的51单片机性能强劲许多。
综上所述,选择方案二。
- 理论分析与参数计算
- 理论分析
1.1PWM脉冲宽度调制
STM32F407ZGT6单片机内部自带有PWM脉宽调制,通过调节PWM波的占空比,来控制电机的转速,并通过改变电机驱动模块相应接口的电平来控制电机的转向,结合电位器反馈的电平值及编码器反馈的信号,对摆杆的状态实施实时的维控。
- PID算法
PID算法是一种闭环的自动控制器。它具有原理简单、易于实现、适用面广、控制参数相互独立,参数的选定较为简单等优点。当运用在具有反馈的系统中具有很好的自动调节能力,用在在本系统中十分合适。当电位器反馈摆杆发生位移时,其变化的模拟量被MCU的AD所采集,MCU运用PID算法选用合适的计算方式,以控制电机的转向及转速,进而对摆杆的实时位置进行微控,已完成题目的要求。PID算法流程见附件一
3、摆杆状态检测
本组采用电位器检测摆杆状态。电位器是具有三个引出端、阻值可按某种变化规律调节的电阻元件。当电刷沿电阻体移动时,在输出端即获得与位移量成一定关系的电阻值或电压。其具有极高的精确性,能够对角度的变化进行很好的测量。计算电位器与角度的关系,即可通过对电位器反馈的电平进行AD转换,以间接获得摆角,即摆杆的实时状态。
摆角与电位
器反馈值之间关系如下:
- 电路与程序设计
- 电路
1.1系统总体框图
1.2最小系统框图
注:最小系统原理图见附件
1.3电源
电源由变压、滤波、稳压等模块组成。为系统提供了5V及12V的供电,确保电路的正常工作。此部分电路较为简单,故不在此赘述。
1.4硬件实物如图所示:
- 程序流程图
2.1主程序流程图
2.2电机驱动子程序流程图
2.3电位器子程序流程图
- 系统调试及测试结果
- 调试方法
1.1硬件调试
首先检查仿真电路与硬件电路是否与系统原理图完全一致,随后检查各机械部分和电气部分是否正确连接,并确保线路不会影响摆臂的运动。然后用数字万用表测试各个线路上是否有短路或是断路的,焊盘时候虚焊,最后通电检测各器件是否损坏,各模块是否能正常工作。若上述检查皆正常,则硬件测试完毕。
1.2软硬件的协调
首先使用F4单片机内部的PWM脉宽调制,通过电机驱动模块控制电机的转速及转动方向,然后使用AD转换,用以接收电位器在不同角度的电平变化,随后MCU通过PID算法对摆杆的状态进行反馈调节,进而完成要求。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171015.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...