蓝牙车报告
组成员:
班级:
联系方式:
目录
引言
1
二 总体方案
1
三 电路程序设计
3
四 调试方案调试结果
7
五 遇问题解决方案
7
六 工程理方案
8
七 总结体会
8
八 实物图
9
九 源程序
10
引言
蓝牙作种线技术标准实现固定设备移动设备楼宇域网间短距离数交换(24—2485GHzISM波段UHF线电波)蓝牙创制广泛关注应现代许移动设备固定设备安装蓝牙进行文件传输线控制等
蓝牙传输范围穿透物质物质间扩散采跳频展频技术抗干扰性强功耗成低等等蓝牙优势控制技术领域备受青睐组选题蓝牙控制车意思蓝牙作线控制载体通手机蓝牙APP蓝牙芯片发出控制命令通串口传输指令车核心STC89C51单片机51单片机通蓝牙传送信息进行处理控制车元件LED灯静态数码蜂鸣器电机指导车完成指定动作
二总体方案
组设计蓝牙车控制机制:STC89C51单片机作控制核心通手机蓝牙APP车发出控制命令车蓝牙芯片接收APP发出指令通串口传输STC89C51单片机单片机通指令系列处理控制车相关元件LED灯静态数码蜂鸣器电机指导车完成指定动作
框图:
LED灯
蜂鸣器
静态数码
电机
STC89C51
蓝牙芯片
蓝牙APP
原理图:
软件流程图:
三电路程序设计
(1)电路设计(单元模块功):
1控制器模块
采STC89C51单片机完全实现ISP线编程直接通USB线车烧录程序做开发购买转换器作:蓝牙车控制核心通单片机烧录蓝牙控制程序检测蓝牙信号接收蓝牙信号进行处理车发出控制命令完成线控制
2 电机驱动模块
运两块LG9110驱动芯片分控制左前轮右前轮
作:驱动芯片做单片机马达桥梁芯片接收单片机命令信号时芯片会做出相应命令马达运作LG91107脚输入高电压6脚输入低电压时马达正转6脚输入高电压7脚输入低电压时马达反转实现控制左转右转功通延时函数调节马达电压占空实现车加速减速功
3蓝牙模块
手机蓝牙APP安装车蓝牙接收芯片4条STC89C51单片机传送命令数线组成
作:通手机蓝牙APP车发出控制命令车蓝牙接收器接收APP发出命令传输STC89C51单片机单片机命令进行处理指导车完成指定动作蓝牙模块沟通户设备桥梁
4 电源模块
采4节15V干电池供电电压达6V单片机电机芯片供电
作:车提供源
5 发光二极蜂鸣器
采普通发光二极蜂鸣器分发出光声进行提示
作:两发光二极直亮着表示车处前进状态发光二极闪烁蜂鸣器鸣表示车退左边发光二极亮右边发光二极灭表示车左转右边发光二极亮左边发光二极灭表示车右转
6静态数码
静态数码显示车速度
(2)程序设计:
1软件设计原理:
蓝牙芯片检测蓝牙信号通串口蓝牙信号传递STC89C51单片机51单片机接收蓝牙信号定处理计算控制车部分元件
1) 助设定全局变量s通改变占空模拟PWM控制车行驶速度
2) 助计时器中断配合速度变量s实现流水灯流水灯速度变化
3) 利延时函数实现LED灯闪烁蜂鸣器蜂鸣
2设计工具:Keil uVision4
3程序流程框图:
开始
初始化设置
判断否接指令?
N
Y
执行指令
4中断服务子程序:
串口中断 接收蓝牙信号
void Usart() interrupt 4 {
switch(SBUF){
case 0x40 前进
case 0x41 退
case 0x42 左转
case 0x43 右转
datSBUFbreak
case 0x46
if(s>1)s
LEDdate[s]break 减速
case 0x45
if(s<3)s++
LEDdate[s]break 加速
default dat0x00
}
RI0清接收中断标志位
}
定时器中断 流水灯
void Timer0() interrupt 1{
TH00x3C 设置初始值
TL00xB0
Time++
if((Time(4s))||(Time>3)){ 满足条件时移动流水灯
WATER_crol_(WATER1)
Time0
}
}
5通信协议
1)关系:
蓝牙技术规定设备间进行蓝牙通讯时必须角色角色进行通信通信时必须端进行查找发起配建链成功双方收发数理蓝牙端设备时7蓝牙端设备进行通讯具备蓝牙通讯功设备 两角色间切换时工作模式等设备连接需时转换模式设备发起呼蓝牙设备模式发起呼时需知道方蓝牙址配密码等信息配完成直接发起呼
2)呼程:
蓝牙端设备发起呼首先查找找出周围处查找蓝牙设备端设备找端蓝牙设备端蓝牙设备进行配时需输入端设备PIN码设备需输入PIN码配完成端蓝牙设备会记录端设备信信息时端端设备发起呼已配设备次呼时需重新配已配设备做端蓝牙耳机发起建链请求做数通讯蓝牙模块般发起呼链路建立成功两端间进行双数语音通讯通信状态端端设备发起断链断开蓝牙链路
3)数传输:
蓝牙数传输应中串口数通讯常见应蓝牙设备出厂前提前设两蓝牙设备间配信息端预存端设备PIN码址等两端设备加电动建链透明串口传输需外围电路干预应中端设备设两种类型静默状态指定端通信蓝牙设备查找二开发状态指定端查找蓝牙设备查找建链
四.车调试方案调试结果
(1)模块调试方案结果:
1控制器模块:开车开关观察车初始程序否工作正常通测试控制器模块工作正常
2电机驱动模块:烧录电机控制程序观察两电机正反转否正常通测试电机驱动模块工作正常
3蓝牙模块:载手机蓝牙APP单片机烧录蓝牙控制程序通APP发送命令车做出指定动作蓝牙模块正常工作通测试蓝牙模块工作正常
4电源模块:安装电池开车开关观察车电源灯否亮电源灯亮电源模块工作正常
5发光二极蜂鸣器静态数码:开车开关观察发光二极蜂鸣器初始程序否工作正常通测试控制器模块工作正常
(2)系统功调试方案结果:
keil软件编写程序生成hex文件烧录单片机通手机蓝牙APP车发送命令观察车否完成指定命令动作次修改程序检查电路直发现错误测试成功
五.遇问题解决方案
(1)硬件制作:
1初步接触三极清楚分辨引脚未直接进行焊接通询问老师网查找资料等方法利焊接成功
2实际焊接元器件电路图许出入通参模板询问老师元器件焊接正确
3组员类元器件焊接验足焊接时常出现类细节问题处理时需拆重装相关部件
(2)程序编写:
组选定课题红外遥控车红外遥控车实现程中遇法解决问题车电机工作时车红外模块正常工作电机工作时红外接收始终输出高电更换红外接收次修改程序断定车电路结构问题老师反应问题相答复老师意改蓝牙控制车红外遥控调试历练加蓝牙遥控红外遥控原理太区快便实现蓝牙控制车功
(3)功调试:
功调试中遇两问题电机调速问题通查阅资料询问老师确定利延时函数改变占空模拟PWM控制车行驶速度方案第二问题流水灯问题实现程中发现延时函数实现效果佳次试验改利计时器实现流水灯效果良
六工程理方案
(1)力资源配置:
组长黄金朋:负责车部分电路焊接调整MV拍摄期加工
组员李晓宇:负责车软件部分负责编程实现车项功
组员许炜娴:负责撰写终期检查报告协助车MV拍摄
(2)项目进度计划:
首先完成板部件焊接机械组装接着组成员先通图书馆阅相关图书网络查找相关资料等方式解学单片机编程蓝牙遥控电动机LED灯蜂鸣器等部分工作原理充分学制定实现蓝牙遥控车相关功方案进行编程实现项功车进行定调试完善方案终完成蓝牙车制作
七总结体会
通蓝牙车设计制作组成员受益匪浅锻炼理知识方面动手力方面极提高总体说次电子实务具意义
首先蓝牙车硬件部分制作中组成员通合理分工合作互相帮助更加扎实焊接基功外掌握P型三极N型三极判方法等等电子元件知识
然软件制作部分根次设计求组系统阅读量资料认真分析设计课题需求系统学51系列单片机工作原理方法独立设计蓝牙车整项目
原组课题红外遥控车设计问题导致红外遥控法实现编程程中组成员遇失败失败成功母失败种宝贵财富失败中组成员学会面寻找失败原
通次课题设计加强组成员专业知识运力时增强学力收集资料力动手力分析解决问题力然重组成员掌握种新工具——keil通keil单片机进行编程实现控制功
总课题设计程中学方法理知识新认识受益匪浅激励接厉断完善理知识提高实践运作力
八实物图
九源程序
#include
#include
#define LED P2 静态数码
#define WATER P1 流水灯
sbit IB1P0^0 LG9110引脚
sbit IA1P0^1
sbit IB2P0^2
sbit IA2P0^3
sbit LEDRP2^0 D11
sbit LEDLP0^7 D10
sbit BeepP0^6 蜂鸣器
sbit hitP3^5 V3
void IrInit() 初始化函数
void Configuration() 初始化中断
void beep(unsigned char c) 蜂鸣函数
void delay(unsigned char i) 延时函数
void advance() 前进函数
void back() 退函数
void left() 左转函数
void right() 右转函数
unsigned char s3dat0x00Time0 s调节速度dat存储接收蓝牙信号Time流水灯计时
unsigned char code date[4]{0x000x9f0x250x0d} 存储静态数码输出
void main(){ 函数
IrInit()
Configuration()
while(1){
switch(dat){
case 0x00LEDLLEDR1break 停车
case 0x40advance()break 前进
case 0x41back()break 退
case 0x42left()break 左转
case 0x43right()break 右转
}
}
}
初始化函数
void IrInit(){
P10xff 熄灭静态数码
LEDdate[s] 显示前速度
IA1IA2IB1IB20 停止电机
LEDLLEDR1 熄灭前灯
WATER0Xfe 流水灯初始
Beep1 初始化蜂鸣器
}
初始化中断
void Configuration(){
TMOD0x21 选择计时器工作方式
TH00x3C 设置初始值定时50MS
TL00xB0
ET01 开定时器0中断
TR01 启动定时器0
SCON0X50 设置工作方式1
TH10XFD 计数器初始值设置注意波特率9600
TL10XFD
ES1 开接收中断
EA1 开总中断
TR11 开计数器
}
串口中断 接收蓝牙信号
void Usart() interrupt 4 {
switch(SBUF){
case 0x40 前进
case 0x41 退
case 0x42 左转
case 0x43 右转
datSBUFbreak
case 0x46
if(s>1)s
LEDdate[s]break 减速
case 0x45
if(s<3)s++
LEDdate[s]break 加速
default dat0x00
}
RI0清接收中断标志位
}
定时器中断 流水灯
void Timer0() interrupt 1{
TH00x3C 设置初始值
TL00xB0
Time++
if((Time(4s))||(Time>3)){ 满足条件时移动流水灯
WATER_crol_(WATER1)
Time0
}
}
延时函数
void delay(unsigned char i){
unsigned char ab
for(i>0i)
for(b38b>0b)
for(a130a>0a)
}
前进函数
void advance(){
LEDLLEDR0
if(hit0)return 防碰撞
IA1IA21IB1IB20
delay(s+1)
IA1IA2IB1IB20
delay(3s)
}
退函数
void back(){
unsigned char ij
for(i0i<2i++){
for(j0j<6j++){
IA1IA20IB1IB21
beep(s+1)
IA1IA2IB1IB20
beep(3s)
}
LEDLLEDLLEDRLEDR 前灯闪烁
}
}
左转函数
void left(){
LEDL0LEDR1
IB1IA21IA1IB20
beep(s+1)
IA1IA2IB1IB20
beep(3s)
}
右转函数
void right(){
LEDL1LEDR0
IA1IB21IB1IA20
beep(s+1)
IA1IA2IB1IB20
beep(3s)
}
蜂鸣函数
void beep(unsigned char c){
unsigned char ab
for(cc*10cc){
BeepBeep
for(a10aa)
for(b45bb)
}
}
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档