0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于串口通信与单片机的远程控制机械臂设计

电子设计 来源:电子设计 作者:电子设计 2023-11-09 15:55 次阅读

网络化操作和远程控制成为很多企业和科研机构钻研的方向,要实现对现场设备进行管理和控制,就需要与这些设备进行通讯连接,进行相关数据交换,以达到管理、控制和监控的目的。同样嵌入式领域中,为了达到远程监控,也必须基于网络。在水下或者恶劣环境作业的机械手,在特定的时候需要远程控制。网络远程控制机械手进行作业成为了可能。

在远程控制中,通信是值得讨论的技术问题。传统的通信只是局限于脱离网络的通信,如两个 PC 机之间通信,或者是上位机为 PC 机,下位机为单片机。在远程控制机械手系统中,采用的是基于 Internet 的远程串口通信,远程串行通讯是指客户端与下位机或通讯对象之间通过串口进行的远距离通讯,而传统的远程通讯只是它其中的一部分,通过客户端传送指令给下位机至控制部件,从而实现远程监控。

1、远程串口通讯系统的基本构架及实现

(一)基本构架概述

在软件系统体系结构中,C/S 和 B/S 是当今世界开发模式技术架构的两大主流技术。

C/S 模式采用的是两层体系结构,即客户端和服务器,通过该架构可以充分利用两端硬件环境的优势,将任务合理分配到 Client 端和 Server 端来实现,客户端进行显示界面和事务处理,服务器进行数据处理和应答请求处理。在客户端需要安装客户端软件才能访问服务器。不但软件升级不便,而且也增加了客户端的负载和投资成本。

B/S(Browser/Server)结构即浏览器和服务器结构。它是随着 Internet 技术的兴起,对 C/S 结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现, 数据处理则由数据库服务器进行,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本,但仅在 B/S 模式下还不能直接实现与被控对象进行数据通讯。

基于 B/S 模式实现与被控对象进行数据通讯的远程串行通讯采用四层体系结构,增加了一个控制层,浏览器端为表示层,WEB 服务器为功能层,数据库服务器为数据层,控制层为通过 WEB 服务器传送指令到控制服务器,控制服务器作为上位机,通过串口控制下位机,直到控制执行部件。这里不仅增加了控制层,而且对功能层和数据层也都进行了扩展。这种体系结构即具有 B/S 模式的优良特性,又增加了控制服务功能,充分利用了现有的网络资源和工业现场资源,并且使两者有机地结合在一起,达到了与被控设备通过串口进行远程通讯的目的。表示层、功能层、数据层和控制层既有一定的相互联系又具有相对独立性,各层是通过 Internet 相连接,通过 HTTP 协议和串口通讯协议进行信息通讯。如图 1 所示

(二)远程串口通讯各部件的功能及实现

(1)浏览器端:用户通过浏览器登陆 web 服务器,通过输入用户名和密码,和数据库中的数据比较验证通过后,成为合法的用户,然后在相应的表单中输入控制数据。按提交按钮后,数据传送到 web 服务器。浏览器端再作为显示端,能够显示远程执行部件的反馈位置。

(2)WEB 服务器:能够接收浏览器端发送过来的控制数据,并处理相应的数据后,把数据发送给控制服务器,或者直接作为控制服务器,通过串口把数据发送给执行部件。

(3)数据库服务器端:存放合法用户的用户名和密码,以进行检验。同时,在发送执行数据时,如果需要特定的转换数据,也可直接到数据库中获取。实现系统的数据处理,并把运行结果反馈给 web 服务器。

(4)控制服务器:作为直接通过串口发送命令给执行部件的上位机,或者直接由 web 服务器本身担任。接收 web 服务器从浏览器端接收过来的数据。通过串口通讯协议及握手信号,把数据发送给下位机。

(5)下位机:通过串口通讯协议接收控制服务器(上位机)的执行数据,再通过相应的驱动电路,带动执行部件工作。

(6)执行部件:按照传送过来的指令进行工作,并通过传感器把当前执行部件的位置和姿态化作数据再通过串口回送到控制服务器,直至到达浏览器端,使得用户不在执行部件的现场也可以远程控制并得到部件执行之后的效果

