|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑
! d# P% |$ H2 V7 J3 i' ?; {# Z5 K( k8 P$ D
最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:) F; Q- g- q' g8 u
1.魔方配置规格要求
# C% L) P0 X0 R6 w8 r* V& H5 S3 ^ 我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:
# ]& I4 s4 J& i* y# D a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。# R2 p9 E0 L9 j0 d8 R% L, V" A
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
; _8 O: Q2 g/ F( L- H 通过以上这样几个步骤可以排除魔方问题。
; e0 |5 u; ^1 j! c& R6 {8 Y
0 D. D5 g" z$ q. w1 c# T2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。9 N, @/ c e4 S% b3 }# w
a.tiltedtwister方案
8 H4 _# L7 k% `! s 相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday- B' R* K3 V' W4 j; v
版本:2008版本/2010版本0 e3 @( I, u' C2 s7 ^2 g/ r
搭建图:(详细搭建图文件比较大,截效果图如下)
* g0 ]( P- r9 e4 n2 Y3 t; u 
; e2 ^& W4 ?6 q# Y* _* S6 T8 P 图1 2010版本 图2 2008版本
9 V+ @! e7 } ^' f5 q: c 下载地址:http://tiltedtwister.com/download.html
: d1 U4 R& E0 ]& o. D6 X" v' _ 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
! `) j; d. e5 |- i
加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)
, }! t1 U' M3 G& M0 f9 ? 优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
4 R" M* S4 `9 e6 i. a2 o; H 缺点:由于结构问题,目前的结构设计不稳定,' K0 R; p# A# G! l
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟
7 x! s3 D. X5 z3 d3 L) P
; X* {, }7 d/ c" ^6 mb.MindCuberRubikCubeSolver方案
4 |) _& m$ L) X 相关网站:http://mindcuber.com/. M3 c! ^ i8 u, P0 [3 T: O, D: ~
作者:David Gilday
U8 J, g, R$ @9 g& { 版本:2012版本
0 \' m, V: o H6 K1 s% \. J, P 搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
) {, {& p ?$ M( z2 k1 v- F, N# \
# q( _/ j5 ~2 n. m0 u 图3 2012版本
7 T0 V7 j& d, [ E4 ]; N 源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)
4 o( a5 e7 o5 D0 C0 b 加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
, r; B, O/ e; G/ k0 D: |2 | 优点:结构稳定,执行时间较快
* m c/ v, C: T- h+ x3 K+ ^: d 缺点:
/ ]$ H4 P/ f' W, U' L& f# \ 性能:
7 k* _1 @/ ^+ F ]+ I6 R8 W$ v2 k 改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)
. I4 E" X1 Y' x6 \ L2 n1 O" n1 h( {) H5 i0 e0 o+ @0 v
8 k" |+ _. J% z& a
3.调试方法0 p# Y' c7 F$ [' C( b* f2 Z
a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;
; a: s+ T0 ^/ z% s1 L9 @- O9 m b.不要急于下载代码验证,对照配置线缆连接是否正确, [! E% T6 d: W2 y8 ]
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求 r5 Z- `* P2 ?! u: _0 s: o
+ w1 J2 n0 X+ H3 t
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器
* l8 D, W% n( ~" B/ f1 ^2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
* b$ X1 w* Z' F* C2 [, _( X* K0 ^A =========Center motor 中央马达 A =========Center motor 中央马达
5 ?' X+ G4 y" [6 A A4 Z, A' ]B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达* v6 t1 o) [* C8 W6 `& q M
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达
( X5 F/ r( ]8 T
: f# |, M: F7 l) ^两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。6 J. R% u, b: `9 p! k; I' o
c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
$ t$ t. l" s! Z& m u/ } (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。
& w; A H. |. a6 E: ^ 尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)6 ?+ T3 x4 v6 B4 S+ V
( S5 W3 o' C6 m
d.中央马达控制微调,方法如下:' Z2 v6 F8 Z' d- S% |6 T
(1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;
8 Y1 R" F$ ?! u (2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。0 U8 b2 b3 O( V* P7 r, a
9 g' q9 W- }" B4 @9 b5 ^
e.下载执行程序整个调试验证:9 b; k R* z7 p- B2 Y
(1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。
7 H6 k. |; z6 q& J" b" ^6 B ? (2)程序流程大致如下:
( A- p E4 G( n6 D- Btiltedtwister:针对这部分代码简要给出流程上的分析+ y. j3 {5 _% n- p
while(true)
5 `( u: Q b( B* A$ F {4 \2 Z( K& k0 J
Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)
$ D( ?' F+ d$ q' H: x4 _ 初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)
1 H) ~( {! A2 r# d/ a8 b 初始化转台中央转台位置(需要手动驻停中央转台)
- k$ t; E8 H4 N. T, {$ h- W% ~4 @0 X( o* w; V* H2 q+ v2 j
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,
$ F& {& M1 n2 ?( B' z: _- r 通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”
2 }, K$ f9 `; V7 T6 [% H! C1 Z, R! p9 Z' f! \- }
ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
& P/ s+ s" b# ^4 _ \ if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()
' f5 O+ C) |1 O& n if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize(): D2 v7 D# O8 y- [1 L4 f0 M
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成 O: v0 k; b, V) o
WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()( _2 _7 e8 q' y5 Y
}2 N' ?1 p! f5 n" T% X+ Z h
MindCuber:没有代码,借鉴操作手册上说明描述翻译如下 e) O Q; T; Y/ ?, N
MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
" r/ g$ y( y) N 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。
: v* l+ a' N0 [3 ~ 如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,
% w" F! |+ n" j& ~- E' d3 f; `# o0 o3 ^ MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。, o. }/ c- p" ^
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。3 n9 @6 G# T; F, Q) ]% K
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
v8 h( p6 b5 f! n7 h) I4 A& T 【提示】:! b7 S# Q% Z+ F6 i
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。, t1 y. |- {" P2 S% x
如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。
( F) p& A, I+ F( W) O/ Q" N9 J 如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。3 T* Y- T, I9 o
如果魔方不标准颜色,它可能无法正确扫描。 / |: t4 J) ^2 l, X
手动解3阶魔方必杀技方法:
0 h3 C& C) x" C$ j& S8 |- o' I8 |& Rhttp://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
t% t6 J S5 p9 A参考论坛英雄帖:
5 z' {0 M- ^ d0 I. b( S" S4 N2 N, ]http://bbs.cmnxt.com/thread-2183-1-1.html
( m, ~3 S* B. a2 F. E- i, m: z: A b" m6 f% p }) b9 _4 C a5 K5 x
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240& p! u! c1 X& D; J8 k, I$ k
I/ O5 }) Z, ]" V* ahttp://bbs.cmnxt.com/thread-7443-1-1.html
# U( C6 e) L$ p$ k" z: Z8 N7 n2 }: T2 E2 e7 j. a- Q8 g6 A) ~
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580% ~* F8 N% x, F7 i' ^
/ q7 z8 e, T6 G! U% y
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=58719 b6 Z) w+ d+ W7 R$ R) y" b$ ` F0 h
0 L8 U9 g; z$ W* n" m
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870
( C' k6 U/ _" [5 i( F; \( A$ i
! k$ R1 N' E6 }+ Z高端设计英雄帖:
- q/ i _% ~5 d2 d: I7 c& phttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647) E0 |/ p8 u5 v' O. v- c
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021, Z0 Q' z/ z e7 ]( v/ [% [0 r
7 K* w5 S) U7 K# }' d/ B% i
. u; ]9 h, b. |: o |
|