69-手机遥控型视觉监控机器人的设计 汤诚_第1页
69-手机遥控型视觉监控机器人的设计 汤诚_第2页
69-手机遥控型视觉监控机器人的设计 汤诚_第3页
69-手机遥控型视觉监控机器人的设计 汤诚_第4页
69-手机遥控型视觉监控机器人的设计 汤诚_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

69手机遥控型视觉监控机器人的设计一、小车模块介绍小车是由一个降压器、一块WIFI视屏模块、一块主电路板构成。主电路板是基于STC15W204S芯片的电路板,通过串口使用下载线可将程序导入,其上还含有两个LM393双电压比较器、两个光敏电阻、一个温湿度扩展模块;WIFI视屏模块上安有一个小型摄像头,使用手机APP可将摄像头捕捉的画面反馈到手机上;降压器其输入直流电压为3V至40V,输出直流电压为1.5至35V,电压连续可调,高效率最大输出电流为3A。本作品主要体现于手机遥控和视觉监控。二、小车实物图小车底盘WIFI视屏模板降压器主电路板小车底盘WIFI视屏模板降压器主电路板直流电机驱动直流电机驱动直流电机驱动直流电机驱动程序编写#include"stc15.h"#defineu8unsignedchar#defineu16unsignedint#definePWM_MAX65sbitLeftA=P1^3;sbitLeftB=P1^2;sbitRightA=P1^1;sbitRightB=P1^0;u8Recive_OK=0;u8dat=0;u8buff[12]={0};u8Date[12]={0};u8FB_bit=3;/**********************************buf0 起始码 0x81 buf1 校验位 buf2 油门 0~127buf3 左右 -100~100 左:负数右:正数buf4 前后 -100~100 前:正数后:负数buf5 自转 -100~100buf6 按键buf7 左右微调 -50~50buf8 前后微调 -50~50buf9 保留 0x00buf10 保留 0x00buf11 结束码 0x82**********************************/u8Left_PWM=0;u8Right_PWM=0;charLeft_Right=0;charForward_Back=0;voidDelay_ms(u16j){ u8i; for(;j>0;j--) for(i=0;i<123;i++);}voidUART_Init(){ SCON=0x50; T2L=0xE8; T2H=0xFF; AUXR|=0X04; AUXR|=0X01; AUXR|=0X10; PS=1; ES=1; EA=1;}voidTimer0Init(void) //10??@11.0592MHz{ AUXR|=0x80; //定时器时钟1T模式 TMOD&=0xF0; //设置定时器模式 TL0=0xAE; //设置定时初值 TH0=0xFB; //设置定时初值 TF0=0; //清除TF0标志 TR0=1; //定时器0开始计时 ET0=1;}voidForward(u8speed){ FB_bit=0; LeftA=1; LeftB=0; RightA=1; RightB=0; Left_PWM=speed; Right_PWM=speed;}voidBack(u8speed){ FB_bit=1; LeftA=0; LeftB=1; RightA=0; RightB=1; Left_PWM=speed+15; Right_PWM=speed+15;}voidTurn_Left(u8LR_speed){ FB_bit=0; LeftA=1; LeftB=0; RightA=1; RightB=0; Left_PWM=LR_speed; if(LR_speed<35) Right_PWM=LR_speed+30; else Right_PWM=65;}voidTurn_Right(LR_speed){ FB_bit=0; LeftA=1; LeftB=0; RightA=1; RightB=0; Right_PWM=LR_speed; if(LR_speed<35) Left_PWM=LR_speed+30; else Left_PWM=65;}voidTurn_Right_B(LR_speed){ FB_bit=1; LeftA=0; LeftB=1; RightA=0; RightB=1; Left_PWM=LR_speed; if(LR_speed<35) Right_PWM=LR_speed+30; else Right_PWM=65;}voidTurn_Left_B(u8FW_speed,LR_speed){ FB_bit=1; LeftA=0; LeftB=1; RightA=0; RightB=1; Right_PWM=LR_speed; if(LR_speed<35) Left_PWM=LR_speed+30; else Left_PWM=65;}voidStop(){ LeftA=LeftB=1; RightA=RightB=1; FB_bit=3; }voidSend_Char(u8dat){ SBUF=dat; while(!TI); TI=0;}u8num=0;voidconvert(){ if(Date[3]==0&&Date[4]==0) { Stop(); } elseif(Date[3]==0) { if(Date[4]>0x65) Back((256-Date[4])/2); elseif(Date[4]<0x65) Forward(Date[4]/2); } elseif(Date[3]>0x64)//左 大于100负数 { if(Date[4]<0x65)//前左 Turn_Left((256-Date[3])/2); else Turn_Left_B(((256-Date[3])/2)); } elseif(Date[3]<0x64) { if(Date[4]<0x65) Turn_Right(Date[3]/2); else Turn_Right_B(Date[3]/2); } while(!Recive_OK); Recive_OK=0;}voidmain(){ UART_Init(); Timer0Init(); while(1) {// Send_Char(Date[2]);// LeftA=~LeftA;// LeftA=LeftB=RightA=RightB=1;// Delay_ms(5000);// LeftA=LeftB=RightA=RightB=0;// Delay_ms(5000); convert();// Forward(Date[4]/2+1); // Send_Char(10/2+1); }}voidTime0()interrupt1{ num++; if(num==PWM_MAX) { num=0; if(FB_bit==0) { LeftA=1; RightA=1; } elseif(FB_bit==1) { LeftA=0; RightA=0; } } if(num==Left_PWM) { if(FB_bit==0) LeftA=0; elseif(FB_bit==1) LeftA=1; } if(num==Right_PWM) { if(FB_bit==0) RightA=0; elseif(FB_bit==1) RightA=1; }}voidUART()interrupt4{ staticu8start=0,count=0,i; if(RI) { RI=0; dat=SBUF; if(dat==0x81&&start==0) { start=1; buff[count++]=dat; } elseif(start==1) { buff[count++]=dat; if(count==12) { start=0; count=0; if(dat==0x82) { for(i=0;i<12;i++)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论