8334180 发表于 2014-4-16 22:02:49

Arduino机器人第5课:变速风扇

    《变速风扇》是第二章《智能风扇》的第二个专题,主要涉及到超声波传感器和红外遥控两个模块,要求学生能通过超声波传感器制作出自动变速风扇,通过红外遥控制作出遥控风扇。在程序的难度上,增加了库函数的调用。    本文主要对本次课的重难点、主要教学设计的设计意图以及学生上课的反馈做部分说明。         相关资源下载地址:http://pan.baidu.com/s/1pJ0kk0V 密码:2ebm    本课程的讨论地址:https://mc.dfrobot.com.cn/forum-75-1.html
    1.自动变速风扇    自动变速风扇用到的主要是HC-SR04超声波传感器,在使用时,应先将其插好在电路板上再通电,避免产生高电平的误动作,如果产生了,重新通电方可解决,引脚定义如下:
引脚说明
VCC电源+5V输入
GND电源地线
Echo超声波接收端
Trig超声波发射端
自动变速风扇则是根据超声波测到的其与障碍物的距离自动改变风扇转动的速度。在为学生讲述完超声波测距的原理之后,我们发给学生一个超声波测距的函数,然后让学生参考此函数编写自动变速风扇的程序。我发现,大部分学生都能够通过小组两人的合作将程序编写出来。程序如下:int supersonic(int trigpin,int echopin){
int s;
digitalWrite(trigpin,LOW);
delayMicroseconds(2);
digitalWrite(trigpin,HIGH);
delayMicroseconds(10);
digitalWrite(trigpin,LOW);
s=pulseIn(echopin,HIGH);
s=s/58;
return(s);
}
void setup() {
pinMode(5,OUTPUT);
pinMode(10,OUTPUT);//Trig
pinMode(9,INPUT);//Echo
}
void loop() {
int s;
s=supersonic(10,9);
if(s<100){
    analogWrite(5,map(s,2,450,40,255));
}
else{
    digitalWrite(5,LOW);
}
}这部分,我主要是想让学生知道,Arduino也是可以进行函数的引用的,如超声波测距的函数。注意:Ardublock中提供了超声波的函数,低年级的学生,用Ardublock可以做这个范例。
2.遥控风扇
遥控风扇主要使用的是红外遥控套件,包括红外接收头和红外遥控器。红外接收头的接线顺序为:D接数字口,VCC接5V,GND接GND。红外遥控器有21个按键,并有对应的键值,在使用时,通过键值对遥控器进行解码,我们用到的红外遥控器的键值(十进制的数值),将红外遥控器键值附表发给学生,并将红外遥控的库发给学生,让学生将库放到Arduino的库中。然后,我将最简单的一种遥控风扇的程序发给学生,让他们下载程序并察看现象。有的学生则根据我的程序改编成更加复杂多样的遥控,比如有遥控换挡风扇。我发给学生的参考程序如下:#include
IRrecv irrecv(11);//红外接收头
decode_results results;
void setup() {
irrecv.enableIRIn();
pinMode(5,OUTPUT);
}
void loop() {
if(irrecv.decode(&results)){
    long remote=results.value;
    if(remote==16580863){//红色键
      analogWrite(5,100);
    }
    else if(remote==16597183){//STOP
      analogWrite(5,0);
    }
    irrecv.resume();//等待下一次
}
}在这部分,我试图让学生接触并理解Arduino的库函数,从课堂实际教学看来,通过本节课,学生对库函数已经有了初步认识。
注意:目前Ardublock还没有支持遥控套件,但是Ardublock的开发者已经在写新的版本,请各位拭目以待。我发现学生对遥控和Arduino结合还是很感兴趣的。在小车的专题中,我们还设计了遥控小车这一专题,把机器人变成遥控车。
下图便是一个变速风扇加遥控风扇的组合体。

Grey 发表于 2014-4-17 18:13:07

可以把红外换成蓝牙,这样手机也能当做遥控器用了,现在小盆友玩手机,不要太快哦
页: [1]
查看完整版本: Arduino机器人第5课:变速风扇