|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 $ ~' c, [; I- I4 `! F2 t# B
1 U: B: ]- j& n2 u/ \) N 最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:& D; y: g& {# t/ y q3 V- }: `
1.魔方配置规格要求
8 c- w; X* S: p, n' | 我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:. x% A7 o3 {! i# `# ^
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。
7 s" U7 \! M7 q* z b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。( U" [* o- T0 A: B% M
通过以上这样几个步骤可以排除魔方问题。
" v: r% W$ {: |" w) I Z: F5 H9 I( Z6 }' x9 D% p9 [: m- R9 z
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。. O% l* }1 _, s+ c& c
a.tiltedtwister方案9 {% t: H' D1 Y) K
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
4 \/ ^$ ^& c$ {. ?4 {( @ 版本:2008版本/2010版本, l6 L% Y, i. X: p1 j3 k
搭建图:(详细搭建图文件比较大,截效果图如下)3 ]. j! @1 h* c

J- N0 z' p# v6 Y6 k9 J- H3 h3 j: S1 ~ 图1 2010版本 图2 2008版本
* V" p) r7 U% D. U$ J( O8 R 下载地址:http://tiltedtwister.com/download.html # a) {8 r1 p" L/ j! B! ?* m
源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
9 Q' h. y I' Y 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)
1 |' i( I, \ \, D5 o( l5 O! F4 s 优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)0 V1 Y2 E P+ h' M. m( T
缺点:由于结构问题,目前的结构设计不稳定,$ m% Y6 q2 z* R
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟
$ t* y% t' V |6 t& c2 m
6 L) h+ S! e0 w* ~b.MindCuberRubikCubeSolver方案; P/ w! L7 A* {+ T1 b
相关网站:http://mindcuber.com/
$ ~0 x; R4 `4 I& ^' \ 作者:David Gilday
+ W" A9 q; `( g; I) [$ Y- \0 y 版本:2012版本, r7 G6 m* k1 C7 _
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
2 `, o" k7 ^. q( L8 |9 H$ C$ J& }

# v/ e- h( _( T- c+ U9 D 图3 2012版本
- P2 t) |6 g8 t$ E K8 W7 J5 k 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)
- m7 Y# R; A, \1 n 加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
& P3 J& M% ?. a/ O G
优点:结构稳定,执行时间较快
+ M! ]. Z3 a* q/ n% b0 t- u3 U. [ 缺点:
& E# d; Z" ?4 N 性能:
+ s: h1 |0 F( `) Y 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)
0 l8 D$ p1 s: E5 X! j. ?% E: l' s1 }( R9 W8 K" F& y
4 _& P6 V' R: J7 a3.调试方法7 v2 b- d) @( o: n9 l
a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;( g" }4 S; M0 a7 a
b.不要急于下载代码验证,对照配置线缆连接是否正确,/ P2 b) c' O3 N# U: W" M
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求
/ _* [- q( S3 v& O; ^
% X" [1 u9 j/ C4 Y) w& @: u1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器
8 `- _5 \' C. Y' C2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
' P9 M. n: z% HA =========Center motor 中央马达 A =========Center motor 中央马达
# b. V* t. }1 M" g5 p, w" BB =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达
* C2 v+ a8 \# _8 s7 X. O/ oC =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达! y; G4 _) K6 k1 }
9 o) B* f X& y: x/ N. W% |4 m两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。2 I/ s% T$ r' l: N) L6 `
c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
9 s4 I7 `% e# O2 X' P: v (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。/ v* R0 J- n8 u6 K
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试), a- Y# E2 m5 W& U4 E" v H3 r
6 M) R" Y [' m' G8 C0 v! H d.中央马达控制微调,方法如下:" o- d$ U' U9 A9 F" g: h, k! D
(1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;
* H, d% Y: T4 Y, e- u (2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。! `9 q X: `, {* z1 G" H
" `4 v" @. B. M% ?6 I# F0 R e.下载执行程序整个调试验证:
7 z" [( M9 b. ^! m* U& r5 w: I (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。! O" D( x* k9 ~! H. h j. Z5 D
(2)程序流程大致如下:% e/ y/ }7 h8 n: Y
tiltedtwister:针对这部分代码简要给出流程上的分析5 N3 T; E8 A5 Y4 x4 u
while(true): M9 ~2 P6 }6 w% }2 H5 |& i
{
" ]+ n: y" I: x7 [ Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)! P- j1 S: b2 \+ u x4 L, d: O
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)6 n P: h0 G: ]# A
初始化转台中央转台位置(需要手动驻停中央转台)
% x" p( b" [$ ~
. V. h2 Q0 _# h |( s/ b+ s* @- q D WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,+ X! _& J- y! v0 |
通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”1 b6 @2 ]+ R1 S; { V( [
S9 J- e8 |" d2 N ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框$ e$ e* H( s, z+ E
if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()
- s0 w; @' D2 D, d if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()
& F: V* a& u% a$ b; H$ h* \ DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成% Y1 V; o8 S0 B# J. H1 r6 p
WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
5 _" K" Z/ F; n7 H8 Y }* b+ a! [& s6 H0 d- |
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下
; ?4 a6 u# h. R+ f" ?; Z MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
. q# L) d9 ~( p( L, s# W. r: N; M 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。2 \- N* A8 O# q& }3 V
如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
8 c+ T5 p7 u2 i MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。. o4 M# { e- m) x( }4 U8 R
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。
4 N6 l; v8 C# j" w& B7 ^ u 在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
. l" Z( ?# _; d7 I 【提示】:; [# {: }. \. i0 c
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。
9 G0 P# j; i o$ l9 s" Z, n 如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。
; c% V; R6 V. |5 ]; z- {/ B5 l' h 如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。9 W% B# e/ f, e' w, g' H) v
如果魔方不标准颜色,它可能无法正确扫描。 ' s9 r1 M5 M& `
手动解3阶魔方必杀技方法:
# v9 Y& g+ S* g' M4 E( A0 Shttp://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic7 Q0 r" D( ^8 R) @" e% M
参考论坛英雄帖:
0 R8 [3 H' B" _8 thttp://bbs.cmnxt.com/thread-2183-1-1.html
$ e9 X1 C8 o2 z8 ^5 a
( [( D1 f1 j2 O. F; D3 ]" r7 nhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240
! v8 q) O5 U6 c% ?$ O, W8 m1 y
3 y; z" \$ C! y; c4 p5 O: ~4 O/ N9 Ihttp://bbs.cmnxt.com/thread-7443-1-1.html1 H) Q& ^/ e0 f
1 T3 b R1 Y* O) N# \
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580
8 k3 K% H& `. \; b, a7 p) }% {- f+ R. q; T1 s6 U- P
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
$ N" {3 ^& w* ]8 \! \( ^' `4 N* e& m+ Y7 ]
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
- j7 X8 p& K* J3 v4 d3 c: N# i) j& {
高端设计英雄帖:
# A1 ^* ^: ^; Y B& Z" Chttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
9 u' X6 I; X+ ]5 i2 w5 B: h Uhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
; b" f$ K; Q) e: G5 e! y
3 `' F6 `' T Y2 U7 E: c# [2 D/ W1 c% I# ]( A0 `& n' m
|
|