您的位置:首页 > 其它

安卓手机控制小车(自己做成功了,有全套资料)

2013-07-22 22:40 357 查看
注:图片不知道怎么显示,可以去我空间的相册里查看图片。

小车分几部分组成:1、安卓手机控制软件:该软件可以通过蓝牙发送前进、后退、左转、右转指令(ASCII码)。2、蓝牙模块:通过与手机连接后,可以接收到手机发送的指令,采用HC_06模块。3、单片机最小系统:蓝牙模块将收到的指令发给单片机,单片机将其解码为二进制数。4、驱动模块:单片机将二进制指令通过IO口发送给驱动模块,驱动小车运动。5、小车底座:具有四个减速电机和轮子的底座。

1、手机控制软件



网上下载的,想要无插件的可以留邮箱。

当我们用手按下前进时,手机会通过蓝牙以ASCII码的形式发送一个字符“A”,释放时会发送一个字符“a”;

按下 后退 时,手机会通过蓝牙以ASCII码的形式发送一个字符“D”,释放时会发送一个字符“d”;

按下 左转 时,手机会通过蓝牙以ASCII码的形式发送一个字符“C”,释放时会发送一个字符“c”;

按下 右转 时,手机会通过蓝牙以ASCII码的形式发送一个字符“B”,释放时会发送一个字符“b”;

2、蓝牙模块时HC-05/06。

此模块使用3个管脚,VCC和GND分别接电源高、低电平,TXD管脚接单片机的RXD管脚。蓝牙模块与手机连接后,可以通过手机发送ASCII,蓝牙模块接收到后,发送给单片机的RXD脚,通过程序将数据以二进制的形式发送给驱动模块,供小车驱动。发送波特率为9600。八位数据位,无奇偶校验。

3、最小系统。

板子是自己焊的,5个1.5v的电池供电,一方面7.5v给驱动芯片L298N供电,令一方面经7805降压后给单片机和蓝牙模块供电(此时驱动效果不明显,可以在另用一个9V电源,为L298n供电)。其中所有管脚已经引出,令PO管脚接了10K的上拉电阻。晶振旁边的电容在板子另一面,是两个贴片电容。虽说线路简单,可也是双面板,呵呵。L298N资料网上有很多。。。

程序:

#include<reg52.h>

#define uchar unsigned char

uchar a;

//串口初始化

void Serial_Init()

{

 TMOD=0x20; //方式2,8位自动载入

 TH1=0xfd;

 TL1=0xfd;//初值,9600波特率

 TR1=1;

 SCON=0x50;//8位异步收发,波特率可变

 EA=1;//开总中断

 ES=1; //开串行中断

}

void Serial() interrupt 4

{

 ES=0;

 RI=0;

 a=SBUF;

 switch(a)

 {

 case 'A':   //前进

 P0=0xf5;//P0的低四位控制驱动芯片,当接收到0101时,两个轮子正转,故向前,以下同。

 break;

 case  'B':   //右转

 P0=0xf9;

 break;

 case 'C':  //左转

 P0=0xf6;

 break;

 case 'D': //后退

 P0=0xfa;

 break;

 case 'a':

 P0=0x00;

 break;

 case 'b':

 P0=0x00;

 break;

 case 'c':

 P0=0x00;

 break;

 case 'd':

 P0=0x00;

 break;

 default: 

 P0=0xff; 

 }

 ES=1; 

}

void main()

{

 P0=0xff;

 Serial_Init();

 while(1);

}

程序很简单,利用串口发送数据。

4、驱动模块:

左边的四根线是输出,要连接到下车的马达上,右边的四根线是输入,连接单片机的对应管脚。

5、底座

左边的两个电机并联,右边的两个电极并联。

遇到的问题:

1、在做最小系统的板子时,自己焊的是12M的晶振,但是程序用的是11.0592M晶振写的,所以当蓝牙模块连接上后,单片机却不能收到指令,后来换成11.0592M晶振才得以解决这个问题。

2、开始所有的供电包括驱动芯片L98N的VS管脚用的也是5V供电,连接好后发现不能带动电机。用万用表测量输出管脚电压可以达到4点几伏,但是当连接上电机后,电压为0,当用7.5V的电源给VS管脚供电后,问题得以解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息