|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 . q! m, _ F0 \
G( R: Q/ ], e5 d5 ?5 W
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:. Q$ Z7 `' {; F* D9 W6 i
1.魔方配置规格要求
' I. J) a3 c0 B7 ] 我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:
5 m% H, k; S- N, z a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。
$ Z8 e/ y( G) q4 Z b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。# r4 l G& D" d: E- R- [' R
通过以上这样几个步骤可以排除魔方问题。
4 `2 j1 @- q4 u) r! b& e& {/ F `6 r8 O5 r Q: M* p; D2 x" s
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。3 ~$ E( }' ] T# Y$ S1 R% n2 I8 K3 @
a.tiltedtwister方案
4 l! U& M' \ q$ [$ m6 V 相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday) }2 @# Z& g5 L
版本:2008版本/2010版本5 }" v( }4 m, M& \8 M* H9 b, T( a
搭建图:(详细搭建图文件比较大,截效果图如下)
. c8 o3 B7 _$ a, ^- e3 ] " U/ e2 S6 ^# s4 A& G+ Z
图1 2010版本 图2 2008版本& v. D% e. r# w+ Z: q, \$ \
下载地址:http://tiltedtwister.com/download.html
, \. `, b' S1 @ 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
: O) c: D4 l& f3 a' }5 j
加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)# R% O1 n1 B7 d
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
; E0 h7 i8 z U3 J. ^5 e) [4 p4 t 缺点:由于结构问题,目前的结构设计不稳定,1 I9 m# ^/ E) {! l5 W. I1 _1 e& A
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟; n" q4 r1 p: C2 c+ u3 L4 O; o
2 S- @5 D" Y# O: pb.MindCuberRubikCubeSolver方案
1 V( B0 R- A$ }2 l$ q8 ?3 J 相关网站:http://mindcuber.com/
. {6 M0 T: S1 x) Q# j7 X5 R 作者:David Gilday6 P2 o: n1 `) h) R6 Y& \8 A, x- A6 c! U
版本:2012版本6 b4 M! q* e/ x9 [2 Q X i& F
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
9 Z0 ^1 l8 l8 a' d0 o

) j/ m1 I, n! g6 w 图3 2012版本
0 P8 y4 v5 R7 u8 s w 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)3 q. b! ]9 L l3 w
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
% J; M9 ?. `6 z' {
优点:结构稳定,执行时间较快% O8 B: [+ `$ |" i
缺点:( X0 V/ ^: \" M9 H3 v
性能:1 v' b! V6 u0 F8 H) I: w1 ]
改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)
9 \. y1 `+ w" {6 J" K5 J$ r3 ?7 j
/ c4 h; V! T/ p. [" v/ J8 f
2 X* _* f9 G% c5 h- A5 l3.调试方法) C2 b" a8 K( y1 N+ t
a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;
: t' I8 z D! ~8 R) k7 D+ V: e9 Q( q+ d b.不要急于下载代码验证,对照配置线缆连接是否正确,- G' H$ A1 s) W
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求' U6 K9 m, k* N
9 S& J8 A0 _1 m1 h) C7 p4 K1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器& ?- a4 [/ K A2 c( R% T7 j4 q$ A% i2 W
2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器3 P0 V) _' k$ ?6 T
A =========Center motor 中央马达 A =========Center motor 中央马达
( \: t# V7 D4 V# H; gB =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达
$ G9 z8 ?! i7 wC =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达8 u$ p8 _" c% H# f6 A
5 [% e1 O. _) n8 M6 l. t* }两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。' v; j1 j5 {8 {- U% @
c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:% _; ?. S: [: n
(1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。
0 e9 C( d9 u6 [, J5 Z6 v8 ]) Q. T 尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)
" `( U! `" s5 U& Q7 G8 J& Z9 @) O( Y8 l2 d: H9 |
d.中央马达控制微调,方法如下:5 x$ V' w3 C, m0 d: M* E
(1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;
6 l6 d2 D( s$ @, m5 P (2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。
7 b6 g9 X: y( }! G, m9 _. w. A4 K" N/ i: S3 H& |& s" f% ~4 R7 w- G
e.下载执行程序整个调试验证:3 u+ s5 q& U4 s
(1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。
' T" n# [7 a1 F4 E* S& u+ ^5 a (2)程序流程大致如下:4 `. ^2 Y- {9 ^5 D
tiltedtwister:针对这部分代码简要给出流程上的分析+ b9 j* X( U" {1 n* C! z: X
while(true)
/ \1 o3 T' v" c4 I$ y( [ {
8 e8 }$ R: ?/ Q; R+ T Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)5 g8 M7 t$ H3 K2 P4 W7 y4 V
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成); H+ ~' b' n3 p0 f: _- o% q# }
初始化转台中央转台位置(需要手动驻停中央转台)1 y1 E$ j* a3 \- T* G
: R* J) n& t1 q, k0 X
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,2 T1 `- ^- e( V9 |# d7 i
通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”5 u& a6 _- b6 e. j: Q l: B
( ] j; }4 l% o' Z, S7 u# k, s/ g
ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框" o5 E9 W: h# Z! w
if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()
9 d+ |$ v5 W, }; z5 f3 R8 } if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()$ f8 m% }3 O0 |0 B2 g& i7 u7 e0 P
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成3 Q7 A' f* @0 l: p( X
WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
# n; ]4 |+ `2 W* N0 x }% y& d& l1 Z* H' i! s- n
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下
" G _9 I; E6 H) X MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
# q) ^2 e, B9 f9 w( w 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。
5 W% x3 P$ T8 g! S U5 H: Q 如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
% X' s A/ |' S4 Y9 t MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。% l `4 I. Y* x4 g1 X' f. i
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。4 }) g1 ^+ w9 ?$ h3 y+ t
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。3 j) o1 \/ c8 a9 |4 `% N) F
【提示】:, ~7 m: ?9 U1 v0 I
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。
# t! C; Y3 D$ y4 ~ U2 v& p- H 如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。2 E+ r+ K/ {8 S0 ]) h; G' Q& u
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。
. ]4 p6 ^2 v, S 如果魔方不标准颜色,它可能无法正确扫描。
! }% e0 \ }1 R! w% W手动解3阶魔方必杀技方法:; |8 F, [! P' Y6 s o5 ?
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
+ I! Y6 `! v+ s, x. g0 u0 E参考论坛英雄帖:
7 F+ P2 y/ {! q* ?" f0 l* Shttp://bbs.cmnxt.com/thread-2183-1-1.html' Y: G4 W: Y7 G* `4 L( U4 o N
/ f. r2 r; w3 a* ?
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=82401 ]" m( i! L5 v6 n- e
$ S; E: p* H7 `$ Whttp://bbs.cmnxt.com/thread-7443-1-1.html
/ d! H) ~: I# b
9 {, b4 V7 ^9 o5 G0 t+ a P3 Ghttp://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580- Q( b1 F/ l# Y' K% o5 ]
8 e0 z0 j1 _: g7 chttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=58717 \% [) h/ N* ]- A# s' d
/ V5 g9 d5 |3 chttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870" m) q0 E/ E* M4 y2 {) H, w0 K
( `7 R; c4 v1 F高端设计英雄帖:6 Q- r9 |. n) X' ?, v" P
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
3 m7 X( b" {7 T9 i& L* phttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
' P% Q2 m- Q# p# x/ I+ o/ F3 p5 C7 |5 s: S/ o% q# g) z( H
, O/ n9 C" h, h( }& t |
|