在浏览器中,登陆验证后,通过 HTTP 协议,把数据传送给 web 服务器,再传给控制服务器。控制服务器作为上位机,打开串口,通过通讯协议把数据发送给下位机。下位机根据通讯协议,收到上位机发送过来的数据,并启动 D/A转换器,控制执行部件。同时通过传感器把执行部件的姿态反馈给上位机。下位机可以为单片机、DSPARM微处理器

2、远程控制作业机械手系统的实现

基于 web 的机械手的远程控制,在高温、水下等恶劣的工作环境下,需要远程控制机械手实行操作。在远程通过浏览器输入操纵数据,通过网络传送给主控机,主控机采用一般的 PC 机,主控机通过串口把数据发送给下位机,该作业机械手系统中采用 89C51 单片机作为直接控制计算机。现场通过监控设备把作业机械手的姿态反馈到远程控制机,同时通过传感器采集现场数据返回到控制机。图 2 为远程控制作业机械手的系统示意图。

在浏览器端登陆主控机担当的服务器,取得合法身份验证之后,发送数据。主控机收到信息后,通过串口把数据发给直接控制机 89C51。

(一) 单片机系统的硬件组成部分

(1) 以 89C51 为微处理器的为核心,扩展RAM6254、锁存器、时钟电路、复位电路等。

(2) 串口通讯电路:主控机向 89C51 传送数据时,采用串口通信,常用的串行通信总线接口是美国电气协会 EIA 制定的RS-232C。鉴于单片机串行口 TXD,RXD 均为 TTL 电平,而 PC 机配置的是 RS-232C 标准串行接口,在应用时,必须进行电平转换。在作业机械手控制系统中,采用 MAX232 作为接口转换芯片

(3) 数模转换电路:通过串口,主控机把机械手的动作指令数据发送给 89C51,89C51 通过总线把数据发送给 D/A 转换电路数据端口,在该系统中采用 DA0832 数模转换芯片来实现。

(4) 驱动电路:机械手的作业动力来自液压系统,采用伺服阀来实现对机械手的回路控制,为驱动伺服阀,设计相应的驱动电路

(5) 模数转换电路:用角度电位计和位移传感器采集机械手的实际操作数据,传感器标定之后,采集的位移量和角度vwin 信号要转换数字信号传送给 89C51,再向上发送,该系统中采用AD0809 模数转换芯片来实现。

(二) 主控机与单片机软件系统的实现

(1) 主控机程序

主控机由 PC 机担任,用 VC++开发操纵界面,通过串口控件 MSComm 对串口通讯协议进行串口初始化,从后台数据库 SQLServer 中提出从 WEB 发送的控制机械手的数据,控制机械手各个关节的执行的角度量,同时等待接收 89C51 回送回来的数据。软件系统的流程图如图 3 所示。

(2) 89C51 单片机主程序

89C51 作为直接控制计算机,用 C 语言来编写主程序,初始化串口,分配内存缓冲区存放接收数据,开中断,等待外部以中断形式进行数据的发送和接收。89C51 的主程序流程图如图 4 所示。

(3) 89C51 中断处理子程序

中断子程序中首先清除中断标志,然后判断是接收还是发送引起的中断,根据相应的中断源进行处理。89C51 中断处理子程序的流程图如图 5 所示。

3、 结束语

本文作者创新点在于把 89C51 单片机与机械手的作业联系起来,通过网络远程通信达到了远程控制机械手实验室的实现,为远程控制作业的研究提供了一个具体的实例参考,目前该系统实现了网上发送数据到主控机,存储在数据库中,需要手工在主控机调动数据来实现对机械手的控制。能够完全脱离人的介入,直接通过网络来控制作业还在进一步的研究中。实验应用和市场证明,在网络现代化的今天和未来,远程通信必将出现在未来的人类生活中,有可观的研究意义和实用价值。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6018

    文章

    44288

    浏览量

    627189
  • 串口通讯
    +关注

    关注

    1

    文章

    255

    浏览量

    24663
  • 机械臂
    +关注

    关注

    12

    文章

    498

    浏览量

    24215
