WiFi智能控制视频智能小车仅供参考Word格式文档下载.docx
《WiFi智能控制视频智能小车仅供参考Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《WiFi智能控制视频智能小车仅供参考Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
通过单片机控制电机驱动进而来控制电机的正反转以实现小车的前进、后退、右转、左转、停止。
本设计采用WiFi模块进行数据通信,手机端通过连接小车上的WiFi进行控制,通过小车上的wifi模块接收从手机端发送过来的动作指令,把接收到的指令再传递给单片机,单片机通过分析处理传递过来的指令不同,而运行不同的子程序来控制电机驱动,进而实现小车的前进、后退、左转、右转、图1湄公河行动
停止等不同的动作。
小组成员技术分工:
:
视频制作,机械结构设计,小车组装。
:
51单片机程序设计调试和电路连接,word制作。
ppt制作,小车组装。
ug三维造型装配,小车组装。
小组四人共同讨论确定设计方案——蓝牙智能控制可夹持视频智能小车
1.1系统需求分析
对于现在身边所发生的事情人们是未知的,有些事情是不能直接去做的,所以需要借助一些设备才帮助人们规避风险,采集资料。
本项目所做得WiFi视频小车就帮助我们解决了这个问题
1.2系统功能描述
手机端连接小车WiFi后,可以通过手机上的虚拟按钮来控制小车的行走,小车上的摄像头将小车前的环境通过WiFi传送到手机上。
所以视频小车可以用来探索未知环境,并将未知环境的情况实时的显示在控制端上面。
1.3系统结构组成
STC12C5A60S2集成式芯片;
led灯模块;
蜂鸣器模块;
舵机;
驱动电机(直流);
小车轮胎;
蓝牙模块;
WiFi模块;
摄像头;
机械零件。
2.系统设计
2.1硬件系统设计
(1)器件选型设计:
集成于51单片机、4位数码管、蜂鸣器、舵机扩展、led灯、电机驱动等位一体的主控板;
底盘;
电池座;
电池;
电压表。
(2)接线图:
在仿真调试过程中,单片机各接口接线如图2所示,下面先来进行详细的介绍:
P1.0接电机驱动模块IN1P1.6接电机驱动模块IN7
P1.1接电机驱动模块IN2P1.7接电机驱动模块IN8
P1.2接电机驱动模块IN3P3.0接串口RXD
P1.3接电机驱动模块IN4P3.1接串口TXD
P1.4接电机驱动模块IN5
P1.5接电机驱动模块IN6
四个电机分两组并联接到两个电机驱动的OUT1、OUT2、OUT3、OUT4口上
两个舵机控制端分别接到P2.3、P2.7上,并外接上拉电阻。
图2仿真电路接线图
对于电机驱动,两个使能端需要分别串上电阻在外接电源,VS端上驱动电源输入端,所以要单独外接7.2V的电压,如图3所示
图3电机驱动电路图
(3)器件组成清单:
表1器件组成清单
器件组成清单
价格(元)共优惠10元
51单片机四驱车控制板/片
165
优质USB下载线/条
5
高清WIFI视频数传模块内置大功率天线
64M超大内存*1
148
PCB材质4WD车底盘全套*1
32
带碳刷抗干扰TT马达*4
24
新版抗滑车轮*4
WIFI机器人高清摄像头*1
50
数显电压表/个
9.5
红外巡线循迹模块*2个
8
红外避障模块*2+杜邦线20条
10.5
wifi智能小车电池
38
2.2软件系统设计
流程图:
程序设计:
在程序设计上,我们采用了KeiluVision4软件进行编程,调试以及编译。
主程序各初值的设定:
TMOD=0x22;
设置定时器0为方式1(16位);
定时
器1为方式2(8位自动重装)。
否SCON=0x50;
设置串口控制寄存器,串口方式1,10
位uart,波特率可调;
允许接收。
是TH1=TL1=0xfd;
为定时器1赋初值,晶振为
11.0592MHz时波特率为9600bps。
IE=0x92;
开定时器0中断,串口中断,外中断
0和总中断。
程序详细内容见程序源文件。
关键控制部分C语言程序分析:
(1)定时器0中断程序:
voidTime0_Int()interrupt1
{
count=count++;
if(count>
=250)
count=0;
}
//舵机左右:
if(count<
SEH_count)//判断0.5ms次数是否小于角度标识
SEH_PWM=1;
//确实小于,pwm输出高电平
else
SEH_PWM=0;
//大于则输出低电平
//舵机上下:
SEV_count)//判断0.5ms次数是否小于角度标识
SEV_PWM=1;
SEV_PWM=0;
//大于则输出低电平
(2)串口中断服务程序:
voidser()interrupt4
if(RI==0)return;
ES=0;
//关闭口中断
RI=0;
//清除口接收标志位
command=SBUF;
//读取字符
switch(command)
//以下为电机源码
case'
a'
:
{//向前:
左右轮同时正传
Left_moto_go;
//左电机往前走
Right_moto_go;
//右电机往前走
break;
b'
{//向后:
左右轮同时反传
Left_moto_back;
//左电机往后走
Right_moto_back;
//右电机往后走
c'
{//向左:
左轮后转,右轮正传
}
d'
{//向右:
右轮后转,左轮正传
//右电机后走
e'
{//停转
Left_moto_Stop;
//左电机往停转
Right_moto_Stop;
//右电机往停转
//以下为舵机源码
case'
f'
{//云台向下移动
SEV_count++;
if(SEV_count>
=23)SEV_count=23;
//已经是180度,则保持
g'
{//云台向上移动
SEV_count--;
if(SEV_count<
=4)SEV_count=5;
h'
{//云台向左移动
SEH_count++;
if(SEH_count>
=23)SEH_count=23;
i'
{//云台向右移动
SEH_count--;
if(SEH_count<
=4)SEH_count=5;
default:
Left_moto_Stop;
Right_moto_Stop;
//20ms周期从新开始
ES=1;
//允许串口中断
3.系统仿真与调试
3.1系统仿真
仿真电路如下图:
图4仿真效果图
仿真结果:
由于我们小组用到了蓝牙串口模块,所以在仿真过程中用到了虚拟串口“VirtualSerialPortsDriver6.9(配置虚拟串口驱动工具)”这款软件,将上图中P1串口的端口改为COM4,波特率设为9600。
然后打开虚拟串口助手,增加COM3,COM4两个虚拟串口,如图5所示。
图5配置虚拟串口驱动工具
打开串口调试助手,将端口设为COM3,波特率设为9600。
此时在Proteus中点击运行,并将串口调试助手的端口打开,我们在“发送的字符/数据”栏目中输入相应的字符来控制单片机,例如图6中输入的字符为“a”,则控制的是电机正传。
图6串口调试助手
表2ASCII码对应的单片机指令
a
电机正传
f
舵机下
b
电机反转
g
舵机上
c
左电机反传
右电机正转
h
舵机左
d
左电机正传
右电机反转
i
舵机右
e
停转
k
舵机归中
3.2系统调试
实物整体调试:
在实物调试中,我们采用安卓WiFiapp来控制小车行进及其他操作指令,上位机界面如图7所示。
它可以控制小车的前进、后退、左转、右转。
小车实物图如图8所示。
图7wifi控制界面
图8智能小车实物图
表3蓝牙按键控制及发送的代码(校验位:
NONE):
按键(右)
执行步骤
发送代码
按键(左)
上键
前进
ONaONe
下键
云台下
ONfON1
后退
ONbONe
云台上
ONgON2
左键
左转
ONcONe
云台左
ONhON3
右键
右转
ONdONe
云台右
ONiON4
中键
云台回正
ONkON5
4.技术经济性分析
本次设计的小车是由四轮驱动的小车,配备8v超大容量电池,动力十足,不会动力不足而无法行走;
在数据传输方面上,采用WiFi模块300M超大功率传输,匹配时间短,快速链接,传输范围大。
小车主核心采用51系列单片机,共有3组I/O接口(P0~P3),功能强大,接口丰富;
集成于51单片机、4位数码管、蜂鸣器、舵机扩展、led灯、电机驱动等位一体的主控板,方便各模块的连接,并且供电平稳;
小车的机械结构不复杂但是功能强大,行走记录两不误。
小车的灵活性和扩展性较高,自己不仅可以继续对其进行模块扩展,而且对单片机还可以重复程序,51单片机的程序编写容易入门,稍有程序基础的也容易读懂。
小车的各零件的可回收性高。
每个零件不仅可以重复利用,而且使用寿命长,回收周期长,益于环保。
智能小车所用的零件都是最低价格最高的质量。
与同类小车相比,小车不仅在价格上占尽优势,在功能上相比其他类较多,并且扩展能力强,可以扩展更多的功能。
小车整体以模块化安装与拆卸。
所以易于携带。
5.设计总结
最初我们小组讨论决定做一个可以通过摄像头录像的小车,于是我们各自从网上找到一些参考资料,并表达自己的想法,最终我们将各自的想法整合了一下,于是确定了由双舵机控制云台的机械结构,如图9所示,它是一种可以上下左右运用的云台。
图9云台机械结构
初步讨论的设计方案基本完成了,于是我们就下手去做了,我们将小车和机械手的组装分成若干模块,每个人组装不同的模块最后组装起来。
组装完成后,组长根据每个人所长给每个人分配任务,详情见“小组成员技术分工”。
在C语言程序设计过程中遇到的问题比较多,毕竟是第一次接触关于单片机的C语言程序设计。
最开始是设计的程序无法编译,错误原因显示的是某些语句或者接口没有被定义,找了好久原因才想到头文件没有设定,由此对c语言有了新的认识。
上述问题的解决对程序的设计来说是一个小突破。
在硬件电路设计方面起初一直没什么问题,但是舵机的电路连接上,有一个舵机不能动,经检查,是采购的主控板有问题,在有问题的接口外接以一个10k的上拉电阻问题就解决了。
以上就是在程序设计和电路设计上面的遇到的几个大问题。
(由于没有购买云台模块,所以用的大项目的舵机进行的测试)如果购买了云台,小车实物如图10所示。
图10小车实物图
由于上位机我们是在无法自己制作出来,所以上位机借鉴的店家给的上位机软件,所有按键刚好足够控制小车的各个功能。
在设计上的不足:
在设计上没有用到更多的模块,功能较简单,其实可以扩展更多的功能(资金不足)。
经过这次小组项目的设计、调试、安装、总结,从中最大的
收获就是能够亲自感受到自己设计的成果。
在程序上我们了解了51单片机的编程环境和程序的设计理念;
在电路上,我们了解了单片机内部结构构造、外部各控制端的连接、串口连接。
在数据传输方图12wifi摄像头模块
面,我们了解了我们用的蓝牙模块是通过发送ascii码进行数据交换,单片机进行解析再运行相应的指令。
今后我们会更加深入的学习单片机的知识,希望在程序设计上更上一层楼,最好是能够自己设计一块上位机软件只需要单独的WiFi模块完成小车的控制和视频数据的传输。
以上为我们小组的设计小结。
参考文献
[1]蒋俊,刘天宇,简雨沛.蓝牙智能小车系统设计[J].信息技术与信息化,2015(6):
166-167.
[2]黄利强.单片机系统可靠性技术分析与发展[J].科技创业家,2012(23):
160.
附件
C语言源文件
软件调试文件
串口助手