找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 34015|回复: 17
打印 上一主题 下一主题
收起左侧

手把手教你做Android手机遥控小车

  [复制链接]
跳转到指定楼层
楼主
安卓手机遥控小车,顾名思义就是用安卓手机来控制小车前后左右运动。给大家展示一个既可触摸按键控制又可重力感应控制的Android手机软件和DIY小车,废话少说,上图:

Android上位机软件运行界面截图




触摸按键控制模式




重力感应控制模式



更换背景


在手机上的运行图








上DIY小车图片













看完图片还不过瘾,上视频:



看完了,感觉还行吧! 不要羡慕,你也可以,下面来一起DIY。

先来看一看下位机也就是小车部分。既然是小车,底盘车轮也就少不了了。
下面是这辆车的底盘

底盘正面



底盘反面




除了小车底盘,我们还得有一个单片机最小系统来控制吧

正面

需要说明一下的是,别以为它没有晶振,没有电容等——它们都在单片机下面藏起来了。
但这的确是一个“最小系统”,除了I/O口引出了外,什么都没有扩展。



PCB底板,铜线都氧化了




最小系统的电路应该都知道



底盘和最小系统搞好了,小车还是跑不起来——缺少电机驱动。
单片机的I/O是驱动不了电机的,我选用的是L298N电机专用驱动芯片。
下面是我的电机驱动模块PCB




时间有点长了,看起来不是很好看。但PCB布线排版还可以吧!

底面涂了一层绿油,但没有涂匀。

下面是这个模块的电路图




L298用起来蛮简单,网上的资料很多。但若嫌电路麻烦,
对驱动能力要求又不高的情况下你可以试一下ULN2003驱动芯片
很简单。

再就是电源部分,我用的是两块手机电池,串联起来用的,一路经7805降压后供
单片机用,一路直接给电机驱动模块供电。


至此,小车的基本部分搭建完毕。下面看一下重量级部分——蓝牙。
说道蓝牙,大家可能觉得很高深,害怕。的确,蓝牙技术是一门高深的技术,蓝牙的通信协议让人头疼。
但不要害怕,我们是不接触蓝牙底层协议的,况且现在的模块技术是很发达的,HC06——蓝牙转串口模块
看图



它将复杂蓝牙通信协议直接变成了单片机上拥有的,我们也熟悉的RXD  TXD串口通信。高兴了吧!
我们只需接3根线就行了——VCC  GND就不说了。大家注意一下它的RXD要接51单片机的P3.0,也就是RXD.
为什么RXD接RXD,不是接TXD吗?有人会问。大家注意一下,这个模块上的RXD的意思是告诉你,外部的RXD接我这儿,不是说这个引脚就是RXD,它其实是TXD.   TXD也是一样的,要注意一下。
我们只接3根线,TXD不接,因为我们用手机发送指令,蓝牙模块只负责接收就行。STATE   EN这两引脚也不用管。
关于这个模块的其它用法,想更改设置波特率,更改设备名称等,网上都有相应资料,解决不了的可以加QQ:1399836578


到这儿,自己将上面几个模块组装一下,所有的硬件部分就完成了。
下面来看软件部分。软件部分又分为两个部分——下位机(单片机程序)和上位机(Android手机控制端);
由于下位机是根据上位机发送的指令来编程的,我们就先看看上位机部分
上位机截图上面已给出了。

由于上位机的编写涉及到Java语言编程知识和Android系统知识,不是十句八句能说清楚的,在这儿就不讨论它是怎样编写出来的。待会儿我会给出 它的APK安装包,下载到手机上直接安装就行。我们先对着上图说说它是怎么工作的。

当我们用手按下 前进   时,手机会通过蓝牙以ASCII码的形式发送一个字符“A”,释放时会发送一个字符“a”;
当我们用手按下 后退   时,手机会通过蓝牙以ASCII码的形式发送一个字符“D”,释放时会发送一个字符“d”;
当我们用手按下 左转   时,手机会通过蓝牙以ASCII码的形式发送一个字符“C”,释放时会发送一个字符“c”;
当我们用手按下 右转   时,手机会通过蓝牙以ASCII码的形式发送一个字符“B”,释放时会发送一个字符“b”;

当使用重力感应模式是,也是根据手机的状态来发送这几个字符的。

同时我们看他查询得ABCDabcd 八个字符的ASCII码值:A-65  a-97  B-66  b-98 C-67  c-99  D-68  d-100.

有了这些,我们就知道怎样写单片机程序了——使用51单片机的串口通信。打开串口中断,我们可以在串口中断服务函数中接收到字符后用  switch() 语句来判断接收到的字符。例如
case:65    break; 表示接收到的字符是A,也就是按 前进 时发送过来的,这时就可以在  break前写上小车前进的代码;
case:97    break;表示接收到的是a,即松开 前进 时发送出来的,既然松开了 前进 按钮 ,就可以再break前加上小车停止的语句。左转,右转也是一样的。至于小车前进后退左转右转的代码,要根据你自己的电机机驱动来写。
下面是我的下位机程序,电机驱动代码要自己写,这个只供参考

