利用传感器数据检测讲授循环结构的教学方法

时间:2022-09-09 01:21:11

利用传感器数据检测讲授循环结构的教学方法

【摘 要】在编写的程序中加入循环结构,加入相关的知识点,就能够学好循环结构的编程,当学生理解了循环结构和用法就能够将知识用到机器人完成任务的各种循环程序编写了。

【关键词】传感器数据;循环结构

机器人能够自动运行需要传感器,机器人传感器有多种,比如:红外传感器、角度传感器、超声波传感器、灰度传感器、指南针传感器等,在乐高机器人主控器上有自带的传感器检测程序,而其他类型的多数机器人需要使用者自己编写检测程序。用好传感器就能充分激发调动学生学习机器人兴趣,如用机器人指南针来检测房屋的方向,看看是不是正南正北,偏离多大的角度;利用灰度传感器来测一测皮肤、头发的光亮值等。

以下以未来伙伴机器人的JC代码编程来讲述如何使用传感器检测讲解循环程序的编写教学方法。

一、传感器的简单检测程序运行讨论

样例程序:

int a=0;

void main()

{

a = AI(0);

printf(“a =%d”,a);

}

二、简单改进,引入while最简单的循环,分析结构,观察现象分析,理解while(1)循环

新知识点:while循环结构,循环条件“1”“0”的意义。

检测样例程序

int a=0;

void main()

{

while(1)

{

a=AI(0);

printf("a=%d",a);

}

}

三、能够随时保持记录数据的程序

新知识点:1.while循环条件使用传感器数据作为条件。2.循环条件的获取和处理。3.循环条件的数据类型。

在检测中增加一个按钮,接在DI端口上的就是数字类型,获取值是“1”或“0”,接在AI端口上就是模拟,获取值是可能是0~254(具体由主控器厂商设定),下面以按钮接在模拟口为例编程,程序分析见后面的注释。

int a=1024; //按钮获取数据存放到a

int m=0; //检测的传感器数据存放到m

void main()

{

a=AI(0); //为进入下面循环获得循环条件的数据

while(a≥500) //按钮不按下a值为1024,满足循环条件循环

{

m=AI(4);

//传感器检测

printf(“m=%d”,m); //传感器检测的数据显示出来

wait(0.300000); //降低数据显示的闪烁有利于读取数据

a=AI(0); //更新循环条件,监测按钮是否按下,当按下时a==0

}

wait(20); //显示保持

}

这个程序能够在程序获取到数据的瞬间按下按钮,数据就可以停留在显示屏上一段时间。但它的缺点是要重新检测就要重新启动程序。

四、可以重复检测好用的检测程序

知识点:循环嵌套程序

int a=1024;

int m=0;

void main( )

{

a = AI(0);

while(1) 无限循环,循环内检测、数据保持可重复进行 {

while(a ≥ 500)

{

m=AI(4);

printf( “m =%d” ,m);

wait( 0.300000 );

a = AI(0); //按钮检测,当按下时a==0

}

while(a <500) //按钮按下,程序在此循环不断检测按钮数据,读数保持

{

a = AI(0);

}

}

}

五、智能多传感器检测程序

一些机器人显示屏显示空间有限,采用循环程序加上一些运算等,就可以将我们要知道的一些数据逐一显示出来,下例程序有采用while循环进行检测数据并且用一些变量来存储数据,亦有采用while循环来显示数据同时等待按钮按下显示下一个数据内容。

int a,b,min1,min2,max1,max2,n,an;

void main()

{

min1 = AI(4); //AI(4)最小值

max1 = AI(4); //AI(4)最大值

min2 = AI(5); //AI(5)最小值

max2 = AI(5); //AI(5)最大值

an=AI(0); //an存放按钮状态

通过以上对传感器一系列数据检测程序的编写和实际检测,加上教师对程序结构和相关知识的讲解,能够使学生掌握循环程序的结构有了较深的理解。在此基础上就可以引导学生用循环程序来解决机器人智能行走、智能完成一些较为复杂的任务等。

【参考文献】

[1]徐科军.传感器与检测技术[M].北京:电子工业出版社,2007

[2]李科杰.新编传感器技术手册[M].北京:国防工业出版社,2003

上一篇:国际工程招投标投标分析浅论 下一篇:中职校《职业生涯规划》课程评价改革的实践与...