|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 3 c D/ P0 M& }
* a4 s9 H) P/ a/ o" B" E8 X" e
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
( f7 c6 h" ^5 k1.魔方配置规格要求! ^$ z* M% |5 [. S r- W& p# g4 P1 P# N
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:
5 w2 X0 B3 X$ X$ i1 E a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。
( }5 |: |4 N' t9 X, l b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。) v% D# u3 t6 b9 ], m
通过以上这样几个步骤可以排除魔方问题。8 _- X7 L) \6 `$ m2 U6 N# x# p
6 c0 w( }* \2 T/ D% j p5 E6 H2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。0 X! j, C: I- z! _+ M+ v$ [
a.tiltedtwister方案) p: x$ W; X; U. v0 j1 R2 U4 V% J) [
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
" [2 H% I' [1 i* L5 ^# l# o 版本:2008版本/2010版本
/ U/ m1 w# h" I' d& _ y 搭建图:(详细搭建图文件比较大,截效果图如下)
' L P/ s7 Z8 f- i" w+ k' @ 
5 s- S" B7 k+ K! Y+ s 图1 2010版本 图2 2008版本( ~2 @* G" W$ j* G5 i, V' ^6 h
下载地址:http://tiltedtwister.com/download.html
) ]. b) G* Q6 {" ~9 y8 K 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
4 Y/ U2 F, P2 R$ U2 K5 a2 b3 q, F
加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)! _7 K- {. y4 |# B: Y
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)+ g0 ~( O5 Q$ e, w
缺点:由于结构问题,目前的结构设计不稳定,
+ w7 I, b* ^" y3 l 性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟; e# s4 [$ D) z" D5 B
: M) x0 |' H; w. }; m% d v
b.MindCuberRubikCubeSolver方案& A9 U4 W% R, h7 w2 l
相关网站:http://mindcuber.com/5 `# P# n( l2 ]$ j
作者:David Gilday2 n# R, q: \" F8 ^" U& N2 G. b( I
版本:2012版本7 A. A# w$ D: E$ \: {
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
' c# D2 J" w# q! c* X4 ^5 G
E' O& b0 g8 b+ z' v* X n 图3 2012版本
8 n" l" w( g1 s1 t8 N 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)5 q; g) T- `/ ^3 Z3 Z3 H
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
- {. C' }0 g! e: r! `6 e1 _ w% @6 U 优点:结构稳定,执行时间较快# |* K2 J5 m: ?$ v0 x
缺点:6 `% R" o7 {) `* D. F9 g& G4 k
性能:6 T9 E, u3 y ?# m0 S
改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)0 Q+ d( g' l. J( i3 C0 }, n' X
6 `& b3 K% Q7 F8 E: v
1 x2 E/ e. {: Y8 z: Y3.调试方法: p: `. H- \- K- }. t& a% ^9 m
a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;
" q* B# C1 S) g% e: V% J1 @2 I b.不要急于下载代码验证,对照配置线缆连接是否正确,3 ]4 H5 }, o3 M8 T8 E! t$ T% g( D# x! n
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求) n4 `5 v$ G% Q" L" ?
+ l9 _9 S8 o9 r- p& M
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器
7 G6 t. B; v( i5 o7 S0 K/ ?" E( R) O2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器. d2 P }4 u. k, i# z
A =========Center motor 中央马达 A =========Center motor 中央马达
( J) v# `2 I6 j9 e" }B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达 x4 A/ W' g8 |6 ]! s1 V
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
! }7 A: q! d- H; Y2 f7 V& L- c+ c6 Y9 u* [( u; J: g
两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。3 U' g. ]) R) l& F- L! c
c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
7 r; J( a5 l3 C% k0 m2 V- i) @ B (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。2 n1 G1 u4 c9 A" w2 } A: h
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)
$ I% w+ S' ]: p$ U# x9 _
7 N$ a8 f! \/ k0 h' O5 }. f d.中央马达控制微调,方法如下:0 Z! T* t7 S, d
(1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;
" r- }$ R3 k9 ~5 i: w8 _ (2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。1 v* s2 ]: x% v: [4 [$ p
( W4 C! ]% s4 W' t4 z& I e.下载执行程序整个调试验证:
. C+ ~; Z: T& e; c) k (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。! A! W$ V& M* P) c: @8 I
(2)程序流程大致如下:) J9 y2 ^' I# K! ^9 ^
tiltedtwister:针对这部分代码简要给出流程上的分析3 S- ~% g M, `- O" ~
while(true)
* W \4 ~" B. d y# Y8 X9 r {
% _* {3 T2 W; p2 h Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)" ^2 f9 ]4 s' t7 G* }4 r* L: B
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成) m$ k' m4 c: S! ]
初始化转台中央转台位置(需要手动驻停中央转台) D) ~ `( _' [" X0 Z7 [$ n
! E4 Y7 ~- ^4 z% G0 ?
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,
6 ~5 d' g$ Y6 W$ k* i% Y Y0 | 通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”
+ @4 m' ]7 n& G+ ^% q; |0 c. D
' C) c" y# A1 F9 e8 r ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
! M. w' W) Q4 E' p% m: w" p if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()) @4 U4 V% P0 ]8 Z: D: \
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()
2 U1 p" F) d/ l, b. U DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
, r) a5 p4 d' I" Z! t8 z WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
' @: y/ K: w9 r: M) P9 i }& h7 F8 @4 ?4 N
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下6 B. P& ^3 p, j- L# \/ W
MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
: n! H. d9 |- i7 F; z+ J! y 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。, q3 G B* k1 s; [8 b
如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,9 c+ B! h' ]! w
MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。( S& ~2 S; n5 @, c8 e
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。( q+ E5 J) g3 Y, U/ {
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。1 F9 }& `3 l1 A- i# @( T/ u# M+ }
【提示】:
( b I+ p5 N( A" v# { k5 o 观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。8 r. c4 [! z( f& u6 m: y9 J- X5 B
如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。
# P5 D+ ~, H8 A7 Q( I2 g 如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。: `( O/ K2 ~: k$ D4 |* c7 x/ \* ~
如果魔方不标准颜色,它可能无法正确扫描。 + n& F/ r& g& i+ C& C5 L& k
手动解3阶魔方必杀技方法:' k) D: M- \) m- ]4 [3 c
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic m8 g( `+ R- w: U! Q
参考论坛英雄帖: 7 w9 S1 ` B) e' I3 B
http://bbs.cmnxt.com/thread-2183-1-1.html
$ W& D% Y/ _1 J0 J
0 ~) L# N o' G7 lhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240. {! i" B; g" g9 y: j; c* m( x
$ L5 v/ P. C1 S( x8 K( f
http://bbs.cmnxt.com/thread-7443-1-1.html: R/ K$ a1 }5 W
4 B7 O: F; B6 f: L2 P8 y. S# ]
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580
g4 R+ p" V$ d* ?9 K/ B% l$ ?7 U. C/ t) j3 ~: D
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
9 @# x% g% t9 j# t$ B
+ @) K/ V6 w9 E) r* D, z) t+ fhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
2 K; Y5 [4 j5 T% ?
6 R, a; O+ i* E0 q5 K/ e1 f: O高端设计英雄帖:
) b# E) z! q1 Q0 U2 Fhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
9 l. Y3 y7 G) e! R; L, Hhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021! q& ^$ M+ j7 H0 z2 T. X% D
& Q+ E* I- ~; z4 X% h1 I$ p; j+ o
! F* c2 {, Q/ N |
|