基于VB的三阶还原魔方系统的研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VB的三阶还原魔方系统的研究.doc

基于VB的三阶还原魔方系统的研究   【摘 要】 本文介绍了一种利用编程语言和舵机构建能够还原三阶魔方机器人系统的方案,此方案中利用VB编程语言作为软件设计语言,编写出PC终端的上位机控制软件,控制以舵机控制器为主的下位机驱动硬件完成还原魔方的动作,此种方法具有构建还原魔方的系统简单、灵活的特点,文中对此三阶解魔方机器人系统的硬件构建以及程序设计中相应功能的实现方法进行了深入具体的探讨。   【关键词】 VB 三阶魔方 舵机   1 系统介绍   1.1 硬件总体设计   本系统的硬件部分由计算机、舵机控制器、机器人本体构成。其中机器人本体由8个舵机和4个手抓组成,机器人本体结构以及各部分联系如(图1、2)所示。   1.2 软件系统设计   1.2.1 软件设计的总体思路   程序设计中利用54个VB自带的Label控件代表三阶魔方六个面展开后54块颜色块,改变这些控件的BackColor属性就可以在PC机上显示出魔方被展开后的各个面的颜色。软件执行过程大致示意图如(图3)所示。   系统中规定魔方摆放时面向操作者的面为前面,背离操作者的面为后面,操作者左手方向的面为左面,右手方向的面为右面。程序中有18个类似于LEFT_L90、LEFT_R90的求解魔方过程函数,其中LEFT_L90表示使左面向左旋转90°,LEFT_R90表示使左面向右旋转90°。当通过摄像头获得魔方的颜色后进入主程序开始还原魔方,每还原一步,主程序就会调用这18个过程函数中相应的一个,并同时给舵机控制器发送一条控制指令,由舵机控制器驱动硬件完成对应的动作。这样就可以在计算机屏幕上显示出动态的魔方颜色变化过程,并使软件显示与硬件响应同步。   1.2.2 主程序设计   此系统中采用的还原三阶魔方方法为简单易学且还原公式少的“层先法”,共分为如下七个步骤:(1)拼出底面白色“十字”;(2)底面“十字”调整;(3)底层角块还原;(4)二层角块调整;(5)顶面黄色“十字”构建;(6)拼出黄色顶面;(7)顶层角块还原。如果前一步没有完成就不能够进入下一步。由于篇幅的限制,此处不再赘述各个步骤所编写的代码。   1.2.3 计算机和舵机控制器通信程序设计   串口通信采用了VB中专门的控件MSCOMM32.OCX开发,在程序中使用此控件的之前,先对COM端口属性进行一系列的设置,部分代码如下所示:   Private sub Serial_Com()   MSComm1.settings = 9600,n,8,1 设置数据传输率和发送字符格式   MSComm1.CommPort = 1 设置通讯端口为COM1口   MSComm1.PortOpen = True打开串口   End Sub   1.2.4 魔方颜色的获得   本系统中用一个通用的USB接口的高清摄像头作为颜色的采集器,要通过编程控制摄像头完成颜色的采集,程序设计中用到了两个VB的API函数:CapCreateCaptureWindow用于创建视频窗口;SendMessage用于向窗口发送各种消息,实现对摄像头的控制,主要的代码如下:   Private Sub video_show( ) 创建视频窗口和连接摄像头   Const WS_Child = Const WS_Visible = 设置子窗口常量   Dim Cube As Long   Cube = WS_Child + WS_Visible 视频窗口可见,且为子窗口   ctCapWin= capCreateCaptureWindow( ,Cube, 0, 0, 500, 480, Me.hWnd, 0)   SendMessage ctCapWin, H400 + 10, 0, 0 连接摄像头   SendMessage ctCapWin, H400 + 50, 1, 0 第三个参数:1-预览模式有效,0-预览模式无效   SendMessage ctCapWin, H400 + 52, 80, 0 第三个参数:设置预览显示频率为每秒 80 帧   End Sub   魔方每个面块都有特定的颜色,而一种颜色可以通过红、绿、蓝三种颜色组合得到,即就是每种颜色的rgb值是不同的,通过对所获得颜色的rgb值进行比较判断就可以分辨出是哪种颜色,此处只介绍白色的判定代码如何编写,关键代码如下:   Private sub C_judge()   If (200 = r And r = 255) And (200 = g And g = 255) And (200 = b And b = 255) Then Label1.BackColo

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档