产品概述

单片机 机械手 基于ARM的多自由度机械手设计

小编 2025-07-14 产品概述 23 0

基于ARM的多自由度机械手设计

孙捷,刘瑄,有力,刘楚,徐莲辉 (华中师范大学 计算机学院,湖北 武汉 430070)

摘要: 机械手选用ARM芯片作为控制核心,主要是基于其运算能力强,外设接口丰富,可扩展成串行、并行、高速和低速等各种接口,也能很容易扩展成网络接口,便于机械手组网协同工作。特别是ARM芯片的LCD接口和存储器扩展接口能大大提高机械手的智能化程度,扩展LCD后能提供友好的人机交互界面,便于编程、维护和故障指示;大容量存储器可为复杂运算和大数据存储提供方便。ARM的这些优点为机械手的高度智能化提供了最有效的保证。

机器人应用情况是展现一个国家工业自动化水平的重要标志。工业自动化中机械手发挥了相当大的作用,生产中应用机械手可以减轻劳动强度、保证产品质量、实现安全生产;尤其在高温、高压、易爆、有放射性或有毒性污染的场合中,机械手能代替人进行正常的工作。特别是近些年人工成本越来越高,企业都迫切需要采用一些自动化设备来降低人工成本,工业机械手在这方面有着广阔的应用前景。

常用的机械手多为6个自由度以下的。一般的专用机械手只有2~4个自由度,而通用机械手则多数为3~6个自由度。目前大多数工业机械手基本上都是采用单片机、PLC或DSP等控制的,单片机只能控制简单的3个自由度以下的机械手;PLC控制的成本高,运算能力很差,对机械手运动轨迹控制能力差;应用DSP控制运算能力强,但其外设接口没有ARM丰富[1],并且成本也比ARM高,一片DSP控制的机械手自由度也有限,6个自由度的、复杂一点的机械手都需要多个DSP芯片协同才能较好地完成控制。

机械抓手选用型号为42HD2401100L,两相4线步进电机,丝杆电机的行程为100 mm,步距角为1.8°,电流1.5 A N1504。利用其不同的行程可以设计不同力矩大小的抓手或夹具,此部分通过加工的一个连接轴,用螺丝锁定在型号为42BYG行星减速步进电机上,配48 mm 步进电机,减速比5.18∶1,这样控制机械抓手在360°范围内旋转。也就是机械手的第一自由度控制。

第二自由度装置负责将前面第一自由度的电机固定,并且控制运动一定的角度范围,根据选用的蜗轮减速装置结构,角度范围为0~130°。电机为57步进电机57BYG250H,转矩2.8 NM,步距角1.8°,机身长112 mm,蜗轮蜗杆减速机NMRV030,减速比1∶20。

第三自由度使用的电机型号为86HS4580,两相步进,步距角1.8°,机身长度78 mm,电流4 A,保持转矩4.24 NM。配备蜗轮减速装置RV040,减速比1∶20。

第四自由度主要负责平面内360°旋转,采用与第二自由度一样的电机,减速装置的减速比为1∶30。该电机安装在底座上。

机械手有4个自由度和1个机械抓手,共使用了5个不同规格步进电机,其中86型号的电机使用的是F-MD860,其他的都使用DM542型,配备了两个24 V功率为250 W的电源分别供电[3]。所有机械部分安装完成后的实物图如图1所示,底座采用镀锌方管焊接成100 mm×100 mm的双层铁架构成,最下面的电机用角铁固定,全部用自喷漆喷涂一遍用于防锈,将导线用伸缩塑胶管封固定,以防导线缠绕或损坏[4]。

机械手的控制核心采用功能强大的ARM芯片来进行设计,芯片型号为STM32F103C8T6,引脚数48。控制板接收上位机的串口通信数据,并根据数据协议转变为控制步进电机的脉冲信号去驱动各个步进电机,控制板采用双排针将所有GPIO全部引出,可以灵活扩展[5]。原理图使用的是Altium Designed 10软件进行绘制,ARM控制板CPU部分电路原理图如图2所示,时钟、复位、电源电路原理图如图3所示,串口与JTAG电路原理图如图4所示[67]。

