|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑
" j* P6 f2 q. n/ M( H
) w" \2 q* E& M% B3 Z6 f0 K! g 最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:$ {( s8 X$ u n/ F4 _
1.魔方配置规格要求
+ `' S: N0 R3 T) | 我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:+ [' B% i9 f% U
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。
. G4 F' n0 n. v7 u9 z7 H b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
2 j: S2 l" Q3 N. Z5 W, J/ g( Y* Y 通过以上这样几个步骤可以排除魔方问题。' ? b0 y! a0 N. I
, b. _: n5 _# F, M
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。
1 g/ A: P: V# i9 y! R a.tiltedtwister方案
8 v; \. q6 v7 p3 l 相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday5 ]; K; O" t$ A+ P" a+ Z
版本:2008版本/2010版本0 u, J1 f) S5 B; ?2 i* G
搭建图:(详细搭建图文件比较大,截效果图如下); Q1 y9 d. u( L+ |+ q" Y

" d$ u9 p/ E, \8 h0 K5 H$ @) Z: _ _' A: D 图1 2010版本 图2 2008版本. L3 r, w! P& q/ L5 H6 x8 z; S
下载地址:http://tiltedtwister.com/download.html
" ]6 c) O6 I$ C- R0 g" c" C 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
% E/ G/ z6 z. R7 W" ]4 x$ M 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)9 Z; h3 k+ V6 }
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力): D+ ]$ t' Z; G; l) D9 T
缺点:由于结构问题,目前的结构设计不稳定,
3 x0 M3 l) C) {7 R# L9 s6 y# h 性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟3 {8 f: o+ x+ i- y& _
; G8 z, I9 t, {& O- A
b.MindCuberRubikCubeSolver方案4 m4 j1 Q( `: U
相关网站:http://mindcuber.com/8 Y5 a6 j- Q) m2 b+ R: R0 ^! k: q
作者:David Gilday% B* L; ~) J- p: Z1 @
版本:2012版本
; @, a0 D1 ?8 g* P; h9 Q* n 搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
8 l9 @( d, l4 |4 q( T2 ` ) |* e' I& h& [5 G& E+ g4 m) S
图3 2012版本: N! |0 k4 v' b
源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html). ]. D0 w3 F" Y( H3 V2 b' \0 {: L
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
6 q( T# \% W& `9 ]1 k6 o, j
优点:结构稳定,执行时间较快8 {* n3 T% |% N# G. a
缺点:
+ S5 b( y2 x \2 `) ^1 H) j- e$ a9 j( { 性能:6 N# W7 s6 q2 z+ G' U4 d6 N
改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)
& Y$ _# Z' c. P( s9 ]" e5 a% Y
0 D9 B% G# u1 a3 [4 g. j7 G
" K! O0 o6 N- S( O9 ~: C3.调试方法
" ?2 H1 T5 ^& G; t' T4 ~ a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;
N$ |+ [5 {* W% j* P z9 q b.不要急于下载代码验证,对照配置线缆连接是否正确,% x- f* K5 l( I5 c( L1 {5 ]
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求
& S! T* D r0 E- `- F a
; A) S! z1 G/ n% k% j1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器
" V& S$ e0 z5 X" y5 Z. o, a; \2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器. ] M& _0 h) l: z' o* T; v
A =========Center motor 中央马达 A =========Center motor 中央马达& a: n3 L( j! Q6 q; o4 u
B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达6 }0 x6 d3 @8 ]' z9 r$ o9 W
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
' v+ m5 K- |$ w, c( c: k
% e; D0 ]( D7 b( X% w# H两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。" C. ~+ L- |1 F9 _3 {5 T
c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:- S/ u0 n; O, d! B
(1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。! l/ z+ Z4 I0 W. i( L$ d9 w
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)1 t: i; B; R# i) h' Y7 {; k
* V5 ^5 g# q- `& ~$ J* W4 x
d.中央马达控制微调,方法如下:
) `9 `9 x( s5 x, C7 ?3 R4 ]: Q (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;5 x8 f# p9 ?9 @) j2 K" Z
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。- g9 R1 ?/ u6 Y2 O
/ u( g8 f8 K" j1 c( j1 O: c
e.下载执行程序整个调试验证:2 Q; J& t' Q% O" |- }" h
(1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。4 h; f- f; T' \0 L; o8 y+ r0 F" O1 I5 j
(2)程序流程大致如下:
! [& v, f3 C) N/ Y) d5 Dtiltedtwister:针对这部分代码简要给出流程上的分析
6 v3 n- O8 p) s& U while(true)
) y" v5 F' M$ M8 k4 ^( o J/ F {
) ^! m6 u' z# b; @: v9 @$ w Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)
( j- o3 T. [/ x. Z, q- C. F 初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)5 L. l: J2 A1 O$ T: |: j, {- z
初始化转台中央转台位置(需要手动驻停中央转台)
2 @% h7 i# M: ~+ a3 H& x3 @' ^0 @/ u- j' r
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,$ j+ {1 _( t- {1 M4 r: o
通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”
) t; G. `) y6 Y/ X. v; B* f7 o0 w( {( d- s' C
ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
; t5 R, t( `" T. I$ O. p if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()
& W4 g& O6 W3 D1 R% J- |3 J if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()* F' v8 Z& O# l- J( U1 q1 [9 a8 k r
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
2 ?9 ]* H' Q {/ G$ f/ @* t WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
# ^) \/ S! r4 a. G6 e4 l' d, d }
" T/ a9 W8 s+ TMindCuber:没有代码,借鉴操作手册上说明描述翻译如下
$ P0 _8 U0 B3 Q+ J7 J MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
- i# h2 y8 m- n# t* S( d- I# M 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。* ]; ^; x& ~1 L5 q
如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,% k% ^+ l* o8 }. N
MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。+ h7 S9 H9 s( b1 ]7 Q8 x
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。
7 P* S& H+ w7 q9 I0 t0 D 在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。9 V/ J1 q, ]/ b8 [2 k+ D' w
【提示】:
( j% a9 }" H- `& S0 U& z 观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。
* m% X; S# V) l/ o, l 如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。7 @8 E C6 N0 P
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。 W u# c" L& g
如果魔方不标准颜色,它可能无法正确扫描。
X2 p# g" q% J, j) _0 j% ?; F' y手动解3阶魔方必杀技方法:7 O. j2 P1 j0 C5 L4 a2 C! K+ W
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
0 v, g# c! m+ L0 J7 A: U参考论坛英雄帖: ( m: G& u5 R2 O4 M4 D+ }9 Z: n
http://bbs.cmnxt.com/thread-2183-1-1.html' V1 [3 c! p. J) Q: e: o; k O' U
& K! i) P2 u9 @/ ~
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240
/ G% t! S1 B2 J# R. V
+ q/ {! L8 }- w9 p R; H8 d2 Whttp://bbs.cmnxt.com/thread-7443-1-1.html
- ^$ e9 S; e/ U1 f8 b$ x% a0 t7 f3 F# v& }7 O9 @+ E9 g; W; F" `
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580
2 ]7 g7 b- m4 H v5 q5 T1 G( B: @. N0 Z/ U& P* i7 J! ~
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871( p( L8 d( h; N6 j" x
r8 _) L: w* U0 ~# v
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
d' n1 e% n$ Q- F4 A+ ]3 [/ K) T6 D- e4 Z! {2 B
高端设计英雄帖:
. V `1 }( f9 n6 C vhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
( S) A0 C: `5 J. q; C8 ?0 Q9 p" v4 g$ Ohttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
+ D! M, R! g! a4 v( u& n5 h3 o& f0 L6 k- l. ~
7 {/ U. \% H8 z3 M' R, n
|
|