桌面机械臂下位机驱动系统

Home 论坛 RISC-V 创意竞赛专区 桌面机械臂下位机驱动系统

正在查看 2 帖子:1-2 (共 2 个帖子)
  • 作者
    帖子
  • #1975
    day_dayday_day
    参与者

    该参赛作品为针对液体搬运环境优化的机械臂下位机运动控制卡。针对日常生活中一个常见的场景——搬运液体(俗称“端水”),设计一项高效平稳的控制算法,配合自主开发的控制器驱动板卡,驱动自制的机械臂到达目标位置,使该算法达到高效平稳搬运液体的目的。

    机械臂应能实现针对液体搬运优化算法的点到点定位运动功能、定变速运动功能、与上位交互功能、反馈矫正功能等

    驱动板图形粗览:

    http://m.qpic.cn/psb?/V12XmeY512mDFJ/p6hH2UNOREyX52GKDY8NGneWSrtiP3G*udgyyO2Ffss!/b/dL8AAAAAAAAA&bo=nAMzAwAAAAADB40!&rf=viewer_4

    资料正在整理,后续发布

    #1977
    day_dayday_day
    参与者

    电气组件介绍

    电机驱动模块选型。电机驱动模块采用DRV8825、A4988混合驱动。A4988是一款常见的步进电机驱动芯片,其模块广泛用于3D打印机的步进电机驱动,具有成本低、功耗小、驱动能力强的特点,适合42步步进电机在负载不大的情况下驱动运行,因此可用于回转轴驱动,最重要的是,在两块DRV8825模块同时驱动的情况下,剩余功率不足以提供第三块DRV8825动作,经实测两块DRV8825与一块A4988能够正常运行。DRV8825是德州仪器的集成电机芯片,其模块设计兼容A4988,但稳定性更好,能够提供高达1.5A的电流,适合驱动负载稍大的步进电机,因此可用于驱动主轴和副轴。

     

    位姿反馈方案设计。采用MPU6050六轴运动传感器,包含陀螺仪和倾角传感器,能够通过I2C与上位机通讯。在每次运动起始和完成阶段进行一次位姿矫正,防止运动误差累积。

     

    舵机选型及驱动方案设计。舵机采用MG996R型号的180°舵机,该舵机工作在4.8-7.2V之间,能够提供9.4kg/cm以上的拉力。为了满足驱动舵机的功率以及防止舵机运行时的电流涌浪,舵机采用额外的5V供电,驱动端口采用光耦IC隔离。光耦IC型号选择为PC817。

     

    供电体系设计。系统由12V直流电源供电,经过一块MP1584模块降压为5V直流电源,供给传感器与主控板卡。另外12V直流电源还通过另一块MP1584模块降压为5V向舵机供电。

     

    上下位机通讯方案设计。由于受各种较大功率的设备影响,系统存在一定的电源涌浪,CH340G芯片以及主控板卡板载的DAP仿真器无法正常工作在这个电源体系下,因此需要采用更稳定的工业串口通讯方案——232通讯或者不受涌浪影响的透传蓝牙模块HC-06。

    驱动板文件见:

    https://git.lug.ustc.edu.cn/dayday/tarm/tree/master/PCB/TARM_V2

    程序组件介绍

    tarm_communication组件

    负责对上下位机通讯。外设启动了两个串口:UART0控制台串口、UART1设备串口。控制台串口位于板卡上;设备串口通过arduino型接口与驱动板连接,驱动板上可以通过跳帽选择使用RS232或者无线蓝牙模块作为传输介质。支持打断控制。

    指令为自定义命令集,格式如下:

    _&<命令><参数>;<命令><参数>;<命令><参数>

    参数支持包括:

    指令 作用
    X Y 指定XY平面的点,使机械臂运动到该点
    S 复位
    E 查询当前运动状态
    F 向前移动
    B 向后移动
    U 向上移动
    D 向下移动
    R 绕Z旋转轴转动
    C 夹持末端回转轴转动
    T 夹持轴转动

    tarm_time组件

    为各轴运动提供时基。

    定时器定时实现。

    timebase为第一套算法提供时基,该算法仅支持一般恒速运动,可以调节一次运动的速度;可以实现三轴联动;使用的时钟是TMR0。

    timepv为第二套算法提供时基,该算法仅支持主轴、副轴联动;对运动过程有变速控制,为针对液体平稳搬运环境的优化算法。该算法基于一个传递函数,传递函数采用了一个三角函数。

     tarm_limit组件

    限位器组件

    协助机械臂进行初始化定位。

    限制机械臂运动行程。通过外部中断实现。触碰到限位器时,返回设定的零点。

    tarm_io组件

    对脉冲输出端口、方向控制端口配置、初始化。控制主轴、副轴、绕Z旋转轴的三个步进电机。

     Closeloop组件

    反馈控制。通过硬件IIC总线访问MPU6050,校准运动误差,使运动误差不积累。在外部因素影响导致IIC硬接线断开时,能自动转化为开环模式。

    tarm_pwm组件

    通过输出PWM控制夹持末端回转轴、夹持轴的舵机。

    原本设计通过TPM外设输出PWM,但由于机械结构部分和硬件电气部分存在设计错误,后拟定改用IIC总线控制PCA9685输出PWM。未适配。

     

    源代码:

    https://git.lug.ustc.edu.cn/dayday/tarm/blob/master/Lower%20computer%20/RV32M1/third-gpio-191110-3.zip

     

    演示视频:

    https://user.qzone.qq.com/1061368165/infocenter

     

正在查看 2 帖子:1-2 (共 2 个帖子)
  • 抱歉,回复话题必需登录。