|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 6 l1 ]9 |7 B E. |% ~! W
9 g7 z" A/ P7 E9 f 最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
: f/ W, f/ i) O) u) a3 A( r1.魔方配置规格要求
. F- n3 ^& \$ x8 ]: U 我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:/ P* F+ z/ |% t: P+ |# H
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。. B7 M- `! `6 a3 i
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
, k* @6 O9 b g5 U; t 通过以上这样几个步骤可以排除魔方问题。) P: `6 k! U; R* ~
7 Q2 K2 G9 R. C( r, f
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。2 f* F, A1 ~! T" m
a.tiltedtwister方案# y, Z2 G) D; z- H8 Z
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
5 ^9 d' u' Q/ D7 I. S 版本:2008版本/2010版本& L2 ~7 { U+ i! c1 r0 M d; j
搭建图:(详细搭建图文件比较大,截效果图如下)
: W( q) ?3 t8 P k' e/ H8 {9 W 
1 q+ J2 V5 K T* q: t 图1 2010版本 图2 2008版本
; s# z0 G! w, N" N/ j0 r( z% x! Z3 u 下载地址:http://tiltedtwister.com/download.html
9 o+ ~* n4 j* M ` 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
* J( \6 f" z" ? 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)7 t" }3 P: P$ w& P
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
5 K/ c: r8 U* c% t' @" m3 G% x$ q 缺点:由于结构问题,目前的结构设计不稳定,
4 S; L) t# e$ Q7 o9 Z {) t* ~! O 性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟' d, Q2 ]( t8 x. j) z2 o' f
- k/ p* W- t. p
b.MindCuberRubikCubeSolver方案# K7 ~: u; _4 N+ C
相关网站:http://mindcuber.com/
b3 q4 h2 z& H' z& K2 G. d. i* H& @ 作者:David Gilday( c: x" L% J& Y# ^7 r; {( u
版本:2012版本 R3 S! q5 J* [2 R( m& t
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
a) T, [ N& {# i0 ~% [) S; X# y

; I1 ~* }1 W! B$ i3 L 图3 2012版本
* @, t( [- A! K3 p/ v2 ?( E! y2 L; { 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)# \/ l$ h+ g) W
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
; L& e6 _; S2 G$ G B2 l5 n2 C6 U 优点:结构稳定,执行时间较快
4 t4 Y9 c1 N3 {5 E- Q- R, ] 缺点:
' G6 ^- N: C& O( T 性能:
# f4 I& c8 o u5 M; g6 W2 T( e 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)5 i! F& }3 U0 O; }( ] ?7 T; U
1 ?2 n- ?; ]* V: L
. Y& {/ V9 e& G6 I" j5 O
3.调试方法' _# q# J# Q! u% n- z
a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;9 p/ ]- q1 R6 _3 u. D. T6 x5 A
b.不要急于下载代码验证,对照配置线缆连接是否正确,
" I- S5 t( F6 G1 i9 g8 @! M s; ^9 c% D tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求
% \* c! q6 D* Z1 H0 l( e* e% N! L3 K* S
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器# b7 ?; [! \ e& v6 K
2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器! g \1 r! ~! p
A =========Center motor 中央马达 A =========Center motor 中央马达1 y4 I6 H. u O
B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达* ^0 t* n2 {& ?
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达5 D4 g d5 u, a9 t& h& U3 J2 I ]: ~) V
6 Y7 J3 G! Y4 o6 K1 e
两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
, ?8 M1 g* |- [* i9 S c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
) z/ { p$ B# \ (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。6 o! P: S% D9 b; X) z
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)5 L# l) R r& s& f3 r/ s$ Z! \! o
' s+ m1 M0 M' `& {# p/ s; Y6 M# n
d.中央马达控制微调,方法如下:7 u" e1 L# F* k4 G, |
(1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;8 k/ M2 l6 P! l
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。
, ^" b$ @# W) ? h! s6 }$ J& D m& a( e. d- m' [ U8 v. n2 g& l
e.下载执行程序整个调试验证:
% d2 {; O! G5 N. n (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。) z6 v$ W* T2 f* W1 N$ I5 d
(2)程序流程大致如下:
! x% A3 L# E+ _, H3 I9 m. Vtiltedtwister:针对这部分代码简要给出流程上的分析
% I1 v3 {% A5 k: @4 J- C, v6 | while(true)
# S4 k$ P. `2 ^ @; q7 X* A {/ ^( }; m8 h; R/ q1 `
Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)* ~& c! W% L4 i( q& V& Y9 m
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)+ S" {$ J. i$ _) h1 c, q* J( E
初始化转台中央转台位置(需要手动驻停中央转台): |9 k3 {/ E9 m5 n. K8 B q- }
- Z+ [3 ~: I! j0 C6 } WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,
3 A# A/ N$ t" K6 n 通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”
$ v$ d% r, e: b
' v5 K+ @9 Q9 M l6 K ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框5 U4 N$ W w$ |1 Z+ q6 f
if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()# u; \$ i3 T7 P3 k! Z+ n+ O- L' F5 U
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()" x+ t2 L5 [% E% Z$ }% m8 d7 H2 @
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成. ?* l/ q2 ]- `" v8 v' ?/ w
WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
# ?2 W# P! G8 p6 _6 c }0 C; l1 P% v7 ]) o7 Y% g2 z- F! `
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下
7 {+ ~4 G( m1 ^) a3 P MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。$ l6 Q2 h# E; @- G
选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。# \) }& f9 b" T! E% a9 F
如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,' h$ c3 s- p6 n0 G/ @8 R& S) x
MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。; h, J* G: n" d! B& R& @
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。
* w( x5 f1 v+ S5 h 在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
, _1 Y. o' }" f* T e 【提示】:
4 M+ H# ~- K+ t6 Z {+ z 观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。
0 m3 w" m+ I+ r# ]; p 如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。* p6 x. V3 _& H
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。$ b7 [* k" k# k& r' `2 O! g
如果魔方不标准颜色,它可能无法正确扫描。
?( @7 C+ p/ }8 n7 D手动解3阶魔方必杀技方法:$ k+ [ |9 p3 Z8 ?! }9 c
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic F K1 ?- m; g: I5 A
参考论坛英雄帖:
& ?0 q' c: q: ]http://bbs.cmnxt.com/thread-2183-1-1.html# x! m' P0 |$ l
- \4 R, X' }; K$ o9 \% D3 ^
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=82400 s4 l& K$ D2 x) \) ?* X
6 P4 `6 O2 m6 S% W: f: x- U Dhttp://bbs.cmnxt.com/thread-7443-1-1.html3 G9 }; U3 Z; L8 v) `
- o* C$ H" R |. ^+ j: k: `3 J
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=35808 q5 `+ O/ P$ H8 I$ Y9 z
8 Y# I+ r) \. V+ c, o. ]. thttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
2 G: X6 E7 }% Z4 `! l" y, L( y. I8 F, S2 }* e
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
- r9 O; {) t' `: n3 s3 ?. g3 f% Z/ D N/ `
高端设计英雄帖:* ?) K' [6 L7 |. d! E& |0 R
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647" f5 T9 g: A& G; h, i
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
3 T* j; z# B+ t! Q4 Y
" e6 H1 I8 J) H% l4 o( L8 G
" w% w; W: L2 R( O$ f |
|