<>题目:

程控风力摆(C题)

【基础架构】:一长约 60cm~70cm
的细管(刚性管)上端用合页固定在支架上,下方悬挂一组直流风机,构成一风力摆。风力摆上安装一向下的激光笔,静止时,激光笔的下端距地面不超过
20cm。设计一测控系统,控制驱动各风机使风力摆按照一定规律运动,激光笔在地面画出要求的轨迹。

【基础要求】:

* 现场输入 4 个坐标点,坐标点范围为[-30,30]内,令风力摆从静止开始,10s内控制激光笔指向指定位置并要求稳定时间不少于3s,误差不超过±2cm。
* 在上位机绘制摆角α和坐标 x 随时间变化的曲线,能够清晰反映当前摆的角度和激光点坐标位置信息,角度误差不超过±1°,坐标距离误差不超过±2cm。
* 控制激光点从原点出发,依次经过 0,-30cm,-20cm,-10cm,0 ,10cm,20cm,30cm 处各点,各点处稳定时间不少于
3s,且用蜂鸣器进行提示,全过程不超过 40s。
【发挥要求】:

* 设置坐标 x1,x2,使激光点在 x1 和 x2 之间往复摆动 3 个来回以上,误差不超过±2cm。
* 自定义运动模式。按键输入指令“a#b”表示激光点到达 a 处稳定 b 秒,期间蜂鸣器鸣叫;输入指令“c@d#e”则表示激光点在 c 和 d 之间摆动
e 个来回,并在每次到达端点时发出一声蜂鸣;指令间以 ‘;’ 间隔;所有指令的整体以‘%’开始,以‘&’结束。在最后输入‘&’
后,风力摆按照预设指令循环执行操作。(指令总长度不超过 100 个字符)。
* 输入 “%-25#2;-7@14#3;17#1;11#3;7#3;&”
* 风力摆运动到-25cm 处稳定 2 秒并发出 2 秒蜂鸣;
* 风力摆在-7cm 和 14cm 之间往复摆动 3 个来回;
* 风力摆运动到 17cm 处稳定 1 秒并发出 1 秒蜂鸣;
* 风力摆运动到 11cm 处稳定 3 秒并发出 3 秒蜂鸣;
* 风力摆运动到 7cm 处稳定 3 秒并发出 3 秒蜂鸣;
<>方案计划:

题目的整体流程分为三个部分:硬件架构、底层终端部分、上位机部分:

<>硬件架构:

方案一:使用万向节作为摆动的节点
,但是由于万向节左右方向卡死后依旧能向左右方向活动,主要是由于两个万向节中间接触点部分的细缝影响,当作用到杠杆整体时影响误差较大所以最终不选择此方向。

方案二
:使用合页作为摆动的节点,合页只能进行前后移动,整体效果良好,哪怕左右中间有空隙但是整体会进行平移,整体使用效果良好。合页需要自己打孔使得整体保持平衡前后移动。

<>底层终端部分:

外围底板上器件:

* 主控选择使用STM32C8T6。
* 输入4个坐标点用矩阵键盘进行输入。
* I2C屏幕进行提示输入的按键和标题的选择。
* L298N进行电机驱动。
硬件架构上器件:

* Mpu6050放到硬件上。
* 两个空心杯电机放下方。
* 一个激光头。

<>上位机部分:

方案一:通过蓝牙转串口+屏幕+32大板作为上位机进行上方数据的显示。

方案二:通过串口线直连+32大板作为上位机进行上方数据的显示。

方案三:通过串口线直连电脑在电脑部分进行上方数据的显示,delphi进行上位机的编写。

<>实现流程步骤:

MPU6050实现:

陀螺仪部分使用的是自带串口转换的mpu6050,通过官方给定的协议在垂直位置进行初始化后开始进行后续角度加速度的读取。

按键实现:

使用矩阵键盘,通过读取各个端口的引脚电平进行匹配后进行判断当前的按键数字。

屏幕实现:

PID控制PWM:

根据当前与方向的偏差设置PWM的输出然后导入到电机里,通过角度差或者位置差进行判断是否稳定。

<>演示图片:

<>问题总结:

<>Q1:给满占空比时只能达到29cm的幅度

解决办法
:刚开始下板使用的是大板亚克力打造,且上面通过珐琅盘进行固定。虽然整体稳定但重量太大,通过把下板的大亚克力板换成小亚克力板,且取消珐琅盘后通过测试。在同样的情况下给满占空比能够达到37cm。或者通过改变电机的位置,使用双向电机同时进行驱动可以达到需求,但此方法需要两套PID进行配置,所以选择减轻重量满足要求。

<>Q2:L298N无法使能

依据官方手册,L298N在 2.3V - VSS
之间认为是高电平。但当使用稳压电源测试的时候当给5V使能端输入的时候具有正常输出;当给4V使能端输入的时候具有正常输出;当给3.3V使能端输入的时候输出为0.1V。明显使能端输入电平不符。但32单片机输出电压本身具有限制最大就3.3V。

解决办法
:由于时间有线通过外加电路把输出的PWM信号再次进行放大后接入L298N使能端。通过使用s9013小功率NPN三极管进行反向放大。能够把3.3VPWM输出放大到4V满足输入的使能。且由于使用反向放大器,所以当输入低电平时可以输出高电平。

<>Q3:L298N输出压降大

L298N在正常情况下,通过负载控制会有一定的压降。但通过使用空心杯电机的时候压降非常巨大。且空心杯电机供电有需求,需要通过大量测试确定最终的电源接入电压。

使用外围电路后测试结果:

6V电源接入 未接负载5.22V输出 接通负载2.26V输出

7V电源接入 未接负载6.17V输出 接通负载2.56V输出

8V电源接入 未接负载7.2V输出 接通负载3.02V输出

9V电源接入 未接负载8.07V输出 接通负载3.38V输出

<>Q4:STM32推挽输出电压不够

需要32上修改跳线帽的接法。

【总结】:本次比赛刚开始架构搭建用时较大,L298N部分消耗大量时间测试模块性能。使得后期调整PID的时间有限。

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信