网站开发中视屏怎样编辑到网页上,平面设计接单价格表,厦门专业的网站建设,自动生成网址的软件目录
一、题目
#xff08;一#xff09;试题原题
#xff08;二#xff09;试题解读
1、欢迎区和欢送区范围
#xff08;1#xff09;符合习惯
#xff08;2#xff09;以门为参考点会有不反应区
#xff08;3#xff09;以门为参考点门里门外不反应区不对称…目录
一、题目
一试题原题
二试题解读
1、欢迎区和欢送区范围
1符合习惯
2以门为参考点会有不反应区
3以门为参考点门里门外不反应区不对称
2、超声波传感器的安装位置
1从安装习惯分析
2从欢迎区欢送区范围分析
3、机器人反应条件
二、示意图
三、流程图
四、硬件连接
1、舵机
2、超声波
3、LED灯
五、程序 一、题目
一试题原题 实操考题(共1题共100分) 1. 主题 迎宾机器人 器件Atmega328P主控板1块舵机1个超声波传感器1个LED灯2个(分别为LED_A和LED_B)及相应辅件。以上模块也可使用分立器件结合面包板搭建。 任务要求 使用超声波传感器和舵机实现迎宾机器人的眼睛和手的功能。大门位于超声波传感器前方15厘米的位置在大门内侧设定了欢送区范围为5-15厘米在大门外侧设定了欢迎区范围为15-25厘米。LED_A位于欢送区LED_B位于欢迎区舵机则位于大门处迎宾机器人的主要任务要求如下 1当没有客人进出时舵机位于90度位置LED_A和LED_B均熄灭 2当客人经过欢送区时舵机在30-90度之间循环转动挥手示意同时LED_A闪烁LED_B均熄灭 3当客人经过欢迎区时舵机在90-150度之间循环转动挥手示意同时LED_B闪烁LED_A均熄灭 4控制程序采用Arduino C/C代码编写 5未作规定处可自行处理无明显与事实违背即可。 说明请考生在考试结束前按照如下要求提交相关文件。 1将程序放在一个文件夹中压缩为1个“rar或zip”格式文件并命名为DJKS4_身份证号大小5M以下 2将程序文件通过“上传附件”按钮进行上传 3 程序编写过程中不得打开其它示例程序不得使用图形化软件生成代码如发现实操成绩按照0分处理。 参考资料舵机类库及常用成员函数如下供参考。 舵机类库 头文件Servo.h 类库对象Servo 成员函数attach(Pin) //指定引脚的关联引脚 write(angle) //功能是让舵机转动到指定的角度 二试题解读
1、欢迎区和欢送区范围
题目中对于欢迎区和欢送区的描述如下“大门位于超声波传感器前方15厘米的位置在大门内侧设定了欢送区范围为5-15厘米在大门外侧设定了欢迎区范围为15-25厘米。”
仔细阅读题目发现欢迎区和欢送区的距离范围没有给参考点是以门为参考点还是以超声波传感器为参考点经过分析我觉得是以超声波传感器为参考点比较合理原因有以下三点
1符合习惯
因为超声波传感器就是用来测距的题目中涉及的距离应该是跟超声波传感器相关的而且直接给出距离超声波传感器的距离就不用再去额外计算了。
2以门为参考点会有不反应区
如果以门为参考点那就是门内侧0~5厘米和门外侧0~15厘米是不反应区设置这个区域似乎没有太大必要。
3以门为参考点门里门外不反应区不对称
如果以门为参考点门里的不反应区长度是5厘米门外是10厘米两个区域不对称也不太合理。
所以经过以上分析题目中所说的距离范围应该是指到超声波传感器正前方的距离。
2、超声波传感器的安装位置
题目中只介绍了大门位于超声波传感器前方15厘米但没说传感器是安在门里还是门外我们还需要分析一下。
1从安装习惯分析
因为普通的超声波传感器模块是没有外壳的不防水安在门外易受潮损坏而且超声波传感器位置不能太高安在门里也可以防止人为恶意损坏。
2从欢迎区欢送区范围分析
如果安在门外那么门外区域距离传感器更近也就是5~15厘米的范围在门外应该属于欢迎区与题目的要求矛盾。
所以经过以上分析超声波传感器安装位置应该是在门里。
3、机器人反应条件
题目中要求客人经过欢迎区和欢送区时机器人分别做出不同反应反应的条件是“经过”而“经过”还分进门和出门题目中没有做区分。如果客人在出门时经过欢迎区是要离开店铺机器人做出欢迎的反应显然是不合理的同样如果客人在进门时经过欢送区是要进店消费机器人做出欢送的反应也是不合理的。
所以为了使机器人更加合理实用本文将“经过”做了合理化区分进门时经过欢迎区才做出欢迎的反应出门时经过欢送区才做出欢送的反应。
二、示意图
根据以上的分析画出相关位置示意图如下所示。 三、流程图
对“经过”的合理化区分后的流程图如下所示注意灯的闪烁频率是与机器人舵机摆动的频率是一致的灯的闪烁频率没有单独设置简化了程序。 四、硬件连接
1、舵机
电源线正极接在VCC上电源负极接在GND上信号线接在D12脚。
2、超声波
电源线正极接在VCC上电源负极接在GND上Trig信号线接在D3脚Echo信号线接在D2脚。
3、LED灯
LED_A灯模块用红色负极接在GND上正极接在D6脚。
LED_B灯模块用绿色负极接在GND上正极接在D7脚。
五、程序
#include Servo.hServo myServo; //声明Servo对象
int distance0; //声明距离变量用于存储超声波传感器本次测得障碍物距离
int predistance0 //声明距离变量用于存储超声波传感器上一次测得障碍物距离
int angle; //声明舵机角度变量
const int servoPin12; //设置舵机信号引脚
const int TrigPin3; //设置Trig信号引脚
const int EchoPin2; //设置Echo信号引脚
const int LED_A6; //设置LED_A引脚
const int LED_B7; //设置LED_B引脚
int delaytime10; //设置舵机转到延时boolean In_Or_Outfalse; //设置判断进门出门布尔变量true代表进门false代表出门//初始化函数
void setup() {pinMode(LED_A,OUTPUT); //设置LED_A引脚为输出模式pinMode(LED_B,OUTPUT); //设置LED_B引脚为输出模式pinMode(TrigPin,OUTPUT); //设置TrigPin引脚为输出模式pinMode(EchoPin,INPUT); //设置EchoPin引脚为输入模式myServo.attach(servoPin); //绑定舵机引脚myServo.write(90); //初始化舵机旋转到90度digitalWrite(LED_A,LOW); //初始化LED_A熄灭digitalWrite(LED_B,LOW); //初始化LED_B熄灭}//循环函数
void loop() {predistancedistance;//存储上一次超声波传感器测得的距离//以下6行程序作用读取本次超声波传感器前方障碍物距离digitalWrite(TrigPin,LOW);delayMicroseconds(2);digitalWrite(TrigPin,HIGH);delayMicroseconds(10);digitalWrite(TrigPin,LOW); distancepulseIn(EchoPin,HIGH)/58.0;if(distancepredistance){In_Or_Outfalse;}else if(distancepredistance){In_Or_Outtrue;}//如果障碍物距离在欢送区内且出门状态if((distance5 distance15) !In_Or_Out){digitalWrite(LED_B,LOW); //LED_B灯熄灭digitalWrite(LED_A,HIGH); //LED_A灯点亮//以下for循环作用舵机从30度旋转到90度for(angle30;angle90;angle){myServo.write(angle);delay(time);}digitalWrite(LED_A,LOW); //LED_A灯熄灭//以下for循环作用舵机从90度旋转到30度for(angle90;angle30;angle--){myServo.write(angle);delay(time);} }//如果障碍物距离在欢迎区内且进门状态else if((distance15 distance25) In_Or_Out){digitalWrite(LED_A,LOW); //LED_A灯熄灭digitalWrite(LED_B,HIGH); //LED_B灯点亮//以下for循环作用舵机从90度旋转到150度for(angle90;iangle150;angle){myServo.write(angle);delay(time);}digitalWrite(LED_B,LOW); //LED_B灯熄灭//以下for循环作用舵机从150度旋转到90度for(angle150;angle90;angle--){myServo.write(angle);delay(time);}}//如果不符合机器人反应条件else{myServo.write(90); digitalWrite(LED_A,LOW);digitalWrite(LED_B,LOW);}}