聚丰项目 > 基于RT-Thread的自校准模拟电磁炮

基于RT-Thread的自校准模拟电磁炮

本系统基于RT-Thread嵌入式实时操作系统,与磁阻式电磁炮、云台、TOF激光测距、LCD液晶显示屏等组成的寻靶测距控制系统。 根据激光测距检测的位置参数通过PID算法控制云台舵机自动锁定发射目标,同时通过输出可控的PWM信号给云台舵机,来控制自动巡迹目标的定位和发射装置的水平、垂直角度。主控制器根据发射参数计算出电磁炮发射装置的水平、垂直角度及对充放电电路的时间常数,控制云台转动及实现电磁炮的发射。

莫离哈哈哈 莫离哈哈哈

分享
3 喜欢这个项目
团队介绍

莫离哈哈哈 莫离哈哈哈

团队成员

姚文龙 学生

分享
项目简介
本系统基于RT-Thread嵌入式实时操作系统,与磁阻式电磁炮、云台、TOF激光测距、LCD液晶显示屏等组成的寻靶测距控制系统。 根据激光测距检测的位置参数通过PID算法控制云台舵机自动锁定发射目标,同时通过输出可控的PWM信号给云台舵机,来控制自动巡迹目标的定位和发射装置的水平、垂直角度。主控制器根据发射参数计算出电磁炮发射装置的水平、垂直角度及对充放电电路的时间常数,控制云台转动及实现电磁炮的发射。
硬件说明

1.  LCD接口电路

image.png


2.LED接口电路

image.png

3.激光测距串口接收电路

image.png

image.png

4.PWM信号输出电路(舵机控制)


image.png

image.png


软件说明

RT-Thread使用情况概述:

使用了信号量,线程创建,FinSH控制台,中断管理


一、main函数

  1.创建一个信号量用于中断和任务之间的同步

image.png

2.创建两个任务,任务1用于液晶屏显示,任务2用于调整PWM信号占空比(舵机角度)

image.png

3.任务1入口函数,首先获取串口接收中断的信号量,如果信号量已经释放,说明激光测距模块的距离值已经更新,执行后面的显示程序

image.png

4.任务2入口函数,用于改变PWM信号的占空比

image.png


二、中断服务函数

1.     串口接收中断,用于接收激光测距模块返回的距离值,一帧数据分为九个字节,前两个字节是帧头,第三四个字节为距离值的高八位和低八位,第五六个字节分别为信号强度的高八位与低八位,最后一个字节为校验和。当成功接收到一帧数据之后,释放信号量,任务1可以更新显示的距离值,避免了LCD屏幕的无效刷新,节省了CPU资源的利用率。

image.png


  2.定时器中断TIM3

首先将定时器3的引脚重映射到PC6PC7

image.png

通过改变TIM3->CCR1寄存器的值来修改占空比,达到对舵机的控制

image.png

 

详细代码莫离/莫离的小仓库 (gitee.com)

 


演示效果

该系统能够自动识别目标(以水杯为例),并控制舵机转向该目标,同时将相关信息显示在LCD上

附件

(0.00 MB)下载

评论区(3 )
  • dianzi_0101: 666

    回复

  • dianzi_0101: 演示只看到目标追踪,没看到电磁炮呀

    回复

  • jf_25703341: 19电赛?

    回复