|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 , f" g) j: y3 l6 Q
( Y2 o- }: x( B% Z9 X+ h$ \! ?7 t4 m 最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
+ _0 j2 {! w+ z9 e v1.魔方配置规格要求
/ i3 H" v& ~) d) a( F9 o 我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:+ U) u! R# P( s8 H& {- k
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。$ a& P1 @- D' M Q2 \$ h
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
5 F: n( s5 X" C+ R 通过以上这样几个步骤可以排除魔方问题。
* ?+ `' ]' x2 `% N* |* E/ k- H
& m0 Z- d% h0 e7 |( _/ A2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。" B: E1 a% B5 Z+ R8 r' l
a.tiltedtwister方案; e' {8 s) N2 N
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday& E# y4 z2 Z1 N1 G0 p
版本:2008版本/2010版本
! c7 {1 m% ?& E$ [; T 搭建图:(详细搭建图文件比较大,截效果图如下)! _4 ?' b- b. c% w+ k

+ e3 c+ d, R: O b4 e) c 图1 2010版本 图2 2008版本
2 J9 _, M) T G- w* R 下载地址:http://tiltedtwister.com/download.html $ F# T: _: ]- h1 n* M% ~% ?( V
源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
+ H& q( ?; M5 T) y7 e6 p6 K! i 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)5 ^1 g: y0 [( Y+ }$ J6 r# ~
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
7 `# U- V& M1 a; [ C: t8 D/ | 缺点:由于结构问题,目前的结构设计不稳定,
/ o+ m: ~9 q3 M' Q* E/ N 性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟
" z% U3 {! _" N n. Q" q" g3 t7 C& V+ J* z- y
b.MindCuberRubikCubeSolver方案/ P$ g- ]2 t8 ?/ u
相关网站:http://mindcuber.com/
% i0 C. G+ r9 y ^" `1 n 作者:David Gilday
+ |, L3 i( i- r, g y1 e3 b- u 版本:2012版本' S. b" u2 u+ Y
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
& |( I @* Y8 ?

8 H* Z" h; @% {$ W: |* I/ y 图3 2012版本2 b/ w# y- a8 ~4 ?. f" ]) F5 V2 v
源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)6 U* q5 ?' }7 O/ C
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
8 l, i* P3 Z" q! c5 v# t! ]
优点:结构稳定,执行时间较快
4 v# T9 l! I3 p1 e 缺点:6 ^+ K. ~# n& D) M" {4 L, b0 h6 |! F% F
性能:
! y- Y3 a" ]& Z, Q8 b' | 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)
4 ^7 |6 O9 r r- N1 ]7 D8 ~( U! |8 Q2 ?
& i B$ P: J$ p. R' ~8 H3.调试方法
5 V7 j% E/ B3 ` ^' v; z7 B a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;
# p7 a: \& J# l, i/ B b.不要急于下载代码验证,对照配置线缆连接是否正确,
* s5 S1 e- e$ H9 C- V2 |2 | tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求
3 L) B& Z0 A/ D* v; F
. K- V; |2 S; ]1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器6 l H, A6 A. v
2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
* M; Z! w- k6 M" I1 ~A =========Center motor 中央马达 A =========Center motor 中央马达
; r) r# r0 T! `1 |, F1 W }B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达
. S! [; L, }2 Z8 w, R. W# RC =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
9 ?3 ~$ @: ~2 j* o5 E
4 n% D. J+ P( z- `两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
& Q' N+ A1 D* f% d7 w; Q c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:: F6 ~! K% Q* S
(1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。
% o0 B* A" i8 U 尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)( G% k% t% n: Y& \9 E0 G
# O- w; l, m3 O( [* B$ Y Y
d.中央马达控制微调,方法如下:6 V5 W, X: k: S* E6 A% ?# b
(1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;' n' `/ @ n" A, {9 R. g+ G
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。
- a4 n6 ]- T4 ]5 |9 F
$ q+ d; }0 P3 R# w# Q2 u$ V. Y! W e.下载执行程序整个调试验证:
+ Q2 S# J% Y7 g% c (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。6 E) e" T" m; \( Q8 r# S! Z
(2)程序流程大致如下:
" G- r, c# k6 W+ |% Itiltedtwister:针对这部分代码简要给出流程上的分析# b/ T! l9 X* y# Y; q3 G" l
while(true)
% Q6 p ^, V5 j) z7 p {; b* E9 W- v4 {: V: U* U; D
Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)' Z6 \* d/ @9 d# I2 ?2 r: j( O2 u
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)7 D4 u [4 Z' `3 B5 O
初始化转台中央转台位置(需要手动驻停中央转台)2 }4 m- U, e% O& {" `
2 @' z6 x5 o9 v5 n) t
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,. X. `* Y. i$ |: T0 [6 X4 R
通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”$ Q9 d- m) C$ K7 D( T
}% X0 g/ O5 J. K
ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
, b( V* n: e4 f if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()
4 e% Q- o. S5 g if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()' X0 l6 j. L) Z8 H9 t) l0 I' y
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
6 E: `) x( o$ |2 c6 o WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
' d* O( q/ j8 ~4 a* u }- `( K# {! h8 y; z |
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下
: _) m+ T7 H% b! w MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
: a0 F$ }/ b6 ?% f0 N% R+ C) D 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。
5 K( ?6 m7 [. m$ A( H9 I 如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
* |# S. o9 h- E: G( f8 B MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。
! k" J) R& c% U# b( n- ^ 通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。
9 ?$ l+ B3 N( q9 r+ H0 ~ 在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
2 ^) [) _6 X# D" V( h 【提示】:4 R6 s3 q$ h- S7 J. b2 T. W
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。8 L& G3 w# P7 `
如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。( T- r( ]- N0 e9 o. h \; k5 O& k
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。2 {3 ~' y! @+ X1 T
如果魔方不标准颜色,它可能无法正确扫描。
& J( n; D$ ]! p; D手动解3阶魔方必杀技方法:: L, I* c. Q6 `. }8 m6 u
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
4 }1 ]. K6 U. d参考论坛英雄帖:
7 J: @' F3 H. n1 ^0 x; Ghttp://bbs.cmnxt.com/thread-2183-1-1.html2 n9 j, O' O9 }, u- d
8 A7 C# {9 O7 o) m0 nhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240
- p. w+ p( q4 a& L
2 `6 m/ g# C! o5 }1 V3 q% l6 uhttp://bbs.cmnxt.com/thread-7443-1-1.html1 E" m- B/ w$ A9 P+ F& Z
% y1 N7 m# a- Q/ U% J9 Jhttp://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580
% p) a4 {4 H# z+ h1 n
6 D7 Y6 T, e: a+ W! M/ Jhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
& ~+ Y/ @6 |5 e5 {8 [# ~# C: b! Z
( }' }1 u9 J/ W1 [% Ohttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870- Q) B) M5 Z+ ]( a
. ^% G5 y o, j5 @+ b: ?6 a9 |
高端设计英雄帖:
" \9 ~( M' F! v5 xhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647' D! o5 m6 a( }: n8 p( B C0 ?
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
0 Y3 s% e4 G# A; F+ q. q" J/ G7 Y3 u5 r4 }' m6 \
. G, l: `- i! R$ `
|
|