APP下载

基于ARDUNO单片机的魔方机器人解决方案

2018-09-13唐日成宋伟李泽萱滕旭阳郑艺彬

电脑知识与技术 2018年17期
关键词:机器人

唐日成 宋伟 李泽萱 滕旭阳 郑艺彬

摘要:本设计由特定摄像头作为颜色识别系统,采用两机械臂的操作方式,以机械爪作为操作设备,对魔方进行还原的操作。机械控制作为解魔方机器人的核心模块之一,是机械结构与算法的桥梁。

关键词:Arduino单片机;魔方算法;机器人

中图分类号:TP302 文献标识码:A 文章编号:1009-3044(2018)17-0267-02

机器人技术的不断发展与进步,可以说是各项科学技术共同发展所得到的一个综合性的结果,同时,机器人这门科学技术对社会经济的发展产生了一个巨大的推进作用。它的发展主要归功于在第二次世界大战中,各国加强了经济的投入,同时也就就推进了本国的经济的发展。同时,科技的发展也是人类发展的一个必然结果,机器人技术当然也就是科技发展的一项产物。另一方面,这也是人类生产力需求的必然结果。随着社会的发展,对这个世界,对自然的更多的认识,在人力不可达到不可完成的对自然改造的情况下,科技发展,机器人技术的发展就成为人类的一个客观需要。本设计将完成既可以用于教育行业作为典型的机器人教学教具,它还可以用于娱乐业作为显示和性能的机器人,并且还可以产生一些经济效益。魔方机器人的解决方案是利用数字舵机的颜色识别和精确控制。对于解魔方机器人,控制系统就如同人的神经中枢,它起着承接算法与机械结构的作用。本文将从机械控制部分进行论述。

1 初步设计分析

世界各地的公司和魔方爱好者都生产了各种魔方机器人,最快的解决魔方机器人"SUB1重装"0.637秒恢复三阶魔方,并创造吉尼斯世界纪录的魔方。机器人由麻省理工学院(麻省理工学院)研究由Ben Katz和Jared Di Carlo创建,他们采用了摩根交叉直线电机。这种电机具有高速、高精度、和高扭矩的特点,但价格比较昂贵。此次我们打算设计一款低成本,简单并且体积较小的解魔方机器人。我们以图像传感器作为识别工具,使用两个机械臂作为魔方的反转和旋转的操作工具。控制部分采用四个转向机构来控制机械手的转动和机械爪的抓取。阿杜诺控制舵,实现算法与机械动作的结合。由于体积较小所以需要对于抓取的精度和舵机转动的速度要有比较精确的操控。图1是控制流程图。

2 硬件软件基础分析

2.1 Arduino单片机

它是建立在开源simple I/O接口和具有处理/路由类似于java和c语言开发环境。主要有两部分:硬件部分是ARDUNO电路板,可以用于电路连接;软件的另一部分是ARDUNO IDE,这是计算机中的程序开发环境。单片机上的单片机可以通过ARDUINO编程语言编程,编译成二进制文件并烧成单片机。它没有复杂的单片机底层代码,没有难懂的汇编程序,而是一个简单实用的函数。此外,它具有很大的自由度。它可以很好地扩展性能。因此我们决定用Arduino作为我们魔方机器人的开源硬件基础。

2.2 ARDUION-MEGA2560

ARDUIO MEGA2560是采用USB接口的核心电路板,可以简单地使用USB连接计算机或使用AC和DC变压器。操作简单,人性化。开源方便,比较适用于控制本设计的四路舵机,因为Arduino Mega 2560具有Aduino UNO的所有功能并且由于UNO的IO接口较少,于是最终选用Arduino Mega2560作为本设计的主控板。

2.3 Arduino IDE

ARDUINO IDE是ARDUNO开源代码的集成开发环境,具有简单的语法和易于下载的程序,使得ARDUNO程序开发非常方便。

2.4 模拟舵机

主要由马达,减速齿轮以及控制电路组成,当舵机接受50Hz的PWM脉冲时,相当于马达接收每秒产生50次的驱动力,当改变PWM的脉冲宽度时,使得马达接收到的驱动力变化,从而实现舵机的角度变化。模拟舵机对于较"细小"的动作的處理不够灵敏,甚至有时候根本就没有处理。

2.5 数字舵机LD-1501MG

它是由直流电机、减速齿轮组、传感器和控制电路组成的一套自动控制系统。通过发送PWM信号,指定输出轴的旋转角度。普通直流电机不能反馈旋转角度信息,数字舵机可以。仿真舵机的精度不高。需要持续发射PWM脉冲,而数字舵机的旋转角度只在一定角度之间,结合项目特点要求电机可以精确控制魔方旋转90度、180度,故本设计驱动电机选择步进电机,这是一种专门为机器人设计的数字式操舵装置。它只需要发送一个信号来锁定角度。控制精度高,线性度好且系供应速度快。(配合机械爪实现对魔方的操作)

3 由算法到机械动作的转换

算法计算完魔方的还原动作为固定魔方的中心块位置,每一面顺时针旋转90度,180度或者270度。由于只有两个面可以被操作,便需要在有效旋转动作之间加上翻转至操作面的动作,转换为机械步骤时可将要旋转的面先通过机械臂拉动翻转到操作面,再进行旋转,我们对于算法进一步改良后,不需要完成步骤操作后再将魔方返回到front初始位置,每次操作后都会有新的front面,逐步完成操作直至将魔方恢复还原。

4 总结

本文主要阐述了对于此次设计的解魔方机器人从总体设计到单片机型号选取、舵机选取、取像设备选取,再到解魔方算法于舵机实际控制操作的实现。下面附上一张作品图片以供参考:

参考文献:

[1] 李永华,王思野,乔媛媛.Arduino案例实战(卷Ⅰ)/清华开发者书库[M].北京:清华大学出版社,2017:42

[2] 严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2011.

[3] 刘远法,周屹.基于Arduino单片机的解魔方机器人-控制部分[J].电脑知识与技术,2016,12(7):1-3.

猜你喜欢

机器人
“坏”机器人“大叛乱”
机器人
超酷机器人
疯狂机器人
机器人崛起
机器人,让未来走近你
拥抱未来——聚焦机器人