之前发的作品都是基于蓝牙控制的智能小车机器人,由于蓝牙的传输范围比较小,所以控制距离的局限性比较大,并且通过蓝牙传输视频会明显出现卡屏的现象。

而通过WiFi方式控制智能小车机器人能达到100米左右的控制距离,并且在视频传输方面远远优于蓝牙传输方式,因此这次在原有的智能小车的基础上,将蓝牙控制方式改为WiFi控制。

这是WiFi小车的视频:

下面简单地介绍一下WiFi控制智能小车机器人的制作过程:

首先是智能小车不变,51单片机中的下位机程序也不改,(这些东西的制作可以参看我之前的日志)不过为了方便安装路由器,各位可以自己在小车上再加上一层,这样就有空间安放路由器了。

接下来是原理说明:

其实通过WiFi控制智能小车机器人没有想象中那么复杂,它的原理就是:找一台能刷Linux的无线路由器,将其操作系统刷成OpenWrt,这是一个在路由上运行的Linux操作系统,完成这一步后,这个路由就等于成了一个Linux系统的小型电脑了。

然后将Linux下的摄像头驱动安装到路由器上,这样路由就能把视频通过无线功能发送到电脑控制端。

指令的发送则是通过一个PHP网页,这个PHP网页是运行在路由器上的,控制者通过访问路由器的地址,就能打开这个PHP网页,然后通过按键操作,这个PHP网页就能把相应的按键键值转换为指令发送到路由器的串口。

在路由器中,串口就是TTL线接口,所以只需要将路由器的TTL线接到单片机上对应的串口上,就可以向单片机发送指令了。

需要的材料如下:

1、可以刷OpenWrt的无线路由一台,一般选择大亚DB120系列的,这种路由猫内部有TTL线,可以作为串口发送指令。

2、摄像头采用芯片为301的摄像头,这种摄像头比较老,目前很难找到,建议到旧货市场看看。

3、上位机软件:我的WiFi上位机软件(其实就是运行在路由上的PhP网页和其他一些驱动)采用的是爱果联盟乔帮主写的一个wifirobot控制端程序,但是该程序是配套论坛中商业化量产的WiFi机器人的,所以需要对源代码进行一些修改,稍后将介绍。

制作步骤:

1、刷路由,具体怎么刷比较繁琐,这里就不一一介绍了,直接百度"无线路由/猫刷OpenWrt"即可,不过刷机有风险,希望大家在买路由的时候直接让店家刷好就行了。需要刷的OpenWrt版本号为2.6,网上有这个版本系统的固件下载,如果需要重装的时候直接用这个固件重刷就行了。

2、刷完路由之后,安装爱果论坛乔帮主的wifirobot控制端程序,安装过程请到这个地址查看:http://www.igee.cn/read.php?tid=436

但是在改TTL波特率这一步,不能直接改成链接中所说的115200,这个波特率是论坛中成品小车驱动板的波特率,因为我们的51单片机小车的波特率是9600,所以在这里应改为9600

3、下一步是接线,把51单片机RXD和路由器的TXD相接,TXD和路由器的RXD相接,地线接在一块,但是要注意了,这里我测量得出路由器TTL电平为3.3左右,51单片机引脚为4.5左右,所以在这两对脚之间都串上一个1K电阻。

大亚路由器的TTL引脚定义如下图:

4、摄像头的连接,把301摄像头的USB插口查到路由器后面的USB接口,如果是双USB的路由器,则要接到下面的那个接口。

5、最后是程序

在我这个智能小车的下位机程序中,采用发送字符的方式进行指令传输,所以得需要改改乔帮主的PHP源代码。乔帮主的上位机源代码中有一个web/lib.php文件,用Winscp打开它,其中有个函数是发送数据的,如下:

function send2ser($tts,$hex_data)//发数据
{    
    $bin_data=hex2bin($hex_data);
    $handle = @fopen ($tts, "a+b");
    $error=fwrite($handle, $bin_data);
    fclose ($handle);
    return $error;
}
在这里,乔帮主先对原始的键值进行了处理,把它转换成了二进制格式,但这是适用于论坛中的驱动板的,所以在这里需要改改,把处理字符串的那一行代码注释掉,直接发送字符串就行。
改成:

function send2ser($tts,$hex_data)//发数据
{    
    //$bin_data=hex2bin($hex_data);
    $handle = @fopen ($tts, "a+b");
    $error=fwrite($handle, $hex_data);
    fclose ($handle);
    return $error;
}

由于这个控制端程序是在乔帮主的的源代码基础上修改的,所以在这里就不方便把这一块的源代码公开了,有兴趣者可以自己解压乔帮主的控制端安装包查看代码。

做好这些步骤后,就可以开始运行了。首先打开路由器电源,等待30秒钟左右,路由启动完毕,然后打开电脑的无线网卡,搜索路由信号并进行连接。

连接成功后,打开智能小车上的电源。用火狐浏览器打开如下地址:

http://192.168.1.1:81/car.php

当然,不一定是这个地址,具体看你的路由器LAN口的设置,默认是这个。

然后就可以出现如视频中所示的控制画面了,在控制界面的中选择"编辑"按钮,再点击"前进"按钮,将弹出设置对话框,在"按键按下发送的指令"中填入1,"按键弹起发送的指令"中填入0,再点击"后退"按钮,按下指令填入3,弹起是0;左转按钮设置为2、0,右转为4、0。然后点击"发送",即可通过W、S、A、D四个键控制小车的运动了。

