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

来源:本站
导读:目前正在解读《基于kinetis K10的自解魔方机器人》的相关信息,《基于kinetis K10的自解魔方机器人》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《基于kinetis K10的自解魔方机器人》的详细说明。
简介:本作品就是基于科学技术发展的产物。以前,人们总是自己动手来解魔方,那么在科学技术高速发达的今天,为什么不让机器来帮忙解魔方呢?如此一来,本作品便应运而生了。解魔方机器人不仅仅是一种娱乐工具,更是一种科学艺术。

作品简介

1.1 开发背景

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

1.2 结构说明

下图为总体结构:

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

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

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

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

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

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

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引脚介绍如下:

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

2.2 ARM控制板的选择

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

设计说明

3.1 设计方案

硬件系统设计:

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

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

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

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

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

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

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

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

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

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

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

(2) 软件系统设计

上位机软件设计

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

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

我们的上位机软件可以在视频窗口截取我们想要的图片并保存,然后再读取固定位置的颜色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个角,每个角由三块颜色组成。看下面的示意图:

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

输出表示法:

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

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

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

颜色识别与处理

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

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

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

3.2 设计原理

(1) 电路原理图

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

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

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

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

指导教师:郭宇 高丽丽

提醒:《基于kinetis K10的自解魔方机器人》最后刷新时间 2024-03-14 01:18:35,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《基于kinetis K10的自解魔方机器人》该内容的真实性请自行鉴别。