全国青少年机器人等级考试四级
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
//必备函数 在程序运行时,往复执行,通常放置主执行程序 //舵机库功能函数,该函数功能是设定舵机旋转角度,角度范围0°-180°
02
超声波的介绍
Goodmaker创客工作室
器件介绍
超声波传感器是利用超声波的特性研制而成的传感器。超声波接收到触发信号后, 模块自动发出8个40kHz的方波,同时开始计时并自动检测是否有信号返回,通 过记录超声波从开始发送到接收到回波的时间间隔,来判断前方障碍物的距离。
编码的红外波。红外遥控器有多种编码方式,最常见的红外遥控器大多使用NEC编码。
红外接收模块:红外接收模块由红外接收头组成,红外接收头是一个一体
化的红外接收电路,包含了红外监测二极管、放大器、滤波器、积分电路、 比较器等。其功能是接收红外信号并还原成发射端的波形信号。红外接收器 接收38kHz左右的红外信号。
//将results的值以十六进制输出
switch(){ case 0xFFA25D;
//如果接收到信号是遥控器的数字1,点亮led灯
{
digitalWrite(ledPin1,HIGH);
break;
} case 0xFF629D;
//如果接收到信号是遥控器的数字2,熄灭led灯Pin1,LOW);
void setup(){ pinMode(ledPin,OUTPUT); irRecv.enableIRIn(); Serial.begin(9600);
}
//必备函数 只执行一次,通常放置程序的初始化语
//启动红外接收功能 enableIRln()红外类库的成员函数:功能是初始化接收器 //初始化串口波特率为9600
示例程序
注释说明:红色本节需掌握,蓝色机器人考级4级基础知识,黑色示例说明
const int TrigPin = 3; const int EchoPin = 2; int distance;
void setup(){ Serial.begin(9600); pinMode(TrigPin,OUTPUT); pinMode(EchoPin,INPUT);
//***************************************** // 功能:巡线模式 // 参数:无 //***************************************** void lineTrack(){
intleftValue = digitalRead(trackLeft); intrightValue = digitalRead(trackRight); analogWrite(leftSpeed,intSpeed); analogWrite(rightSpeed,intSpeed);
const int trackLeft = 11; const int trackRight = 10; ini intSpeed = 110;
//左侧红外传感器DO连接引脚11 //右侧红外传感器DO连接引脚10 //设置小车运行的初始速度
void loop(){ lineTrack();
}
//运行巡线函数
工作电压:5V 有效探测距离:2mm-2.5m 感应角度范围:15° 超声波转接板的作用是为了便于连接和固定超声波传感器。
超声波有四个引脚,分别如下: GND、VCC、Trig(触发引脚)、Echo(接收引脚)
搭设说明
先将超声波传感器连接到转接板;然后用4P数据线将转接板和主控板相连接;
超声波
○ VCC连接到主控板的5V引脚 ○ GND连接到GND引脚 ○ Echo连接到引脚2 ○ Trig连接到引脚3
break;
}
}
irRecv.resume();
}
}
04
红外传感器的介绍
Goodmaker创客工作室
器件介绍
红外传感模块由红外发射管、红外接收管及整形放大电路组成。其工作原理是: 利用红外线对颜色的反射率不一样,将反射信号的强弱转化为电压信号。红外发 射管发射光线到路面,红外光遇到白色则被反射,接收管接收到反射光,经整形 电路后输出低电平;当红外光遇到黑线时则被吸收,接收管没有接收到反射光, 经整形电路后输出高电平。
03
红外遥控器组件的介绍
Goodmaker创客工作室
器件介绍
红外遥控组件分别由红外遥控器和红外接收模块两部分组成。红外遥控器将按键的编码值发送到 红外接收器模块;红外接收器模块接收遥控器的编码值,并将编码值传送给主控板。
红外遥控器:红外遥控器上的每一个按键都有各自的编码,按下按键后,遥控器就会发送对应
示例程序
注释说明:红色本节需掌握,蓝色机器人考级4级基础知识,黑色示例说明
# include <IRemote.h> const int ledPin = 2; const int irPin = 12; IRrecv irRecv(irPin); decode_results results;
//引入红外函数库<IRremote.h> //定义led灯信号引脚 //定义红外接收器信号引脚 //声明一个红外遥控对象irRecv,并初始化引脚为常量irPin //声明一个用于存储接收红外按键值的变量,名为results
红外传感模块的红外发射和接收头受环境光的干扰较大,一般来说,越靠近反射
面,效果越好。
GND
工作电压:3.3-5V 检测反射距离:10-150mm
5V电源
红外传感器有三个引脚,分别如下: GND、VCC、DO(数字引脚) 数字值可通过蓝色十字旋钮调节敏感度
红外传感器
OUT
示例程序
注释说明:红色本节需掌握,蓝色机器人考级4级基础知识,黑色示例说明
外部库的安装。外部库有两种发布方式,常用的发布方式为.zip压缩包,另一种发布方式为库源文件。 类库的使用。系统安装自带库和外部库的使用方法一样,使用时遵循如下三个步骤。 ○ 引用库的头文件 ○ 定义库对象 ○ 使用库函数
类库一般由四个部分组成: ○ 实现类库功能的源代码文件,该文件为C++,后缀为.cpp ○ 类库的头文件,为.h文件后缀的头文件。头文件定义了类库的数据和成员函数。 ○ 示例文件,是演示类库的使用方法,一般放置在类库文件的examples文件夹里。它可以通过选择 菜单“文件”→“示例”,然后选择相应类库的示例文件即可。 ○ keword.txt文件,用于描述类库给Arduino词汇表添加了哪些新的关键词,这样在ArduinoIDE里 输入库的名称或功能函数时,就会显示为彩色字体。
}
void loop(){ digitalWrite(TrigPin,LOW); delayMicroseconds(2); digitalWrite(TrigPin,HIGH); delayMicroseconds(10); digitalWrite(TrigPin,LOW); distance = pulseIn(EchoPin,HIGH) ; distance = distance / 58; Serial.print(distance); Serial.println(“cm”); delay(100);
//读取左侧引脚值 //读取右侧引脚值 //设定左侧马达的速度 //设定右侧马达的速度
if ((leftValue == 0) && (rightValue == 0)){ //左右两侧都返回低电平,说明都没有遇到黑线,执行前行函数 forward();
}else if((leftValue == 1) && (rightValue == 0)){ //左侧返回高电平,右侧返回低电平,说明右侧遇到黑线,执行左转函数 while (digitalRead(trackLeft)){ rotateLeft(); delay(5); }
void setup(){ myServo.attach(servoPin);
}
//必备函数 只执行一次,通常放置程序的初始化语句 //舵机库功能函数,该函数功能是告诉arduino将定义的舵机对象myServo连接引脚9
void loop(){ int angle = analogRead(potPin); angle = map(angle,0,1023,0,180); myServo.write(angle); delay(100);
红外遥控模块对应的红外库为IRremote。 该库能接收Sony、飞利浦、NEC和其他 品牌的遥控器信号。
红外接收器有三个引脚,分别如下: GND、VCC、DO
获取红外编码
红外接收模块 红外遥控器
通过简单的代码,打印串口查看遥控中的数字1,2键分别对应的是怎样的串码?
通过串口代码我们可以得知: 遥控器中的数字1键,对应的是:FFA25D 遥控器中的数字2键,对应的是:FF629D
工作电压:3.5-6V 转动范围:0°-180° 扭矩:1.6N.m(电压4.8V时)
舵机有三个杜邦线母口接口,含义分别如下: 褐色连线:GND 红色连线:VCC 黄色连线:信号端
舵机类库
舵机
什么是Arduino类库呢?Arduino类库是操控特定硬件的源程序代码的集合。在Arduino程序中,直 接调用类库中封装的功能函数,就可以直接使用该硬件。有了类库,就可以忽略硬件复杂的底层操作, 把更多的精力放到创意中去。 Arduino类库从安装方式分为三类: ○ 核心库,例如Serial库 ○ 软件安装自带库,例如Servo库等 ○ 外部库,例如IRemote库等
扩展知识
距离换算中的58是如何推导而来的呢?
○ 声音在空气中的速度约340m/s=0.034cm/us ○ 如果测距脉冲宽度是x微秒,距离:0.034*x=0.017*t ○ 1/58≈0.017
pulseIn()函数的用法: pulseIn(pin,value,timeout); pin:要进行脉冲计时的引脚号 value:要读取的脉冲类型(HIGH或LOW) timeout:可选,指定脉冲计数的等待时间,单位us, 默认值是1s 返回值:脉冲时长,单位us,如果超时返回0
机器人基础技术教学系列
全国青少年机器人等级考试
四空级白普演惠课示程
Speaker name and title here
目录
知识点:
前言
四级考试纲要
实操搭建:
10
超声波调档风扇
01
舵机的介绍
11 红外遥控变速风扇
02
超声波的介绍
12 红外遥控摇头风扇
03 红外遥控器的介绍
13
人工闸道
04 红外传感器的介绍
void loop(){
//必备函数 在程序运行时,往复执行,通常放置主执行程序
if(irRecv.decode(&results)){
//接收红外数据并赋值给results decode()红外类库的成员函数:如果有数据返回true
Serial.println(results.value,HEX);
示例程序
注释说明:红色本节需掌握,蓝色机器人考级4级基础知识,黑色示例说明
# include < Servo.h> Servo myServo; const int servoPin = 12; const int potPin = A0;
//导入库的头文件 //新建一个舵机对象myServo //设置舵机的连接引脚为12 //设置电位器的连接引脚为A0
}
//超声波的触发引脚连接引脚3 //超声波的接收引脚连接引脚2 //定义全局变量,保存距离 //必备函数 只执行一次,通常放置程序的初始化语句
//必备函数 在程序运行时,往复执行,通常放置主执行程序 //使发出超声波信号接口低电平2us(微秒) //使发出超声波信号接口高电平10us,至少10us //保持发出超声波信号接口低电平 //系统内建函数,用来读取一个引脚的脉冲(HIGH或LOW)时间 //将脉冲时间转化为距离(单位:厘米) //串口输出变量值
14
超声波自动闸道
05
电机的介绍
15
智能小车拼搭
实操搭建:
16 红外自动避障车
06
舵机的使用
17 仿扫地机悬崖躲避车
07 超声波之迎宾招财猫
18
08
遥控小灯
19
巡线小车 红外遥控小车
09
按键调档风扇
Goodmaker创客工作室
01
舵机的介绍
Goodmaker创客工作室
器件介绍
舵机是一种精确定位角度的执行器。舵机由直流电机、减速齿轮组、传感器和控 制电路组成。在微机电系统和航模中舵机常用作基本的输出执行机构。
//必备函数 在程序运行时,往复执行,通常放置主执行程序 //舵机库功能函数,该函数功能是设定舵机旋转角度,角度范围0°-180°
02
超声波的介绍
Goodmaker创客工作室
器件介绍
超声波传感器是利用超声波的特性研制而成的传感器。超声波接收到触发信号后, 模块自动发出8个40kHz的方波,同时开始计时并自动检测是否有信号返回,通 过记录超声波从开始发送到接收到回波的时间间隔,来判断前方障碍物的距离。
编码的红外波。红外遥控器有多种编码方式,最常见的红外遥控器大多使用NEC编码。
红外接收模块:红外接收模块由红外接收头组成,红外接收头是一个一体
化的红外接收电路,包含了红外监测二极管、放大器、滤波器、积分电路、 比较器等。其功能是接收红外信号并还原成发射端的波形信号。红外接收器 接收38kHz左右的红外信号。
//将results的值以十六进制输出
switch(){ case 0xFFA25D;
//如果接收到信号是遥控器的数字1,点亮led灯
{
digitalWrite(ledPin1,HIGH);
break;
} case 0xFF629D;
//如果接收到信号是遥控器的数字2,熄灭led灯Pin1,LOW);
void setup(){ pinMode(ledPin,OUTPUT); irRecv.enableIRIn(); Serial.begin(9600);
}
//必备函数 只执行一次,通常放置程序的初始化语
//启动红外接收功能 enableIRln()红外类库的成员函数:功能是初始化接收器 //初始化串口波特率为9600
示例程序
注释说明:红色本节需掌握,蓝色机器人考级4级基础知识,黑色示例说明
const int TrigPin = 3; const int EchoPin = 2; int distance;
void setup(){ Serial.begin(9600); pinMode(TrigPin,OUTPUT); pinMode(EchoPin,INPUT);
//***************************************** // 功能:巡线模式 // 参数:无 //***************************************** void lineTrack(){
intleftValue = digitalRead(trackLeft); intrightValue = digitalRead(trackRight); analogWrite(leftSpeed,intSpeed); analogWrite(rightSpeed,intSpeed);
const int trackLeft = 11; const int trackRight = 10; ini intSpeed = 110;
//左侧红外传感器DO连接引脚11 //右侧红外传感器DO连接引脚10 //设置小车运行的初始速度
void loop(){ lineTrack();
}
//运行巡线函数
工作电压:5V 有效探测距离:2mm-2.5m 感应角度范围:15° 超声波转接板的作用是为了便于连接和固定超声波传感器。
超声波有四个引脚,分别如下: GND、VCC、Trig(触发引脚)、Echo(接收引脚)
搭设说明
先将超声波传感器连接到转接板;然后用4P数据线将转接板和主控板相连接;
超声波
○ VCC连接到主控板的5V引脚 ○ GND连接到GND引脚 ○ Echo连接到引脚2 ○ Trig连接到引脚3
break;
}
}
irRecv.resume();
}
}
04
红外传感器的介绍
Goodmaker创客工作室
器件介绍
红外传感模块由红外发射管、红外接收管及整形放大电路组成。其工作原理是: 利用红外线对颜色的反射率不一样,将反射信号的强弱转化为电压信号。红外发 射管发射光线到路面,红外光遇到白色则被反射,接收管接收到反射光,经整形 电路后输出低电平;当红外光遇到黑线时则被吸收,接收管没有接收到反射光, 经整形电路后输出高电平。
03
红外遥控器组件的介绍
Goodmaker创客工作室
器件介绍
红外遥控组件分别由红外遥控器和红外接收模块两部分组成。红外遥控器将按键的编码值发送到 红外接收器模块;红外接收器模块接收遥控器的编码值,并将编码值传送给主控板。
红外遥控器:红外遥控器上的每一个按键都有各自的编码,按下按键后,遥控器就会发送对应
示例程序
注释说明:红色本节需掌握,蓝色机器人考级4级基础知识,黑色示例说明
# include <IRemote.h> const int ledPin = 2; const int irPin = 12; IRrecv irRecv(irPin); decode_results results;
//引入红外函数库<IRremote.h> //定义led灯信号引脚 //定义红外接收器信号引脚 //声明一个红外遥控对象irRecv,并初始化引脚为常量irPin //声明一个用于存储接收红外按键值的变量,名为results
红外传感模块的红外发射和接收头受环境光的干扰较大,一般来说,越靠近反射
面,效果越好。
GND
工作电压:3.3-5V 检测反射距离:10-150mm
5V电源
红外传感器有三个引脚,分别如下: GND、VCC、DO(数字引脚) 数字值可通过蓝色十字旋钮调节敏感度
红外传感器
OUT
示例程序
注释说明:红色本节需掌握,蓝色机器人考级4级基础知识,黑色示例说明
外部库的安装。外部库有两种发布方式,常用的发布方式为.zip压缩包,另一种发布方式为库源文件。 类库的使用。系统安装自带库和外部库的使用方法一样,使用时遵循如下三个步骤。 ○ 引用库的头文件 ○ 定义库对象 ○ 使用库函数
类库一般由四个部分组成: ○ 实现类库功能的源代码文件,该文件为C++,后缀为.cpp ○ 类库的头文件,为.h文件后缀的头文件。头文件定义了类库的数据和成员函数。 ○ 示例文件,是演示类库的使用方法,一般放置在类库文件的examples文件夹里。它可以通过选择 菜单“文件”→“示例”,然后选择相应类库的示例文件即可。 ○ keword.txt文件,用于描述类库给Arduino词汇表添加了哪些新的关键词,这样在ArduinoIDE里 输入库的名称或功能函数时,就会显示为彩色字体。
}
void loop(){ digitalWrite(TrigPin,LOW); delayMicroseconds(2); digitalWrite(TrigPin,HIGH); delayMicroseconds(10); digitalWrite(TrigPin,LOW); distance = pulseIn(EchoPin,HIGH) ; distance = distance / 58; Serial.print(distance); Serial.println(“cm”); delay(100);
//读取左侧引脚值 //读取右侧引脚值 //设定左侧马达的速度 //设定右侧马达的速度
if ((leftValue == 0) && (rightValue == 0)){ //左右两侧都返回低电平,说明都没有遇到黑线,执行前行函数 forward();
}else if((leftValue == 1) && (rightValue == 0)){ //左侧返回高电平,右侧返回低电平,说明右侧遇到黑线,执行左转函数 while (digitalRead(trackLeft)){ rotateLeft(); delay(5); }
void setup(){ myServo.attach(servoPin);
}
//必备函数 只执行一次,通常放置程序的初始化语句 //舵机库功能函数,该函数功能是告诉arduino将定义的舵机对象myServo连接引脚9
void loop(){ int angle = analogRead(potPin); angle = map(angle,0,1023,0,180); myServo.write(angle); delay(100);
红外遥控模块对应的红外库为IRremote。 该库能接收Sony、飞利浦、NEC和其他 品牌的遥控器信号。
红外接收器有三个引脚,分别如下: GND、VCC、DO
获取红外编码
红外接收模块 红外遥控器
通过简单的代码,打印串口查看遥控中的数字1,2键分别对应的是怎样的串码?
通过串口代码我们可以得知: 遥控器中的数字1键,对应的是:FFA25D 遥控器中的数字2键,对应的是:FF629D
工作电压:3.5-6V 转动范围:0°-180° 扭矩:1.6N.m(电压4.8V时)
舵机有三个杜邦线母口接口,含义分别如下: 褐色连线:GND 红色连线:VCC 黄色连线:信号端
舵机类库
舵机
什么是Arduino类库呢?Arduino类库是操控特定硬件的源程序代码的集合。在Arduino程序中,直 接调用类库中封装的功能函数,就可以直接使用该硬件。有了类库,就可以忽略硬件复杂的底层操作, 把更多的精力放到创意中去。 Arduino类库从安装方式分为三类: ○ 核心库,例如Serial库 ○ 软件安装自带库,例如Servo库等 ○ 外部库,例如IRemote库等
扩展知识
距离换算中的58是如何推导而来的呢?
○ 声音在空气中的速度约340m/s=0.034cm/us ○ 如果测距脉冲宽度是x微秒,距离:0.034*x=0.017*t ○ 1/58≈0.017
pulseIn()函数的用法: pulseIn(pin,value,timeout); pin:要进行脉冲计时的引脚号 value:要读取的脉冲类型(HIGH或LOW) timeout:可选,指定脉冲计数的等待时间,单位us, 默认值是1s 返回值:脉冲时长,单位us,如果超时返回0
机器人基础技术教学系列
全国青少年机器人等级考试
四空级白普演惠课示程
Speaker name and title here
目录
知识点:
前言
四级考试纲要
实操搭建:
10
超声波调档风扇
01
舵机的介绍
11 红外遥控变速风扇
02
超声波的介绍
12 红外遥控摇头风扇
03 红外遥控器的介绍
13
人工闸道
04 红外传感器的介绍
void loop(){
//必备函数 在程序运行时,往复执行,通常放置主执行程序
if(irRecv.decode(&results)){
//接收红外数据并赋值给results decode()红外类库的成员函数:如果有数据返回true
Serial.println(results.value,HEX);
示例程序
注释说明:红色本节需掌握,蓝色机器人考级4级基础知识,黑色示例说明
# include < Servo.h> Servo myServo; const int servoPin = 12; const int potPin = A0;
//导入库的头文件 //新建一个舵机对象myServo //设置舵机的连接引脚为12 //设置电位器的连接引脚为A0
}
//超声波的触发引脚连接引脚3 //超声波的接收引脚连接引脚2 //定义全局变量,保存距离 //必备函数 只执行一次,通常放置程序的初始化语句
//必备函数 在程序运行时,往复执行,通常放置主执行程序 //使发出超声波信号接口低电平2us(微秒) //使发出超声波信号接口高电平10us,至少10us //保持发出超声波信号接口低电平 //系统内建函数,用来读取一个引脚的脉冲(HIGH或LOW)时间 //将脉冲时间转化为距离(单位:厘米) //串口输出变量值
14
超声波自动闸道
05
电机的介绍
15
智能小车拼搭
实操搭建:
16 红外自动避障车
06
舵机的使用
17 仿扫地机悬崖躲避车
07 超声波之迎宾招财猫
18
08
遥控小灯
19
巡线小车 红外遥控小车
09
按键调档风扇
Goodmaker创客工作室
01
舵机的介绍
Goodmaker创客工作室
器件介绍
舵机是一种精确定位角度的执行器。舵机由直流电机、减速齿轮组、传感器和控 制电路组成。在微机电系统和航模中舵机常用作基本的输出执行机构。