找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 29077|回复: 30

中文乐高版MagicWand(摇摇棒)使用教程(NXT-G篇)

    [复制链接]
发表于 2011-1-28 13:53:23 | 显示全部楼层 |阅读模式
       前一段时间写了中文乐高版MagicWand(摇摇棒)使用教程(NXC篇》,怕是很多没有C语言基础的朋友看着有点头晕,一直想写个NXTG的教程,可是处理一点离职的事耽误了,和那些购买了摇摇棒的朋友说声对不起了。

       NXTG这个东西,是个好东西,但是也是个很恶心的东西。好在它简单,什么东西都帮做好了,和个积木一样,搭上就行,没有编程基础的人都能上手;但是恶心也恶心在它简单上,很多东西都有没有,比如说本教程用到的数组Block,还得用第三方的。本来用C很容易实现的东西,用NXTG还破费点周折。

  前面说了,要使用NXT-G编程的话,需要2个第三方的block,Array Element和PCF8574-Nx,想要编程前需要先把这两个block导入到NXT-G内。除此外还需要一个叫Modify_User_Settings的VI,只有安装了这个vi,才可以定义数组类型的变量。Modify_User_Settings文件放到X:\Program Files\LEGO Software\LEGO MINDSTORMS NXT\engine\project目录下,其中x为你安装NXTG的盘符。放好后,重新启动NXTG,然后在tools中启动Modify_User_Settings,如图一: 1.jpg
然后选中Enabled,点ok,如图二:
2.jpg
这个时候,在Edit-->Define Variables中可定义数组变量了,点Create,创建4个名字分别为L,E,G,O的Integer Array类型的数组。如图三:
3.jpg
然后要做的是给数组初始化,在程序面板上,调出一个变量block,然后选择L,并且在Action一栏选择为Write
如图四:
4.jpg

       接着给数组赋初值,其实就是摇摇棒显字的字模,在刚才给变量定义的地方的右边,有个Value的地方,这个就是给数组赋值的地方,一个空是数组的位置(Index),第二个空为位置对应的值,需要注意的是,数组的从0开始的!另外值不能是十六进制数,为十进制数!
然后,我在L数组变量的值依次赋值为:0,254,254,254,254,254,254,254,254,255 。一共9个数。他们分别代表全亮,只亮最下一个LED和全灭。       补充一下数值的定义方法,摇摇棒一共是8个LED,共一字节,LED8为高位,LED1为低位。0为LED亮,1为LED灭。
LLED1LED2LED3LED4LED5LED6LED7LED8
0 00000000
25401111111
25401111111
25401111111
25401111111
25401111111
25401111111
25401111111
25401111111
25511111111

点击开始-->所有程序->附件-->计算器,选择查看-->科学型,选择2进制,一次输入上表中的0和1,如第一行为8个0,然后选择十进制,计算器就帮你完成了一次2进制数转十进制数的过程,所以结果为0,同理,第二行输入二进制11111110,转十进制得254;最后一行为二进制8个1,转换为十进制为255。

       下面开始需要构建主程序了,先调出一个死循环,然后再嵌套一个循环,内层循环选择计数,循环次数对应数组的长度,因为L数组的长度为9,所以我这里填9,然后勾选Counter,如图五:
5.jpg

接着给内嵌循环里面分别放入一个变量,选择为L,Action栏选择为Read。再调入一个Array Element block和PCF8547-Nx block。PCF8547-Nx block配置I2C Address填写为0x40,Mode选择为Write
如图六:
6.jpg

连接方法如图七:
7.jpg
现在你可以下载运行,看下效果了。
附上编程说需的block和程文件,还有我写好的一个示范程序。
最后特别感谢daizg前辈为我提供数组block,没有它,这个程序会相当啰嗦。

ps:运行本示范程序,以上步骤必须全部完成,需要安装的模块一个都不能少,另外,固件版本需要在1.05以上!




PCF8574-NX.rar

163.02 KB, 下载次数: 211

Array.rar

578.41 KB, 下载次数: 263

Modify_User_Settings.rar

28.96 KB, 下载次数: 194

MagicWand.zip

0 Bytes, 下载次数: 235

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2011-1-28 14:30:32 | 显示全部楼层
そが !!我还不知道原来数组是这样定义的耶!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-1-28 15:28:56 | 显示全部楼层
学习了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-1-28 18:31:02 | 显示全部楼层
那么魔方机器人也可以用到咯1
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-1-28 18:36:05 | 显示全部楼层
糖兄,请问一下,我没有Modify User Settings这个菜单我装的是玩具版的,已经把Modify_User_Settings.vi放到*:\Program Files\LEGO Software\LEGO MINDSTORMS NXT\engine里面了呀,也重启过了,可还是没有这个菜单呢。。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2011-1-28 19:39:56 | 显示全部楼层
回复 xljbear 的帖子

菜单在nxtg的tools里,如图一,我用的也是2.0玩具版本
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2011-1-28 19:42:09 | 显示全部楼层
回复 xljbear 的帖子

抱歉,路径我打错了,你重新放过。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-1-28 19:43:07 | 显示全部楼层
回复 xljbear 的帖子

我表示也有这个问题......
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-1-28 19:45:17 | 显示全部楼层
回复 糖伯虎 的帖子

教育版的试验OK~~
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-1-28 20:47:32 | 显示全部楼层
开学了再仔细看..
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-1-29 18:52:25 | 显示全部楼层
原来还不知道g语言里能有数组,原来数组是这么用的呀!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-1-29 22:30:24 | 显示全部楼层
回复 糖伯虎 的帖子

嗯,谢谢,现在可以了!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-8 12:40:25 | 显示全部楼层
请问第三方的Block是用什么开发的?LabVIEW吗?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2011-2-8 15:18:32 | 显示全部楼层
回复 primejava 的帖子

对,labvieW
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-18 14:05:55 | 显示全部楼层
Block怎么导入不了呢?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-11-25 06:22 , Processed in 0.132958 second(s), 21 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表