基于Arduino单片机的解魔方机器人

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:wei145000
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:解魔方机器人课题为了适应对机器人智能化的要求,选择竞技类机器人作为研究对象,研究设计了解三阶魔方机器人,能够为提高竞技类机器人的智能化水平做出贡献。本设计基于Android 平台,颜色传感器作为颜色识别系统,机械手臂作为操纵设备,完成对任意魔方状态的初始还原。机械控制作为解魔方机器人的神经中枢,是机械结构执行算法的纽带。
  关键词:Arduino单片机;电机驱动;电机控制;步进电机
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)07-0171-03
  The Robot Can Restore A Rubik’s Cube Based on Arduino Microcontroller — The Control Module
  LIU Yuan-fa, ZHOU Yi
  (Yunnan Normal University, Kunming 650092, China)
  Abstract: The robot can restore a rubik’s cube in order to adapt to the requirements of intelligent robot, athletic robot as the research object, research and design about third-order Rubik’s cube robot can contribute to improve the intelligent level of athletic robot. The design based on the Android platform, the color sensor as the color recognition system, the mechanical arm as control equipment, the reduction is done for any state of Rubik ’s cube initial. If the algorithm is the brain of the Rubik’s cube robot, then mechanical control is the central nervous system (CNS) is link mechanical structure of the implementation of the algorithm. This paper will discuss from the mechanical control part.
  Key words: Arduino microcontroller; motor drive; motor control; step motor
  進人21世纪以来,人类科学技术取得突飞猛进的发展,在发展了半个世纪的现代机器人中,仿生机器人作为热门研究课题,是机器人学研究的一个重点。通过模仿动物的各种生物功能及人类大脑思维功能从而全面提升机器人的自主能力及智能水平是仿生机器人学研究的一个重要内容[1]。解魔方机器人课题为了适应对机器人智能化的要求,选择竞技类机器人作为研究对象,研究设计了解三阶魔方机器人,能够为提高竞技类机器人的智能化水平做出贡献,具有科学性强、创意丰富、创新点鲜明的特点,并有良好的经济及社会应用价值[2]。
  本设计将完成既可以用于教育行业作为典型的机器人教学教具,也可用于娱乐业作为展示用和表演用机器人,还能产生一定经济效益。该解魔方机器人运用颜色识别、步进电机精确控制等科学技术。对于解魔方机器人,控制系统就如同人的神经中枢,它起着承接算法与机械结构的作用。本文将从机械控制部分进行论述。
  1 解魔方机器人控制系统研究现状
  世界各国的很多公司及魔方爱好者已经设计出了解魔方机器人,目前还原魔方最快的机器人CubeStormer 3由ARM的两位工程师完成,以惊人的3.253s还原了一个三阶魔方,打破了机器人还原魔方的世界纪录。它的机械控制采用的是4个LEGO的Mindstorms NXT蓝牙机器人配套的伺服电机作为机械臂动力,用NXT主控器直接驱动。这款伺服电机转速很快,定位精准,力矩也大,但是价格昂贵。
  也有部分国内外的魔方爱好者设计了基于PC上位机的解魔方机器人,运用电脑作为上位机,摄像头作为颜色识别,用四个步进电机作为机械臂控制。此类解魔方机器人需用PC机进行还原计算,还原一个三阶魔方需要1分钟以上。对于机械控制部分,一共采用8个步进电机进行控制。每一只机械臂由1个电机控制机械臂前进与后退,另一个控制机械臂转动。
  随着以上这些及魔方机器人的出现,各界人士研究解魔方机器人的也越来越多。由于它具有趣味性和可观赏性,出于对解魔方机器人工作原理的好奇,综合应用所学知识自己制作解魔方机器人。
  2 前期设计分析
  从各类解魔方机器人来看,大部分的解魔方机器人都需要较高的成本费用,或过于笨重,制作困难等。本设计是一款小型、简单、成本低的解魔方机器人。以Android作为主控平台,颜色传感器作为颜色识别装置,用一只机械臂和一个可旋转的底座实现魔方的翻转与旋转各面或整体旋转(图1)。控制部分用两个电机分别控制底座和机械臂,Arduino通过控制电机驱动间接控制电机,实现算法动作与机械动作的结合。
  对于解魔方机器人而言,控制是一个很重要的部分,如果机械控制不精确,那么算法再优秀也无法实现,所以精确控制机械结构精准定位是实现魔方还原的关键。而控制的速度则是还原效率的一个重要的考察点。
  3 Arduino单片机
  Arduino是一个基于开放原始码的软硬件平台,具有使用类似Java、C语言的Processing/Wiring开发环境。并且Arduino自带很多库函数,程序编写简单方便。   3.1 Arduino UNO
  Arduino UNO是Arduino USB接口系列的最新版本,作为Arduino平台的参考标准模板[3]。UNO具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。
  3.2 Arduino Mega2560
  Arduino Mega2560也是采用USB接口的核心电路板,它最大的特点就是具有多达54路数字输入输出,特别适合需要大量IO接口的设计。Arduino Mega2560也能兼容为Arduino UNO设计的扩展板。
  根据Arduino UNO和Arduino Mega2560特点,由于Arduino UNO数字接口较少,最终选用Arduino Mega2560作为主控板。
  3.3 Arduino IDE
  Arduino IDE是Arduino的开放源代码的集成开发环境,语法简单以及能方便地下载程序,使得Arduino的程序开发变得非常便捷 [4]。
  Arduino编程由setup和loop两个函数组成,setup在程序流程中只会执行一次,用于定义所需要设定、初始化的参数和函数或是引脚功能指定等。Loop是主程序的执行内容。
  4 电机选型
  电机是解魔方机器人最主要的驱动设备,是否合理地选择电机将严重影响本设计项目的效果。本设计电机应结合转速,扭矩,精确度等参数进行选择。
  4.1 直流电机
  直流电机(direct current machine)能将直流电能转换成机械能[5]。直流电机的转动直接驱动于电流的输入,一般使用在持续运转的情况下,只依靠PWM信号来改变转速的快慢。不适合應用在比较精密的角度转动。
  4.2 步进电机
  步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件[6]。步进电机具有较好的起停和反转响应,不会积累误差,以实现转动位置的精准。但难以运转到较高的转速,难以获得较大的转矩[7]。
  4.3 舵机
  舵机(英文叫Servo):它由直流电机、减速齿轮组、传感器和控制电路组成的一套自动控制系统[8]。通过发送信号,指定输出轴旋转角度。普通直流电机无法反馈转动的角度信息,而舵机可以。但舵机的旋转角度只在一定角度之间。
  结合项目特点要求电机可以精确控制魔方旋转90度、180度,由于直流电机控制精确度不高,而舵机只可在一定角度内旋转,故本设计驱动电机选择步进电机。
  步进电机有步距角(涉及相数)、静转矩、及电流等要素,本设计主要考虑,转速、转矩、精确度及市场销售四个要素,最终选用的步进电机为“宝鸡航天华科出品的42步进电机带伺服反馈”,步进电机规格:42*42*37.8MM、步进角:1.8度、引线:两项四线、驱动电压12V、驱动电流0.8A、扭矩2.5Kg/cm左右,价格:12.8元/个。
  5 电机驱动设计
  5.1 L298N
  L298N是ST公司生产的一种高电压、大电流电机驱动芯片[9]。它具有耐压值高,工作电流大的特点,最大可承受46V的电压;电流最大可达3A,持续工作电流可达2A,可以用来驱动两台直流电机或一台步进电动机;L298N有两个使能端,采用标准逻辑电平信号控制,可以采用这两个使能端对直流电机进行PWM控制。
  5.2 ULN2003
  ULN2003由七个硅NPN 复合晶体管组成,耐高压、大电流;最大电流可达50V,最大电流可达500mA。
  结合两个电机驱动参数及所选步进电机参数决定选用L298N作为本设计步进电机驱动,驱动模块设计与制作原理图,采用eagle软件进行PCB设计,经过裁板、热转印、腐蚀、打孔、元器件焊接等步骤制作出实物(如图2)。
  6 电机驱动程序设计
  6.1 步进电机工作原理
  步进电机是通过时序来控制的,当按照一定顺序给步进电机线圈通电时,步进电机就可按照时序转动。以两相步进电机为例。
  按照一定的顺序,依次给每一相进行供电,可实现步进电机的转动。两相步进电机的工作方式有单四拍,双四拍、八拍三种工作方式。其中以单双八拍方式控制精度最高,是单四拍和双四拍的一倍[10]。
  6.2 电机程序设计
  经过测试电机采用简单的双四拍工作方式已有足够的力矩驱动机械臂和底座,故采用双四拍工作方式进行程序编写。本次选用的步进电机旋转一周需要200步,控制底座电机运行50步为顺时针旋转90度,机械臂电机初始位置为机械臂固定魔方位置,顺时针旋转80步后恢复可拉动魔方翻转,逆时针旋转36步可移开机械臂。
  6.3 算法动作到机械动作的转换
  算法计算完魔方的还原动作为固定魔方的中心块位置,每一面顺时针旋转90度,逆时针旋转90度或旋转180度,转换为机械步骤时可将要旋转的面先通过机械臂拉动翻转到底面,再进行旋转,完成后再讲魔方还原原来状态。各个面转换流程如图3。
  7 总结
  本文阐述述了解魔方机器人的控制部分,从Arduino单片机选型,电机型号选择,电机驱动设计,算法到机械控制的转换方面进行了分析设计和总结,希望可以为广大智能机器人设计爱好者提供研究支持和参考。
  参考文献:
  [1] 蔡睿妍.Arduino的原理及应用[C].北京: 科学出版社,2012: 23-27.
  [2] 郑振杰,江衍煊,游德智.单片机结合ULN2003驱动步进电机[J].电机技术,2010,2(6):18-19.
  [3] 安静宇,王党树,郑琪.研究和探讨数控直流电源[J].硅谷,2008,32(3):65-67.
  [4] 郑振杰,江衍煊,游德智.单片机结合ULN2003驱动步进电机的应用[J].电机技术,2010,54(9):77-78.
  [5] 赖若麒,刘竹林.基于步进电机的位置随动系统的设计[J].信息技术,2012,34(2):78-80.
  [6] 惠特.Arduino技术内幕 (2013年版) [M].北京:人民邮电出版社,2013: 10-16.
  [7] 孙骏荣,吴明展.Arduino一试就上手[M].2版.北京:科学出版社,2012: 56-58.
  [8] 赵津,朱三超.基于Arduino 单片机的智能避障小车设计[C].北京:科学出版社,2013: 65-69.
  [9] 郭力峰,揭宗昌,蔡泽辉.基于XC886 单片机的魔方机器人设计[J].电脑知识与技术,2011,24(8):25-28.
  [10] 董海阳,魏巍.类人四轴解魔方机器人的设计[D].北京:北京国家图书馆,2013.
