|
|
本帖最后由 旭日东升 于 2019-3-15 11:46 编辑 5 D. y: V6 H6 j
4 ?& ?9 G/ P3 } 最近也搭建好解魔方的LEGO机器人,其中也遇到不少问题将大多数问题汇总如下,同时欢迎参与问题分享和解决方法补充:
( x' l( o; D( M5 ?1.魔方配置规格要求8 \5 c- L2 C8 M' N
我也尝试多个厂家和规格的魔方,发现很多应用问题的根源出在魔方上,以下提供一些参考建议:% s, A! c7 X4 n. Q( |9 [
a.魔方塑料白色的,魔方塑料黑色的,实践证明选择黑色塑料将更加有利于应用。验证是否你将买的魔方是否可以使用,请将转好的魔方放置在你的LEGO上,扫描完成将开始执行,否则提示扫描失败。7 }" L" x" V( @2 M
b.魔方大小固定和弹性可调的,实践证明选择大小弹性可以调节的更加有利于应用。由于魔方规格上细微差异,市场可以选择弹性可以微调的魔方为好,这样翻转臂将大大减少磕碰问题而导致失败。
8 X6 Z% v7 x* f% O$ U ^ 通过以上这样几个步骤可以排除魔方问题。
$ ~- [' t4 R I* Y) x4 f4 W) p9 n& t t+ p0 ?4 o3 m
2.清楚你的解魔方的设计方案,目前有两套解魔方方案和搭建方法(由搭建结构不同来划分类型/两个方案加载程序不能混用)。4 I0 H! a7 l3 T" A
a.tiltedtwister方案# M1 \+ T6 b& P' M* d: @9 E4 k
相关网站:http://tiltedtwister.com/robots.html 作者:David Gilday/ j, ?* G0 ?1 g
版本:2008版本/2010版本
* l% R! T/ ~$ k( k( ^- u+ [ 搭建图:(详细搭建图文件比较大,截效果图如下)
' N: G& X: T: @7 v # r0 w! D6 y* y
图1 2010版本 图2 2008版本" z T( Z. j Y% [' k' r
下载地址:http://tiltedtwister.com/download.html
6 l: l+ Y# L/ [/ D* e2 y 源代码:
tiltedtwister_code.rar
(9.45 KB, 下载次数: 409)
* \5 R/ f* G5 n4 t" F+ ^0 k% R8 v 加载程序:
tiltedtwister_bin.rar
(144.35 KB, 下载次数: 516)
(注意使用bricxcc_setup_3389.exe作为编译器)
7 O/ S- i% A `2 d# T2 S. I% b 优点:可以通过源代码调试LEGO魔方,了解和改进设计上问题(需要C的设计能力)
) K K# v+ j' D4 O- r0 ^: N 缺点:由于结构问题,目前的结构设计不稳定,! `* ?& _( _8 s/ h2 l' J
性能: - 扫描魔方: 1 分钟
- 解决方案: 20 - 40 秒
- 执行: 1 - 5 分钟. 平均 4.5 分钟 (60 面翻转)
- 平均耗时: 6 分钟
3 F+ M( F p" \! J3 W6 c, A
' s5 \/ _) E9 p/ j Hb.MindCuberRubikCubeSolver方案
$ F# u" [- m; G# {7 W) G9 v 相关网站:http://mindcuber.com/
4 U$ b0 w. _# V! X* w( Z 作者:David Gilday n2 \! A5 F- u
版本:2012版本1 y/ J8 ~0 R$ b Q/ I4 S& v. }
搭建图:
MindCuberRubikCubeSolver_PDF.pdf
(7.68 MB, 下载次数: 3177)
: u9 b9 F5 a- K1 P0 {7 j

! v" _: ]1 N0 g1 k" t 图3 2012版本9 e( p0 T0 e2 Y& ]5 {
源代码:
MindCuber-v2.2.zip
(50.4 KB, 下载次数: 6)
(源码网络链接:http://mindcuber.com/mindcuber/mindcuber-source.html): S! W. b3 i& T: |5 S7 {
加载程序:
MindCuber_bin.rar
(20.81 KB, 下载次数: 1073)
, m4 o7 Y* N& R7 t
优点:结构稳定,执行时间较快
4 _/ s0 o* e: f- X' n1 k 缺点:
- o7 F' k, f0 i8 f- z3 ] 性能:; M( ~7 Q- W5 `. U" u1 W$ I. a+ R" N
改进建议:由于翻转臂会有磕碰问题,建议在翻转臂马达上加些可以简单结构设计,主要添加两个球形部件在马达上容易滑动,防止转动时呆死(如下图,希望可以给翻转臂结构问题一点提示)
& I$ L3 h+ F) e8 }4 e# n8 X) P H' J
/ P+ I0 ?1 q; B% p; D7 y$ v3.调试方法
' g. T* b T1 V3 f s" T' q a.搭建好LEGO 解魔方平台,搭建好注意检查结构是否有问题,这个没什么好方法了,需要你好的观察力,开始尽量同搭建向导一样,后续对于细微差异可以稍微修正;" @# u5 [/ \6 g* |% k5 ]* ]
b.不要急于下载代码验证,对照配置线缆连接是否正确,/ ?& O% s k0 N: C/ {- m/ P& a8 T
tiltedtwister线缆连接要求 MindCuberRubikCubeSolver线缆连接要求
+ K& x9 a0 [8 Y9 H5 c/ s
! |) q2 p. K' ?# M* K/ I" R1 =========Color sensor颜色传感器 2=========Ultrasonic sensor超声波传感器, m0 [& f% n( ]4 K
2 =========Ultrasonic sensor超声波传感器 3=========Color sensor颜色传感器
! ~. R- c6 h' C* q7 ~3 S3 zA =========Center motor 中央马达 A =========Center motor 中央马达
% a9 F* n; H' ~B =========Tilter arm motor 翻转手臂马达 B =========Color sensor motor 颜色检测控制马达+ G: s5 {6 D5 O' c
C =========Color sensor motor 颜色检测控制马达 C =========Tilter arm motor 翻转手臂马达9 q0 j- D% s9 ]4 ]0 U$ F# R5 d
! u0 x' n9 I9 R; a3 H C5 S
两者搭建后的连接不同,通过NXT-G/NXC 的Remote控制可以检查是否连接好,动起来是否连贯,防止磕碰,有磕碰问题需要尽量处理,否则你需要通过NXC修改代码完善你的设计。
/ E7 [/ i9 V2 D4 V$ T, u c.检查LEGO解魔方平台对颜色识别是否稳定,方法如下:
8 E# Y' k' P6 a4 b (1).手动转好魔方,或者使用刚购买的魔方(一般6个面都正确)在你的LEGO平台上验证。一般在tiltedtwister中代码有检测,但是目前没有显示扫描信息在屏幕显示,而MindCuber可以显示各个面的颜色信息。
# l- f3 g. N# I" \ 尽量多验证几次,比较好每次可以正确检测出每个面的颜色,如果概率性出现,建议看看翻转手臂动作是否连贯,颜色检测传感器可否正常检测正确(有些颜色传感器与魔方距离需要微调一下,实际情况可以通过NXC的端口信息来调试)& _2 D( \! s& E% P: P5 V4 j% O$ m
4 H. t# i& g5 b* q
d.中央马达控制微调,方法如下:
$ s+ u" V" F' k, {% g* a (1).结构调整,通过齿轮传动,注意传动结构灵活度和稳定性,需要注意调整和更换不好的连接件;2 ]& Z0 r. m5 I5 Z2 D
(2).中央位置校准,tiltedtwister/MindCuber刚开始化时都是通过半自动校准,注意一些方法(tiltedtwister倒计数手动定位校准,MindCuber参考点一线定位校准),否则看似可以工作,但是不稳定。
& r0 y( i3 K9 ^* Q; i' }8 }
$ i6 `. z. M# y& p) z" G5 v e.下载执行程序整个调试验证:
2 z. P: Z. ]0 ^ (1)将生成或者得到的rxe下载到你的NXT上,如果下载失败注意你的固件是最新版本,同时保证NXT内存空间足够使用,不够注意删除NXT上部分空间使用,正常时NXT是没有内存空间上问题。0 L! y( H/ l6 m" S1 H2 v A
(2)程序流程大致如下:/ y* D2 Z% ^" J, U5 K
tiltedtwister:针对这部分代码简要给出流程上的分析
6 W% p4 u: P' g( B# a while(true)4 h* `/ r0 r0 ^2 H1 [9 A; _
{
% ?- \: H9 s8 u$ ~. D Initialize(); -------------------初始化固定翻转臂(注意需要固定翻转臂才完成) U8 |* y) ]. [$ E7 [. U6 o
初始化固定颜色传感器位置(注意需要固定颜色传感器才完成); s3 S/ C: w5 U* k
初始化转台中央转台位置(需要手动驻停中央转台)
' Z8 c3 V R3 q4 S7 {/ J% t$ M8 i8 U3 ~/ O
WaitForCube();-------------屏幕提示“GIVE ME A CUBE”放上魔方,
0 h9 ]+ j v& E9 r 通过检测是否魔方在平台上,直到检测物体放上为止,显示“Thank you”: R2 b5 V4 Y) i- o* \$ V, [
) {) Z0 S6 y! u9 C* h! Z7 t
ScanCube();----------------颜色传感器开始移动,翻转臂偶尔转动翻转魔方,屏幕绘制魔方图框
- t& d- H& c6 [6 V+ x9 \& y3 o/ O if(ResolveColors())---------NXT 计算放置魔方是否正确,如果错误需要更换魔方,重新操作Initialize()1 m- n5 b6 Y2 M8 r6 r! w3 ^! c, Z
if(SolveCube())---------NXT 计算魔方是否可以解,如果错误需要更换魔方,重新操作Initialize()% z( r+ {% U, j5 a% u
DoMoves();---------按照既定算法操作魔方,期间不会处理异常,直至完成
; B0 T9 `$ o8 w7 n WaitForCubeRemove();--提示拿走魔方,重新操作Initialize()
: U* g: w+ U9 ], d+ o% C2 t: u7 h }
- K/ q c5 P4 `+ v+ hMindCuber:没有代码,借鉴操作手册上说明描述翻译如下9 S1 }/ A7 W$ F! G: ?
MindCuber可以解决标准3x3x3的魔方。它由红色,橙色,绿色,蓝色,黄色和白色组成魔方。魔方表面必须非常光滑,容易转动。
) c) ?) W4 Z) ~# g! d+ r5 G/ i 选择和运行NXT的上的“MindCuber”软件文件。 MindCuber开始移动“翻转臂”和“扫描颜色臂”,因为它需要固定它们位置。颜色传感器在此过程中闪烁的红色,表明它正在运行。
) F$ L2 S% t- B7 K m 如果有魔方在中央转盘上,MindCuber检测到并显示提示消息,询问拿走魔方。当MindCuber检测没有魔方,它停止闪烁的色彩传感器,并显示提示消息,询问插入一个魔方。同时你必须确保“中央转盘”是否正确对齐,以便其在同一方向的前缘对齐,! \& Q3 w) p# E: f
MindCuber解魔方平台自身是无法做到这点。你可以使用NXT上左键旋转中央转盘逆时针和顺时针旋转右边的按钮。短时间按下按钮将小步微调旋转。长时间按下会不断旋转中央转盘较大的调整。当中央电机停止时,因为它和电机之间的齿轮连接,尝试用手非常轻柔旋转的底下的转盘来调整转盘到中央位置。
" S; N0 M7 W* e4 C9 [ 通过来回调整完成转盘位置的正确。当MindCuber等待要插入的魔方时, 每次启动程序时对齐,转盘通常只需要一次可以完成,但你也可以随时调整位置。放置魔方在中央转盘上,MindCuber使用超声波传感器检测魔方时,当发现魔方时将自动启动。它使用色彩传感器开始扫描魔方。在扫描过程中,色彩传感器闪烁为蓝色,当6个面的扫描完成时,色彩传感器闪烁为红色。算法将计算出一个解决的方案,这个过程大致在10秒左右,完成方案需要40~45步移动。一旦MindCuber计算完成解决方案,然后通过翻转和转动魔方来解决它。在结束魔方和移走魔方时,色彩传感器绿色闪烁表明完成。当你移开魔方,色彩传感器将停止闪烁。 \; d- u+ X$ O7 k( g( s
在解魔方期间和之后,时间将在屏幕上显示。 MindCuber完整的解魔方过程通常需要2至3分钟,而后MindCuber等待准备好为您放置魔方来解魔方。( S3 ~1 i+ U9 _3 I$ T. E4 s
【提示】:+ F" T$ |5 }* [5 K
观察魔方位置,以确保它每次翻转和滑回正确位置。如果它有时会向后倾斜,而不是滑回,这时确保贴纸放置在中央转盘位置上(建议可以垫上大小合适的纸片)。如果魔方有特别尖锐的边缘,你可以使用较大的贴纸。
9 T% S3 ], A- ]$ s7 P4 S" [ 如果MindCuber不能确认出正确的颜色,它会自动重新扫描魔方三次。如果仍然无法确定正确的颜色,它会移动的翻转臂,继续闪烁红色,等待你再次尝试拿开魔方。如果MindCuber在闪光灯或变化灯光下,将使其难以正确地感知颜色。尝试将MindCuber离开光线地方。( o u% \3 p' {1 y: m! |% z
如果扫描还是工作不好,你可以自己完成魔方的一个面,通过校准魔方上白色的面是来帮助提升。当红色灯闪等待你移走魔方,在移走魔方之前按下桔黄色的按键。MindCuber屏幕上显示“Calibrate white”。将转好的魔方白色面放到转台上,同时白色朝上放置。MindCuber将扫描白色面,通过这个完成传感器的校准来提高扫描成功率。这个校准将被使用直到重新校准或者重启程序。
8 n! Q6 c! Y. a( w- m 如果魔方不标准颜色,它可能无法正确扫描。
* _! }+ L( J! I& W手动解3阶魔方必杀技方法:
) P" F* T, S7 |/ j) c6 }4 }8 ?0 |http://www.appchina.com/app/appinventor.ai_736176007.ULeTian_magic
8 s/ t" R. ~ u" R! j* e参考论坛英雄帖:
- d* c8 p* K3 y1 S' o3 M; j- D1 vhttp://bbs.cmnxt.com/thread-2183-1-1.html& b( o# h D8 V( p
9 f$ }7 r1 ~, v# u+ |2 o- _http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=8240
/ b( X2 N/ I/ l% |% g
2 j J! S+ F9 s! }* H% bhttp://bbs.cmnxt.com/thread-7443-1-1.html: Z, w0 m7 I& f$ }
$ v& f7 F) k& S, o0 c/ d0 lhttp://bbs.cmnxt.com/thread-6726-1-1.htmlhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=35800 ~2 D& M% G6 D
9 E8 ~( Z6 P& [2 H% O$ o7 o! H! @http://bbs.cmnxt.com/forum.php?mod=viewthread&tid=5871
S# b! E9 S( h3 x7 O; M* c: l
; U. G/ N! o0 r$ |3 a+ m9 Dhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=7870, Q6 n G; R) D2 O7 l6 g
. s& |+ k" K) V. D高端设计英雄帖:
4 x, d9 w7 m8 M3 X7 khttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=3647
6 B. r1 i3 J& \9 S8 D* @/ vhttp://bbs.cmnxt.com/forum.php?mod=viewthread&tid=6021$ u% l3 v: F2 @2 ^
3 R& f, C* B% G9 g% f* u! {9 e. S* p3 h
|
|