|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 # M& h( l/ a+ x4 j( H! v v
1 C$ w& d8 Y9 Q. k+ p/ |, A
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:0 ?- M7 \4 x7 Y; Y4 I, E. O, P3 f/ l
1.魔方配置规格要求& r# J; L, D5 O y
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:
9 r8 O5 e% R9 G+ C7 g' R% T( M+ q% r a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。$ Y K) T- c# C- f; M% I* r
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。* P6 J& g0 [1 L8 v
通过以上这样几个步骤可以排除魔方问题。 B9 t% ?2 o8 ?" j8 s; |
0 ~2 \; b; j4 l2 E1 X, w, H2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。
f' [% S" ?9 T) U5 ? y a.tiltedtwister方案# `1 k3 k, w5 X2 |9 w
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
% I6 |8 r- [4 }; O5 X+ G4 M! L, r 版本:2008版本/2010版本
l. H& _& m9 M& H' o; `1 H 搭建图:(详细搭建图文件比较大,截效果图如下)9 }% @" ?4 I8 T8 j0 X

) m- P I# s+ U' j( S4 r+ X9 T% u 图1 2010版本 图2 2008版本
; q/ c4 C. Y( C3 U5 a! c2 @ 下载地址:http://tiltedtwister.com/download.html
9 m2 `% \* a1 c9 ^5 j8 ^1 r' n9 Y1 r 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
' W) H3 R* B) u% h
加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器). q6 G' r9 N7 z/ B* s
优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
( k5 {1 [5 E) k 缺点:由于结构问题,目前的结构设计不稳定,
8 d8 }+ ?* }4 S7 F9 P" i( ]% @4 ?0 ] 性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟: |: f( Z3 P+ h" d3 P
$ f' b2 M. a% [2 {+ O" c0 G
b.MindCuberRubikCubeSolver方案
2 U. @2 y+ A. a, x2 U( c* T 相关网站:http://mindcuber.com/7 Q+ K F, \) R3 ~$ O& @2 x: i
作者:David Gilday* z5 }2 d' `- @' f( B9 x
版本:2012版本1 T/ c8 r9 |& i! Q6 p
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
! o3 j6 e3 u- v! Y5 r: i5 w P
# }5 G& i8 ?4 U5 ~' X5 h
图3 2012版本
$ p- f0 [: L z% e2 e, b 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html). r, ]- S& `1 Z; r3 q& ^
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
* T. [5 P, o: V) X1 _( _" w 优点:结构稳定,执行时间较快
* d' Q& F, n6 B( K0 d2 Q( r) q5 e6 v 缺点:
2 u/ C+ y: V/ M% ?7 p 性能:
* F7 z+ t) d3 \$ y+ K 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)/ I+ B T( U* Z7 m8 J! t2 N4 A
c9 c' ?4 _ p6 X( [" o- a V
( L( R% [3 z0 r. }, d) l
3.调试方法" d( U( f7 i' |( x+ O; [
a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;
$ u' h! b8 P. E! ?5 g) q! s1 h8 _5 u b.不要急于下载代码验证,对照配置线缆连接是否正确,
/ U, ^7 v2 Y- L4 C tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求) s _5 P$ m6 u$ L+ p
4 _( [( @7 w# o* u) _. d! J6 ]
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器
* a/ J6 R1 r& E" T+ C2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
, q4 x, \# i( d, ]" k3 F* x' }A =========Center motor 中央马达 A =========Center motor 中央马达
: L V1 }, E; k% f% yB =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达' r- }) i5 n5 A6 |6 V
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达" ~. A* b8 B5 B- |
& f" Y5 o6 \% k
两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
i$ ]1 b+ b Y. e; d c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
0 r# R5 |2 v, {, j! L6 [1 p3 o (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。- y S I2 H' S: a
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)
0 R. Z/ v$ K) [0 y+ j; w
e; u* ^5 c4 c9 U0 W d.中央马达控制微调,方法如下:5 v! a V9 Y$ O0 T& p6 s' b
(1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;7 i/ [* z/ q9 r9 R- Z5 o/ V( o
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。& r) v0 G# \; Q$ [" {* n2 p6 ^
* ~% }$ y S0 H e.下载执行程序整个调试验证:# F2 K* k9 d3 T+ Z
(1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。
3 q9 s. B% U2 R (2)程序流程大致如下:
- a( O$ `0 R& K6 U0 a% H& ?* Jtiltedtwister:针对这部分代码简要给出流程上的分析
+ o9 ~, e h1 w: p; C% | while(true)
% A! q0 K; m7 b3 x& e. M, A {: _ @' B5 y% [" [0 e- U
Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)
1 v B- w- k7 i& d: m 初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)
) p1 B+ W1 h' n 初始化转台中央转台位置(需要手动驻停中央转台)
$ S. J/ C0 O! @( n+ Y5 @
* q- @( L! F% W- V; Y WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,8 s/ o# m6 E9 ~ L# n
通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”1 x$ Z" R$ x* d" J4 ?
9 D+ \8 I) C; w' J* B+ [, z# ?
ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
\7 d* T8 B2 K! { if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()
; ~/ r1 q- s: S! i& A$ j if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()
6 m+ n8 h( z3 D0 Y/ d1 d3 h DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成/ N3 ^: L$ f! ^
WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
2 V, Z5 N7 F2 F5 D+ V) f; g }
( ?- j1 F* K* ?; M1 z$ e; a1 ^" lMindCuber:没有代码,借鉴操作手册上说明描述翻译如下- p- S3 T" b# q
MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。$ G' j0 j3 Q# v2 M: e2 L; @
选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。
a+ s( O: k& M: q& o 如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐, m. s7 l4 P, @8 Z3 j
MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。# d) B* T7 J5 H% W+ M ^- s
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。/ N* e6 D- x+ j0 `4 }3 K# r8 g
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
t- h$ p% Y7 Q" M 【提示】:. m, R. p# o) y( s# V J
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。1 a6 ~1 g l6 e2 a
如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。
; j* x0 b8 h: o5 G. L0 }1 Q 如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。
$ v' w/ e8 V* C' O1 u3 a d 如果魔方不标准颜色,它可能无法正确扫描。
9 v% W3 M; Q0 E1 W8 e手动解3阶魔方必杀技方法:3 g3 X1 l7 ]: y! b$ p- P" N5 m1 L; T
http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic5 \0 W2 F# w6 Y3 ]( x
参考论坛英雄帖:
! y. L6 z# x) M4 T) A# ]http://bbs.cmnxt.com/thread-2183-1-1.html5 b& @2 ?' E4 ^: ~9 R4 g9 L
( W& }" h. C3 [* W: W9 {( Ghttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240: J. ~8 h& K" P0 c" w$ T0 D5 ]
) r! D) i. H* h5 `
http://bbs.cmnxt.com/thread-7443-1-1.html
9 M7 B X- T: ^$ b% v' H1 p+ L+ h, L- T3 c' }) M
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580
4 q' d. W* I! I7 m. k$ `
2 v: E+ D6 Y, m) ehttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
+ i; W* M. N9 w1 N. m6 l
% s3 u' N" Q" ]4 ]; Xhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870) z) w1 }; R( O
$ j( t' q; L# U
高端设计英雄帖:
6 B( |4 T9 R. M) M8 x& rhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=36479 ~) r& @8 F$ s4 o, e* s: c
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021
3 A& L' _) f' }3 X: s0 Z9 c* W! n) D: r3 \
4 p+ I( t) T- C" h |
|