机械手的具体指标参数如下:机构材料采用全金属材料;驱动方式为步进伺服混合驱动;操作方式采用可编程单机工作/联机工作;重复定位精度为±5 mm;最大展开半径为600 mm;高度为1 000 mm;本体重量≤50 kg;电源为单相220 V;最大功率<200 W;动作范围为第1自由度转动-180°~ 180°,速度范围在0.5°/s~50°/s;第2自由度转动-65°~65°,速度范围在0.5°/s~30°/s;第3自由度转动-65°~65°,速度范围在0.5°/s~30°/s;第4自由度转动-180°~180°,速度范围在0.5°/s~40°/s。

开发环境使用的是Keil uVision3 + MDK3.50,ARM控制板上的程序主要包括串口通信的控制和脉冲波形的产生,主控程序流程图如图5所示[8]。STM32F103首先要进行初始化,主要有如下初始化内容:RCC_Configuration(void)、NVIC_Configuration(void)、GPIO_Configuration(void)、USART_Init(USART1, &USART_InitStructure)和TIM3_PWM_Init(u16 arr,u16 psc)。

串行通信先要设置GPIO引脚,串口设置波特率为9 600 b/s,8 bit数据,2 bit停止位,不使用奇偶校验位,无硬件流控制。最后还要按如下语句进行串口接收中断初始化设置:

NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure)。

为了保证ARM控制板能在接收命令参数后独立控制机械手的运动,需要将数据存储在ARM芯片的Flash存储器中,然后再读出、解析、执行命令,程序流程图如图6所示。

另外对于脉冲波形的产生,采用ARM芯片内自带的硬件定时器单元来产生频率可调的方波,定时器中断初始化的程序如下:

void Timerx_Init(u16 arr,u16 psc)

{

RCC->APB1ENR|=1<<1;//TIM3时钟使能

TIM3->ARR=arr;//设定计数器自动重装值,刚好1 ms

TIM3->PSC=psc;//预分频器7200,得到10 kHz的计数时钟

TIM3->DIER|=1<<0;//允许更新中断

TIM3->DIER|=1<<6;//允许触发中断

TIM3->CR1|=0x01;//使能定时器3

MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//抢占1,子优先级3,组2

}

周期时间较长的方波用上述定时器中断溢出进行计时产生,这种方法产生的延时可以很长,适用于对各种动作速度的控制。对于运动较快的也可以直接利用STM32F103中的硬件PWM单元来产生方波,这种周期时间较短,其主要控制源程序如下:

void TIM3_PWM_Init(u16 arr,u16 psc)

