|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑
! \+ l8 Z- J& H @
" N8 z9 p8 n% d9 j( R 最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:7 ?5 V9 y. F( Z- ], y) D
1.魔方配置规格要求
4 `" D9 k4 S: [ 我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:
1 I2 x k+ H# h7 u: K' ] a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。8 Y/ N7 ~ n4 w+ k
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。6 v& X% \* [& Y% A/ h
通过以上这样几个步骤可以排除魔方问题。
) ]) I/ J0 ~- t0 ]0 b
/ Q5 t' |/ ~( i- a! j7 a8 k2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。
0 A# N" s+ Y9 }, h' M a.tiltedtwister方案
) [( ]* e) w9 [( j3 g 相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday) [8 f( t0 v2 b3 r, w1 I
版本:2008版本/2010版本$ [ u! p1 f7 v; }
搭建图:(详细搭建图文件比较大,截效果图如下)
2 ? m0 X7 v2 g; l- o/ h 
3 M& O, ]' s" u. s3 ^ 图1 2010版本 图2 2008版本( K2 ]( q+ i6 B5 d2 ?$ S7 S
下载地址:http://tiltedtwister.com/download.html
1 l% S* l. o$ b+ g8 @6 T- j( ]7 y 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
7 D3 J5 c7 L/ C0 o4 X+ O5 f0 D, A 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)' E! ]+ A2 U* T( n, Y* u8 U
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
7 c3 t! y' q# o9 `6 w8 ?& t, E 缺点:由于结构问题,目前的结构设计不稳定,( ]& N9 p3 a; D9 S: G+ H
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟$ q' p/ L8 A; w
8 O; K/ t: `/ W, k6 E: Kb.MindCuberRubikCubeSolver方案/ p. w4 V) L G7 v' H; E w
相关网站:http://mindcuber.com/
$ Y8 X. S; t9 h 作者:David Gilday
+ m1 }9 q3 j* E. Q 版本:2012版本
4 s) z. w" ~2 s- G 搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
: P5 o T; b7 w3 r+ x4 w8 P

& F6 c1 c- j- K8 F4 E5 ?& C8 \ 图3 2012版本# G, N$ x* x6 c0 |
源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)
; h. \, N( w1 F& u. k/ ?. E2 b' l1 _ 加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
( v$ W0 t2 L, ~( L7 M/ j
优点:结构稳定,执行时间较快
6 E! G$ E1 C# _0 O# q3 D 缺点:5 ?& h# ]3 e; g3 K: K: S
性能:
- J8 p2 Q. R# \2 U, A. g) P k: j 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)
, Z; G. o' {& S
3 z4 U; O0 K K8 Q8 i2 F, p
- B" ^8 `; l8 g0 T! E3.调试方法, U( i8 m& I7 X; a _
a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;
9 ?7 g" d4 }9 Y; t* w! l b.不要急于下载代码验证,对照配置线缆连接是否正确,0 x8 V9 l M1 L
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求$ T( n% Z3 W+ T! B9 W' Y$ G
$ O) t7 b2 @- g7 E+ Q& G0 b
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器; O' w3 F8 W4 H& R
2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
1 L( {1 |' U! O( X1 i# J* AA =========Center motor 中央马达 A =========Center motor 中央马达, `( {& E: K# H
B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达
* }; h" K- A; n- z" EC =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
, J) ]; Z. _1 T/ n: |( G/ R% R1 p$ ^6 i: X8 s1 t. q8 ]/ t
两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
$ I7 b4 m# f) s' Q0 o6 K c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:) F$ [, |7 ~# F: ~
(1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。
7 \1 C- I7 U& I8 a+ ^, W 尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试): ~: R% u# h2 |% R1 o& z" p5 y" P
) G1 B+ n) H2 }1 ^8 d4 F: T
d.中央马达控制微调,方法如下:
% D' m7 d5 e- \* [ (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;5 l! L0 D1 f8 L& d
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。' u& g: W J3 V* i8 X0 s6 y
; {5 m' N1 K; x0 d D e.下载执行程序整个调试验证:. V5 h* e, r+ ]8 p' [6 @3 m
(1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。' O( j0 ^+ S7 e7 u: X- m
(2)程序流程大致如下:
6 q" N- F' s2 _2 Qtiltedtwister:针对这部分代码简要给出流程上的分析
, ]! t& f* D5 R& Q while(true) U6 Z* \+ p5 f- B/ N2 Q
{5 M$ s$ @/ m! O, u1 T
Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)7 z3 j, A- r3 G E' o
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)
+ ?) D4 U4 E2 F q- ~; ]9 Q 初始化转台中央转台位置(需要手动驻停中央转台)
3 a- M" ?, e7 m& G+ r8 `( _( y6 q# o9 d
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,
! T/ ]0 F9 L) u3 A 通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”
~& @# b& W9 Q% T0 l% p6 s# S* V0 K6 q& g: }7 h
ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框* A1 Z8 G: m9 d
if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize(): a' H+ A5 I2 M+ N& d+ {3 m
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()* b6 x1 F; `) E1 g
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成/ J' V, {' v+ U! }5 r& J
WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
4 G- w7 N7 K) v* ^( C. c }
4 c/ B1 ?% j& TMindCuber:没有代码,借鉴操作手册上说明描述翻译如下
# ?. L* q% u; u" t MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。( N0 \& J3 u* D5 z* a: @3 h
选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。
3 f y6 J1 f0 c- r& X: \8 E2 x 如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,4 B1 `4 c/ H3 T; V/ H
MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。
. o, y) C: ]3 \- [ 通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。
- ^( P6 C* W! V8 ^" m; g- A 在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
1 L p' e1 Z4 \# h8 G2 n) R 【提示】:6 e8 M5 J9 n# Z0 s( P w" s
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。" h- o. P( B* |9 C
如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。7 Y; K9 c1 t* I3 v+ M) ]2 T0 M
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。% G% Y, d1 \3 v% J# X/ I
如果魔方不标准颜色,它可能无法正确扫描。 t& l4 u0 k8 V
手动解3阶魔方必杀技方法:$ k, _) G+ @1 G. X, f- j
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic0 I- H. h/ b8 |* l% _
参考论坛英雄帖: ; a- A" L' V3 L1 b2 w2 F$ |
http://bbs.cmnxt.com/thread-2183-1-1.html/ r. W1 G6 ~+ _# Y0 l
! r1 X* d0 U6 y) S* s! H! l5 ?" uhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240
1 j. s( J% R9 H2 m% `. L- j2 e" B3 e" x. Y) Z, r3 Q! O. U5 w
http://bbs.cmnxt.com/thread-7443-1-1.html7 f6 l5 |6 [, [' t2 k( q
6 |3 ` z/ z! ^( f M8 f1 O3 A8 khttp://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580
; B: n; F3 G* r; N' Z! b$ j
) J( I! X( K: B/ B7 Qhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871' }5 C/ q7 e" u. V+ H
+ M4 l4 {4 X |: R7 whttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
; F9 S) D$ F, Y. n- @; m. }8 _( q, Q$ _0 [
高端设计英雄帖:9 ^$ s+ o9 x$ B# c2 T$ c
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647, ]6 N& W$ J6 q0 d# F$ [
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=60218 u) @5 d! U0 j2 r% _% e# S& L t
/ L m9 b% B: T, ~# {
1 [+ B5 k+ @5 I: A |
|