机械人创新实践报告.docx
《机械人创新实践报告.docx》由会员分享,可在线阅读,更多相关《机械人创新实践报告.docx(12页珍藏版)》请在冰豆网上搜索。
![机械人创新实践报告.docx](https://file1.bdocx.com/fileroot1/2023-1/31/c54f0bb4-f3c4-467d-9967-6dea79bd0d14/c54f0bb4-f3c4-467d-9967-6dea79bd0d141.gif)
机械人创新实践报告
课程设计报告书
题目:
智能机械人创新实践
学院
专业
学生姓名
学生学号
指导教师
课程编号
课程学分
起始日期
教
师
评
语
教师签名:
日期:
成
绩
评
定
备
注
智能巡线小车
1设计原理
由于黑线和白色地板对光线的反射系数不同,能够依照接收到的反射光的强弱来判定实际的“道路”情形,使小车在白色地板上循黑线行走。
通常采取的方式是红外探测法。
红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶进程中不断地向地面发射红外光,当红外光碰到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;若是碰到黑线则红外光被吸收,小车上的接收管接收不到红外光。
单片机确实是不是收到反射回来的红外光为依据来确信黑线的位置和小车的行走线路
2方案论证
巡线模块设计
采纳一体反射式红外对管,所谓一体确实是发射管和同意管固定在一路,反射式的工作原理确实是接收管接收到的信号是发射管发出的红外光通过反射物的反射后取得的,因此利用红外对管进行循迹时必需是白色地板加黑色引导条。
这次设计中由于是近距离探测,故采纳红外对管来完成数据搜集。
由于红外光波比可见光长,因此受可见光的阻碍较小。
同时红外线系统还具有以下优势:
尺寸小、质量轻,便于安装。
反射式光电检测器确实是其中的一种器件,它具有体积小、灵敏度高、线性好等特点,外围电路简单,安装起来方便,电源要求不高。
用它作为近距离传感器是最理想的,电路设计简单、性能稳固靠得住。
供电方案设计与比较
巡线模块设计
方案一:
采纳两个电源供电,将电动机驱动电源和其周边电路与单片机电源别离供电,由于单片机的电压较低,而电机需要的电压较高,容易使单片机电压太高而损坏,利用两个电池供电,能够提高系统稳固性,可是多一组电池,增加了小车的质量,同时也增加了小车的惯性,降低了灵敏度。
方案二:
采纳单一电源供电。
电源直接给单片机供电,通过单片机的IO口连接到电动机上,如此输出的电压稳固,同时也减轻了小车的质量,使小车加倍灵活。
可是加高的电压提高了损坏单片机的风险。
从安全性考虑,咱们选择方案一。
3设计方案
小车的整体结构设计
结构元件的选择
轮胎,减速箱,电机,万向滑轮,黄色底盘,pcb敷铜板,亚克力板,螺丝,卡簧,固定片等。
小车结构图
电路驱动部份电路原理图
小车的成品外观图
巡线功能介绍
反射型光电探测器RPR220
RPR220是一种一体化反射型光电探测器。
其探测器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电二极管。
要紧应用在游戏机,复印机和办公自动化等设备中。
本巡线小车确实是用该元件作为检测元件,即是通过检测黑线有无来达到操纵小车巡线的目的的。
寻迹电路图分析
(1)没有检测到黑线,则H4发光到白纸光反射到H4接收端,H4接收端导通,导通T1接地等于0。
(2)有检测到黑线,则H4发光到黑线光全数被吸收,H4接收端,没有收到任何信号,因为H4不导通(截止),T1等于vcc。
寻迹元件在小车的具体实现
电源部份
小车三路巡迹算法
直线寻迹图
左转弯巡迹图
右转弯巡迹图
巡线与电机驱动程序
#include<>//包括51单片机相关的头文件
sbitLeftLed=P2^0;//概念前方左侧指示灯端口
sbitRightLed=P0^7;//概念前方右边指示灯端口
sbitFontLled=P1^0;
sbitLeftIR=P3^5;//概念前方左侧红外探头端口
sbitRightIR=P3^6;//概念前方右边红外探头端口
sbitFontIR=P3^7;//概念前方正前方红外探头端口
sbitM1A=P0^0;//概念左侧电机驱动A端
sbitM1B=P0^1;//概念左侧电机驱动B端
sbitM2A=P0^2;//概念右边电机驱动A端
sbitM2B=P0^3;//概念右边电机驱动B端
sbitB1=P0^4;//概念语音识识别传感器端口
sbitSB1=P0^6;//概念蜂鸣器端口
voidtingzhi()
{
M1A=0;//将M1电机A端初始化为0
M1B=0;//将M1电机B端初始化为0
M2A=0;//将M2电机A端初始化为0
M2B=0;
}
voidqianjin()
{
M1A=1;
M1B=0;
M2A=1;
M2B=0;
}
voidhoutui()
{
M1A=0;
M1B=1;
M2A=0;
M2B=1;
}
voidzuozhuan()
{
M1A=0;
M1B=1;
M2A=1;
M2B=0;
}
voidyouzhuan()
{
M1A=1;
M1B=0;
M2A=0;
M2B=1;
}
voiddelay_nus(unsignedinti)//延时:
i>=12,i的最小延时单12us
{
i=i/10;
while(--i);
}
voiddelay_nms(unsignedintn)//延时nms
{
n=n+1;
while(--n)
delay_nus(900);//延时1ms,同时进行补偿
}
voidControlCar(unsignedcharConType)//概念电机操纵子程序
{
tingzhi();
switch(ConType)//判定用户设定电机形式
{
case1:
//前进//判定用户是不是选择形式1
{
qianjin();
break;
}
case2:
//后退//判定用户是不是选择形式2
{
houtui();//M2电机反转
break;
}
case3:
//左转//判定用户是不是选择形式3
{
zuozhuan();//M2电机正转
break;
}
case4:
//右转//判定用户是不是选择形式4
{
youzhuan();//M1电机正转
//M2电机反转
break;
}
case8:
//停止//判定用户是不是选择形式8
{
tingzhi();
break;//退出当前选择
}
}
}
voidmain()//主程序入口
{
bitRunFlag=0;//概念小车运行标志位
//RunShow=0;//初始化显示状态
ControlCar(8);//初始化小车运行状态
while
(1)//程序主循环
{
Start:
LeftLed=LeftIR;//前方左侧指示灯指示出前方左侧红外探头状态
RightLed=RightIR;//前方右边指示灯指示出前方右边红外探头状态
FontLled=FontIR;
SB1=LeftIR;
if(LeftIR==0&&RightIR==0)//三个红外检测到黑线,就前进
{
ControlCar
(1);//左侧没有信号时,开始向右转必然的角度
delay_nms(10);
gotoNextRun;
}
if(LeftIR==0&&RightIR==1)
{
ControlCar(3);//右边没有信号时,开始向左转必然的角度
delay_nms(10);
gotoNextRun;
}
if(LeftIR==1&&RightIR==0)
{
ControlCar(4);//右边没有信号时,开始向左转必然的角度
delay_nms(10);
gotoNextRun;
}
gotoStart;
NextRun:
ControlCar(8);
}
}
4结果与分析
小车的运行如视频附件所示,能实现常规的巡线,遥控,寻光功能