#include
#define uchar unsigned char
#define uint unsigned int
uchar a;
void init()
   {
     TMOD=0X20;   //设置定时器1为方式2
     TH1=0xfd ;     
     TL1=0xfd ;   //装初值
     TR1=1;       //启动定时器1
     REN=1;       // 使能接收
     SM0=0;
     SM1=1;       //设置串口为工作方式1
     
     EA=1;       // 打开总中断开关
     ES=1;       // 打开串口中断开关
   }
  
    void main()
    {
        init();
while(1);
     }
   void ser() interrupt 4
    {
           ES=0;
           RI=0;   //将接受中断标志位清0;
            
           a=SBUF; //将接受到的数据赋值给a
         
        switch(a)
    {
      case 65:  P2=0X17;  break;   //  发送的是A  前进指令
      case 66:  P2=0X1B;  break;   //  发送的是B  右转指令
      case 67:  P2=0X27;  break;   //  发送的是C  左转指令
      case 68:  P2=0X2B;  break;   //  发送的是D  后退指令
      
      case 97:   P2=0X00;  break;  //发送的是a   停止指令
      case 98:   P2=0X00;  break;  //发送的是b   停止指令
      case 99:   P2=0X00;  break;  //发送的是c   停止指令
      case 100:  P2=0X00;  break;  //发送的是d   停止指令
   //P2口是我的电机驱动的控制端
      
      default: break;
     }
  ES=1;
}

整个过程讲解完毕,想DIY的赶快行动起来吧!(有问题可以加QQ:1399836578)

差点忘了,下面给出编写的安卓手机控制端(上位机)软件

先说一下手机(必须是安卓手机)控制端使用方法



先用手机的蓝牙设置搜索到你的小车的蓝牙,并完成配对。





在手机上打开控制端点击 开始 后会弹出已配对的蓝牙设备,如果是你的小车上的蓝牙模块,就点击 连接小车,完成连接,
在完成连接前,HC06蓝牙转串口模块上的LED等会不停的闪烁,连接完成后,LED灯长亮,停止闪烁。


下面是安卓手机控制端软件和一些文档的资料包

手把手教你做Android手机遥控车.zip 5.6M
下载地址:http://www.51hei.com/bbs/dpj-47636-1.html

还有这个:
手机遥控车DIY.pdf (4.69 MB, 下载次数: 137)
最近,部分网友反映买的蓝牙转串口模块买成了主机,结果不能用。在这里说明一下,这种模块有主从机之分,
我们要选购从机,主机与手机不能通信的。对于疏忽表示歉意。



最后祝想DIY的同学早日成功!

评分

参与人数 1黑币 +5 收起 理由
zz661 + 5 绝世好帖!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏7 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:223768 发表于 2017-8-1 10:53 | 只看该作者
真的不错哦
回复

使用道具 举报

板凳
ID:244589 发表于 2017-11-14 09:08 | 只看该作者
楼主真的费心,很耐心的讲解
回复

使用道具 举报

地板
ID:276869 发表于 2018-1-17 10:03 | 只看该作者
毕设想做小车 但是要求比这个高   
需要手机触摸屏定位  小车自主导航到指定位置
所以定位这一块还挺难得
回复

使用道具 举报

5#
ID:285038 发表于 2018-3-6 21:34 | 只看该作者
楼主,貌似没有上位机软件啊
回复

使用道具 举报

6#
ID:261485 发表于 2018-3-7 16:04 来自手机 | 只看该作者
想问下这个底座具体有哪些原件?谢谢

210347p2hsrhnpz4pvvr5h.jpg (46.63 KB, 下载次数: 31)

210347p2hsrhnpz4pvvr5h.jpg
回复

使用道具 举报

7#
ID:171111 发表于 2018-5-15 00:05 来自手机 | 只看该作者
真好真详细 谢谢分享
回复

使用道具 举报

8#
ID:354613 发表于 2018-8-13 17:26 | 只看该作者
很好,感谢分享资源。
回复

使用道具 举报

9#
ID:381821 发表于 2018-9-24 12:50 | 只看该作者
照着做了一个,很不错的帖子
回复

使用道具 举报

10#
ID:401655 发表于 2018-9-24 14:47 | 只看该作者
哇。。楼主厉害。赞 。。。。
回复

使用道具 举报

11#
ID:357520 发表于 2018-9-24 16:47 | 只看该作者
楼主,手机控制程序在哪里啊
回复

使用道具 举报

12#
ID:399179 发表于 2018-9-24 20:40 来自手机 | 只看该作者
照着做就能成功吗?
回复

使用道具 举报

13#
ID:413449 发表于 2018-10-22 14:27 | 只看该作者
666666,那用这个做无人机可不可以啊
回复

使用道具 举报

14#
ID:413449 发表于 2018-10-22 14:31 | 只看该作者
很详细的操作,学到了
回复

使用道具 举报

15#
ID:446782 发表于 2018-12-15 15:03 | 只看该作者
感谢楼主,顶一下
回复

使用道具 举报

16#
ID:318672 发表于 2018-12-15 19:58 来自手机 | 只看该作者
不错,不错的分享
回复

使用道具 举报

17#
ID:372154 发表于 2019-1-28 00:55 | 只看该作者
多谢分享
回复

使用道具 举报

18#
ID:895316 发表于 2021-3-23 08:08 | 只看该作者
多谢分享刚好我做DIY小玩意也需要用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表