本帖最后由 xp2xp 于 2019-4-28 23:24 编辑
基于视觉的电磁炮
[size=10.5000pt]一、整体构造 完成版的整体构造如下图。
其中基座部分采用“全方位蜂巢云台”(http://www.dfrobot.com.cn/goods-1058.html),在上面分别安装了两个云台,分别用于搜索目标和瞄准目标。
使用“RosBot机器人主控板”(https://item.taobao.com/item.htm?spm=a1z10.1-c.w5003-16507481177.2.7a92f97f08xHVH&id=551011963085)作为各舵机的控制枢纽。 使用“树莓派3B”作为主控部分,识别图像和距离,并判断如何瞄准定位,将图像投射到屏幕上。 使用“带功放喇叭模块”(http://www.dfrobot.com.cn/goods-1228.html)播放配乐。 [size=10.5000pt]二、各功能模块 [size=10.5000pt]1、基座 采用舵机调整瞄准镜和炮口。 [size=10.5000pt]2、瞄准(位置/距离检测)功能 使用小MU和53L0X进行目标物位置和距离判定。 由于小MU和53L0X都可以使用IIC连接,因此可以将两个器件并连起来。
[size=10.5000pt]3、驱动板(下位机) 使用RosBot通过IIC读取瞄准器的信息,通过GPIO进行舵机和继电器的控制。基本代码通过Arduino编写。
[size=10.5000pt]4、主控单元(上位机) 使用树莓派做为主控单元,和下位机通过命令字进行交互。通过识别图像和距离,进行瞄准。 [size=10.5000pt]5、电磁炮发射装置 采用升压电路(考虑到儿童使用安全,升压至30V)给电容充电,由充满电的电容向电磁线圈放电,由磁力射出“子弹”。 [size=10.5000pt]6、瞄准装置 所谓瞄准装置,其实就是一个激光管,在充电阶段可以指向目标(附近)。 [size=10.5000pt]7、电源 [size=10.5000pt]树莓派要求为usb供电,rosbot主控使用5V供电,电磁炮采用升压后的供电。
8、系统框图
9、业务流程
[size=10.5000pt]三、代码 [size=10.5000pt]1、协议命令字 定义上位机和下位机交互命令字如下: 由上位机发送命令,下位机仅做响应,包括3个部分: 1)舵机控制 包括四个舵机,分别驱动瞄准器的方位角、俯仰角,基座的方位角,发射器的俯仰角。例如: #o150,150,150,150 设置4个舵机均为150,无响应字。 2)IIC信息读取 读取小MU和53L0X的信息,命令字为i,响应字包括距离distance、位置x,y,颜色color。例如: #i 3)继电器控制 控制电磁炮发射的充放电、辅助瞄准激光的开启关闭等,命令字为l。例如: #l0,0 使能激光器和继电器(低电平有效)。 无响应字。 [size=10.5000pt]2、下位机代码 [size=10.5000pt]3、上位机代码
gui.rar
(2.49 KB, 下载次数: 25)
[size=10.5000pt]四、开发心得 [size=10.5000pt]1、缺陷 这个电磁炮系统的核心是小MU视觉板,但这个视觉板相对比较“近视”,在目标物直径3cm时,有效的瞄准距离只有20cm,我试图加过镜头,但效果不明显。 小MU使用确实极大程度化简了视觉系统的开发,可以识别出图像(在这套系统中,目标物选择为红色的苹果和绿色的西瓜)。 53L0X测距似乎抖动有些偏大,因此瞄准距离计算并不是特别精确。 [size=10.5000pt]2、焊接心得 这个系统中用到焊接的地方不多,只是将电容和电压表焊接到一起、小MU和53L0X焊接到一起,我所说的心得无非是烙铁头的选择,因为不慎将小MU的接口烫坏,重新进行了粘贴修复,因此,建议大家如果进行类似操作,务必选择合适的烙铁,细小器件最好用尖头焊接,焊接时选择固定架子夹牢后再操作,烙铁温度切勿过高。 [size=10.5000pt]3、器件选择、机电安装心得 1)电磁线圈的选择 我曾自行进行了线圈的绕制,效果其实不错,但由于手工绕制,及时涂上树脂胶,仍然非常不稳定(直接散架),因此选择了现成的电磁阀线圈。 2)电容选择 理论上电容容量应该是越大越好,但实际上考虑到电压并不太高,由于“子弹”加速路程短,在电容容量过大时,反吸的情况很严重,经过测试0.1F左右是比较合适的(我使用了两个0.047F的并联)。 3)舵机选择 舵机真的可以说是1分钱1分货,用的铜芯的舵机明显精度高于塑料电机。在装配时,应先让舵机“归零”后再进行装配,防止由于阻挡让舵机不能旋转到正确位置,造成舵机“空烧”,事实上,我在调试中就因为这个原因烧毁了一个舵机。 [size=10.5000pt]4、UI开发心得 使用pygame开发界面。大约是树莓派本身性能原因,界面并没有在windows下流畅,但动画效果基本可以提现出来。 由于开发的课题是“ 基于视觉系统瞄准的电磁炮”,意思就是机器视觉,而不是人的视觉,因此人为的介入越少越好,在本系统中,人为输入只需要两次: 1)手工输入命令行:python gui.py 2)用鼠标选择苹果或者西瓜
完成视频如下:调试中 链接:https://pan.baidu.com/s/1VWIJfSPpZWNTZoG8aqQKTA 提取码:8o08 完成2 链接:https://pan.baidu.com/s/10XKmBIvU_fKxE4Pi1goWPQ 提取码:tqjd
|