|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑
$ t g }( P7 m8 ~* ?
$ Q' M: q; ~5 {0 m% t 最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
3 D6 Y4 Q c+ E$ ?9 d# b V1.魔方配置规格要求$ w7 X4 V* J+ U) e) Z+ w
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:
& k/ T/ g6 r2 H* X& z) a a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。
( q0 Y3 E+ J' ~9 @- V# e# P7 ^ b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
0 q9 c6 Y! O: ~# {! W1 { 通过以上这样几个步骤可以排除魔方问题。* o2 x4 \/ Q! u) m
; i. u. q+ [! J4 N# B2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。$ f2 l0 Z7 k" K/ F# R. N7 o
a.tiltedtwister方案
, S2 |$ q6 E S3 d# ~1 s% e 相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
- U' \; o4 z H$ y, g' A7 K5 K5 T 版本:2008版本/2010版本' u& [: F9 \2 Z( X6 p; h9 H# B1 q
搭建图:(详细搭建图文件比较大,截效果图如下)
5 w. V. W: n) y9 d3 q' w 
3 _7 x, Q$ v' S- g$ D) ~, X 图1 2010版本 图2 2008版本+ \8 E! z+ r8 W& P; L8 D
下载地址:http://tiltedtwister.com/download.html
. R: `6 E4 h* N9 \) e2 j 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
& s+ n8 m {' w H; @4 v2 ?' I
加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)
! _/ }! s$ n! _0 p2 e4 R+ R 优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
5 O! G! G% ? P% S1 m" B3 _+ j 缺点:由于结构问题,目前的结构设计不稳定,0 V; R- H" K" d
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟
! G' `( r. F! x6 f1 [" D( m1 \: {- e/ |2 C# v% ]
b.MindCuberRubikCubeSolver方案
% J3 y4 S6 d5 f% G5 S. Z 相关网站:http://mindcuber.com/) m8 Z9 l- ~+ |. D8 W/ Z
作者:David Gilday0 F/ P& J) `* Y
版本:2012版本
( S/ I/ e- B; J5 j8 s' m4 t 搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
% p2 I5 n# v/ j% g
" h; _1 R" @6 v' h; |
图3 2012版本* p& l. K! y' T/ M
源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)& G1 I/ h; x) j4 ~! l7 q& M$ u! G
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
* M! q1 d# Y0 Y( U5 U( W* ?
优点:结构稳定,执行时间较快
, W9 C# s. N( }% V5 [ 缺点:1 m2 t: `* S3 W. H7 d$ P5 v# j5 c$ V
性能:
, F2 `! T6 s( t+ y 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示). D( `' S6 o5 u% p& y
1 r1 y; X' _( \5 l; ~) _
' U0 g6 y) f" G E
3.调试方法
0 r$ _$ V9 j: F. a Z- G' s4 v a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;+ d3 }% T2 v! U5 _) d1 e
b.不要急于下载代码验证,对照配置线缆连接是否正确,+ F0 _2 W- r |; r% J9 `
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求) x$ h% C6 q' ~5 O
, D3 s ]# B) ^; U! `
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器
% q; T9 g- H( [6 {2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器# L* J) d, R5 U, j
A =========Center motor 中央马达 A =========Center motor 中央马达; `2 H1 l; G. ?4 c) U7 h1 T; L
B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达
& }6 t: ~$ T; D7 y- mC =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
5 P5 |; A& z9 F; \$ o
4 X- i* X0 Z% ?- ^7 ` U5 e/ w两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
6 O+ [7 R6 t. r" a+ G c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:7 i3 T* b5 B+ W+ @8 V- F
(1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。
( p9 @% E4 J$ J7 I9 e! a$ b 尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)
) y) _ c w& Y! ^- Y( N+ D# g8 f3 {5 H; i. C! L
d.中央马达控制微调,方法如下:
+ L5 _3 X) r; E! a) z" d (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;; s' g" T, a1 |8 S2 o# M( ?
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。/ O* g) [5 ^; x" @
7 E' E0 u6 C/ }! W e.下载执行程序整个调试验证:; m( u3 K8 \; v5 L( g$ J8 F
(1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。
+ v+ x2 z4 m6 G- _5 h0 I (2)程序流程大致如下:
* {$ `. e! j( o2 j4 X) S4 o q4 Jtiltedtwister:针对这部分代码简要给出流程上的分析
& W, S& W( f+ X' H: G- R0 j* m2 x while(true)
X! T9 G* i1 l {8 j% B2 b; W5 w# l) S
Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)" U8 k F( N) E0 ]' T: _
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)5 `- G) N! ~& [: h# G/ B
初始化转台中央转台位置(需要手动驻停中央转台)
) e8 O9 K$ H1 U! S: q" t7 |* J s1 J* s+ ^8 u$ e1 ^( M1 i
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,
& }' K9 f* ~9 B 通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”
" T" o. F- n/ Y' X7 V) o: A, y" U: z, |' N
ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
9 J- d4 P( t B. B* B if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()$ ^& [ F. c# A) r; @# c
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()$ f* w4 b" f0 g3 Q, {! G0 G+ l# S" _
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
9 {! r1 B9 b& d$ Q4 n* v WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
1 E! z/ K# ^1 [ }
# k1 r( `. {) Z/ g/ c! Z0 D5 JMindCuber:没有代码,借鉴操作手册上说明描述翻译如下! D7 O5 v: h- _8 K
MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
; K* j, ~/ v+ J! S$ m" b 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。& P- e1 x( B$ m1 M7 T# r7 p* [
如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,* K. o6 @) `. q1 f* } h4 g: T
MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。
* k q, d/ k! S& b) i7 m5 B 通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。
1 ?. S6 T+ B: X! {; G8 [' L1 ^ 在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。$ B" Y, j) `! P+ D, l
【提示】:
* K" v" w2 S& q0 [* y2 A 观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。0 I7 O% ]* G( i) U7 v
如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。
2 i! Y s% [/ { 如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。
, _2 H8 \ g3 w 如果魔方不标准颜色,它可能无法正确扫描。 4 L& S& t! e2 _% Y# e* L4 O
手动解3阶魔方必杀技方法:
9 a0 `& A) E3 M1 A" }( }http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
& \5 Z# T- t1 d. V ?& |* X( [% X参考论坛英雄帖:
8 M1 c( J0 Y' `http://bbs.cmnxt.com/thread-2183-1-1.html a6 Z( S% e1 Y: u4 ]
- Y; M" y$ H4 o$ k7 Nhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240
5 D! q# h; L3 r0 M4 E$ S) A5 l, P% G+ K% V
http://bbs.cmnxt.com/thread-7443-1-1.html
& k4 y1 R1 w8 ]7 t! Z- [, r, d
" Q3 X/ E0 p) w9 Nhttp://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580
5 n) ^: I, G0 b! i0 X
; i' }+ r5 e! L- whttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871& a3 q! ^4 M* `4 ^( P. w% z
8 L" q! ?) ^% G! y& Ahttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
8 l1 e* M' L7 v4 E) [' j$ u4 c
# k# `/ ]( b& D6 z; Q8 B高端设计英雄帖:
( Z2 F9 P( C" zhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
2 f& }6 p+ r/ J9 qhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=60210 u' H/ b( l4 r$ m Q# N+ e+ U8 `+ d
}! M2 j! W) f- W* P" r/ N: }9 I; L2 A
|
|