收藏 人收藏

    评论

    相关推荐

    51单片机控制6个舵机的机械

    51 单片机 控制6个舵机的 机械 ,现在我做的程序是通过zigbee模块用电脑键盘 控制的,两个键字 控制
    发表于04-29 15:42

    制作51单片机控制的简易机械

    单片机 控制机械 ,最终目标是自己设计一个属于自己的作品,但在这方面没有什么经验,所以希望各位大神帮忙指导,例如需要自学的知识、相关的网站或者资料
    发表于05-11 21:25

    工业网关盒子控制器485采集机械远程监测及程序升级

    视频网络服务器实时监控 机械 操作结果。基于TCP/IP网络的 远程控制系统,需要在本地建立服务器端 控制器。采用PC 作为
    发表于03-11 14:12

    介绍开发一个基于单片机的wifi通信远程控制的方法

    《《《《《正文》》》》》《前言》本文主要介绍开发一个基于 单片机的wifi 通信 远程控制的方法, 单片机只需支持UART
    发表于11-19 08:47

    基于TCP/IP 的七自由度机械远程控制

    针对七自由度 机械 远程控制的需要,构建了基于TCP/IP 网络的 控制系统。首先通过设计 单片机系统实现本地端
    发表于08-15 16:01 22次下载

    基于单片机远程控制开关的设计

    摘要:设计了一种基于AT89C51 单片机和CM8888双音频收发集成电路的 远程控制开关.该系统通过接受电话线上的UTMF双音频信号对开关进行 控制.文中介绍了该系统的硬件组成,软件设计
    发表于05-23 09:17 123次下载

    毕业论文答辩:基于单片机的温度远程控制器设计

    毕业论文答辩(PPT):基于 单片机的温度 远程控制器设计
    发表于05-14 17:17 0次下载
    毕业论文答辩:基于<b class='flag-5'>单片机</b>的温度<b class='flag-5'>远程控制</b>器设计

    基于单片机和USS协议的变频器远程控制系统_刘玲玲

    基于 单片机和USS协议的变频器 远程控制系统_刘玲玲
    发表于01-12 19:56 4次下载

    什么是单片机串口通信

    串口 通信单片机一个重要的部分, 单片机和PC, 单片机单片机之间的
    发表于07-25 07:36 6.1w次阅读
    什么是<b class='flag-5'>单片机</b>的<b class='flag-5'>串口</b><b class='flag-5'>通信</b>?

    如何使用51单片机实现串口通信

    51 单片机串口引脚为P3.0引脚与P3.1引脚,分别是RXD和TXD引脚。 串口 通信可以用于 单片机和其它芯片
    发表于11-21 15:47 2.9w次阅读
    如何使用51<b class='flag-5'>单片机</b>实现<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    串口通信详解(51单片机

    串口传输,实现 单片机与PC 的双机 通信串口 控制(51 单片机
    发表于11-12 10:06 80次下载
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>详解(51<b class='flag-5'>单片机</b>)

    微信小程序使用MQTT远程控制单片机——阿里云物联网平台

    微信小程序使用MQTT 远程控制单片机——阿里云物联网平台
    发表于11-13 17:36 36次下载
    微信小程序使用MQTT<b class='flag-5'>远程控制单片机</b>——阿里云物联网平台

    51单片机串口通信

    51 单片机 串口 通信文章目录51 单片机 串口 通信 串口介绍
    发表于11-18 14:06 22次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    51单片机串口通信

    51 单片机 串口 通信文章目录51 单片机 串口 通信 串口介绍
    发表于11-21 20:36 62次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    实现微信小程序和手机app远程控制51单片机控制L298N电机驱动器控制马达(ESP8266 AT89S52 http请求转串口通信系统

    实现微信小程序和手机app 远程控制51 单片机 控制L298N电机驱动器 控制马达(ESP8266 AT89S52 http请求转 串口
    发表于11-23 16:51 26次下载
    实现微信小程序和手机app<b class='flag-5'>远程控制</b>51<b class='flag-5'>单片机</b><b class='flag-5'>控制</b>L298N电机驱动器<b class='flag-5'>控制</b>马达(ESP8266 AT89S52 http请求转<b class='flag-5'>串口</b><b class='flag-5'>通信</b>系统