|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 ) F- z, ~, f! m- D9 ^) w
8 g" H6 v) G4 w
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
* m3 n; e* a. v! K1.魔方配置规格要求7 V; ^" \% F0 v5 ^4 c4 Z) k
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:) B/ Q# |& w2 }2 N; j; W
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。/ M2 P4 Y, p0 h7 ~: Y) c/ d
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。/ W, l+ K! C" M5 c' W
通过以上这样几个步骤可以排除魔方问题。, t# t/ m) V7 {
/ H) \6 ~) F& ?4 ]5 ` z
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。
: \ [7 E8 M. K% O: J# f$ ^2 Z' o a.tiltedtwister方案
3 W" ]5 ? G& f/ Z [4 b/ _ 相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
/ ~ [& O! `/ x- o 版本:2008版本/2010版本2 k' M1 E; {9 q) B* H$ Y
搭建图:(详细搭建图文件比较大,截效果图如下)
% R6 r; i/ _; o7 {. N. g" } 
5 @+ M: M: ?" d; U+ \ 图1 2010版本 图2 2008版本
( s, f+ T' G" \+ o/ b 下载地址:http://tiltedtwister.com/download.html
4 H5 l. p& L& p5 t, t5 O 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
, n2 B! y, [5 Z, d# }1 o 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器): {3 ]4 i) Q6 U& b/ C% Q5 X
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)& z; m- j" q2 ?$ j ]$ | L
缺点:由于结构问题,目前的结构设计不稳定,3 i7 Q8 W$ ^7 g- p4 \5 y/ a- M
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟. ? T4 I4 G; v" |
7 b5 {9 L0 h: D# f8 e7 kb.MindCuberRubikCubeSolver方案
2 |4 O: f1 `5 g) D& o$ ? 相关网站:http://mindcuber.com/
* F2 q {0 P6 M0 {5 a* x% x' U, e( t 作者:David Gilday
( {0 {1 Q8 z2 Y. u9 a. d: I 版本:2012版本
% z4 }( E9 T2 k8 o' c7 w) ?' I 搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
1 V3 @8 ]2 B" W# S+ y# \5 @
! m' h0 A; z2 ^; b6 |' z& n
图3 2012版本( u: e5 C7 D" d; V+ e
源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)
, [) q5 s6 M) R. C 加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
4 n4 y* C/ x/ z% \! f 优点:结构稳定,执行时间较快8 T- h) v& c `
缺点:
1 `: T9 o5 h3 [4 J4 P9 j. R8 f9 Q' Z 性能:
8 r- V! E+ a/ H( O$ a: c; [ 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)2 u+ ]0 \% J( m8 P
* X7 i# N6 B& _9 ?! a
$ e( J: j$ e$ c* b* r
3.调试方法% [' u8 x7 q! O% ?1 s
a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;) @; D+ \4 S' l3 ?; I+ \+ g' W
b.不要急于下载代码验证,对照配置线缆连接是否正确,, X# Q: N% T3 }: ]
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求# f C) c3 M* T1 e
, S; Y/ y+ ~3 X+ a* Q+ f A8 S1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器+ f7 {4 a9 L3 d" G4 d
2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
4 b8 b& X: ^1 D7 j5 }6 P) rA =========Center motor 中央马达 A =========Center motor 中央马达
9 ~! ~5 E( V0 d J) EB =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达
" ]" O5 r |( I4 V3 H- y1 VC =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
5 X6 F5 E+ G6 t8 G8 C8 P! S/ B" r- G
t" F9 Z/ B: Y2 W$ m' X% d两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。- C9 v8 P# L% T ~6 i" ]
c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
6 y( g7 H2 L P, }8 }% ^# Z (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。/ |9 E* V- U, f- v; [: I- `1 Y# \. J) L
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)
, `, f! i4 c4 U- _8 A5 u, x# l1 _. ]/ G7 d4 a, G/ B! b3 ?( I1 B
d.中央马达控制微调,方法如下:
. m, a( b. o, p; d/ L (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;- _6 z& r F: V0 d. D
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。4 x% y- i' V8 e
. T6 _3 H7 i' S7 ^2 i e.下载执行程序整个调试验证:
/ p9 L2 n/ l( q1 t3 V; o0 ` (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。% t; h* r, r3 O4 \* j: K! m2 y3 r3 p
(2)程序流程大致如下:
( [$ N& K% n2 \0 o8 m/ Q) itiltedtwister:针对这部分代码简要给出流程上的分析" j* Q5 |6 G3 M6 v" {
while(true)
% O2 p w: }0 }7 T/ h; P# K {
3 }' X; i3 p( L Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)
3 l: \8 i; ~: u, e2 s2 G5 m3 I 初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)
# j9 k& O5 A6 I- c- g 初始化转台中央转台位置(需要手动驻停中央转台)
" H1 C' {6 I* o% S1 s9 a+ H# ]) r7 L, U# ~
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,
' W+ @# {2 y- h. Y2 D7 k6 @2 D7 Y 通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”
7 j; {1 Y) b* u" J5 A9 x+ n
: ^. H3 B k: j/ [1 a ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
+ v& {& c# R6 w/ l' D# K if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()0 I. R5 h C9 d: O
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()
6 K) o* U# _0 n9 g$ Q9 q5 B$ q( ` DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
" q, K+ A6 @5 h/ K WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
- p3 i+ Y' V: e" i3 M }9 g$ N$ t6 `& X8 K6 I1 l |8 e
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下
* p+ Y8 n* c8 c8 D* T; ~ MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
4 n9 [+ j4 _& t2 H# Y1 ]6 B 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。( ]) ]2 o( F* H$ ^0 G
如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
: y5 ?( s3 ?, q8 Z) V; [8 N MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。 }8 v" N6 ?: G
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。. [5 S0 E+ P2 }* b# V: H: A: [
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。( F* m3 L) r( {6 G1 `9 H* D2 B
【提示】:
. ?1 l, `& `; R$ }$ j 观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。8 c f) e* R, e7 N8 `2 g$ g, F
如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。
i- G& ?- [$ L+ A! k5 j) r 如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。' W* Y% d. \) _
如果魔方不标准颜色,它可能无法正确扫描。
- S2 n% s( s9 t; Z手动解3阶魔方必杀技方法:
: ?8 e- Z, K2 L: B, T( ~http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic, l2 D3 w& {1 s5 x, ?
参考论坛英雄帖: ' k" q4 G$ l a) T% Z" w& F m
http://bbs.cmnxt.com/thread-2183-1-1.html
3 u, T% C' S' _: \1 Q
) c" i$ R1 P. K1 p8 i Chttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=82409 _2 s' Y4 W: r' |
6 N) M: h5 k/ J# J( v( A
http://bbs.cmnxt.com/thread-7443-1-1.html
0 [; a1 p6 q' _ U) u) F( ~& X- j
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=35803 }- M( W; @# x: e7 V, _+ B
/ m# `3 N6 M l" Hhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
2 H2 f" T* ?( x) O
# S) B, |3 z, q, o9 w- ]0 e% vhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870( `+ L2 N5 g% J2 z5 h8 R7 `
- ]- l/ b4 g* ~! v高端设计英雄帖:
/ A# z: O! T( J0 U: S% xhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647# O" b6 K6 j8 e( y @ y* O
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
5 y: ~, y6 ?0 _% F) u6 ]
( i! n+ I$ Y1 v0 _7 ^! B
9 d2 }& x- m: N4 D; m% t" H1 W |
|