这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 毕业设计专区 » 基于kinetis K10的自解魔方机器人

共1条 1/1 1 跳转至

基于kinetis K10的自解魔方机器人

专家
2014-03-18 20:57:11     打赏

作者:内蒙古科技大学 齐耀旭 郝剑波 陆剑锋

指导教师:郭宇 高丽丽


  作品简介

  1.1 开发背景

  随着人类科学技术的发展,人工智能化已经成为各类产品的一种发展趋势,许多娱乐性的玩具也都走向自动化、智能化。本作品就是基于科学技术发展的产物。以前,人们总是自己动手来解魔方,那么在科学技术高速发达的今天,为什么不让机器来帮忙解魔方呢?如此一来,本作品便应运而生了。解魔方机器人不仅仅是一种娱乐工具,更是一种科学艺术。

  1.2 结构说明

  下图为总体结构:

  (1). 主控模块:本模块采用比赛要求的ARM kinetis K10来控制。

  (2). 舵机模块:本作品采用了8块舵机。外围4个控制舵机的伸缩,内圈4个控制魔方的顺时针和逆时针旋转。

  (3). 摄像头模块:本作品采用高清摄像头做为我们机器人的眼睛。

  (4). 上位机部分:本软件采用C#为源码编写,它包含实时计时功能、视频显示功能、抓取魔方、读取颜色功能、截图调试并识别功能、串口设置功能等。

  1.3 功能与使用说明

  (1)功能

  本作品可完成对魔方颜色的读取并解开魔方的功能,上位机可以实时记录解魔方所用的时间,时间根据魔方的打乱程度不同而不同,平均大概二分钟多就会解完。

  (2)使用说明

  首先,人工将魔方随意打乱,点击抓取魔方,让机器人抓取魔方,接着点击读取颜色,魔方便开始将六面的读入,点击识别,上位机进行处理、计算之后,将解法发给下位,此时开始计时,与此同时,机器人也开始解魔方。结束后,计时停止。机器人的手自动松开,由人工将其取出。

  1.4 作品特色

  本作品实现了从传统的人工解魔方到智能的机器人解魔方,其中不乏趣味性,此科技作品解放了人的双手,让机器自己来解,具有一定的欣赏价值,同时也具有一定的艺术价值,更具有一定的创新性。

 

  平台选型说明

  2.1 ARM控制板介绍

  ARM主要模块介绍如下:

  (1)通信模块:UART 模块; SPI 模块; I2C 模块; I2S 模块; CAN 模块。

  (2)模/数处理模块: A/D 转换模块(ADC) ; D/A 转换模块(DAC) ; 电压比较器(CMP); 触摸感应接口(TSI)。

  (3)定时相关模块: 可编程延时模块(PDB) ; Flex 定时器(FTM); 周期中断定时器(PIT);低功耗定时器(LPTMR) ; 载波调制发射器(CMT); 实时时钟(RTC)。

  (4)存储相关模块: FLASH 在线编程模块(FTFL);存储卡驱动模块(SDHC)。

  ARM引脚介绍如下:

  2.2 ARM控制板的选择

  由于ARM拥有以上功能,再加上ARM体积小、低功耗、低成本、高性能,寻址方式灵活简单,执行效率高,所以此科技作品采用的主控为ARM。

 

  设计说明

  3.1 设计方案

  硬件系统设计:

  主控制模块:本作品采用ARM系列单片机为主控,我们使用的功能有8路PWM、串口等。如图:

  舵机模块:作品采用的舵机如图所示:

  舵机工作原理: 舵机常用的控制信号是一个周期为20毫秒左右,宽度为1毫秒到2毫秒的脉冲信号。当舵机收到该信号后,会马上激发出一个与之相同的,宽度为1.5毫秒的负向标准的中位脉冲。之后二个脉冲在一个加法器中进行相加得到了所谓的差值脉冲。输入信号脉冲如果宽于负向的标准脉冲,得到的就是正的差值脉冲。

  如果输入脉冲比标准脉冲窄,相加后得到的肯定是负的脉冲。此差值脉冲放大后就是驱动舵机正反转动的动力信号。舵机电机的转动,通过齿轮组减速后,同时驱动转盘和标准脉冲宽度调节电位器转动。直到标准脉冲与输入脉冲宽度完全相同时,差值脉冲消失时才会停止转动。

  机械结构搭建:本作品采用塑料棒与实心铁丝搭建而成,搭好的实物如图:

  摄像头模块:本作品采用的摄像头如图所示

  本摄像头采用像素为1000万、传感器为CMOS的摄像头。

  (2) 软件系统设计

  上位机软件设计

  本软件采用C#为源码编写,具有计时、控制下位机等许多功能。设计好的上位机界面如下图所示:

  我们的上位机软件可以在视频窗口截取我们想要的图片并保存,然后再读取固定位置的颜色RGB值,经过多次取平均值之后,与我们设置的阈值进行比较,得到颜色,再经我们的魔方算法得出需要旋转魔方的过程,发送下位机动作,同时开启计时功能,当解好之后,时间计时停止,得到解魔方时间。

  魔方算法

  一个魔方可以由一串字符串表示: UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR,其中 U: Up F: Front R: Right L: Left D: Down B: Back

  这种表示法是由一个叫Mike Reid的人首先使用的,它表示一个已经被解好的魔方。其实这就是代表了空间坐标系的六个方向。表示法中包含了12组双字母的组合,分别代表了魔方的12个棱,第一组UF就表示Up和Front之间夹角的棱。另外还包含了8组三字母的组合,分别代表了魔方的8个角,每个角由三块颜色组成。看下面的示意图:

  输出表示法:

  这个程序的输出是这个样子:F- U+ F- D- L- D- F- U- L2 D-FRL之类的字母依然表示六个面,F-表示前层逆时针转90度,U+表示上层顺时针转90度,L2表示左边层转180度。

  这里的顺时针和逆时针使用的是“观察者迎着某个面看”的参照系,例如B-是从下往上看的逆时针。

  我们将得到的这个解法的程序整理成C#代码程序,并与我们设计的硬件结合,得出解魔方步骤。

  颜色识别与处理

  根据上面对魔方的规定与表示,我们先将颜色值放到数组当中,这样就可以按照下面的代码来让摄像头读取魔方六个面的颜色。

  识别以后,交给上位机处理,再交给下位机执行。

  3.2 设计原理

  (1) 电路原理图

  电路原理图是由kinetis k10主板和电源的转接板,这样我们可以很容易的插入舵机信号线,方便使用,下面是PCB图。

此文档的相关视频来自:http://v.eepw.com.cn/video/play/id/13537




关键词: kinetis     机器人     脉冲    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]