|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 6 A4 e. M* Y5 d9 w
* h3 g, h: x$ w) O1 z* a 最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
4 B" N. T. g. H. r+ B1.魔方配置规格要求" {$ B( N7 u* h5 H7 b6 I
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:& E) e4 I9 n f' o, x
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。2 v2 f; z% [; \. ]
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。7 v5 R. L v; [, p; P# L A' ?
通过以上这样几个步骤可以排除魔方问题。, f8 |1 ~1 e+ Y3 M
/ c; E8 C6 i& T$ E$ T, |( A
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。
( f X' x( B @- G! }8 r. ^ a.tiltedtwister方案
: B/ B. E. Z/ g4 P8 b8 y 相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
$ G3 e( v. f b& F1 O2 [+ A 版本:2008版本/2010版本
& U2 t" v6 p8 u 搭建图:(详细搭建图文件比较大,截效果图如下)7 C, `* y0 V5 F/ Z; c0 U
8 E+ P6 i: D7 y
图1 2010版本 图2 2008版本
0 Z0 I, B# n3 g; X" V! z; [ 下载地址:http://tiltedtwister.com/download.html
3 ~, h0 h0 C6 w$ x, s+ F% [ 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
9 Q' Z1 l: O: J9 b, O 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)
: K! x, G2 b' J' d* L 优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
3 g2 k. F; Y: e: W2 v* } 缺点:由于结构问题,目前的结构设计不稳定,
5 }$ ^: [: _: d& _3 x2 M: s; K3 M 性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟8 _/ |! q3 W* `8 Q" O
% o' J+ f8 W$ Q/ ]; X
b.MindCuberRubikCubeSolver方案
: W8 ^% R g. o* A7 a; D 相关网站:http://mindcuber.com/6 p5 W& t0 s4 u- H+ D
作者:David Gilday: G6 n3 t: n! g3 }8 k" v: d
版本:2012版本
9 @: M5 w; j) u9 y% t+ c, |+ K$ K 搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
- n P" }* s5 ?+ G- e

9 e' G2 p0 i u; S* _4 \; m p 图3 2012版本: K: z: @8 f& r5 k9 q
源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)3 G2 i5 H8 F9 K' c1 d% [: b3 p& x
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
7 ?3 ~8 d! \$ h0 |% q5 `2 E6 U 优点:结构稳定,执行时间较快
+ n8 \1 t% ^$ Y1 ^# X! G+ I% M/ ` 缺点:
" e9 g( |4 ^! q9 U2 R: I 性能:
2 v* j; T; n7 |4 R9 m 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)
- S3 Z, Y% k4 o/ h- `. l/ M
( t5 J+ J: a h; R. r: F: c, r
* ?! }/ p5 t. E
3.调试方法
4 _: v- r3 Y9 p" B# v& P3 F a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;* w3 v1 `0 p4 x
b.不要急于下载代码验证,对照配置线缆连接是否正确,4 ]5 j: E& D) A4 |4 o
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求% T; p4 f% m3 k+ H" t' K4 o" G3 M
}1 z6 q* A% k0 |/ u2 @) @/ I3 A1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器
5 y/ i& t! ~; r- \, h2 y2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
' v, J- O8 X( b; y6 p+ v6 S+ XA =========Center motor 中央马达 A =========Center motor 中央马达1 D" X- m C8 {5 J
B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达
$ P: C9 K* ^8 ^8 Q0 E4 J6 }" DC =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
% u% i+ A, ?9 t' b/ _ E m+ H9 K1 g- R: ]
两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
; e0 z+ ]& P: `' f c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:* f# q% G! t8 i8 O" n& e, V$ [3 @ K
(1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。* H9 b/ E1 v+ j+ V
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)
& o4 p. [. r' r1 }$ P2 q
' b- b6 ?3 j7 V0 P, w" a. R2 v d.中央马达控制微调,方法如下:
4 X {5 G3 L3 g (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;
2 z/ b( q, ?% s; D5 l3 p, x- w (2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。5 G% @* G! ~5 E1 F: X
% D2 r: l& T {3 b5 c! {1 y
e.下载执行程序整个调试验证:7 ~! Q. a( T$ P a/ a
(1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。) D, D* n( z7 L1 y7 g
(2)程序流程大致如下:8 H S1 x' y7 ~7 i4 j3 l
tiltedtwister:针对这部分代码简要给出流程上的分析
# r. ^, P- L. e while(true)
! M3 ^6 f5 D+ p3 { {
1 Q( C$ Q+ i9 Y! K; [0 S Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成), h* i6 i7 [* k5 |- m9 n0 w: t
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)( |3 s) Q0 f+ O6 c6 X
初始化转台中央转台位置(需要手动驻停中央转台)
* h, A! b6 ^3 d: [9 h# A- z1 ^# x' d* t* @" Q
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,/ V6 A2 p" Z7 }% l _/ A
通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”8 s0 i. G& [6 S/ i( F _
1 B( g4 O+ \* c& H. _
ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框7 g: F8 @2 o9 O! q1 {2 @4 D
if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize(); ]3 N/ v- W( w' M1 _; d
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()
8 {2 Y: Q* A$ [, r U; H \ DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
* l7 N: U" I- [" c0 u9 T1 I WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()3 z; d/ M6 p( W: ]- P$ @! j8 k
}* y9 f# N% P7 _$ `
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下
3 K& [' `; I& Q3 n9 E( e& ^% Q MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
$ @" l" w* |- y$ Q W 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。
2 k* q( @3 p$ O 如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
; E7 ?) u) K) D/ o! l MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。 X8 a0 l' W2 a
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。( r1 ]8 E9 `$ F; t3 T9 K0 d8 f: ]
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
& Z, f- L# ^9 _ m 【提示】:
3 M, D# m6 W* c3 t1 z& ` 观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。
$ ]; L( a2 o9 a2 e2 d) I$ r0 [, ^ 如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。& G, y0 u7 n# w3 x- H* ?
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。9 B2 J N2 V$ [% c& `5 z% a* s9 P/ X
如果魔方不标准颜色,它可能无法正确扫描。 0 z1 p1 }. v8 D/ J
手动解3阶魔方必杀技方法:, O3 c, ]2 G, L
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
" n3 r% F- w# K6 g/ a' p8 \, ^参考论坛英雄帖: 3 L9 ]- M) ~) G+ j! s. L
http://bbs.cmnxt.com/thread-2183-1-1.html0 F9 \6 }4 }4 L
+ {. Z7 `9 b8 p/ r: V) }
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240/ W9 Y" m# Q3 f* W" n
" y1 f) Q3 ^# U* \- d" t$ v
http://bbs.cmnxt.com/thread-7443-1-1.html( c! F$ y" A8 P$ @
2 q. I% m+ ]" Z4 o
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580
. b/ U7 M# E" s$ j" e! ?5 M0 P6 U8 E i) I# N$ N+ F: V+ D4 z
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=58715 M2 W; |# r! w" x* a& b/ M6 O) f
/ F1 I7 ?! P! d3 j ~http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
+ { W) k n1 q/ @1 S" ^# U- m4 _. T
高端设计英雄帖:! E# x. H/ ~& S; N0 o
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
6 |5 d4 \* _4 z0 l! E: [+ ]6 Qhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=60214 o- Y. H" s' F$ e
1 j b$ L+ }& u5 E8 q# x
?( B1 v. ?0 E4 s1 ?; Y/ y; t |
|