基于 Arduino 的解魔方机器人初步设计

0x01 材料

  • Android手机(摄像头正常)
  • 魔方(5.7cm,非地摊货)
  • 亚克力板(充当底板部分以及部分机械手)
  • 舵机(因采取四向导轨式,所以大致需要8个舵机)
  • 舵机控制板?
  • xxx控制板。
  • 开发用的计算机一台(配置好安卓开发环境,以及keil等,本次采用android studio)
  • 光滑小轮
  • 螺丝

0x02 整体结构

整体主要有四种结构。

四向推进式

大部分的解魔方机器人都是这种结构,基本不需要考虑魔方重力的影响,但是需要的舵机较多,控制也较为稳定,机械手的设计只需要考虑与魔方的配合,以及与舵机的连接。示例项目为

垂直手臂式

这种结构主要是将两个机械手垂直,魔方斜向控制,可以采用4个舵机,示例项目为u

单向旋转式

这种结构主要旋转的是正反一个方向或者是,大部分的乐高机器人采取这种。

内嵌中心块式

这种结构在解魔方速度上占优势,在有良好的解魔方算法后,可以达到秒级解魔方,有个视频采取这种结构的,只用了两三秒,不需要太多考虑伸缩或者推进。

设计出的结构

结构需要同时考虑速度和性能,单向的需要旋转好几次,实际步骤稍微有点多,最快也大致三十秒,慢的也有七八分钟,由于速度上不占优势,所以没考虑这种结构;垂直手臂虽然相对于那种的结构稍微好点,但是机械手的设计还和魔方的重力有关系,重力和魔方与机械手的接触力的合力向下,由于机械部分不是很熟,感觉设计出的机械手不能在转魔方的时候承担重力的分力,也没太多考虑这种结构;内嵌中心块可能需要破坏魔方的结构,并且机械手需要另外找材料,切合度没有太多把握,可能需要将魔方的中心块卸下来,软件算法需要对应好魔方的配色,虽然解法较快,不需要推进后退所需的时间,但是也没太多地去考虑这种结构,

最后得出的结构为四向导轨式的,然后在机械臂的推进部分与底盘连接的地方又有两种结构,一种类似于导轨式的滑动,另一种配置好塑料条,利用中间的孔将钢轴插入,前进后退。这时需要考虑材料的问题。

四方给进轴为解魔方的主操作部分,给进轴由旋转主舵机和伸进从舵机两部分组成。主控由exp-xxx组成,后期可以改为arduino或者树莓派,arduino可以进一步降低成本,采用Android手机摄像头作为颜色采集和识别设备。

整体设计框图:

闭环控制模型:

0x03 机械手结构

0x04 机械臂结构

机械臂大致有两种结构,一种是导轨式,另一种利用塑料条辅助进行推进伸缩。

0x05 软件算法方面设计

软件算法方面,由于计算的是手机的CPU,所以可以有几种思路,先进行类似于字典的大规模匹配,计算出最优解,或者是通过算法计算,计算出18-24步范围解,曾经魔方有一个上帝之数,为20,称任意打乱的魔方最少需要20步可以还原。同时考虑解魔方机器人每秒几步,统计出步数与时间,从而优化结构,升级舵机可以提高解魔方的速度。

在得到魔方各面的颜色信息后,是先通过数据库进行匹配还是通过算法进行计算,这里有性能方面的问题。

魔方解法方面,有一个二阶段算法,可以达到22左右的步数,并且较短时间可以计算出来。

0x06 软件摄像头部分及采集识别算法设计

app软件采集部分,利用手机后置摄像头,可以前期规定魔方的九个方块范围,后期想办法达到自动识别魔方方形,识别完方形以后,进行颜色的识别。

颜色识别主要使用HSL色彩系,区别于传统的RGB色彩系,HSL更适合识别相关颜色。并且同时注意部分魔方的橙色黄色红色较为相近,注意分别。

0x07 材料的选择部分

魔方

魔方采取5.7cm的三阶魔方,因为需要一定的顺滑度,因此不考虑普通的地摊三阶魔方进行主要测试,推荐大雁、国甲、圣手等牌子的魔方,魔方主要需要一定的顺滑度和容错度。

舵机

舵机的选择,舵机主要采用金属舵机,其他类型的舵机有步进、减速、塑料等,主舵机负责旋转部分,要求的速度和扭矩都比从舵机要求要高,并且需要180度大扭动。以配合进行U2类型的旋转(魔方旋转术语,为上层顺时针旋转180度。)

从舵机部分,要求扭矩大于3.0Kg/cm,

0x08 下位机控制部分

测试舵机

主舵机的连接测试。

从舵机的连接arduino测试。

电路部分整体设计

控制板:

仿真器:

稳压模块:

舵机:保证6V电压

0x09 安卓手机软件设计部分

整体采用material design设计,使用Axure等的进行原型设计,

主要有以下几个功能:

  • 1.摄像头识别魔方,计算解法,并通过串口传给下位机。
  • 2.指定或随机打乱公式打乱魔方。
  • 3.将魔方打出一定的花样,如一定摆放的I Love U,相对来说,高阶好摆图案。
  • 4.将解魔方所用时间如何显示到大显上。
  • 5.当三阶魔方完善以后扩展到二阶、四阶、五阶等魔方。

关于界面方面的设计:

  • 1.采用material design设计,体现阴影等元素,采取滑动侧边栏,主界面分为三个选项卡:速解魔方,复原历史,计时复原。速解魔方有连接状态显示,蓝牙连接按钮,扫描摄像头,
  • 2.主要是使用户点击要少,
  • 3.主要功能为解魔方操作,识别魔方,计时等。

0x10 乐高机器人与之的辨析

乐高也有解魔方机器人,并且有专门的颜色传感器,

基于 Arduino 的解魔方机器人初步设计

https://dbqf.xyz/201503-Rubik's-Cube-Robot-start.html

Author

admin

Posted on

2015-03-08

Updated on

2015-03-08

Licensed under

Comments