|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑
: F- W2 q0 s+ @6 a) _6 L) u7 R3 z# E1 I, x, e* y2 T
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:7 V; a" S& n8 P$ h1 y, v/ |: d
1.魔方配置规格要求! s) p/ { ]' ^5 J s
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:' a' P2 M0 d7 [) `
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。4 m6 O+ t0 h$ ~
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。( [; [5 b' a9 m+ ]9 D
通过以上这样几个步骤可以排除魔方问题。
7 h- ?7 |5 `' b8 X. K4 M& }# C4 {" D4 D8 I6 Z( `4 ~1 Y+ p5 Z7 Z/ R
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。
: {( I: A8 k8 f8 z: C: E" T a.tiltedtwister方案% a) r9 n1 c: V( F: w
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday& D1 H5 G$ |5 [2 p4 M+ ]
版本:2008版本/2010版本; A8 n0 X, ~( T& z6 m* i* n
搭建图:(详细搭建图文件比较大,截效果图如下)1 A; A$ {! i8 Q& i
: g- H+ x& c; S5 O+ C! a$ y8 S" }
图1 2010版本 图2 2008版本
! F, y( \' n& |# i( l7 S5 c: }8 I 下载地址:http://tiltedtwister.com/download.html 0 j. I) T$ d8 r' H, @+ |
源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
; m$ B) C" C8 ?' d0 R 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)
% ~% \3 |2 r) W 优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)% |6 Z x# y; m/ `) K9 G! z: M3 d0 f$ u
缺点:由于结构问题,目前的结构设计不稳定,% B6 c& w% [6 L: T! E2 {: ^; s* R2 q
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟
9 {: S0 b, r6 Q! V0 u/ V1 j+ m o+ A6 Z6 I+ {% ^, R
b.MindCuberRubikCubeSolver方案+ ^+ I# u# I% h- S9 {
相关网站:http://mindcuber.com/
) O+ H) E2 [! b+ i 作者:David Gilday
1 B- I6 ^0 r( c, ^& f 版本:2012版本; g. O% Z+ K0 S; Q" \
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
5 t0 N* }9 }! \% O! u

0 V7 W2 t$ @# Z: T( Y 图3 2012版本
8 ?0 L) J2 {! p5 r' j 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)" Y7 o" Y( p9 t# m
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
" L! F0 f/ h0 D% f U3 h: @3 f
优点:结构稳定,执行时间较快5 c, v' a" q6 [+ f
缺点:
4 o! K4 F) t) r. D& Y 性能:1 D/ [1 V; Y" _; w4 [4 ]& ~
改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)5 j# z! h/ D) B1 z, I9 C
$ M) C0 Z2 s" |) S, X
/ F. |$ v4 V& ^. q9 |3.调试方法
, A' G; C' i# {) ?- o a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;% D- Y! C, Q7 n( \
b.不要急于下载代码验证,对照配置线缆连接是否正确,
# G) B* `- d( R c; v: L" z tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求
' g8 o8 P7 M* S7 g6 v; V
5 h6 y, ^7 N) j0 @9 m5 @1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器
Q& K# u4 W9 p2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
X0 H1 g( g6 @; iA =========Center motor 中央马达 A =========Center motor 中央马达
8 [6 G+ r; S: t5 Y2 n. [3 u5 U; IB =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达+ v' p, j a5 J& E
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
* w. H; d. K2 Y$ p* P0 ^' Y) o
$ C5 i5 K* y; u$ O% r两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。/ |* a) `/ P+ w: q" w* V# ^) X3 \
c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
: p6 a* h; ^% l$ I5 j5 e (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。
. F7 k) E8 S, L( | 尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)
; |" C, o P' ?/ m& M, j2 \! U' ~; @* @9 Z& _1 ~- W
d.中央马达控制微调,方法如下:
5 D+ I3 K7 t8 D" f (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;
- s v; k* V- G; w0 \7 b& U (2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。
$ B) n6 H1 }8 @4 c" ]. @8 W' q) |3 _3 ]$ @' ~3 S
e.下载执行程序整个调试验证:1 y9 O, k3 W# L+ G
(1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。- P' H! B! a$ o
(2)程序流程大致如下:' `8 b; o1 K, d% v
tiltedtwister:针对这部分代码简要给出流程上的分析
2 d$ v" {- g2 K while(true)3 E) r* _' h7 ?. e; p" E
{
# |" t: O3 R% \! w Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成) \( V; E; y" p7 J# N; S/ ]3 d
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)
4 _& c" {: p& |% ?& K 初始化转台中央转台位置(需要手动驻停中央转台)8 a4 e" N2 a0 |6 r( Q3 D) Y6 _
; Y7 {# I5 G8 C) Y: M( W# r9 j2 Q WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,' k# g0 e$ L) f$ E% V: [
通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”" f6 I* M; |+ R# b6 ]
8 s1 F' T# V1 d v ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
3 v- I( H0 }: Q0 U1 T if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()/ B& t/ J: X# t0 [
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()
7 |1 S- l+ s |/ ^ DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成4 @6 _3 O. U0 g N( _
WaitForCubeRemove();--提示拿走魔方,重新操作Initialize(), r; l5 \3 Y. V8 t+ b6 o4 s; f- \
}! _) t' |7 n( m$ M4 a! j
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下
/ p4 L! K- s! Q0 @7 V MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
3 } C! H& y2 K# s7 ^3 K8 j$ C 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。3 E, W3 I5 H: O* |, U
如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
$ c& P8 ?1 {6 @8 ^ MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。
; Z1 p( W! U& {2 v3 I( \ 通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。0 z! Y! `$ r* c( ^+ R U
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。3 I% e, z. x; n8 M' c
【提示】:" \% ?- j( q6 B/ i( @0 t
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。2 z" |0 I! e8 X- ?; b
如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。& A' c% ^( ?$ r' [ i% d* S
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。( b8 E) r {: H( _
如果魔方不标准颜色,它可能无法正确扫描。 - x; h9 h' w& D6 @! ?
手动解3阶魔方必杀技方法:0 _7 w6 C0 C Y) @5 B: H
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
$ B2 V1 O0 c4 D: s, h$ U2 m参考论坛英雄帖: ; }2 Q) o- j( b' L% l# \
http://bbs.cmnxt.com/thread-2183-1-1.html& G9 P6 j: G2 {1 l7 ~& f: {' B/ v
5 G" \/ j: Y+ s' \) A
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=82407 F0 z( i' W6 b1 H! R/ E6 i, |" K
' C# u. H9 N. X$ }, D e2 bhttp://bbs.cmnxt.com/thread-7443-1-1.html
7 ~$ W2 l0 j6 @* U9 S3 @. [- W' x2 Z2 o% O8 y+ _0 Z
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580+ ?5 l0 E8 e6 X
- b# a% t5 u$ ~8 H4 I7 Ghttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
* }5 D2 t: O8 h% i5 V( P6 d2 ]. V% O# q/ D ~7 H3 B5 b+ j
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
! b& |5 S; e& l- L3 ]! M2 J& l+ ]) L
) i+ w/ q( A" L高端设计英雄帖:7 ~- `7 d+ p; p; X+ V+ m+ v
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
. X T- E+ x0 lhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
, t, M* e7 S* ^, K1 _" m8 P! P( E* h7 v z% F" _# X& f# e
# n3 ~" s: }9 \' n" f! Q
|
|