|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑
! s6 v0 o9 |# `" P, Y) Y, @1 x7 I* u3 [% O/ G N
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:" Z/ }. g( ?5 y) _* x
1.魔方配置规格要求
, z% I% k" ]4 \: x' o 我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:
% {' s( ~- o7 V$ i3 ~9 D5 n. t a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。* N/ _" M. R+ ~+ o3 {1 H1 e; I$ k
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
3 E* r7 R3 E' P2 Y5 Q/ h& W 通过以上这样几个步骤可以排除魔方问题。
5 y% M- u. s6 m) g) T( y) }/ t. l0 I% c; ]9 v, c
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。: y! d1 N5 L8 \
a.tiltedtwister方案, k( O5 Y3 z4 O) Y. b
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
, n! d! A3 R( t; z 版本:2008版本/2010版本
3 z& |6 W: s6 h5 S0 D3 n; v0 i 搭建图:(详细搭建图文件比较大,截效果图如下)5 X, A9 w6 u4 w0 k( @
3 g+ j/ f9 l8 D; a$ T/ h. a j
图1 2010版本 图2 2008版本
/ o, A# Q* H3 ^6 c6 ] 下载地址:http://tiltedtwister.com/download.html $ d0 _: n4 F2 p0 N
源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
% q' @+ H: \& K+ n+ V$ f0 I- X
加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)4 v5 h% `- \8 b/ Y4 Z# x( v _
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)+ S& D9 x; Y( @1 k/ ^( G8 E7 ~
缺点:由于结构问题,目前的结构设计不稳定,# O$ l8 a4 @! c3 p9 W
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟
3 B" Y" V4 G. \, Y2 U$ N q7 @# S0 Q5 t: m2 O% G$ c, A" R; }% }
b.MindCuberRubikCubeSolver方案0 }2 x# {+ Z" k6 k0 c
相关网站:http://mindcuber.com/
+ S4 }! Z. @4 x" H) j. Q 作者:David Gilday
/ A6 f2 e* ?" p$ e7 t 版本:2012版本
3 `+ o0 }$ c) v$ C: n/ x 搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
* P3 j0 N4 E; U, L0 v! z
$ k9 T7 ?* J, t7 b& B6 I; F
图3 2012版本
, a& _5 |* _& M% _ N 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)( B1 g) r; Y' K# G C
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
' o: A# P- q6 \: x0 K; Q0 k; }
优点:结构稳定,执行时间较快1 }# z% Z& I- |5 k' g; H7 H6 z
缺点:6 y, p3 R, t \% [( p. E/ l+ y
性能:6 b. k ]) F" @# U1 a/ T6 k
改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)7 S( M7 ~( G: Q" L) l& q9 P0 K
( G s, U% V0 }& B+ o' A v
- C! }0 K7 {6 g3 P* z3 _3.调试方法
, Z( ]4 a) E! y4 o6 Z a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;6 b; f; L# ?! s2 a
b.不要急于下载代码验证,对照配置线缆连接是否正确,4 ]0 q. D4 S' b4 Z3 D
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求
6 ^2 K# r: G+ G: } D; \/ r+ a2 }* |2 ?$ t2 |
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器9 e r) N6 W$ s. m8 g7 y
2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
: g( {2 B H" ?/ G( wA =========Center motor 中央马达 A =========Center motor 中央马达
+ }) f& Y+ S- S% ^0 h# T8 pB =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达
8 A! A( {) K" d7 j" k$ cC =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达1 A7 p) v4 R, G
9 v5 V: k1 B+ X6 m1 Y
两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
4 m9 I, n1 i0 G c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:+ V/ N) L! v& N' m$ ` w2 s
(1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。1 C, W1 w7 A. ]; M: I& D9 S
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)3 z( u, Y7 e1 u9 D, I% {
" a+ k4 \1 g' M9 k. t) k
d.中央马达控制微调,方法如下:) Z, W! T+ w5 b6 M1 P z# b& S7 \: S4 G
(1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;+ t! q! o" \+ T, ?; l
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。. O. |( P4 o! {9 }2 ^) S0 N& O* q+ J
4 } ~0 L8 s" z' o5 l' q1 n
e.下载执行程序整个调试验证:2 A$ Y% o: E- u+ B" n# D/ P
(1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。
! b$ d# {5 h0 G$ I7 \ (2)程序流程大致如下:
$ J6 u3 u; a! B) @+ ptiltedtwister:针对这部分代码简要给出流程上的分析6 O# Q* _4 I. X$ s P4 X, \1 u, p2 {) C
while(true)% O) K4 r9 ?# K4 [! S5 X
{6 H" X" C' C) W( B
Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成); ~* x* m6 }8 e! J9 V
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成). @. E, p9 {% {: D0 ?
初始化转台中央转台位置(需要手动驻停中央转台)
8 f7 m9 V. _" ~$ }! @; E
" ~4 K8 s# E7 q* x5 D WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,
4 p* R. g5 P4 g0 m5 h4 x( [' y E+ ^$ K( w 通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”9 { Q6 F! w& i, Z0 D' G
4 Z) a% ^9 S8 ~! @8 ? ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框+ O' w B$ j9 b, F
if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()
" S5 }" U2 g) D) Y. F8 h2 |0 j& H ?3 e if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()0 R7 c/ Q! H( J; ~4 ]! X3 O
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成. m6 |9 \) D% U* \5 N1 a
WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()+ \" h4 e& d# ?* n* N
}
$ W. R; ?1 l) q1 `MindCuber:没有代码,借鉴操作手册上说明描述翻译如下4 e8 h* V7 o* l7 v' o/ s$ H
MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。- D5 l# q6 c- l* _3 o
选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。6 L/ A# V; T% \) u: ^
如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
B$ f! a0 G! S! X" V MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。
9 b- Z9 R3 J, a/ Y. C' K+ C 通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。/ w+ d6 S Y4 u4 b0 k4 t1 m; V
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。- u( d5 b% J: k( ^2 B5 p
【提示】:
1 q/ f7 o# @2 v% S% \. j/ V, Z 观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。
/ r& k h5 Q4 U. W 如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。
/ k1 z$ N4 q# ^$ v 如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。 u0 e7 P2 H) ~3 o' C; h
如果魔方不标准颜色,它可能无法正确扫描。 ) L$ z9 p2 |9 j$ g3 n* S$ L9 l
手动解3阶魔方必杀技方法:8 d7 s/ D0 _. r+ ?; [$ d5 h0 f
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic ]5 d* J& `) f
参考论坛英雄帖:
+ E- A! ]* h* H& Mhttp://bbs.cmnxt.com/thread-2183-1-1.html
7 D, C2 V9 n9 Q3 D& Y
+ _" z+ w0 `" J3 a: ~' h$ v8 N: Ghttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240
* _' h& `' d) |
9 @# _! j; O- `http://bbs.cmnxt.com/thread-7443-1-1.html
, j4 Z7 Q9 W0 x7 R: `+ x; ~1 s3 P3 o: i5 _4 I" n7 J
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580/ n# G; J. G7 l0 I: t* ]
$ Z% M; [" t5 `
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
0 _2 d# j! \# }9 v4 J' b- a0 l$ O
7 o+ J! H p. e; Q! H, ~* B- v' R' Ohttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=78703 |9 |2 C- I6 r$ h5 t
1 `9 H7 B3 m7 P9 X
高端设计英雄帖:0 n" h9 h& q! g1 u" |! e
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
2 v# ~# Y$ y7 d/ B% Ohttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
: Z- r% r9 {* [' X# n, ^1 v3 l( \1 U9 L- T$ h
6 R: _* p( e( Q) d7 A5 ^9 I- {
|
|