|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 4 k6 Y. g/ A$ ^. G# f
! m$ l5 X# q" ~6 a3 ?* e
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
# |3 R3 N, n! ]; U1.魔方配置规格要求2 Q8 Y) d( ^0 ~$ i" c4 ]0 ^
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:. W. D% _2 x s2 V, U* [7 D: C
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。2 F! D& J8 m# R8 n$ R3 d
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
; L) J$ t. v3 k' @9 _ 通过以上这样几个步骤可以排除魔方问题。8 ^2 j2 g6 h, s. ^
# d( x7 g+ m& T# J7 H" x* R
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。
0 Z* P/ `5 ?: W" R a.tiltedtwister方案( I2 k; h( {* u& Y- I# S1 k
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday9 ]8 x9 q5 t6 ^
版本:2008版本/2010版本5 v5 W7 ~; @& J ~, {
搭建图:(详细搭建图文件比较大,截效果图如下)
/ N0 |% U( W. n3 a+ g' T 
- G2 [4 @: X" r Y 图1 2010版本 图2 2008版本. k* r( i2 O8 _: _9 w: _2 d5 @
下载地址:http://tiltedtwister.com/download.html
# ?( _0 D8 }( c' L! J 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
4 C& l: k1 M( a( Y: O; A 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)
& u0 k, ^6 |& c 优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
' l8 ^1 G `! e9 s+ m: m& W: \* L0 J 缺点:由于结构问题,目前的结构设计不稳定,
+ ]2 v$ ^1 ^! _5 p5 O 性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟/ |0 W) G# y1 N* S/ M( ?
4 X/ b; }: [* k1 n0 R
b.MindCuberRubikCubeSolver方案0 Y2 I, `( a4 n0 `9 {% A
相关网站:http://mindcuber.com/9 ]4 y6 r' } ~! W) G( k
作者:David Gilday8 z0 L" U, j) I& L
版本:2012版本
% I' X( a& t, D6 b+ U' X( s( S! h+ \ 搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
, `# F' @4 c; {! m% s5 _8 @; O* F

! |. P8 ?& _+ D: U4 U9 L' a 图3 2012版本
* {# c% ?! J; j! m8 |0 s ?, k1 b( c 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)/ X! V% S; o b, f
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
/ o# c1 d' s: E$ |* h5 u9 L 优点:结构稳定,执行时间较快
% M1 q1 i/ D: F5 t2 B 缺点:
- {" m7 T& Q* [, |4 Q I; @ 性能:
+ Y( v: l* a" g% w7 w 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)
8 E; @3 X+ ] F, o/ q: Y- H
7 S3 z& s# C7 u! d3 c
4 h0 ]- j! \! `* s* g
3.调试方法
2 A8 H+ o' R+ r6 S* p2 r a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;
# O8 C6 A: p5 R# b# t b.不要急于下载代码验证,对照配置线缆连接是否正确,; M' _2 X2 b7 h+ I: S; Q3 y. ]
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求$ R: m0 G; |' x+ y* R- U& ]& B
# n7 q8 C0 C7 v3 \) F' V! I- l
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器
* K' u0 _5 K3 r5 z2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
d: P( J0 ^% z. }6 O4 @A =========Center motor 中央马达 A =========Center motor 中央马达
7 ~$ P4 O- X1 V$ p" z; s* ?B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达
' j9 g7 T) @9 e3 N3 V! B* G% mC =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
6 }( X3 ]2 M& w9 @$ `: J2 f' O3 J3 n* P# X/ ^5 F8 J2 n
两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。' Z W) D( s2 j5 q7 h
c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
- r; j7 M9 ?+ ~6 B$ M( u (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。# J7 M0 L# k0 W9 _0 J
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)
" f. x- R4 \% x" L8 @) N# [3 e8 k [! m; U+ x
d.中央马达控制微调,方法如下:2 v X9 k! ^# G& C) O
(1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;
/ d* |9 }3 h. w+ `8 |) h (2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。
2 m2 {. f; O: Q& s2 W' }3 F% C Q* K2 b3 E' L, h
e.下载执行程序整个调试验证:- `8 N7 o4 x* i
(1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。
! W+ X$ v7 }6 k+ y1 l" Y (2)程序流程大致如下:
) g3 N$ B% @8 h( c0 ttiltedtwister:针对这部分代码简要给出流程上的分析" [7 y$ u) g e* w4 e9 e5 ^
while(true)
5 m# N6 E2 X- N {
5 V' \0 w: y) _' d' p Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成). d' s/ X8 V9 |' Q5 z" k" K
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)
2 e |" g: Y: M2 b! k, W/ ^8 h 初始化转台中央转台位置(需要手动驻停中央转台), w9 P* }; r( F7 |/ p2 N. U
9 ^5 [: ?6 T2 S/ A WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,* y) p& z6 w. ?' y
通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”
1 \3 T$ O% R9 {, ? J( `6 [& {& N( d
# u2 z a( ]$ ]7 y ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
- y. C% z; p. {+ I if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()
5 h" [# O% a3 x2 Q0 o if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize(); ^' |, A; Q7 r/ @# A5 \2 Y
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
: l; {/ S0 E% A) V% L/ ^- h2 d WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()3 k0 @" N* p$ m
}3 Y6 m, P( E8 C' V0 r4 `
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下$ ]1 R5 t1 h4 N: d- S7 R! B
MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
+ J9 A* W' I8 Z$ ^ ^, d 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。
v! x! t. p& t) Y2 h4 E 如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
6 V5 T" B: u& w- q( k MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。0 T. ^% _. G1 ~+ I* ^5 [& G0 z
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。# l5 L, G# u/ w3 }+ S0 r' t
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。! G1 m* d+ h! K" r6 \
【提示】:0 m3 f# T2 S6 I
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。& S3 { i2 ~1 ]3 q3 n; U/ y
如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。% k" ~4 U' e7 Z% t- ^9 s
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。/ g! `% H" U( K# H
如果魔方不标准颜色,它可能无法正确扫描。 & j3 o B6 ]3 U9 |- ~
手动解3阶魔方必杀技方法:6 m8 u. r! d' n0 L9 J* ]2 _
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
5 r' c) ^8 U x3 W G参考论坛英雄帖: - K. f- b8 U' R
http://bbs.cmnxt.com/thread-2183-1-1.html
7 l# y8 [( F3 H0 r+ e% l7 J. o5 S7 o
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=82407 m7 u! @) i* R& C1 O8 O
+ l; h3 {$ U( u1 A2 Yhttp://bbs.cmnxt.com/thread-7443-1-1.html9 T' b6 q# G* z
' [3 b! q/ Q7 @8 Y
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580+ k8 p# l6 P* q5 n7 ]" D- J
0 S: ~% u/ l. q8 b1 o; Z6 u( a
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871( b7 h# a5 L. V+ e2 D/ v
* t7 M' t, {) T ^% E
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
7 T! `0 O S Z3 e3 w& n0 a: H6 J6 ?' r o
高端设计英雄帖:& t: D. |8 t) A
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
0 i0 ^7 \; {' s8 @http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
. X7 g0 Y2 i# l# q! s( x$ _4 N
( A8 _; F; X4 Q. s2 ~0 f
! V$ P4 {) q1 h: V- Q0 f9 r |
|