由于视频传输部分其实是不断下载一幅图片所形成的,所以必须选择火狐浏览器,使用IE的话看到的是静态图像,必须手动刷新才行。

OK! 通过WiFi控制智能小车机器人的介绍就到这里了,希望搞这一行的新手能多动动脑筋,光等着前人帮你解决所有问题是不会有进步的。

相关配件网上都有,比较关键而且容易出现干扰的部分是电机,建议找质量好点的店家购买:http://shop60840894.taobao.com/

通过WiFi控制智能小车机器人制作过程详解相关推荐

  1. 重装上阵怎么造简便机器人_重装上阵机器人怎么制作 机器人制作方法详解

    重装上阵机器人怎么制作?机器人制作需要注意哪些?很多的小伙伴能都不知道怎么制作机器人,所以小编今天带来的就是重装上阵机器人的制作方法,还不知道的小伙伴们快来看看吧! 机器人怎么制作: 1.机器人的制作 ...

  2. 最小的Linux系统制作过程详解

    http://club.topsage.com/thread-890315-1-1.html 一,什么是BabyLinux 二,为什么要做这样一个linux 三,什么人适合读这篇文档 四,应该具备的知 ...

  3. 微信小程序投票系统制作过程详解

    目录 引言: 一.环境准备 二.页面设计 三.数据管理 四.功能实现 五.测试和发布 结语: 引言: 微信小程序是一种快速.便捷的应用开发方式,而投票系统则是小程序开发中常见且有趣的项目之一.在本文中 ...

  4. linux libfcmain.so,BabyLinux制作过程详解

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 以下是我认为需要的设备名: cdrom fd0 hda14 hda4 hdb11 hdb19 hdc hdc16 hdc6 hdd13 hdd3 loop ...

  5. 换脸视频怎么做出来的?AI视频换脸教程【完整版手把手】免费AI换脸视频工具制作过程详解

    上期分享了wav2lip-GFPGan图片说话转视频的文章: 超写实虚拟数字人再升级:Wav2Lip-GFPGAN完整版教程及效果视频评测[手把手]_baoxueyuan的博客-CSDN博客 部分饱子 ...

  6. 用java制作一个软件控制小车_Android手机控制智能小车的手机端程序(完整版)...

    [实例简介] 本程序是我写的Android手机控制智能小车的手机端的全部的源程序,下载后直接就能用. [实例截图] [核心代码] 624ba65e-a75e-4ba0-8e72-6dbc0823fcb ...

  7. 基于STM32F103C8T6的循迹避障小车完整制作过程(详细)----上篇(第123点)

    基于STM32F103C8T6的循迹避障小车完整制作过程 本文适合小白观看 由于本人的一个小项目,要做一个基于STM32的循迹避障小车,前后花了约1周的时间,这个过程中也参考了很多大神分享的资料,学到 ...

  8. 人工智能-树莓派小车(5)——用微信控制智能小车

    之前所做的有一个特点就是需要在树莓派上连接一个USB麦克风,通过这个麦克风来进行语音的输入,但是在实际使用场景上来看,这是不合理的,因此需要一个可以远程操控智能小车的方案,因此萌发了将控制端移植到手机 ...

  9. 五路循迹传感器的优点_5路红外线传感器控制智能小车循迹,27秒走完所有站点...

    5路红外线循迹智能小车27秒走完比赛地图 为了指导学生参加2017年广东省机器人挑战赛自选项目"高铁时代"的比赛,我改进了某厂家的arduino智能小车,把红外线循迹传感器从2路增 ...

最新文章

  1. 通过SSIS的“查找”组件进行不同数据源之间数据的合并操作
  2. Ultraedit 26.1安装教程
  3. spring5新特性
  4. CALayer与UIBezierPath
  5. 精通Java设计模式从初见到相爱之工厂+策略模式(3)
  6. java uuid静态方法_Java UUID getLeastSignificantBits()方法与示例
  7. 解决: WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
  8. 大数据每日哔哔、新征程
  9. mysql 连接其他数据库_普通用户从其他主机连接MySQL数据库
  10. 字符串匹配のKMP【@Abandon】
  11. 通俗易懂的monteCarlo积分方法(八)
  12. 【腾讯TMQ】老司机教你如何优雅地完成一个小项目测试
  13. 游戏部署安全策略方案
  14. GAMLSS代码示例
  15. java毕业设计艾灸减肥管理网站Mybatis+系统+数据库+调试部署
  16. 个人永久性免费-Excel催化剂功能第94波-地图数据挖宝之搜索地图上的各种兴趣点数据(商铺名、地名、公共设施等)...
  17. 查询课程名称为“数学“,且分数低于60的学生姓名和分数
  18. 2022/11/4电子体温计方案_单片机
  19. SitePoint Podcast#96:插件大战
  20. 【QA那些事儿】视频SDK测试介绍

热门文章

  1. OpenSSL 宣布将开源许可证更改为 Apache 2.0
  2. AutoCompleteTextView组件的功能和用法
  3. java easyreport 导入excel、 txt 数据复合属性(二)
  4. 终于知道以后该咋办了!
  5. linux 文件颜色的含义
  6. YlmF WinXP SP3精简版安装显卡驱动技巧
  7. 把庞大的 npm script 拆到单独文件中
  8. Java:前程似锦的 NIO 2.0
  9. 回调、匿名函数、闭包
  10. python如何和qt交互_Python 之Pyqt5操作交互处理,原来这么简单!