倒车雷达已经非常普遍,这个专案做一个倒车雷达系统。将这个倒车雷达系统整合到遥控车里,就可以实现自动倒车的功能。
硬件方面,我们使用的开发板是webduino,webduino的优点是可以因为web的开发模式简单达成跨平台的需求,亦可以因为网络联机而能遥控操作,缺点则是也受限于网络联机,若无网络则无法运作。
开发工具
Ameba 8195AM
N条连接线蜂鸣器*1
超音波模块*1
超音波链接库(library)
面包版
系统连接如下图
程序代码如下
#include
#define TRIGGER_PIN 12 // 定义模块triger端为数字接脚12
#define ECHO_PIN 13 // 定义模块echo端为数字接脚11
int spk=8; // 定义扬声器为数位接脚13
Ultrasonic ultrasonic(TRIGGER_PIN,ECHO_PIN); //设定HC-SR04初始化参数
void setup()
{
Serial.begin(9600);
pinMode(spk, OUTPUT);
}
void loop()
{
float cmMsec; // 定义浮动数
long microsec = ultrasonic.timing(); //测距,返回的是一个时间单位(microsec)
cmMsec =ultrasonic.convert(microsec,Ultrasonic::CM); //将测得的时间单位计算为距离单位
Serial.print(" CM: ");
Serial.println(cmMsec);
if( cmMsec >= 80 && cmMsec <=100){ // 假设距离介于80~100之间
for(int i = 0; i < 12000; i++) // 循环重复
digitalWrite(spk, 0);
digitalWrite(spk, 1);
delay(300);
}
else if (cmMsec >= 60 && cmMsec<= 79){ // 假设距离介于60~79之间
for(int i = 0; i < 12000; i++) // 循环重复
digitalWrite(spk, 1);
digitalWrite(spk, 0);
delay(100);
}
else if (cmMsec >= 40 && cmMsec<= 59){ // 假设距离介于40~59之间
for(int i = 0; i < 12000; i++) // 循环重复
digitalWrite(spk, 1);
digitalWrite(spk, 0);
delay(50);
}
else if (cmMsec >= 30 && cmMsec<= 39){ // 假设距离介于30~39之间
for(int i = 0; i < 12000; i++) // 循环重复
digitalWrite(spk, 1);
digitalWrite(spk, 0);
delay(20);
}
else if (cmMsec >= 20 && cmMsec<= 29){ // 假设距离介于20~29之间
for(int i = 0; i < 6000; i++) // 循环重复
digitalWrite(spk, 1);
digitalWrite(spk, 0);
delay(10);
}
else if (cmMsec<19){ // 假设距离小于19
digitalWrite(spk, 1);
delay(10);
}
else
digitalWrite(spk, 0);
}
下载程序到Ameba板,完成
作者:Tsao Bruce