lego nxc 编程快速入门

lego nxc 编程快速入门

ID:3914335

大小:283.78 KB

页数:17页

时间:2017-11-25

lego nxc 编程快速入门_第1页
lego nxc 编程快速入门_第2页
lego nxc 编程快速入门_第3页
lego nxc 编程快速入门_第4页
lego nxc 编程快速入门_第5页
资源描述:

《lego nxc 编程快速入门》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Version1.0重庆大坪刘刚2008年7月图片来自LEGO官方网站项目A动起来,机器人在本项目中,我将借助我们的第一个程序,向大家演示机器人编程的基本思路。程序非常的简单,控制机器人向前移动8秒钟,然后后退8移钟,最后停下来。在开始编程之前,我们首先要构造好一个LegoMindstormsNXT机器人。为了使项目容易化以便进行演示,我们构造最简单的三轮机器人,命名为MyRobot。它的动力系统由三个马达来构成,将右边的发动机连接到智能块的端口A,将左边的发动机连接到端口C,第三个马达连接到智能块的端口B。另外一个重要的准备工作就是,请确保已经正确地安装好M

2、indstormsNXTFantom驱动程序。我们使用BricxCCIDE来对机器人进行编程,打开它,程序提示需要定位机器人。启动机器人并点击OK,BricxCC将自动搜索并找到机器人,显示用户界面如下所示:用户操作界面看起来与标准的文本编辑器非常相似。除了有常用的菜单和功能按钮外,还有一些进行机器人编程的特设功能菜单,比如将程序进行编译并下载给机器人的菜单,或者从机器人中获取信息的菜单等。现在我们开始编写一个新程序,点击NewFile(新文件)按钮创建一个空白的新窗口。然后输入如下NXC程序代码:Taskmain(){OnFwd(OUT_A,60);//启动

3、马达A,速度为60%。//马达参数的值由0到100,其中100为最快,0为停留在原位OnFwd(OUT_C,60);//启动马达C,机器人开始向前移动Wait(8000);//等待8秒钟。注意,是持续上面的动作的时间,而不是“停下来等待”OnRev(OUT_AC,60);//后退Wait(8000);//等待8秒钟Off(OUT_AC);//关闭马达}NXC全称NoteXactlyC,它采用了与C语言非常类似的语法结构,这就意味着稍有编程知识的人会很容易地学习NXC。同时,与通用的编程语言明显区别的是,因为NXT编译器的原故,NXC受到了许多方面的限制(所以它

4、才叫NXC,即“不完全C”语言嘛)。在NXC中,程序由task(任务)来组成,也就是说,每个程序可以有一个或多个任务,但至少必须包括一个任务,那就是main任务。我们的第一个程序非常简单,只有一个任务,那就是main任务。一个任务由若干命令组成,我们称之为语句,它位于所属任务的括号间;每条语句以分号表示结束。编写好程序后,开始进行编译,也就是说将NXC代码转换成二进制代码以便机器人能够理解和执行。然后使用USB电缆将程序传送给机器人,也就是所谓的下载/downloading。编译并下载后,就可以运用程序了。找到MyFilesOnBrick菜单下的Softwar

5、efiles,然后点击run/运行。项目B前进,转弯我们将机器人的运动编程更进一步,下面的程序让机器人前进一段距离,然后利用停止/倒退其中一个马达的方法,使机器人右转90度。Taskmain(){OnFwd(OUT_AC,60);Wait(900);OnRev(OUT_C,60);Wait(320);Off(OUT_AC);}取决于机器人所行走表面的材质,我们需要为Wait()函数尝试不同的数据,以便确保机器人能够正确完成90度的转弯。为了使程序更具理解性,我们这样修改一下程序的设计。//头两行定义了两个常量,这样不仅可以使程序更具可读性,而且还便于进行修改。

6、#defineMOVE_TIME900/预设移动的时间#defineTURN_TIME320/预设转弯的时间Taskmain(){OnFwd(OUT_AC,60);Wait(MOVE_TIME);OnRev(OUT_C,60);Wait(TURN_TIME);Off(OUT_AC);}接下来,我们增加一点小小的难度,首先还是让机器人前进一段距离,然后随机地决定左转或右转。程序如下:#defineMOVE_TIME900#defineTURN_TIME320Taskmain(){While(true){OnFwd(OUT_AC,60);Wait(MOVE_TIM

7、E);If(Random()>=0){OnRev(OUT_C,60);}Else{OnRev(OUT_A,60);}Wait(TURN_TIME);}}备注:本教程的内容是如何使用NXC语言对机器人进行编程,它需要读者具备一些最基础的编程知识(比如,知道什么是变量、表达式、程序的常见流程控制等等,针对这些内容的讲解将不会出现在本教程中)。项目C马达控制高级篇当我们使用Off()功能函数时,马达会立即停下来,刹车并停在原来的位置上。如果想要机器人平缓地停下来而不使用制动闸,就需要使用Float()功能函数或Coast()功能函数。OnFwdReg(’ports’

8、,‘speed’,‘regmode’)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。