{//此部分需手动修改IO口设置

RCC->APB1ENR|=11;//TIM3时钟使能

RCC->APB2ENR|=13;//使能PORTB时钟

GPIOB->CRL&=0XFF0FFFFF;//PB5输出

GPIOB->CRL|=0X00B00000;//复用功能输出

RCC->APB2ENR|=10;//开启辅助时钟

AFIO->MAPR&=0XFFFFF3FF;//清除MAPR的[11:10]

AFIO->MAPR|=111;//部分重映像,TIM3_CH2->PB5

TIM3->ARR=arr;//设定计数器自动重装值

TIM3->PSC=psc;//预分频器不分频

TIM3->CCMR1|=712;//CH2 PWM2模式

TIM3->CCMR1|=111; //CH2预装载使能

TIM3->CCER|=14;//OC2 输出使能

TIM3->CR1=0x0080;//ARPE使能

3.2机械手上位机软件的设计

上位机程序主要完成机械手运动位置参数的设定[9],并且通过串口将数据传送给ARM开发板,在调试过程中,将运动控制分为单轴运动的控制和三轴运动的控

制。单轴控制界面如图7,三轴运动控制界面如图8,分别输入x、y、z三个方向的起始和终止坐标,启动后即可将数据传送给下位机[10]。

在界面上还有串口通信数据监测窗口,主要显示发出的命令和收到的数据是否正常,这样能方便进行开发。

在进入串行数据通信编程中,应用CSerialPort类进行编程,对串口、波特率、数据位数、停止位、奇偶校验位等初始化,使用的主要函数为InitPort,如下所示:

if(m_Port.InitPort(this,m_nCom,m_nBaud,m_cParity,m_nDatabits,m_nStopbits,m_dwCommEvents,512)){

m_Port.StartMonitoring;

m_CtrlOpenPort.SetWindowText("打开串口");

m_Port.ClosePort;//关闭串口

}elseAfxMessageBox("没有发现此串口");

发送数据使用的主要语句如下:

sendcommand=m_strSendData;

m_Port.WriteToPort((LPCTSTR)sendcommand);//发送数据

接收数据在CSerialPort类中进行,可以中断接收,但必须在主程序中进行数据识别,本文在LONG CICtestDlg::OnCommunication(WPARAM ch, LPARAM port)函数中专门来解析接收到的数据。

4结束语

本项目主要是利用ARM系列的CPU作为控制核心,驱动一定数量的伺服机构来组装一台多个自由度的机械手装置。与传统的机械手控制系统相比,本系统具有体积小、功耗低、性能髙、成本低等优点,具有很好的发展前景。重复定位精度未达到预先估计的值,这与购买的电机和减速机的制造精度有关,并且步进电机在运行过程中还可能失步,因此还有许多方面需要改进,比如在各个电机运动控制时加装编码器来进行运动角度检测,这样可以改进精度方面的问题,也完全可以消除失步的问题。

参考文献

[1] 李新荣,曲风娟.ARM9嵌入式系统设计与应用[M].北京:清华大学出版社,2011.

[2] 李海标,甘镇钊,杨硕.基于ARM9的机械手控制系统的设计[J].测控技术,2015,34(8):8285.

[3] 耶晓东.基于单片机的简易机械手的设计[J].微计算机信息,2009,25(14):230231.

[4] 孙宴伟.五轴注塑机机械手示教系统的设计及实现[D].西安:西安电子科技大学,2013.

[5] 杨振声.工业机械手控制系统硬件设计[D].西安:西安电子科技大学,2014.

[6] 向丹,王文涛,原健钟,等.基于ARM嵌入式的三维机械手远程控制系统设计[J].电子与封装,2009,9(6):2124.

[7] 杨莉,李正明,刘宝森.基于ARM9的嵌入式数控铣床控制系统的设计[J].机床电气,2008,35(2):811.

[8] 李坤,杨家军.5自由度焊接机械手的运动学研究[J].机械工程师,2007(4):2021.

[9] 何洋.三轴伺服注塑机机械手上位机控制器的设计与实现[D].杭州:浙江大学,2012.

[10] 李涛.伺服机械手手控器软件设计及其实现[D].西安:西安电子科技大学,2013.

数控机床的帮手——桁架机械手到底有多复杂?

桁架机械手是一种非常简易的机械臂,它是建立在直角X,Y,Z 三坐标系统基础上,对工件进行工位调整,或实现工件的轨迹运动等功能的全自动工业设备。

其控制核心通过工业控制器(如:PLC,运动控制,单片机等)实现。通过控制器对各种输入(各种传感器,按钮等)信号的分析处理,做出一定的逻辑判断后,对各个输出元件(继电器,电机驱动器,指示灯等)下达执行命令,完成X,Y,Z三轴之间的联合运动,以此实现完整的全自动作业流程,可以代替人工完成最基础的上下料,运输等工作。如下图所示,桁架机械手的基本组成。

机械手由结构框架、X轴组件、Y轴组件、Z轴组件、工装夹具以及控制柜六部分组成。

其中:

1、结构框架 主要由立柱等结构件组成,其作用是将各轴架空至一定高度,多由铝型材或方管,矩形管,圆管等焊接件构成;

2、X轴组件、Y轴组件、Z轴组件 三个运动组件为桁架机械手的核心组件,其定义规则遵循笛卡尔坐标系。

各轴组件通常由结构件、导向件、传动件、传感器检测元件以及机械限位组件等五部分组成。

1)结构件通常由铝型材或方管,矩形管,槽钢,工字钢等结构组成,其作用是作为导向件、传动件等组件的安装底座,同时也是机械手负载的主要承担者。

2)导向件常用有直线导轨,v型滚轮导轨,U型滚轮导轨,方型导轨以及燕尾槽等常用导向结构,其具体运用需根据实际使用工况以及定位精度决定。

3)传动件通常有电动,气动,液压三种类型,其中电动有齿轮齿条结构,滚珠丝杠结构,同步带传动,链条传统以及钢丝绳传动等。

