资源描述
TlsTlsrobotrobot 机器人使用手册机器人使用手册 Tlsrobot 机器人是杭州特里斯科技有限公司开发的教学用机器人,它价格低廉,能通过上位机程序直接下载实现智能化控制。Tlsrobot 机器人操作简单,学生通过Tlsrobot 的学习破除对机器人的神秘感,为进一步学习机器人的有关知识打下基础。同时在这个学习过程中还能提高学生的逻辑思维能力、规划能力,提高学生分析问题和解决问题的能力。并培养学生的动手能力、协作能力和创新意识。2 第一章第一章 特里斯机器人的特里斯机器人的结构结构 灰度传感器 避障传感器 的右发射头 避障传感器 右前发射头 避障传感器 的右接收头 亮度传感器 亮度传感器 声音传感器 USB 下载端口 外接扩展端口 外接电源端口 万向轮 机器人右眼 机器人左眼 灰度传感器 灰度传感器 3 电源开关 菜单键 向下 向上 液晶显示器 电池槽,4 节 5 号电池 右电机 左电机 万向轮 4 第二第二章章 TlsTlsrobot robot 机器人机器人传感器的运用传感器的运用 2 2.1.1 传感器传感器 Tlsrobot 初中版机器人的标准配置传感器有:灰度传感器、声音传感器、亮度传感器、避障传感器。Tlsrobot 小学版机器人标配比初中版机器人少避障传感器和亮度传感器,本手册也适用于小学版,凡用到避障传感器和亮度传感器特指初中版机器人。【灰度传感器灰度传感器】1.特里斯机器人共配有三个灰度传感器,分别接在模拟端口0、1、2上,采用模拟量读取函数analogRead()读取模拟值。2.工作原理:灰度传感器使模拟传感器,灰度传感器利用光电接收头对不同颜色的检测对光的反射程度不同,其阻值变化的原理进行颜色深浅检测。灰度传感器有一只白色发光二极管和一只光电接收头,安装在同一面上。在有效的检测距离内,发光二极管发出的白光,照射在检测面上,检测而反射部分光线,光电接收头检测此光线的强度并将其转换为机器人可以识别的信号。3.灰度传感器模拟值范围:数值为(04095),地面越黑,值越大。【声音传感器声音传感器】1.特里斯机器人有一个声音传感器,连接在模拟端口3上。采用模拟量读取函数analogRead()读取模拟值。2.工作原理:传感器内置一个对声音敏感的电容式驻极体话筒。声波使话筒内的驻灰度条灰度条 5 极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压。这一电压随后被转化成0-5V的电压,经过A/D转换被数据采集器接受,并传送给机器人。3.声音传感器模拟值范围:数值为(0-4095),声音越强,值越小。【亮度传感器亮度传感器】1、特里斯机器人有两个亮度传感器,分别接在模拟端口5、6上,采用模拟量读取函数analogRead()读取模拟值。2、功能介绍:亮度传感器模块使用的是光电接收器作为检测元件,其对880nm 波长具有最大灵敏度,可用于可见光及红外光的接收及光电转换,具有灵敏度高,响应速度快的特点。而用其作为检测元件的亮度传感器模块也同样具有这些特点,该模块对周围环境光线强弱很敏感。3、工作原理:亮度传感器模块工作原理是利用半导体的光电导效应将外界光线的变化转化为电流的变化,在电阻上产生电压变化量,外界光线越强,模块输出电压数值越小。4、亮度传感器模拟值范围:数值为(04095),越亮、值越小。【避障传感器避障传感器】1、避障传感器由发射头和接收头组成,发射头接的是数字端口,接收头接的是模拟端口。2、工作原理图:6 3、工作原理:避障传感器由发射头和接收头组成,发射头经过调制后发出,接收 头对反射光进行解调输出。有效的避免了可见光的干扰。我们的避障传 感器最远可以检测 50 cm,但由于红外光的特性,不同颜色的物体,能 检测的最大距离也有不同;白色物体最远,黑色物体最近。根据程序控制红外发射的强度,检测返回状态判断有无障碍。4、发射强度值范围:数值为(0 10),值越大,测的距离越远,最远达50cm。5、端口定义:特里斯机器人避障传感器分4个发射头和2个接收头。发射头端口发射头端口:左发射头接的是数字端口6,内核里已定义为Left,可直接调用。左前发射头接的是数字端口7,内核里已定义为Fleft,可直接调用。右前发射头接的是数字端口8,内核里已定义为Fright,可直接调用。右发射头接的是数字端口9,内核里已定义为Right,可直接调用。接收头端口接收头端口:左接收头接的是模拟端口4,右接收头接的是模拟端口7。6、避障传感器的读写函数:testh(Left,2)返回值1表示左边有障碍,返回值0表示左边无障碍 testh(Fleft,2)检测左前障碍 testh(Fright,2)检测右前障碍 testh(Right,2)检测右障碍 2 2.2.2 智能处理智能处理 智能处理即机器人里面的主板是机器人的大脑!智能处理将传感器传送过来的信息经过智能化软件的处理形成一条条指令并发送到执行器,由执行器执行指令来完成机器人的动作。2 2.3.3 执行器执行器 Tlsrobot 机器人的执行器由喇叭、LED灯、马达、齿轮、车轮和万向轮等组成。红外发射强度值 发射头端口名 7【喇叭喇叭】:喇叭可以发出不同频率、不同音量,用到函数tong(uint32_t,uint32_t)。tong()为喇叭控制函数,前面无符号参 数为频率,第二参数 为音量。【LEDLED灯灯】:机器人的两只眼睛。左眼接的是数字端口5,我们已在内核里定义过成Leye,可以直接调用,无需定义。右眼接的是数字端口28,我们已在内核里定义过成Reye,可以直接调用,无需定义。当输出高电平HIGH或1时,灯亮,低电平LOW或0时,灯灭。【马达马达】:用于机器人行走,我们已在内核里定义过左马达Lmotor(),右马达Rmotor()可以直接调用无需定义。取值的范围:为(-4095 到 4095),数值为正数时,电机正转,数值 为负数时,电机倒转。2 2.4.4 端口端口的的定义定义:端口名称端口名称 对应传感器对应传感器 内核里内核里定义过定义过的的端口名端口名 模拟端口 0 左灰度传感器 left 模拟端口 1 中灰度传感器 med 模拟端口 2 右灰度传感器 right 模拟端口 3 声音传感器 analogRead(3)模拟端口 4 避障左接收头 Sleft 模拟端口 5 左亮度传感器 analogRead(5)模拟端口 6 右亮度传感器 analogRead(6)模拟端口 7 避障右接收头 Sright 数字端口 28 右眼睛端口 Reye 数字端口 0 数字端口 1 数字端口 2 MENU 菜单键 menu 数字端口 3 DOWN 键 down 数字端口 4 UP 键 up 数字端口 5 左眼睛端口 Leye 数字端口 6 Left 左发射头 Left 数字端口 7 Fleft 左前发射头 Fleft 数字端口 8 Fright 右前发射头 Fright 数字端口 9 Right 右发射头 Right 8 第三第三章章 Tlsrobot Tlsrobot 机器人机器人的功能的功能 Tlsrobot 机器人功能强大,它能通过上位机程序直接下载,并拥有听觉、视觉、触觉等感知系统,能通过程序设计根据感知的信息作出相应的动作驱动外部设备,能用程序实现智能化控制。上位机程序可以用图形化编程、logo 语言编程、C 语言编程。可以用Tlsrobot参加各类机器人比赛。Tlsrobot 机器人容易操作,对学生有亲和力。操作上(包括语言编程环境)通俗易懂,经简单学习就能让学生上手。机器人操作系统做到可视化、结构化、多媒体化、形象生动有趣适合各年龄段学生。Tlsrobot 机器人可施行演奏乐曲,走轨迹,走迷宫,声音控制,光线控制,眨眼睛,可在显示屏上施行画图,动漫效果,小游戏,万日历,闹钟,计算器等。第四第四章章 TlsrobotTlsrobotV V1.01.0 平台的使用平台的使用 启动程序启动程序 程序界面说明程序界面说明?TlsrobotV1.0 机器人编程平台启动后界面如下图:TlsrobotV1.0 机器人编程平台是一款绿色安装软件,只要找到解压缩文件夹TlsrobotV1.0 下面的图标为TlsrobotV1.0.exe 文件,双击运行就能启动程序。TlsrobotV1.0 9 TlsrobotV1.0 机器人编程平台软件,除了常规的菜单栏、图标栏外,主体部分分成左右两栏,左侧栏为图标模块区,右侧栏为程序编辑区。图标模块区,共分成执行器模块、控制模块、扩展模块三部分,每部分都可单击模块前的+-图标展开或收起各个模块区下的分模块。执行器模块区有端口设置、端口读写、串口读写、时间和音乐五种模块,在这五种模块中可设置端口、读写各种端口、设置串口读写串口、延时程序、系统时间读取、音乐设置,通过相应的设置会自动在程序区产生代码。基本函数基本函数?TlsrobotV1.0 机器人编程平台的程序编辑区如下图所示:10?新建文件后,程序区自动生成初始代码,初始代码中有两个基本函数:setup()和loop(),程序首先运行的是setup()函数,setup()函数只运行一次,一般只做为设置参数使用。Loop 函数是程序的主体循环函数,程序运行过程一般就在这个函数中运行。4.1 4.1 模块编程模块编程 模块编程是TlsrobotV1.0 机器人编程平台的精华,采用模块编程,程序开发人员不要去记忆一些复杂的函数,在图形化的帮助下,只要重点关注程序的逻辑,就能开发出高质量的程序,大大降低嵌入式开发的难度。采用模块编程,TlsrobotV1.0 机器人编程平台更具开放性,可以随时加入各种模块,开发不同应用的嵌入式程序。【端口输入输出模块的使用端口输入输出模块的使用】?在嵌入式开发中,对各使用端口的设置输入、输出,控制各个端口的高低,是最常用、也是最基本的使用。针对不同的硬件环境,采用不同的寄存器控制,往往使初学者不能很好掌握,TlsrobotV1.0 平台采用了封装包的形式,统一了端口控制的形式,并采用图形化的方式,学习使用更加简单。端口输入输出模块由端口设置和端口读写两部分组成。端口设置界面如下:11?图中针对硬件可设置14 个端口的输入或输出,如超过14 个端口的硬件可根据硬件引脚步序号在生成的代码中修改。?端口设置自动生成的代码为:pinMode(x,OUTPUT)或pinMode(x,INPUT)。pinMode()函数 为端口设置函数,x 为端口名称,OUTPUT 的定义对应值为1,端口状态为输出;INPUT 的定义对应值为0,端口状态为输入。?在设置界面只要选择相应端口选项,就能生成相应端口号的输入输出,生成代码后更改端口号就能控制对应端口的设置。如自动生成代码为pinMode(8,OUTPUT),把8更改为28,语句变成pinMode(28,OUTPUT),就成为控制端口28 为输出。端口读写界面如下:?端口输出使用方法类同端口设置,只有端口设置中设为输出的端口,设置输出状态。如要设置端口0 为高电平,必须先设置端口0 为输出状态。端口输出生成代码为:digitalWrite(x,HIGH)或digitalWrite(x,LOW)。digitalWrite()为输出函数,x 为对应端口号,HIGH、LOW 为端口信号电平高低。?端口输入方式有数字输入和模拟输入,数字输入返回只有0 和1 两种值,模拟输入返回值的范围0-4095。数字输入和模拟输入的引脚由硬件平台决定,勾选不同的输入引脚,就产生相应引脚读入代码。数字输入脚一般设置成输入方式,引脚电平随外接电平高低而变化,如果数字引脚设置为输出,读入的值是引脚的输出状态。模拟输入脚默认状态是输入状态,无需设置就能读入引脚的值。数字输入自动产生的代码为digitalRead(x),x为数字引脚号。模拟输入自动产生代码为analogRead(x),x 为模拟引脚号。通过使用输入引脚就能读入外部传感器的值。12 【串口的使用串口的使用】?TlsrobotV1.0 编程平台,通过PC 上的串口与硬件平台的串口通信,硬件平台通过串口读写模块设置串口,并自动产生串口设置、读写、检测代码。串口读写模块如下图:?串口读写模块共有串口速率、串口输出、串口读入、串口检测四个选项,通过勾选相应选项,产生相应代码。串口速率设置代码在setup()函数中设置,并可以在使用中随时改变不同的速率,串口速率有1200、4800、9600、14400、19200、28800、38400、57600、115200bps 九种固定速率。设置串口速率,并勾选后面的选项,自动产生的代码为Serial.begin(9600),9600 为串口速率,可手动输入其他速率,如Serial.begin(4800)。?串口输出必须在串口设置后才能使用,可以在串口输出中输出变量、数字、字符串,勾选串口输出选项,自动产生代码为Serial.println(999),()里可以是变量、数字、字符串。println 是输出带换行的输出,如不带换行的输出,可把println 改成print。串口读入和串口检测函数需配合使用,先设置串口检测,如检测到串口中有数据,再进行读入操作。串口检测自动产生代码为Serial.available(),13 Serial.available()的返回值是大于0时,说明串口有数据输入,可以读入数据,反之如果无数据输入。串口读入代码为Serial.read(),Serial.read()返回值是串口中的数据,如果串口中还有数据还没读完,Serial.available()的返回值大于0。?TlsrobotV1.0 机器人编程平台,可通过PC 串口向Tlsrobot 机器人平台发送或读取数据,通过串口监视按钮打开监视窗口。串口监视按钮在工具栏下载按钮左侧,打开串口监视窗口如下图:监视窗口先按下位机程序设置串口波特率,设置正确波特率就能向下位机发送或接收数据。【时间模块设置时间模块设置】?时间模块可以延时毫秒、延时微秒和读入系统时间。时间模块的设置界面如下:14 只要在延时文本框中输入相应数值就能自动产生相应的延时代码,如delay(1000)表示延时1000 毫秒,delayMicroseconds(1000)表示延时1000微秒。?Tlsrobot 硬件平台内有一个32 位系统计时器,每一毫秒计数一次,可通过读取系统时间读取。读取系统时间自动产生代码为millis(),millis()返回值为32 位的毫秒数,表示机器开机时间最大值为0 xFFFFFF,达到最大值又重新从0 开始计数。4.14.1总结总结练习练习(眨眼睛程序的编写眨眼睛程序的编写)?TlsrobotV1.0 机器人编程平台,采用图标设置自动产生代码方式进行编程,无需记忆函数,只要动动鼠标就能产生程序,并可直接编译下载到机器人硬件中。下面以端口1 输出控制LED 每隔一秒闪烁为例来说明编程过程。眨眼睛眨眼睛程序的基本流程程序的基本流程 15 A A.在setup()函数体语句输入行单击,准备设置端口并在单击处产生代码。B B.下面我们以一个眨眼睛的程序为列,左眼为数字端口5,内核定义为Leye,右眼端口为数字端口28,内核定义为Reye单击展开模块图标区找到端口设置模块,双击图标端口设置,出现下图界面。眨眼睛程序 在 setup()函数体里进行端口的定义 在 loop()函数体里进行程序的编写 端口设置输出端口 端口读写选择高低 左眼定义为 Leye 右眼定义为 Reye 当为高电平时,灯亮 当为低电平时,灯灭 时间模块的运用 delay()在()里写入 延迟时间,单位为微秒 16 C C.在端口5下,选择输出选项,单击确定。D D.在程序代码区setup()自动产生了pinMode(5,OUTPUT)语句。E E.在loop()主体函数中,单击要输入代码处。F F.找到端口读写模块,双击出现设置界面。17 G G.设置端口输出5为高,单击确定,自动生成代码digitalWrite(5,HIGH);H H.在执行器模块中找到时间模块,双击时间模块图标出现设置界面,在延时设置文本框中输入 1000 毫秒,单击确定自动生成延时代码delay(1000)。18 J J.重复步骤F-H,设置端口输出为低,生成代digitalWrite(5,LOW)delay(1000)。K K.至此生成了端口5 输出为一秒高电平,一秒低电平的程序。19 L L.同理,编写右眼的端口28输出为一秒高电平,一秒低电平的程序。N N.至此生成了端口5,端口28,输出为一秒高电平,一秒低电平的程序,实现眨眼睛。M.保存程序,单击菜单栏文件保存。20 程序下载程序下载?TlsrobotV1.0 机器人编程平台在程序保存后,就可编译下载。要下载程序至Zlyrobot 硬件平台,计算机必须通过USB 端口与Tlsrobot 硬件平台连接。连接完成后,点击下载里面看下串口设置,选择当USB连接时和USB没有连接时多出来的串口COM,然后再下载。编程平台就会自动把程序代码编译成机器代码,并下载到硬件平台中。4.24.2 扩展模块编程扩展模块编程 Tlsrobot 机器人编程平台最大特点在于扩展模块配置简单、引用编程容易。扩展模块只要按模块驱动标准(需另见 Tlsrobot 机器人扩展模块驱动与使用)开发模块驱动程序,把模块驱动程序拷贝到TlsrobotV1.0 机器人编程平台软件的libraries 目录中,就能直接使用。打开TlsrobotV1.0机器人编程平台,在左侧栏的扩展模块就能看到新添加模块,并可直接引用该模块的函数。?扩展模块在模块驱动的支持下,可以很方便的使用编程。扩展模块编程分已编译到内核的扩展模块和未编译到内核的模块编程。已编译到内核的扩展模块,一般是机器人硬件内置的硬件模块,已在内核中对模块的引脚进行定义,使用这类扩展模块只要引用该模块的方法就能使用模块了。如需在端口上再扩展该模块,就按未编译的扩展模块的方法使用。未编译至内核的扩展模块,一般是机器人通过端口引脚扩展模块。使用该类模块时,需先定义模块的对象和引脚,再引用该对象的方法,使用模块编程。下面以电机模块来说明已编译到内核扩展模块的编程,以四位数码管来说明未编译到内核扩展模块的编程。Tlsrobot 扩展模块种类繁多,功能强大,更多扩展模块的使用详细参阅Tlsrobot 扩展模块驱动与使用。本手册只说明扩展模块的引用方法。【电机模块的使用电机模块的使用】?Tlsrobot 机器人硬件平台内置左右电机,在扩展模块中的名称是Motor。在机器人内核中已定义了Lmotor、Rmotor 两个对象,对应的就是左电机和右电机。在需使用电机处单击,左侧栏扩展模块Motor 下找到Lmotor.Run()双击,代码自动生成Lmotor.Run(int32_t),在()里填上适当的数值,就能启动电机,21 正数值为正转,负数值为反转,0 为停止,数值范围为-40954095 之间。右电机启动就是Rmotor.Run(),使用方法类同左电机。4.24.2 电机模块总结电机模块总结练习练习(电机运行程序的编写电机运行程序的编写)电机程序编写的基本流程电机程序编写的基本流程:电机运行程序 在 setup()函数体里无需定义,直接调用 在 loop()函数体里进行程序的编写 右电机Rmotor()在()里写入转速。左电机Lmotor()在()里写入转速。22 注注:转速范围为转速范围为(-4095 4095 到到 4095 4095),),正数值电机正转正数值电机正转,负数负数值值电机倒转电机倒转。A.A.单击扩展模块里面的Motor电机模块,在Motor下会有个 Lmotor.Run(int32_t),点击Lmotor.Run(int32_t),然后 Loop()函数体里就会出现 Lmotor.Run(int32_t),然后将int32_t改成你所需要的转速值。B.B.编写右电机同左电机的编写,只要把 Lmotor.Run()的 L 改成 R 就变成右电机 Rmotor.Run()了。左电机 电机转速 23 把 L 改成 R,左电机就变右电机了。右电机 电机转速 24 单击下载按钮,下载此程序,就可以实现机器人向前直走功能了。想一想想一想?1.机器人向左转弯,向右转弯,后退,停止,程序该怎么编写呢?2.机器人在走的同时我们还能让他干什么呢?比如:眨眼睛。试一试试一试?1.让你的机器人走个正方形!【显示屏显示屏LCDLCD模块的使用模块的使用】LCD模块是内核内置模块无需自己定义可直接调用。例如:lcd.shu(unsigned char row,unsigned char page,uint32_t shu);unsigned char row为显示在第几列,unsigned char page为显示在第几行,unsigned char*shu 为要显示的变量或数字。lcd.shu()函数只是把数据写入机器人显存,需显示在屏幕必须用lcd.Update()刷新,不然无法显示。25 1.1.lcd.shu()lcd.shu()显示显示数字模块的运用数字模块的运用 取取值范围值范围:X轴的取值范围为0-7,Y轴的取值范围为0-20 X 轴的坐标 Y 轴的坐标 要显示的数 取值范围为 0-20 取值范围为 0-7 取 值 范 围 为0-4294967295 26 lcd.Update();lcd.Update();为屏幕刷新为屏幕刷新。2.2.lcd.Write_dian()lcd.Write_dian()显示点模块的运用显示点模块的运用 取值范围取值范围:X轴的取值范围为0-128,Y轴的取值范围为0-64 X 轴坐标 Y 轴坐标 1 为显示 0 为不显示 取值范围为 0-64 取值范围为 0-128 27 3.3.lcd.Hline()lcd.Hline()显示竖线模块的运用显示竖线模块的运用(画竖线时画竖线时X X轴坐标是相同的轴坐标是相同的)lcd.line()lcd.line()显示横线模块的运用显示横线模块的运用 取值范围取值范围:X轴的取值范围为0-128,Y轴的取值范围为0-64 X轴起点坐标 Y轴起点坐标 X轴终点坐标 Y轴终点坐标 Y轴起点坐标 Y轴终点坐标 X 轴坐标 28 4.4.lcd.Write_hanzi()lcd.Write_hanzi()显示汉字模块的运用显示汉字模块的运用 注:汉字显示要结合取莫软件才可用。并不是汉字直接写进去。取值范围取值范围:X轴的取值范围为0-20,Y轴的取值范围为0-7 先用汉字取模,转化成16进制,定义个数组。如图:29 然后调用这个数组,如图:5.5.lcd.hanzi()lcd.hanzi()注:lcd.hanzi()在模块里还没有,但是可以直接输进去用。用法同lcd.Write_hanzi(),就是多了显示的个数,和正反显示。如图:X 轴坐标 Y 轴坐标 要显示汉字 30 4.2 4.2 液晶屏显示总结练习液晶屏显示总结练习(显示数显示数字字程序的编写程序的编写)显示数显示数字字程序程序编写的基本流程编写的基本流程:A.A.点击扩展模块,找到,点击进去,找到,显示数字的函数,双击,在 Loop()函数体里就可以看见lcd.shu(unsigned 显示数字程序 在 setup()函数体里无需定义,直接调用 在 loop()函数体里进行程序的编写 屏幕刷新lcd.Update()显示数字lcd.shu()unsigned char row 为 X 轴坐标,unsigned char page 为 Y 轴坐标,uint32_t shu 为要显示的数。X轴起点坐标 Y轴起点坐标 显示个数 0 为正向显示 1 为反向显示 要显示汉字 31 char row,unsigned char page,uint32_t shu);修改X与Y的坐标值,写入要显示的数字。B.B.找到,屏幕刷新,用到LCD,则后面都要跟lcd.Update(),屏幕刷新,不然液晶屏不显示。因为我们写入的时候只是把数字写入存储器里,要利用屏幕刷新lcd.Update()把他读出来,从而在液晶屏上显示出来。X轴起点坐标 Y轴起点坐标 要显示的数字 32 下载此程序,我们就可以在液晶屏上看到999了。试一试试一试:1.简单的程序我们就把数字999显示在液晶屏上了,你也动手试试吧。2.试试用lcd.shu()显示你的幸运数字吧。3.试试lcd.Write_dian()点的显示 小提示小提示:bool dian为1时显示,为0时不显示。4.点的显示你会了吗?那就试试别的LCD该怎么显示?4.3 4.3 音乐模块的使用音乐模块的使用 音乐程序现在模块里还没有,要自己定义:yin=0,262,294,330,349,391,440,494;要自己手写输入,tong(yin*2,volue),tong()为音乐函数,yin为频率数组、控制音调,*2为高音,低音就不用写,volue为音量。如下图:屏幕刷新 33 试一试试一试:编一首你喜爱的音乐吧编一首你喜爱的音乐吧!4.44.4 控制模块的使用控制模块的使用?控制模块是TlsrobotV1.0 机器人编程平台产生控制结构语句的模块,是为了让使用者理解和记忆各种控制结构的语句,具体语句可参照C 语言的控制语句。【条件循环语句的使用条件循环语句的使用】双击左侧控制模块下的条件循环模块产生while()语句,语句格式为while(表达式)循环体。表达式是循环能否继续下去的条件,而语句是循环体。只要表达式为真,则执行循环体内语句。否则终止循环,执行循环体外语句。如下图所示:音符 1 高音,频率扩大两倍 音量 定义音量,赋值为 20 音符对应音乐频率的数组 34 【多次循环模块的使用多次循环模块的使用】双击左侧控制模块下的多次循环模块产生for(inti=0;i9;i+)语句,语句格式为for(表达式1;表达式2;表达式3)循环体。如下图所示:在()里进行条件判断,成立时执行循环体语句,否则,循环体语句就不执行。i 的初值 判断 i 的值 i+1 判断 i 的值成立时,执行循环体语句,然后 i 加 1,值到 i的值不成立为止,当 i 的值不成立时,就跳出循环体 35 该语句执行过程如下:先对表达式1 赋初值;判别表达式2 是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行表达式3,进入第二次循环,再判别表达式2;否则判断表达式2 的值为假,不满足条件,就终止for 循环,执行循环体外语句。【条件判断语句的使用条件判断语句的使用】双击左侧控制模块下的条件判断模块产生 if()else 语句,语句格式为if(表达式)语句块1 else语句块2。当一个判断语句中 只存在两种结果时使用该语句,执行过程如下:当表达式为真时执行语句块1,当表达式为假时 执行语句块2。操作结果如下图所示:双击中断循环产生break 语句。break 语句在循环语句中的作用是跳出本层循环,转而去执行后面的语句。使用方法与上相同。在()里进行条件判断,当成立时,执行里的语句,否则执行 else里的语句。条件不成立的时候 36 4.5 4.5 红外避障红外避障模块模块 避障传感器的编写,用到testh(Fright,ZFright)函数,Fright为右前红外端口,ZFright为右前红外的强度值。右红外为Right对应的强度值为ZRight,同理,左红外Left和左前红外为FLeft对应强度值为ZLeft和ZFleft。1.1.充分理解条件判断充分理解条件判断if()if(),elseelse()(),程序结构的使用程序结构的使用 利用条件判断if(),else()和左前红外来编写程序 左前红外testh(FLeft,ZFleft),FLeft为左前红外端口,ZFleft为强度值,调节强度值,调节避障测得的距离。2 2.端口的定义端口的定义:发射头端口发射头端口:左发射头接的是数字端口6,内核里已定义为Left,可直接调用。左前发射头接的是数字端口7,内核里已定义为Fleft,可直接调用。右前发射头接的是数字端口8,内核里已定义为Fright,可直接调用。右发射头接的是数字端口9,内核里已定义为Right,可直接调用。接收头端口接收头端口:左接收头接的是模拟端口4,右接收头接的是模拟端口7。37 4.5 4.5 红外模块总结练习红外模块总结练习(左边左边红外红外LeftLeft程序的编写程序的编写)红外避障程序编写的基本流程红外避障程序编写的基本流程:先进行条件判断先进行条件判断:当测到障碍物时,语句一;否则没测到的时候,语句2。红外避障程序 在 setup()函数体里无需定义,直接调用 在 loop()函数体里进行程序的编写 testh()函数的使用 条件判断 if()的使用 判断左红外发射头是否检测到障碍物,检测到时,testh()为1,执行 if()里面的语句,没检测到时,testh()为 0,执行 else()里面的语句。语句 1 语句 2 38 至此程序实现,当左红外避障发射头检测到障碍物时,眼睛亮,没有检测到时,眼睛灭。想一想想一想:你还能用避障实现什么功能呢??后记后记 TlsrobotV1.0 机器人编程平台,是一种通俗易懂的图形化提示编程平台,通过模块编程概念的引入,采用模块驱动程序的方法,大大简化了程序的开发,提高了代码的重用,加强了对类和对象的理解。通过短时间的学习,可以让小学生掌握嵌入式编程,降低了学习C 语言、C+语言编程的难度,提高嵌入式开发效率。
展开阅读全文