本帖最后由 day_day 于 2020-3-11 22:09 编辑
(一)作品介绍
该参赛作品为针对液体搬运环境优化的机械臂下位机运动控制卡。针对日常生活中一个常见的场景——搬运液体(俗称“端水”),设计一项高效平稳的控制算法,配合自主开发的控制器驱动板卡,驱动自制的机械臂到达目标位置,使该算法达到高效平稳搬运液体的目的。
机械臂外观:
控制卡驱动板:
:以下是新的驱动板: 该驱动板修复了上一块驱动板的一些布线问题和布局问题。
1、
电机驱动模块选型。电机驱动模块采用DRV8825、A4988混合驱动。 A4988是一款常见的步进电机驱动芯片,其模块广泛用于3D打印机的步进电机驱动,适合42步步进电机在负载不大的情况下驱动运行,因此可用于回转轴驱动 最重要的是,在两块DRV8825模块同时驱动的情况下,剩余功率不足以提供第三块DRV8825动作,经实测两块DRV8825与一块A4988能够正常运行。DRV8825是德州仪器的集成电机芯片,其模块设计兼容A4988,但稳定性更好,能够提供高达1.5A的电流,适合驱动负载稍大的步进电机,因此可用于驱动主轴和副轴。
2、位姿反馈方案设计。采用MPU6050六轴运动传感器,包含陀螺仪和倾角传感器,能够通过I2C与上位机通讯。在每次运动起始和完成阶段进行一次位姿矫正,防止运动误差累积。
3、
旋转舵机选型及驱动方案设计。舵机采用MG996R型号的180°舵机,该舵机工作在4.8-7.2V之间,能够提供9.4kg/cm以上的拉力。为了满足驱动舵机的功率以及防止舵机运行时的电流涌浪,舵机采用额外的5V供电,驱动端口采用光耦IC隔离。光耦IC型号选择为PC817
夹持舵机选型。夹持舵机采用mg90,以减少机械臂末端承重。
4、
供电体系设计。系统由12V直流电源供电,经过一块MP1584模块降压为5V直流电源,供给传感器与主控板卡。另外12V直流电源还通过另一块MP1584模块降压为5V向舵机供电。
5、
上下位机通讯方案设计。由于受各种较大功率的设备影响,系统存在一定的电源涌浪,CH340G芯片以及主控板卡板载的DAP仿真器无法正常工作在这个电源体系下,因此需要采用更稳定的工业串口通讯方案——232通讯或者不受涌浪影响的透传蓝牙模块HC-06。
(三)程序组件介绍
communication组件
负责对上下位机通讯。
外设启动了两个串口:FL0控制台串口、FL2设备串口。控制台串口位于板卡上;设备串口通过arduino型接口与驱动板连接,驱动板上可以通过跳帽选择使用RS232或者无线蓝牙模块作为传输介质。支持打断控制。
指令为自定义命令集,格式如下:
_&<命令><参数>;<命令><参数>;<命令><参数>
参数支持包括:
timer组件 定时器定时实现。timebase为第一套算法提供时基,该算法仅支持一般恒速运动,可以调节一次运动的速度;可以实现三轴联动;使用的时钟是CTIMER0。timepv使用时钟CTIMER1为第二套算法提供时基,该算法仅支持主轴、副轴联动;对运动过程有变速控制,为针对液体平稳搬运环境的优化算法。
SYSTICK时钟提供延时
CTIMER2提供速度仿真计时器时基,功能用于开发工程中评估算法消耗时间。
limit组件
限位器组件
协助机械臂进行初始化定位。
限制机械臂运动行程。通过外部中断实现。触碰到限位器时,返回设定的零点。
IO组件 对脉冲输出端口、方向控制端口配置、初始化。控制主轴、副轴、绕Z旋转轴的三个步进电机。。
Closeloop组件 反馈控制。通过硬件IIC总线访问MPU6050,校准运动误差,使运动误差不积累。在外部因素影响导致IIC硬接线断开时,能自动转化为开环模式。 (四)程序结构 middleware为驱动层,hardware为接口层,application为与硬件完全屏蔽的运动框架层 组件的分类大体是按照hardware层来分 使用的资源可以从middleware看到
(五)单核工程使用资源介绍
1-ctimer定时器 程序的核心就是通过定时器控制脉冲周期,不同的轴、不同的运行方式需要不同的ctimer,此外速度仿真也需要计时器提供时基。该项目中一共使用了三个ctimer定时器。 相关程序在middleware的tarm_ctimer源文件内。
2-iic iic与角度传感器通讯,反馈位姿信息 相关程序在middleware的tarm_iic源文件内。
3-uart 下位机通过uart与上位机通讯。通讯形式为自定义指令,上面有定义 相关程序在middleware的tarm_uart源文件内。
4-powerquadpowerquad运算对运动速度精度的提升尤为明显,该框架下的运动,运算时间都是额外算进去的,运算时间越长,运动失真越厉害,特别是高速运动时达不到指令预设速度。powerquad加速令该情况大为改善,相关分析见二楼。
相关程序在middleware的tarm_math源文件内。
5-PIN中断
当角度传感器无效时,运动自动变为完全开环状态,这时候需要限位装置初始化机械臂的定位。
触碰到限位时,需要触发PIN中断,保证行程不过限制。
相关程序在middleware的tarm_exit源文件内。
(六)双核工程使用资源介绍
除单核所使用的五个外设外,双核工程的从核心额外添加音频播放功能,单独使用一个核心进行音频处理可以有效避免资源抢夺,运动完成一次后,通过MAILBOX向从核心发送信号,从核心播放音乐。因为指令发送可能是频繁的,因此播音的过程可能再启动一个运动。采用另一个核心处理音频,即保证音频信号的连续传输,也不会影响可能正在进行中的运动计算。
双核工程的额外功能:
1-SDIO+FATFS
通过SDIO驱动TF卡,通过FATFS读取所需的音频文件
2-DMA+IIS+IIC,驱动WM8904进行音频播放
FL4外设作为IIC,FL7外设作为IIS,驱动WM8904板载WAV解码IC播放音乐,通过耳机或者外部功放播放,每当运动完成时进行音频提醒
3-MAILBOX
使用MAILBOX进行主从核心之间通讯当主核心运动完成后,告知从核心,从核心播放音乐提醒。
(七)工程与演示
项目更新托管地址
单核工程码云:
http://gitee.com/tinnu/TARM_SLAVE.git
双核工程附件:
workspace7-lpc55s69-H3_TARM+TF+WM8904.zip
(2.12 MB, 下载次数: 7)
|