|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑
( O+ d! i8 F, H) ~4 I! a' m0 [
2 [( p* {8 S, ~- x) z5 ? 最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
: o. X5 x0 F* p+ f& O1.魔方配置规格要求; X% B4 w, K- t$ Q0 q- O
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:
$ E4 |* y% z( w' `9 s) k) B2 ^ a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。
( @2 d o& @) e$ z, m( w% V4 { b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
2 U# a o9 a4 N8 ]; O, g" r 通过以上这样几个步骤可以排除魔方问题。+ \, M3 c9 G8 [8 q: E
1 x' O9 ~9 `& P' Q {2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。+ e) u: x& I2 @. F/ }
a.tiltedtwister方案8 r- Z7 O. r, H* w L
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday
7 k5 q: h! p# s+ @ 版本:2008版本/2010版本
/ S! M4 K F7 j 搭建图:(详细搭建图文件比较大,截效果图如下)
" e7 w7 v2 ~3 m& ] c, P5 r. a 
* ~8 R& z( F% q* r 图1 2010版本 图2 2008版本
- O7 w2 R" f9 U- h3 y 下载地址:http://tiltedtwister.com/download.html
: P3 E" {9 o+ Z$ C) R" a1 k% a 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
" ]( d: t* A; N, v' I
加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)
" e4 @# G. c- M: m! b 优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)4 Q3 R M5 e/ x Q3 O
缺点:由于结构问题,目前的结构设计不稳定,+ u+ I0 G* S F
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟
, z0 d6 L1 _3 v3 a' m9 ^6 `
7 y6 w3 K8 n* Y% o' J) s& lb.MindCuberRubikCubeSolver方案5 p H2 C- o q3 Y" \! j( c8 s' w
相关网站:http://mindcuber.com/. v( N( _! j( c) ^0 Z
作者:David Gilday
& n+ y& U' t# M7 `* } 版本:2012版本1 A/ e/ i: o6 A4 P
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
& ~# L X; F* P. ?# m, k
& v& `& y3 x6 ]/ e+ i% E z! E2 l
图3 2012版本6 b2 }) H* F& z5 n! a
源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html)! }% N3 J! w: _' n# H% ]* }2 p
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
# {8 V9 `& ?* Q7 b" T4 j 优点:结构稳定,执行时间较快4 F/ q) @. F) W# w' f* b. C
缺点:
1 i( I. r# T; i. j/ q" s# F$ M 性能:6 H. R T: x( J5 ?
改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)
" {. ~" V( `8 s/ g. f: |
; v- z2 M' m- b
( A# L: t! \2 R5 g2 q7 I7 m3.调试方法3 p2 l/ ]) F( ~
a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;/ n# z. V" Z8 x/ u
b.不要急于下载代码验证,对照配置线缆连接是否正确,
* t5 ]+ p2 F" h/ a' P/ A tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求( E7 W1 J3 v7 r
M/ ?5 w) w l7 z- M: V1 z$ D: o
1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器! A0 d6 ?& R3 }/ R9 u
2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
1 S# r( X5 z6 q5 ^' Z; YA =========Center motor 中央马达 A =========Center motor 中央马达
3 O8 D: d h3 }- G6 iB =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达/ D* k5 D* M) c+ q: O& J( m b! _! N
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达1 l% G! k/ L" T- z( h! J
7 {9 i3 f8 o5 A" a两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
; ~1 A! R. v" R- O! u: ? c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
+ X/ V2 @* n4 J" B0 k/ F4 M& Y$ M (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。! q8 e; c& j, [0 Q; Q3 m2 k( j
尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)4 B' h) L+ f$ B( }/ Q
! L- f5 W$ t' r) T# [* k5 Z
d.中央马达控制微调,方法如下:
5 \; @# p5 {0 g. L$ h8 q3 N7 O' m (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;
; }7 Z5 z$ [$ [) [9 E; B! g+ g4 T' A (2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。
! Z. u- [. r' ?2 Y) Z E: [4 P" E( L9 q; X# ~
e.下载执行程序整个调试验证:
# n. r& }9 C" d# ]( V (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。3 W: d4 p/ s5 [, L0 [2 E4 r* {6 b
(2)程序流程大致如下:8 c) a2 }5 l& p% f- N
tiltedtwister:针对这部分代码简要给出流程上的分析
! ~1 L+ L- ^$ i+ }0 ]5 e; J/ L while(true)
! {1 ~& m/ E8 S; o2 x {5 G; z; c/ |3 G! h
Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成)
5 j" u/ t- y# I 初始化固定颜色传感器位置(注意需要固定颜色传感器才完成)
( T' H9 E+ H2 j4 }! a5 L$ t 初始化转台中央转台位置(需要手动驻停中央转台)2 H* P/ n L: ]
5 ^+ p; a5 l+ j' R WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,# Z$ r+ \9 Z" a- b$ Z; C- _* |
通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”& c1 {& M. O* [( ]1 o0 I
, o. i6 X8 a' x% R( r ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框4 G' i* B/ H6 ?% x) j
if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()- ?3 m. G* V( b- s
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()$ i8 S- w! j7 D1 @! `
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
& S. b3 `' f: ]$ h" K WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
) ^& |5 K9 \9 u1 T$ l }
! N0 ]$ H* B# Y( G+ i& T' rMindCuber:没有代码,借鉴操作手册上说明描述翻译如下
- r5 {: i: z6 {8 O MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
7 p4 X$ V4 f& O 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。' n8 J3 O# F: b" n( k- w7 T
如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,$ u1 X. B Q* Q# b* V" P* W
MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。0 P3 n# F9 T; O' `# k4 k( B: R$ n
通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。* P b- j: c) g1 S
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。
" L7 O" b9 a2 E x! d. p( k 【提示】:
6 p4 b" V2 C& I% Z( r 观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。7 f# c3 h2 y$ A; \! J$ b
如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。
7 o1 K5 W! a+ _' t: p/ N5 J# ` 如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。
8 r' ?7 Q" x9 V" u/ y& l* { 如果魔方不标准颜色,它可能无法正确扫描。 " i/ J; m, S. I5 V) G% ]- m5 S
手动解3阶魔方必杀技方法:
& a3 r& W! r) k9 T2 Y7 Chttp://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
* r9 |6 }5 l1 a7 k& h参考论坛英雄帖:
3 ?' A/ q! S7 ?1 V/ Y0 U+ ihttp://bbs.cmnxt.com/thread-2183-1-1.html
& Z: E, j; N% q+ B9 r
1 g$ M! C, Q6 g# [- d, Z8 {http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240. H d- _! q l) \# k
7 T. E9 U/ }3 F- ^7 q
http://bbs.cmnxt.com/thread-7443-1-1.html5 l& @2 a- q6 v. J1 k+ I# ~ h
; U; q# V# U3 H9 v. q# a
http://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3580
/ Z. e! t2 @$ D/ y5 _0 K5 d. }1 V. h# _/ \6 R* E: R
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
: ^4 E; p+ U+ s5 `5 f; l+ ]5 u2 X: g# Y! f, B/ H; _1 N- O
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870 w1 n% `- n3 S4 {9 `
& Z: |) R4 b" o6 ~高端设计英雄帖:
3 o) M8 R8 q5 Ohttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=36471 }0 U* I& F% Z8 `" v( ?7 I
http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021! G W$ w" R" E* G9 n2 f4 k7 o
3 C. J: I; _0 i2 ~! r+ L0 S( `$ c' c- {$ x+ ]1 p* `
|
|