其他文献
摘要:墓园管理系统的设计和建立,是我国墓园管理进程中的一个重大进步,实现了墓园管理的数字化和网络化,便捷地实现了墓园信息共享。该系统开发基于asp.net、C#,采用了C/S模式。该文对该系统的主要功能、系统流程和关键技术进行了探讨。  关键词:墓园管理;信息系统;系统分析  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)02-0088-03  Abstract:
摘要:建立中等职业学校学业水平测试制度是深化职业教育教学改革,创新人才培养模式,提高职业学校教学管理水平和保证教学质量的重要举措,对培养职业学校学生积极进取、勤奋学习的职业精神,形成较高的职业素养、人文素养以及职业发展能力具有重要的意义。  关键词:中职学测的必要性;具体实施;推广价值  中图分类号:G642 文献标识码:A 文章编号:1009-3044(2016)29-0174-02  深化职业
摘要:这个设计是基于单片机的故障检测系统,采用模块化、层次化设计。通过使用拉压力传感器来完成杆塔受力情况的采集,使用倾斜角传感器来完成杆塔倾斜角度的测量。将测量的数据通过单片机STC90C5A60S2进行与原始数据对比,将故障杆塔编号通过通信模块发送到控制中心。该系统电路制作简单,工作稳定,效果理想,具有很高的应用价值。  关键词:拉压力;倾斜角;单片机;STC90C5A60S2  中图分类号:T
摘要:Alice是一个在3D环境下编写程序的软件,使学生在利用信息技术分析和解决问题等方面的能力得到很好的提升,让学生在学习编程的过程中多一些探索和乐趣,能够帮助学生在实践中培养计算机思维方式,为以后程序设计课程的挑战做好准备。  关键词:Alice;3D环境;思维方式  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)12-0158-02  1 Alice简介  
摘要:随着国家对信息化的日益重视,大学生的计算机素养也越来越突出基础理论的加强和培养计算思维能力,但程序设计启蒙在全国各地的发展并不均衡,这就造成大学生学习《程序设计基础》时出现了一些问题,为了解决这些问题,结合了STEAM教育中常用的积木式编程法,作为主修语言的引导辅助,设计了相关案例,从而加强程序设计方法、算法、逻辑结构等基础理论的理解,同时培养学习兴趣和计算思维能力。  关键词:积木式编程;
摘要:该文以丽江市地方文献建设为例,介绍了地方文献云共享体系建设对地方文献的保护及资源共享的意义;丽江地方文献云共享体系设计和服务功能实现了地方文献共建共享的基本做法。  关键词:地方文献;云共享;建设研究  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)34-0033-02  云南丽江是我国一个著名的旅游胜地,同时也是世界上古老的遗产圣地。丽江有世界上的三大遗产
摘要:在我国大力发展互联网 大背景下,智能办公和智慧医疗取得重大突破,信息化医疗系统设计也取得了重大成果,但是,在实践过程中仍有很多问题有待解决。该文以青岛市人民医院为例,分析了公立医院一位难求,医护人员工作量剧增,工作繁琐,医疗资源分配不均等问题,从公立医院对于公众自助医疗的需求出发,利用数据库管理系统,设计了云端共享、电子支付、PC端和手机端相对接等信息化管理结构,实现了前端网上医疗咨询功能,
摘要:该文以《公司总部局域网的设计与实现》项目为例对项目教学实施方案的编制过程进行了详细的阐述。并提出了一个完整的项目教学方案主要包括项目描述、教学目标、工作任务、知识理论和实践技能、教学组织 、教学评价和教学资源七个方面。该文为高职计算机类专业课程的项目教学实践提供了可参考的案例。  关键词:项目教学;教学设计;局域网的设计与实现  中图分类号:G724.4 文献标识码:A 文章编号:1009-
摘要:随着我国信息化技术的发展,多媒体教学模式的广泛应用。“慕课”作为一种新型的教学模式逐渐出现在当前教育者视野之中,它的出现在一定程度上提高了学生的学习主动性和积极性,也给大量的学习者带来了免费的、优质的课程教学和学习的机会,同样“慕课”的出现也给独立学院课程教学带来了一定的危机。该文介绍了“慕课”的概念及功能,系统性地论述了“慕课”在独立学院课程教学中的研究现状以及在课堂教学中的实践策略。  
摘要:计算机应用基础是高职学生必修的一门公共基础课,Blackboard平台在其中的运用对教学效果而言具有显著的促进作用。该文着重介绍了Blackboard平台和高职计算机应用基础课程,并从目前该课程教学当中存在的问题出发,探索了Blackboard平台的实践方式,并思考了其价值,仅供参考。  关键词:Blackboard;高职;教学;探索;计算机应用基础  中图分类号:G642 文献标识码:A