没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
#include "ASMF09LIB.h"
/***********设置电机参数*****************/
#define MOTO_L 0
#define MOTO_R 1
#define MOTO_L_SET 1
#define MOTO_R_SET 1
#define SpeedMax 50
#define LR 30 //左向右转速度
#define LRT 0.35 //左转时间
#define RL -30 //右向左转速度
#define RLT 0.35 //右转时间
/**********设置红外参数******************/
#define IAR_F 0
#define IAR_LF 5
#define IAR_LB 4
#define IAR_B 3
#define IAR_RF 1
#define IAR_RB 2
/***********设置复眼参数******************/
#define EYE_F 0
#define EYE_B 1
#define FIRE_MIN_VALUE 480//参数待定
#define FIRE_MIN_VALUE2 430
#define FIRE_MAX_VALUE 200 //参数待定
#define FRONT_FIND 0 //前部发现火焰
#define NOT_FIND 1 //未发现火焰
/***********设置灰度传感器参数************/
#define GREY_F 10 //灰度传感器通道值
#define GREY_B 11 //同上
#define GREY_NULL 0 //没发现白线
#define GREY_FRONT 1 //前端发现白线
#define GREY_BACK 2 //后端发现白线
#define GREY_BOTH 3 //前后均检测到白线
#define BlackValue 100 //数值待定
#define ground 90
#define WhiteValue 30 //数值待定
/***********设置风扇参数******************/
#define FAN_F 0
#define FAN_B 1
#define FAN_OFF 1
/*************麦克风参数*****************/
#define MIC_CH 9
#define MIC_SET_VALUE 70
/*************转弯函数参数****************/
#define LEFT_90 0 左转 90 度
#define RIGHT_90 1 右转 90 度
/******************定义变量************************/
const int Data[6][12]=
{
{660,520,420,350,300,267,230,215,200,183,169,160},
{655,521,420,350,295,260,230,210,192,175,162,156},
{672,510,409,335,282,246,220,195,180,163,152,140},
{649,503,405,323,276,244,215,190,173,161,150,144},
{653,523,430,349,301,267,235,215,196,183,173,166},
{675,539,435,355,303,266,235,213,195,176,164,155}
};
//=================滤波函数=============//
/********************************************/
//函数名称 :Filter
//入口参数 :unsigned char Ch 数据通道
//出口参数 :int 对应通道数据值
//功能 :采集特定通道信息,同时进行滤波处理
/********************************************/
int Filter(unsigned char Ch);
//================启动函数====================//
/**********************************************/
//函数名称 :START
//入口参数 :无
//返回参数 :无
//函数功能 :如果接收到启动信号,启动机器
/**********************************************/
void START(void);
//===============电机驱动函数=================//
/**********************************************/
//函数名称 :MOTOR
//入口参数 : int LSpeed 左轮速度
// int RSpeed 右轮速度
//出口参数 :无
//功能 :设定左右轮速度值
/**********************************************/
void MOTOR(int LSpeed,int RSpeed);
//================查表函数=====================//
/***********************************************/
//函数名称 :Search
//入口参数 :unsigned char Ch 通道
// :int Value 滤波后的数值
//出口参数 :int 测量的实际距离值
//功能 :将采集到的数据值转化为实际的距离值
/**********************************************/
int Search (unsigned char Ch ,int Value);
//=================火焰识别函数======================// 参数待定,函数未实现
/*****************************************************/
//函数名称 :FIND_FIRE
//入口参数 :无
//出口参数 :返回火焰状态位
// FRONT_FIND 前部发现火焰
// BACK_FIND 后部发现火焰
// NOT_FIND 未发现火焰
//功能 :判断是否有火焰
/*****************************************************/
unsigned char FIND_FIRE(void);
unsigned char FIND_FIRE2(void);
void outfire(void);//灭火
void Gout_1();//一号房出门
void Gout_2();//二号房出门
void Gout_3();//三号房出门
void Gout_4();//四号房出门
void gohome_1();//一号房回家程序
void gohome_2();//二号房回家程序
void gohome_3();//三号房回家程序
void gohome_4();//四号房回家程序
void RBW(void);//右边靠墙
void LBW(void);//左边靠墙
void GoStr(int v);//走直线
void Skip_01(void);//原点跳转到 1 号房
void Skip_12(void);//1 号房跳转到 2 号房
void Skip_23(void);//2 号房跳转到 3 号房
void Skip_34(void);//1 号房跳转到 4 号房
void FIVE(void);//五段法运行
void FIVE_R(void);
void FIVE_34(void);
void Turn_R(void);//原地右转 90 度
void Turn_L(void);//原地左转 90 度
void FanRun(void);//开启风扇
void FanStop(void);//关闭风扇
void RunLine_F_L(void);//依靠左墙前进,动态调整
void RunLine_F_R(void);//依靠右墙前进,动态调整
void RunLine_B_L(void);//依靠左墙后退,动态调整
void RunLine_B_R(void);//依靠右墙后退,动态调整
int FrontPSD(void);//读出前端 PSD 与墙体的距离
int BackPSD(void);//读出后端 PSD 与墙体的距离
int RightBackPSD(void); //读出右后端 PSD 与墙体的距离
int LeftBackPSD(void); //读出左后端 PSD 与墙体的距离
int RightFrontPSD(void);//读出右前端 PSD 与墙体的距离
int LeftFrontPSD(void); //读出左前端 PSD 与墙体的距离
int main(void)
{
int room_1=0;
InitArmRobot();
START();//声控开关
while(1)
{
switch(room_1)
{
case 0:
{MOTOR(30,30);
//while(LeftBackPSD() > 30);//?估计时间
while(1)
{
if((LeftBackPSD() <= 30)&&(LeftFrontPSD()<=30))
{
wait(0.05);
if((LeftBackPSD() <= 30)&&(LeftFrontPSD()<=30))
{
break;
}
}
}
Skip_01();//原点跳转到 1 号房,停在一号门口,判断火焰
room_1=1;
break;
}
case 1:
{
if(FIND_FIRE()==0)//一号房有火
{
outfire();//灭火
Gout_1();//出一号门
gohome_1();//一号房回家程序
}
else//一号房无火,去二号房
{
MOTOR(-30,-30);//后退
while(BackPSD()>25);
Turn_L();//左转
Stop();
wait(0.1);
LBW();//调整与墙平行
wait(0.5);
Skip_12();//1 号房跳转到二号房
Turn_L();//左转
Stop();
wait(0.5);
MOTOR(-20,-20);
wait(0.5);
MOTOR(30,30);
while(AI(GREY_B)>ground);//停在门口,判断火焰
Stop();
wait(0.1);
if(FIND_FIRE2()==0)//二号房有火
{
outfire();//灭火
Gout_2();//2 号房出门程序
gohome_2();//2 号房回家程序
}
else//二号房无火,去三号房
{
Skip_23();//从 2 号房跳到 3 号房,停在门口,判断火焰
wait(0.2);
if(FIND_FIRE()==0)//三号房有火
{
outfire();//灭火
Gout_3();//出三号门
gohome_3();//三号回家程序
}
else//三号房无火,去四号房
{
Skip_34();
outfire();//灭火
Gout_4();//四号出门
gohome_4();//四号回家
}
}
剩余24页未读,继续阅读
资源评论
linyabin4914
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功