产品选型

机械手与单片机 ARM和单片机到底有什么区别?

小编 2025-08-07 产品选型 23 0

ARM和单片机到底有什么区别?

一、软件方面

这是最大的区别, ARM引入了操作系统,使得它具备下列特点:

方便

主要体现在后期开发上,即在操作系统上直接开发应用程序。不像单片机一样一切都要重新写。前期的操作系统移植工作,还要专业人士来做。

安全

这是LINUX的一个特点。LINUX的内核与用户空间的内存管理分开,不会因为用户的单个程序错误而引起系统死掉。这在单片机的软件开发中没见到过。

高效

引入进程的管理调度系统,使系统的运行更加高效。在传统的单片机开发中大多基于中断的前、后台技术,对多任务的管理有局限性。

二、硬件方面

肃然现在的8位单片机技术硬件发展得也非常快,出现了许多功能非常强大的单片机。但是与32ARM相比还是有差距的。ARM芯片大多把SDRAM、LCD等控制器集成到片子中。对于8位机,大多要进行外扩。

总的来说,单片机是微控制器 ,ARM则是微处理器

引入嵌入式操作系统之后,可以实现许多单片机系统不能完成的功能。比如,嵌入式Web服务器、Java虚拟机等,这意味着有很多免费的资源可以利用,上面说的这两种服务就是例子。如果在单片机上开发这些功能难度则会很大。

这让小隐想起了一个经典的段子:

联合利华引进了一条香皂包装生产线,结果发现这条生产线有个缺陷:常常会有盒子里没装入香皂。总不能把空盒子卖给顾客啊,只好请了一个学自动化的博士后设计一个方案来分拣空的香皂盒。博士后拉起了一个十几人的科研攻关小组,综合采用了机械、微电子、自动化、X射线探测等技术,花了几十万,成功解决了问题。每当生产线上有空香皂盒通过时,两旁的探测器就会检测到,并且驱动一只机械手把空皂盒推走。

而中国南方有个乡镇企业也买了同样的生产线,老板发现这个问题后,找了个小工来让搞定这件事情。小工果然想出了办法:他在生产线旁边放了台风扇猛吹,空皂盒自然会被吹走。

基于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.

相关问答

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

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

机械臂的系统及机械臂的组成?,教学机械臂质量好吗??

[回答]本发明所提供的显示装置可以解决现有技术中板卡与背板采用螺丝锁附方式进行固定而导致的拆装不便、成本高的技术问题,可方便板卡拆装,节省材料及人...

桁架 机械手 的相关技术解析?

桁架机械手是一种能够在三维空间中自由移动的机器人。它通常由桁架结构、电动机、传动机构、传感器和控制系统等部分组成。下面是一些桁架机械手的相关技术解...

机械手 是什么 机械手 的工作原理?

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

...过现场总线控制两台PLC实现对两台 机械手 的协调控制?-ZOL问答

硬件只需确认你的单片机支持不支持485或者232通信口。4、rs232和rs485的相关资料,modbus通讯协议的相关资料。5、profibusdp是不公开的通讯协议,单片机如何使...

搬运 机械手 有哪些优势啊?

搬运机器人【transferrobot】是可以进行自动化搬运作业的工业机器人。最早的搬运机器人出现在1960年的美国,Versatran和Unimate两种机器人首次用于搬运作业。...

诸位老表 求解答!!东莞专业的自动化 机械手 ,自动化 机械手 安...

[回答]有啊,如果设计的东西可以加上单片机的应用,肯定会更加自动化,机械手的自动都是靠单片机来完成的。坚持与时俱进,不断创新的品牌战略,不断完善售后...

帮个忙大神们 跪求回答!辽宁斜臂 机械手 调试与编程,斜臂 机械 ...

[回答]o(╯□╰)o。。笼统,气动机械手有横行和斜臂两种类型的。然后你要控制图什么的大概没有谁能给你找到。因为那些单片机都是工控厂商做的。其他一些东...

行家们问一下,什么是刚性 机械手 ?它与柔性 机械手 有什么区别?

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

深圳实验用机械臂, 机械手 ?,生产用机械臂外观好不好看?

[回答][1]方龙,陈丹,肖献保.基于单片机的机械手臂控制系统设计[J].广西轻工业,2008,08:89-90.[2]周卫东.基于CAN总线通讯的机械臂控制系统设计[J].南...

猜你喜欢