|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 / V3 o) G* k- @6 G
/ t, |, y" ~1 f2 T
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
' K7 {$ w3 n# Y. x& H% c* e( d! O1.魔方配置规格要求! A5 m+ n) h0 H
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:% S: E' k9 r9 `3 l
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。
( C& I5 Z$ W" r1 B- z! D$ P7 I* D b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。+ t% n$ T' `6 h7 B8 R& S. U
通过以上这样几个步骤可以排除魔方问题。
! |# r& i/ d$ E5 f$ E$ n# |* H; r3 |) R9 W+ J
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。
4 [: v3 o1 w7 R9 C: V a.tiltedtwister方案) c+ X6 ^" m; b
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday3 c; c; r8 L+ g; U
版本:2008版本/2010版本
% ~. k5 X: {2 l. n 搭建图:(详细搭建图文件比较大,截效果图如下)
9 L4 \% g, D& L* M \ + s/ V9 W) Q, p5 _; Y
图1 2010版本 图2 2008版本
4 m1 g3 |2 F9 X 下载地址:http://tiltedtwister.com/download.html & m: I+ `# x; v& |
源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
Y9 J" l. X& W* I 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)0 R; f# v- o M
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)( O9 u$ D0 k6 e6 z X* X
缺点:由于结构问题,目前的结构设计不稳定,, l" Q# u4 e n' s6 p1 n
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟+ v3 }5 d" J, g; \# A
, J5 h1 v! N( m* h" O+ i
b.MindCuberRubikCubeSolver方案 \1 Y) | Z9 q8 n
相关网站:http://mindcuber.com/) N0 Z6 ~, g) |" `; x
作者:David Gilday7 z/ h; y7 h& D* [( N
版本:2012版本5 n6 R, S0 Y; h
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
$ j9 ]: f, T' W5 i

9 D" u5 X' [+ b. ~. m% y+ i 图3 2012版本
9 Y8 p( n5 j; }7 U 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)
- t2 {6 A) V; H$ o5 q0 C3 K( n 加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
4 r2 a! H, l+ z& W7 G+ Q: q
优点:结构稳定,执行时间较快7 J+ N9 ?9 a, G# s" l7 d8 r7 y9 Z
缺点: ~, h9 \$ o. ~) H$ J i- x
性能:) Y2 z) q" p. {" ~( H9 p! Z
改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)
* P; V4 X1 L; R2 ^; r
/ o0 ~; {; z; P5 q
% y1 W; W& ^! e! f P/ a3.调试方法: c; f' I: s$ M8 X
a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;
# x+ Q6 ?/ W0 F" {1 Z b.不要急于下载代码验证,对照配置线缆连接是否正确,
4 }; r3 P8 j q) V tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求+ V5 Z5 F2 U, K3 F+ m
1 u$ {/ K, c+ i8 l* V1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器
6 F- |! @8 q2 e- G5 k2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
* E( Q6 s) F: R: X; WA =========Center motor 中央马达 A =========Center motor 中央马达0 N& {2 g' ?. R: B
B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达5 r7 ~8 u4 f( L* u0 e6 ]
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
& B2 ^) D! }$ K& ?0 p4 ]3 v
1 f8 |% J2 B* k" b两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
- @. _0 X o# b1 _ c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:9 i; A+ b* t! W$ e- L G
(1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。& L3 u: @6 s0 X4 \) E* `
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)
- N$ p1 `: s4 x( i' n! H* M9 U5 C+ ~& {! ], p1 i. g
d.中央马达控制微调,方法如下:
4 V# r7 W# n; a% Z# e (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;
! U# ], v3 M7 P V' {$ P (2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。/ l- X) P9 s7 ]- F
5 f) l% U& X& W8 j8 ]+ Y+ X
e.下载执行程序整个调试验证:
7 J4 L& n, H7 u& i* l (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。
. {6 l$ C1 H) C% M (2)程序流程大致如下:$ T# P5 |. _( N' M2 }4 D
tiltedtwister:针对这部分代码简要给出流程上的分析
. q2 ^7 O4 u3 o" n- A) n( M* C while(true)
/ P2 B% a7 I% D* J' m9 w4 M: W {
+ T2 I$ u% A, G4 L+ h Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成); V* T5 `3 U9 w$ E
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)6 C) n2 B; f' ?& C
初始化转台中央转台位置(需要手动驻停中央转台)
- i) ^# z% L5 Z, r: C" @; T* p) T; e3 n4 i# @) k
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,
. X0 e, Z) G) k5 c4 s% R9 _ 通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”
) {' f* S" n# i8 z- I; s' k, O2 l% ^! {% @0 b
ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
/ E" C8 f3 v/ t5 l if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()( R6 x. z1 [; @+ S" E
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()
% J k! r8 q8 S; N$ Z9 e& x$ A! R3 H DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
' A1 }$ D4 m9 A* d4 {& x' { WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()' p _* h$ C9 n: u$ z: q
}" [6 _" ]% J& F* A: ^: p
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下
# ^( r3 b' e; {5 N6 x2 @ MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。+ E% { V0 {+ x) H2 ^- h$ m
选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。
\" L5 v; v1 G6 V 如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
' V, i, u) s0 w MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。& A8 C3 \5 ^& g" d
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。
, [0 I2 v4 Q8 I$ }1 {3 }, I9 { 在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
: e$ z7 `( S1 b6 P. x 【提示】:
4 C& a3 M2 _4 C 观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。( A9 s9 I2 B c% x+ U7 h5 Z
如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。
2 G1 d# |: [ B' u( n3 p$ s9 ] 如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。
5 R v, L# W" N) T' A3 V 如果魔方不标准颜色,它可能无法正确扫描。 " a! _) F' |. S: N( L
手动解3阶魔方必杀技方法:) a4 r4 w% i, n+ f& k6 H1 a
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic# \% Y0 _9 t( y3 F
参考论坛英雄帖:
. }; d o, }* O# E$ Khttp://bbs.cmnxt.com/thread-2183-1-1.html
, v$ O5 h$ Z$ A- b& u4 t
0 C# G: K' b+ v4 v9 |http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240& \3 G l! |8 A: K# D
% \- A: n1 {+ g# _6 y, k5 o
http://bbs.cmnxt.com/thread-7443-1-1.html+ d/ {' l" h$ o$ w1 i' Z2 i+ o
- q9 {* i3 `4 {- ~# Rhttp://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580
4 _4 x% y5 k) y: A, F9 N- t- B
$ }3 p" ^& u/ a, z% `http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=58711 K9 F$ J; t; E/ y( l: }
9 s0 V6 a1 X/ d& ^# q1 K
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870/ @+ g# f7 H& D) g9 Q; Y% J' }
) i0 L/ J" p: g) e @/ X高端设计英雄帖:* M* K5 y8 m% I! n" Z% I( f$ D
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647 u; Q' T0 h$ O2 X- l4 F" }
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
* m0 |2 Q0 B5 Q3 ] N; ~, X1 U, c7 \ I
) m0 I' C9 g, o7 y: b |
|