基于 Arduino 单片机的遥控搬运机器人

发表时间:2020/3/16   来源:《工程管理前沿》2020年2期   作者:李先豪 耿银淼
[导读] 机器人通过蓝牙实现手机与微处理器通信,通过微处理器控制系统控制机器人的行动,实现软件与硬件的统一
        摘要:机器人通过蓝牙实现手机与微处理器通信,通过微处理器控制系统控制机器人的行动,实现软件与硬件的统一。又通过电气的方式来控制机械的运动,使电气与机械相互配合,共同作用,实现机电一体化的统一。
关键词:单片机;遥控;机器人

1 引言
        当下世界正处于第四次工业革命的浪潮之中,而机器人无疑又是本次工业革命的众多亮点之一。而且随着我国城镇化建设加快以及部分区域人口老龄化的加剧。尤其是农村地区青壮劳动力向城镇汇聚,农村劳动力不断减少给留守农村的老人和小孩留下了很多不便,尤其是在遇到重活的时候,极易使老人儿童受伤。
        鉴于这种情况我们小组决定研究一种专门用于帮助农村地区人们搬运东西的机器人。而且如果类似于这种的家用机器人能在我国得到广泛推广必将会极大地解放我国劳动力,激发孩童对机器人的兴趣,促进我国机器人事业的发展。
2 设计思路
        2.1项目概述
        本设计通过搭机电结合的机械手臂和自主控制式的小车为基础,利用Arduino主控制器?进行机械臂与小车的控制,使用蓝牙技术对小车进行自主控制。相较于当下的固定式机械手臂搬运模式和履带式传送机构,将机电结合的搬运式机构进行了进一步的智能化、可移动化,使得其工作模式不再是单一化,使其具有了更大的灵活性。【1】
        设计共分为控制、机械手、小车、微处理器及扩展板四个模块,其中机械手模块和小车模块属于硬件设施,控制模块和微处理器及扩展板模块属于软件设施。机器人通过蓝牙实现手机与微处理器通信,通过微处理器控制系统控制机器人的行动,实现软件与硬件的统一。又通过电气的方式来控制机械的运动,使电气与机械相互配合,共同作用,实现机电一体化的统一。
        2.2智能搬运机器人与传统式搬运机器人的对比
        传统式搬运机器的共同点是移动路线单一甚?至是无法移动,只能在规定路径或者是固定在某一地点进行搬运工作。这种工作模式在工作过程中的局限性很大,只能解决搬运流程中的某一个节点的工作。机器自身的工作性能不能得到最大化的利用。由此我们提出将搬运机器移动起来的理念,以机械手臂为主要研究对象,将机械手臂与自主控制的小车结合在起,让机械手臂移动起来,通过控制小车的方式将札械手臂移动到任何一个指定位置,在需要机械手臂搬运的地方进行搬运工作,还可以将货物搬运至指定位置。通过将搬运工具的智能化的同时也让搬运工具即机械手臂的功能得到了最大化的利用。
3 硬件设施
        3.1 机械手模块
        整个机械手的驱动部分共由5个大扭力舵机和一个气泵组成;执行部分为子对真空吸盘气路串联组成的机械爪和机械臂的其他机械部分。
        3.1.1机械臂
        智能机械手臂主要是对舵机进行控制,而舵机本身是一个闭环的控制系统,对于机械手臂的许多操作都有很大优势。搬运机器人的机械手臂控制采用极坐标的方式,每个关节的角度由舵机自动控制,舵机的通信采用脉宽调制控制定位转角。当遥控器开启机械手臂的状态下,机械手臂和关节摇杆通过同步控制算法进行同步定位,使用精密的数字舵机确保系统的准确性和快速性。[2]
        其次,整个机械臂共有5个大扭力舵机,这4个大扭力舵机作用为调整机械手的位置以及提升负载。每个舵机转角范围为180°,从下往上四个舵机依次命名为A、B、C、D、E。A舵机控制机械手面向哪个方向;B舵机和C舵机控制机械臂立臂是否前倾及倾角;D舵机控制摆臂的角度;E舵机则控制真空吸盘的摆动角度。
        3.1.2气爪
        我们采用平直型真空吸盘作为气爪,真空吸盘是真空设备执行器之一,吸盘材料采用丁腈橡胶制造,具有较大的扯断力。且对于大部分不规则物体可以起到很好的吸附作用。[3]
       
        图3.1  平直型真空吸盘工作原理示意图
        采用小型气泵为真空吸盘提供动力,由于气泵为直流电动机,从直流电动机机械特性图3.1可知当n不变时电机的扭矩T与电压U成正比,控制性能好且易于控制见公式3.1。
       
        公式3.1
        小型气泵的作用为连接真空吸盘,为真空吸盘提供吸力,吸力大小可通过调节气泵获得的直流电压改变。在真空吸盘吸取负载后气泵一直通电,直至将负载放到指定位置后给气泵通反向电压,放下负载。
        3.2 小车模块
        小车采用L298N芯片驱动,L298N内部包含4通道逻辑驱动电路,是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V.2A以下的电机,正好可以满足小车的左右直流电机的驱动要求。并且L289N具有过温保护功能和较高的噪声抑制比,故十分适用于智能小车中。由于芯片L298N并没有对电机转速的控制方式,因此,通过Arduino程序控制调节驱动电机的PWM信号,改变电机输出功率,从而控制左右电机的转速。[5]
