|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 & W, ^( Q+ `" G& D
3 v7 t8 \! W8 W1 x. |5 j/ v' G
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
1 u* Z) b1 i& D. f1.魔方配置规格要求
! L5 Z) [, z9 U5 `! D) l 我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:, ]2 p n, i E0 E
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。6 b2 [1 j2 D8 R l
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
+ w" ~5 v/ b4 i4 B1 [! T6 A1 X: u 通过以上这样几个步骤可以排除魔方问题。7 V* S2 g. |% `3 Y7 r7 v0 ^
0 J5 `0 Q5 M2 X: P- C2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。
3 f* \/ {% N# Z. _2 E8 W& ]4 v a.tiltedtwister方案' j4 c( q! i3 j4 m7 h
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday R, _6 B, n5 q( }$ q
版本:2008版本/2010版本9 m7 K8 V- n: J- |2 N! p2 m
搭建图:(详细搭建图文件比较大,截效果图如下)9 {, b7 I* I- ?5 @: ?: n! H! L, i) G
& [* \& |% S% k$ z3 W. R
图1 2010版本 图2 2008版本
- A* N+ I1 T2 n' d' h6 Y8 k 下载地址:http://tiltedtwister.com/download.html
3 b/ j8 V/ E" ? 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
3 ?- O. @+ O4 f1 k
加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)
. c% f* c0 A! U9 i5 a5 M 优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
% E0 T& J, p4 p7 l, N `/ \$ U 缺点:由于结构问题,目前的结构设计不稳定,
# k& E1 c3 s( h' n 性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟
+ G# {* @4 A! X) c
/ G6 x8 V" J( c; W0 tb.MindCuberRubikCubeSolver方案
+ o9 J- t) p1 b 相关网站:http://mindcuber.com/7 J+ a6 i" P. N* T: S
作者:David Gilday1 A# q- _. g) G- D" }* R
版本:2012版本, B# M4 u B0 i2 z7 G
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
% ~% L3 e! E8 F) |

H2 A; e' J" x 图3 2012版本
6 A$ m- m2 D A# W 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)
$ w; |. @6 y1 N. s 加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
. N9 l' x; ~+ U0 f
优点:结构稳定,执行时间较快6 ?' {7 z. m" S) ~. |0 b; V
缺点:
/ C4 w: W% C& O/ m 性能:
; y$ C% z* Y5 j$ [ 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示): \% q( G2 d. ]! F: M5 H* f# y
/ D% b. y+ S8 n" |1 ]* Q5 Z, a4 W
5 ~5 I6 Y" F- {* w; e, G3.调试方法8 _; Y( l% I2 n2 i0 x: }4 o1 i& r
a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;, C" X" T; D( w0 ?& u
b.不要急于下载代码验证,对照配置线缆连接是否正确,: ]) q0 h; v7 K. u4 u
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求
% }4 O O1 S5 T9 t% y" O" V* N1 `0 b2 W. R* U4 }5 e- `
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器+ r4 v! L# p( o4 e& Y* t) U: y0 y
2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器" [9 L2 j! m3 n, T
A =========Center motor 中央马达 A =========Center motor 中央马达+ c! r1 B: P( \3 }8 q
B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达3 K, n+ a- ], `" n/ w/ ?
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达0 c2 G4 A) {0 o" I- }+ ?
" F$ i; }" n# K2 z( X4 f
两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。& |1 z" t6 J: k2 c: T, Q6 ^
c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
# j( z; D( f5 p, Y( H (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。# J/ B; Z: B8 M+ c8 ^. P3 K
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)2 }/ x. d/ W) N0 ?- k1 t8 `2 `& j: P
! Y8 K' K3 J# M
d.中央马达控制微调,方法如下:
2 P4 Q0 F2 }. W% c/ h (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;9 L1 {1 \& l& x a! i- C, D9 q2 U/ u
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。
$ b6 s5 }/ ~/ @& F& | O5 w% \2 D
6 L9 U9 k* _5 p( \; }- e e.下载执行程序整个调试验证:
: e" Q+ P* v8 S: c (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。
3 W7 g) ^+ v* h1 @ (2)程序流程大致如下:: e# z( t3 U9 b) ]. g( n
tiltedtwister:针对这部分代码简要给出流程上的分析' |! U! L A& A& d' }' q" P; Z1 R
while(true)2 k3 \& Q/ _# s/ {! d( Y
{
, r6 r( ]$ \% A8 _0 o% W Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)
2 k9 w2 V0 F; L6 \5 p% n Y 初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)
4 y8 K$ N; Q% K- f+ A( }3 s 初始化转台中央转台位置(需要手动驻停中央转台)
0 Z6 c5 q2 t8 c8 e
* }, ^' @- x3 |) ^8 J& u/ U WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,
; [3 W3 n, m. F2 W4 l2 a# O 通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”' l8 Y' T Y5 @
# K6 h- L% ]8 D- v) p
ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
2 D4 x) o* g% h. i" u$ r if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()
) p" E5 X! S2 T- @3 Q! @5 g) { if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()6 k- [# n }4 c' P
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成% A* }% u p6 k# l2 M, s( }
WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()$ a6 V: Q$ f4 p. _
}
% n; r) Q, k5 y, l% P @5 \MindCuber:没有代码,借鉴操作手册上说明描述翻译如下5 ?. _( z: a4 m2 z2 g( ?+ Q: [" V
MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。, c! E: t) l, f& ]$ H& k) n9 C, ?
选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。
5 g# G' v2 ]2 I# m2 D( P 如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,& N1 w* j6 e ~
MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。, H" s1 ^. y$ ]! ?2 s* b* ]
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。
1 H. n5 N: ~* Z, \ u 在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
0 i! j' M) t1 P/ v/ Q! a d 【提示】:7 i6 O! \* p5 Z# e; S6 H: D
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。
4 j5 Q5 |& Y+ x; L0 w 如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。
8 d5 @" V7 v/ E, J 如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。
4 I0 E/ V- j! O: g; T6 b- l 如果魔方不标准颜色,它可能无法正确扫描。
0 O5 a d- }- P, f手动解3阶魔方必杀技方法:! H% b% P' n/ }+ H7 ?' u' O) `
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic% b" E6 y. D+ Y M6 u0 O# T4 `
参考论坛英雄帖: 2 I6 v7 j$ Y& w3 d' V
http://bbs.cmnxt.com/thread-2183-1-1.html* H* {% |$ ]( o& L! U
5 b# K) c& k! f8 e" Q& Ehttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240
( i6 u0 ]* F. ?" Z: C, ?. F/ |! z) r _- M, D
http://bbs.cmnxt.com/thread-7443-1-1.html
' J0 L3 n8 e8 V( _7 T; X
8 @, @5 {2 @; b: {$ ^" Shttp://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580
$ J5 S$ O \' k% @4 |" B/ e: L' g
9 |: m3 q7 e. c9 d2 Chttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871. O( Z( T+ J, Y
: l! X$ O! I# g1 L4 Z
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870 s, g, t {) h. p+ {5 o
. `$ y$ y0 A3 F9 z$ z2 Z高端设计英雄帖:
4 o! D8 X! n& u, t/ Lhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
: S8 X4 o) {$ p* \! Ihttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
0 H! Q3 }2 z" t! \
! z( H' _, l$ h( ?2 T7 ~. W% d, A1 H! m, ?
|
|