4)传感器检测元件通常两端采用行程开关作为电限位,当移动组件移动至两端限位开关处时,需要对机构进行锁死,防止其超程;此外还有原点传感器以及位置反馈传感器。

5)机械限位组其作用是在电限位行程之外的刚性限位,俗称死限位。

3、工装夹具 根据工件形状大小材质等有不同形式,如:真空吸盘吸取,卡盘夹取,托取或针式夹具插取等形式。

4、控制柜 其相当于桁架机械手的大脑作用,通过工业控制器,采集各传感器或按钮的输入信号,来发送指令给个执行元件按既定动作去执行。

它的特点是,高效,稳定,高强度,高精度,性价比高,操作简单。

桁架机械臂各轴以极高的速度直线运行,可用伺服电机快速响应,定位精度可以达到0.02mm,相比关节机器人,其负载重量更大,制作成本更低,适合中国制造的基本国情。并且基于直角坐标系,其运动参数简单,操作简易。

在成本上,2016年国产的功能简单的2轴4轴工业机器人还在十万左右,6轴的十五万左右一台,2018年工业机械臂已经靠近五万人民币。而现在,一台拥有全进口配件的机械臂,五万不到就可以代替人工做高强度的工作了。根据我国十二五规划,要实现最低工资标准年均成长13%以上,职工工资成长15%以上的目标,各种企业都会面临一笔巨大的人工费用支出。所以在各个工业上,机器代替人工的趋势已经大势所趋了。

相关问答

怎么样用 单片机 控制 机械手 前后和上下的运动?

这个抽象出来,就是控制两个电机而已。一个电机负责了前后,一个电机负责了上下控制抓取和松开,还是电机。通过纽带、钢杆进行连通运动。这个抽象出来,就是...

设计工业 机械手 ,控制部分用PLC、 单片机 、ARM那个好?

你好,谢谢邀请!工业机械手的编程很多是用的不是这些语言,他们很多是制造商自己开发了一种语言。这个语言很像汇编语言。但不是汇编语言。你现在学了AVR单片机...

帮个忙行家们急急急!!!注塑机专用 机械手 的介绍?,注塑机专用...

[回答]注塑机有用单片机系统控制的,有用PLC控制的,从成本讲用单片机系统便宜,从检修角度讲用PLC更方便,因为单片机需要懂c语言的人,一般人就是会编程也不...

机械手 工作原理是什么?怎样控制 机械手 的运动的?

机械手主要由手部、运动机构和控制系统三大部分组成。手部是用来抓持工件(或工具)的部件,根据被抓持物件的形状、尺寸、重量、材料和作业要求而有多种结构形式...

如何自己搭建 机械手 ?

这个分硬件软件,简单的机械手搭建可以通过PLC带动伺服电机实现,说白了一个伺服电机就是一个轴,通过轴与轴之间的配合达到所需要的动作。硬件部分自己应该是做...

帮个忙在座的朋友,谁能赐教,关于 机械手 原理?

机械手主要是靠凸轮机构,有时序图,一般都是3个信号,一个刹车,一个原点,一个持刀,靠接近开关感应来控制机械手的位置注塑机械手是为注塑生产自动化...

麻烦哪位老铁!我想知道! 机械手 是什么?

[回答]item生产的机械手不错,德国品质,在中国各地都有联络点。你可以试试。机械手主要由执行机构、驱动机构和控制系统三大部分组成。手部是用来抓持工件(...

在座的大佬 问大家一下:深圳松岗六轴 机械手 报价,六轴 机械手 ...

[回答]有很多都可以达到控制要求最简单的就是步进电机编程器,不过六轴机械手需要控制六个电机,所以这种一般不会采用。还有单片机、plc、电磁阀(手动控制...

谁知道 赣州牛头式三轴 机械手 厂家有哪些,牛头式三轴 机械手 ...

[回答]机械手主要由执行机构、驱动机构和控制系统三大部分组成。手部是用来抓持工件(或工具)的部件,根据被抓持物件的形状、尺寸、重量、材料和作业要求而...

麻烦童鞋们!有谁能回答一下吗!深圳正规注塑机专用 机械手 ,注...

机械手主要由手部、运动机构和控制系统三大部分组成。手部是用来抓持工件(或工具)的部件,根据被抓持物件的形状、尺寸、重量、材料和作业要求而有多...

猜你喜欢