小车为四驱,用四个小马达在机械上分别连接轮子,电气上同一连接到Arduino Uno R3微处理器扩展板上专门用于控制马达的四个电气接口上。在方向控制方面通过差速法来控制小车的行进方向,图3.2为小车的控制流程图。[6]

        图3.2  小车控制流程图[1刘堃, 郭焕萍, 赵晋. Arduino智能搬运机器人[J]. 电子世界, 561(03):198-199.
2王斌[1], 李忱[2], 陶成健[1], et al. 基于ARM的遥控搬运机器人系统的研究与设计[J]. 沈阳工程学院学报:自然科学版, 2016(12):147.
3李雪梅, 曾德怀, 丁峰. 真空吸盘的设计与应用[J]. 液压与气动(03):50-51.
4戈惠梅, 徐晓慧, 顾志华, et al. 基于Arduino的智能小车避障系统的设计[J]. 现代电子技术, 2014(11):126-128.
5李梦红,?李捍东.?基于STC89C52单片机的无线遥控小车设计[J].?自动化与仪器仪表,?2015(06):144-146.
6聂茹.?基于STC89C52单片机的无线遥控小车的设计与实现[J].?自动化技术与应用,?2012(11):96-100.]7
        3.3控制模块
         3.3.1  Arduino Uno R3微处理器
本设计选用Arduino Uno R3微处理器,Arduino Uno是一款基于ATmega328P的微控制器板。它有14个数字输入/输出引脚(其中6个可用作PWM输出),6个模拟输入,16MHz晶振时钟,USB连接,电源插孔,ICSP接头和复位按钮。只需要通过USB数据线连接电脑就能供电、程序下载和数据通讯。Arduino Uno R3微处理器工作电压为5V,输入电压最高位20V,最低为6V,采用外部电源供电。
        3.3.2 HC06蓝牙芯片
        本设计通信部分采用HC06蓝牙芯片实现手机与Arduino Uno R3微处理器的交互通信。HC06蓝牙芯片是HC-06蓝牙串口通信模块,是基于Bluetooth Specification V2.0带EDR蓝牙协议的数传模块。无线工作频段为2.4GHzISM,工作电压为3V-3.6V调制方式是GFSK。模块最大发射功率为4dBm,接收灵敏度-85dBm,板载PCB天线,可以实现10米距离通信。
        模块采用邮票孔封装方式,模块大小27mmx13mmx2mm,方便客户嵌入应用系统,之内。自带LED状态指示灯,可直观判断蓝牙的连接状态。
        模块采用CSR的BC417芯片,支持AT指令,用户可根据需要更改角色(主、从模式)以及串口波特率、设备名称等参数,使用灵活。HC-06蓝牙芯片原理图如图3.5所示[7昂勤树,?方凯,?夏际金.?基于C8051F的危险品弹药遥操作挖掘搬运机器人遥控系统设计[J].?自动化与仪表,?2004,?19(2):44-46.]6

        图3.5  HC-06蓝牙芯片原理图
4软件设计
        4.1单片机程序设计
        在本研究中基于单片机的蓝牙遥控机器人在研究过程中,对于软件控制系统中,Arduino Uno R3属于其中最关键的部分,Arduino可以使用现有的电子元件,例如此次蓝牙遥控机器人中的使用的舵机和马达。对于控制系统中的软件部分,本研究中在研发过程中,所选择的语言主要是是C语言。研究中所使用的开发软件是ArduinoIDE,具有开发性、简单清晰、开放性等特点,可以有效的提供软件开发支持。
        4.2单片机程序设计
        在对于Arduino Uno R3程序的编写过程中,其开发环境使用的是ArduinoIDE,Arduino能通过各种各样的传感器来感知环境,通过控制马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。
        部分程序如下所示:
        void loop()
        {
            // put your main code here, to run repeatedly:
            if(Serial.available()>0)
            {
              command = Serial.read();
              Serial.println(command);
            } 
            switch (command)
            {
              case 'F':
                forward(); //机器人前进
                break;
              case 'B':
                back();    //机器人后退
                break;
              case 'R':
                 right();  //机器人右转
                break;
              case 'L':
                 left();    //机器人左转
                break;
              case 'S':
                stop();    //机器人停止
                Serial.println("S");
                break;       
        ……
                Serial.println("Clamp Open");
                ClampOpen();     //抓取物品 
                break;
              case '8':
                Serial.println("Clamp Close");
                ClampClose();   // 放下物品
                break;     
            }
        ……
        4.3系统调试
        在基于单片机的蓝牙遥控机器人的现实研发过程中,硬件的调试也是其中重要的一部分,在进行这项工作的时候,我们通过手机链接HC06蓝牙,首先观察手机是否能通过HC06蓝牙进行传输数据,之后对遥控机器人的各个部件进行调试,观察舵机和马达对于手机指令的反应是否能够及时反应,蓝牙遥控机器人对于各各个指令的反应,例如手爪旋转角度、手爪位置变换等。最后在对各功能的调试结束后,在进行一次整体调试,从而结束调试工作。[8包志家.?基于单片机的无线遥控移动机器人设计[J].?无线互联科技.]6
5结语
        综上所述,本文主要对基于Arduino单片机的遥控搬运机器人的设计进行了分析,对机器人硬件以及软件设计进行了具体的研究,并且主要是基于Arduino单片机的遥控搬运机器人设计,通过一系列的设计也实现了手持移动设备对于机器人的远程控制,希望能够为机器人设计的发展做出一定贡献。[8]
        2019年山东省大学生创新创业训练项目(项目编号:S201913006027)
        指导老师:朱霞清
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: