您好,欢迎访问三七文档
第一部分:RobotC编程入门第一章初识RobotC1.1RobotC介绍欢迎大家来到ROBOTC的世界!本书作为****系列的一本,将为您重点介绍ROBOTC这个程序设计软件。这是一个使用类C语言作为编写语言的文本程序设计软件。不过我们不打算安排一个或者一些章节解释什么是C语言、什么是变量等等。因此需要读者有一定的C代码阅读能力。这本书的主要内容更侧重于对该软件的程序实例的讲解以向大家展示这个软件的特点,所以我们建议读者在阅读时将软件和NXT机器人同时打开,并且将机器人连接到计算机,一边进行调试、一边进行阅读。本书将循序渐进的帮助大家逐步学习ROBOTC这个程序设计软件。1.1.1为什么要使用RobotC读者们一定会问:在今天,我们拥有如此众多的机器人程序设计软件,我们为什么选择RobotC而不是其他的呢?的确,得益于乐高平台的开放性,我们能够在网络上找出超过一打的各式各样的软件来为我们手中的NXT机器人编写程序。那么我们为什么要建议大家使用这款软件呢?下面是我们列举的几个我们认为是优势的地方:z功能齐全RobotC拥有编写和调试文本程序的所有功能,和成熟的机器人程序设计调试工具的优点。在文本编辑方面它具备完整的文字编辑菜单、C语言的数组边界检查等功能;在调试方面,它能将NXT上几乎每一个细节都展示出来,并给予用户昀大限度的实时调试功能。另外,在NXT的多任务、多媒体、蓝牙等新特性方面提供了良好的支持,用它你可以做出令自己意想不到的效果。z体积小巧它的界面简洁朴素,没有华丽眩目的皮肤(喜欢经常给软件界面换肤的读者要失望了),没有花俏的窗口效果。只有简单而且必要的但完全足够使用的功能菜单。这非常的节省资源。这样的软件即使在5年前甚至更早以前购置的PIII500M的CPU和只有128M内存的台式计算机或者笔记本计算机都能够轻松的运行它。z便捷直观它将编译和下载功能融合在一个F5快捷键上。在下载完程序后自动出现的调试窗口可以迅速直观的向您展示程序运行的内部情况。1.1.2什么样的读者应该使用RobotC我们并不建议给年龄太小的读者使用本书和这个软件,尽管它是一个非常棒的软件。因为我们假定读者具备下列的条件,才具备了灵活掌握RobotC的能力:z基本的英语书写阅读能力;z具备基本的上网和操作WINDOWS的能力;z有过编写C语言程序的经历;z年龄昀好在10岁以上;当然,这些条件都不是绝对的,任何相信自己能力的话,我们都建议尝试使用这个软件。如果你属于下列这些人的话,那你一定会非常需要本书和RobotC:z需要更丰富的NXT功能控制的项目开发者;z熟练掌握了乐高机器人技术,希望尝试新鲜的技术的学生;z希望了解学习机器人技术的研究者;1.1.3说明z本书的内容主要服务于NXT,因此我们不会在书中讲解有关RCX的情况;z本书中会使用“RCX时代”和“NXT时代”这样的词语来表示两种不同类型的器材及其所附属的软硬件环境;z在高级应用的章节中涉及一些有关电子技术或者程序设计的理论和概念,我们会尽量讲得通俗,但希望读者还是事先有一定的了解;z书中所述难免有错漏,欢迎读者与我们联系来分享你们的建议和意见。z请与本书作者韦文潮联系(电子邮件:wwc4677@163.com)或登陆西觅亚网站(http:\\)1.2软件安装与界面运行安装程序,约十几秒后进入安装向导。点击“Next”,进入用户协议,-1-我们选中“Iacceptthetermsinthelicenseagreement”同意该协议,点击“Next”进行下一步。接下来是程序的安装路径,我们选择默认值,点击“Next”进行下一步程序就开始安装了。上面是安装正在进行,这个过程会有1分钟左右,这取决于你的计算机的速度。-2-安装结束后点击“Finish”,完成安装。接下来我们选择昀桌面上的RobotC程序快捷方式,进入软件界面。下图软件的初始界面。点击中央的窗口,会接着出现下面的注册窗口。它提供了两种选择:激活软件和进行30天试用。如果你选择的是试用,那么在每次进入该软件时都会出现本窗口提示激活。请购买正版软件并登陆该软件官方网站进行激活。-3-我们建议大家购买正版软件以获得更好的服务。随后出现的提示窗口告诉大家在没有程序被编译的情况下,某些菜单功能是不可用的。RobotC的界面非常简洁,在窗口左侧是函数模板,右侧的空白区域就是编写代码的位置。需要提醒的是RobotC提供了智能菜单,就是说当你键入几个字母后,系统会自动给出相应函数的完整拼写,同时你也可以直接从左边的模板拖放到右边的区域来添加代码。-4-下面,就让我们一起进入RobotC的编程世界吧!第二章入门2.1如何下载固件现在你的RobotC已经安装完毕并且机器人也搭建好了。但是你还不能让机器人与计算机进行交流。你还需要下载固件。固件,相当于机器人的操作系统。它能让使用者和计算机跟机器人进行交互。必备条件:1.你的NXT机器人;2.你的计算机已经安装了RobotC;3.一条USB连接线。用USB线将机器人与计算机连接起来,确保机器人已经开机了。-5-依次点击菜单“Robot”Æ“NXTBrick”Æ“LinkSetup”在左上角是你的NXT的名称和硬件地址。选中它然后点击下载固件按钮“F/WDownload”。-6-在出现的对话框中依次选择“我的计算机”Æ“C盘”Æ“ProgramFiles”Æ“RoboticsAcademy”Æ“RobotC”Æ“firmware”。选择其中的固件文件(.rfw),然后点击“open”。你现在会看到消息日志中的信息提示你固件正在下载。下载的过程中你的机器人会自动关机。当“firmwaredownloadcompleted”第二次出现后,固件就下载完毕了。-7-2.2如何下载程序现在一切准备就绪了,但是你的机器人还缺点什么呢?……啊,对了!程序。如果你想你的机器人动起来就必须给他下载程序。下载程序的意思就是将你所希望的命令从计算机下载到机器人。在这一小节里你将学会如何给机器人下载程序。Typeinthisfirstprogram.*首先在RobotC的命令行区域输入下列代码。taskmain(){motor[motorC]=100;wait1Msec(3000);}你也可以在“File(文件)”菜单的“OpenSampleProgram(打开示例程序).”在“TrainingSamples(练习示例)”文件夹中找到“MotorCForward.(C马达前进)”程序。-8-程序打开后,代码会出现在RobotC的右边,而左边则是RobotC提供的各种函数。代码模板确保你的机器人已经开机了。点击“Robot(机器人)”菜单,然后点击“Download(下载)”。-9-一旦程序下载完毕,RobotC的调试窗口就会出现。现在把你的机器人放到地板上,然后点击计算机屏幕上的“start(开始)”按钮。2.3如何控制电机前进、后退、转弯经过了一系列的准备工作后,欢迎大家正式进入RobotC的编程世界!在这一小节里你将熟悉一些RobotC提供的控制马达的命令。我们将用这些命令来让机器人完成前进、后退、转弯等动作。在开始编写程序之前,我们假定你已经按照搭建了和下面的例子一样的一个3轮结构的机器人。-10-2.3.1前进这一节里你将学会如何让机器人完成前进的动作,以及如何通过调整时间来达到调整动作的目的。在上一章节里,你下载了一个示例程序让机器人的作出转弯的动作。你是不是觉得好奇,为什么机器人能够转弯呢?你将完全弄明白它的道理并且编写程序让机器人作出前进的动作。程序剖析第1行:taskmain()11第2~7行:Braces每一个ROBOTC程序都包含着一个taskmain(),意思是“任务主要()”,它通常作为程序的主体。任务的内容由一对大括号构成和它们之间的代码构成。第3行:motor[motorC]第4行的语句将C马达的功率设置为100。第4行:wait1Msec12第5行是一个“WaitFor”等待语句,其中wait1Msec.的“M”是指毫秒的意思。也就是说这个语句的作用是让程序等待一段时间,单位是毫秒,所以wait1Msec(3000)的意思就是等待3000毫秒,即3秒钟。范例:motor[指定的马达]=马达功率;现在我们要在这个程序的基础上进行编写后面的程序。首先将它另外保存。保存的名字为“Movement”。13现在添加一行命令将B马达以100的功率打开(第5行)。现在下载这个程序,依次点击“Robot”Æ“CompileandDownloadProgram(编译并下载程序)”14一旦程序下载完毕,RobotC的调试窗口就会出现。点击“Start”按钮运行程序。点击“Start”按钮运行程序,机器人会立刻动起来。2.3.2定时这一节将介绍如何调整机器人前进的时间长度。我们将第6行的3000修改为2000。然后保存文件。15现在重复前面的步骤下载并运行程序,观察一下机器人的动作有什么变化。然后你可以自己试着将时间修改成其他的值来观察效果。速度和方向这一小节里你将继续学习如何操纵机器人动作的速度和方向。我们继续进行马达功率的研究。我们知道马达的功率值设定能够让它快、慢或者停止。功率的取值范围从-100(全速后退)到100(全速前进)。当你的NXT电池充满了,并且机器人运动的摩擦阻力比较小的时候,马达昀快速度大约是每秒1000个编码器计数。但是通常情况下,NXT电池并不完全充满,而机器人的摩擦阻力也比较大。那么这样的情况下,这个值大约会下降到750个计数点。也就是说,当你在程序中将马达功率设置为100时,它会向前运动每秒750点。2.3.3滑行和制动在机器人停止下来后它会因为惯性继续滑行一段距离。为了避免这样的情况,你得在后面添加上停止的命令。添加马达速度控制的命令,将B和C都设置为0。16这两句命令让马达在停止后不会滑行。现在重复前面的步骤下载并运行程序,观察一下机器人的动作有什么变化。2.3.4非全速动力17你将通过这个练习学会设置非全速的马达动力。这在运动精度要求比较高的时候会非常有用的。让马达前进的功率范围是0到100。它的中点是多少?100/2=50结果是50,那么我们将马达前进的命令修改为50。现在重复前面的步骤下载并运行程序,观察一下机器人的动作有什么变化。你一定注意到了机器人比之前运动得慢了。你可以尝试将这个值修改成0到100之间的任何值,观察效果。2.3.5转弯和后退我们现在来尝试将马达反向运动。将前进命令修改为全速。这一段命令让马达全速前进2秒。18我们将这一段命令复制一次,粘贴在下面,然后将C马达的值修改为-100,等待值为8秒。这一段命令让C马达全速后退,B马达全速前进。别忘记这段命令能够让马达立即停止而不会滑行。现在重复前面的步骤下载并运行程序,观察一下机器人的动作有什么变化。2.4使用传感器在学习了如何对机器人进行基本的控制后,我们接下来就让机器人更聪明一些。对于机器人来说,外界环境是完全一片空白,要想感知周围的事物,我们必须给机器人安装传感器。我们常见的传感器有:触碰传感器:通过触点告诉机器人是否接触到物体;19光电传感器:传感器发射红外线,并将接收到的光值返回给机器人,通过光值的大小和程序,我们可以进行颜色、距离等条件的估算;声音传感器:这是NXT带来的一种新的与触碰和光电作为标准配置的传感器(简称标配传感器)。我想大家在真正看到它之前都会认为乐高机器人终于从此可以识别声音了。不过很遗憾的是,它只能反应声音强度的大小,还不能对声音的内容进行识别。尽管如此,声音传感器还是给我们在实际应用中带来了更多选择;超声波传感器:这是NXT带来的另一种新的标配传感器。它通过间断地发射超声波并检测反射回来的超声波获知前方物体的距离;角度传感器:这是一个在RCX时代控制马达精确运行的重要部件。无数的爱好者为了提高它的使用精度和效率大费脑筋。幸运的是在NXT时代我们拥有了内置于马达中并且精度大大提高了的(精度为1度)角
本文标题:robotc教程
链接地址:https://www.777doc.com/doc-4147841 .html