第八课.倒车雷达
2019-08-07 本文已影响121人
MT521
课前学习
单词 | 含义 |
---|---|
buzzer | 蜂鸣器 |
distance | 距离 |
一.进制
1.什么是进制?
进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数)。
2.生活中的进制
关于进制,我们平时接触的最多的就是十进制,用于计数。除了常用十进制,比较常用的还有跟时间相关的进制,比如七进制(一周七天)、十二进制(一年12个月)、二十四进制(一天24小时)、三十进制(一月30天)、六十进制(一小时60分钟)等。
3.二进制的由来
发明二进制的德国数学家哲学家莱布尼茨(1646-1716)是计算机科学的奠基人, 莱布尼茨有个神父朋友叫白晋,早年就来到中国传播主的福音,痴迷于中国文化尤其是《易经》的博大精深,莱布尼茨在1703年收到白晋寄自中国的邵雍版《伏羲六十四卦方位图》,并在同年发表了《论单纯使用0和1的二进制算术兼论其用途及它赋予伏羲所使用的古老图形的意义》一文。
4.二进制与十进制的相互转换
-
十进制转二进制方法:除2取余法
十进制转发进制
十进制转二进制的例子 -
二进制转十进制方法:把二进制数按权展开、相加即得十进制数。
二进制转十进制的例子
二.超声波传感器
1.什么是超声波传感器?
超声波测距模块是用来测量距离的一种产品,通过发送和就接收超声波,利用时间差和声音传播速度,计算出模块到前方障碍物的距离。 超声波传感器2.特点
HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。
3.工作原理
- 1.采用IO口TRIG触发测距,给最少10us的高电平信呈。
- 2.模块自动发送8个40Khz的方波,自动检测是否有高电平返回;
- 3.有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。
三.制作倒车雷达
1.作品说明
倒车雷达(PDC,Parking Distance Control)全称叫“倒车防撞雷达”,也叫“泊车辅助装置”,是汽车泊车或者倒车时的安全辅助装置,由超声波传感器(俗称探头)、控制器和显示器(或蜂鸣器)等部分组成。在倒车时,帮助司机“看见”后视镜里看不见的东西,以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员泊车、倒车和起动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊的缺陷,提高驾驶的安全性。倒车雷达也存在一定的盲区,包括过于低矮的障碍物(低于探头中心10~15cm以下的障碍物)、过细的障碍物(例如隔离桩、斜拉钢缆)还有沟坎。 倒车雷达示意图2.准备器材
名称 | 实物图 | 数量 |
---|---|---|
主控板 | 1 | |
面包板 | 1 | |
超声波传感器 | 1 | |
无源蜂鸣器 | 1 | |
LED灯 | ||
220欧姆电阻 | 1 | |
导线 | 若干 |
3.画电路连接图
电路连接图4.实物连接图
实物连接图5.程序设计
(模块代码) 模块代码设计(英文代码)
volatile int distance;
float checkdistance_10_9() {
digitalWrite(10, LOW);
delayMicroseconds(2);
digitalWrite(10, HIGH);
delayMicroseconds(10);
digitalWrite(10, LOW);
float distance = pulseIn(9, HIGH) / 58.00;
delay(10);
return distance;
}
void setup(){
distance = 0;
pinMode(10, OUTPUT);
pinMode(9, INPUT);
pinMode(2, OUTPUT);
pinMode(11, OUTPUT);
}
void loop(){
distance = checkdistance_10_9();
if (distance <= 40 && distance > 20) {
digitalWrite(2,HIGH);
tone(11,988,50);
delay(1000);
digitalWrite(2,LOW);
tone(11,988,50);
} else if (distance <= 20 && distance > 10) {
digitalWrite(2,HIGH);
tone(11,587,50);
delay(400);
digitalWrite(2,LOW);
tone(11,587,50);
} else if (distance <= 10) {
digitalWrite(2,HIGH);
tone(11,988,50);
delay(100);
} else {
digitalWrite(2,LOW);
}
}