通过WiFi控制智能小车机器人制作过程详解
之前发的作品都是基于蓝牙控制的智能小车机器人,由于蓝牙的传输范围比较小,所以控制距离的局限性比较大,并且通过蓝牙传输视频会明显出现卡屏的现象。
而通过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.机器人的制作 ...
- 最小的Linux系统制作过程详解
http://club.topsage.com/thread-890315-1-1.html 一,什么是BabyLinux 二,为什么要做这样一个linux 三,什么人适合读这篇文档 四,应该具备的知 ...
- 微信小程序投票系统制作过程详解
目录 引言: 一.环境准备 二.页面设计 三.数据管理 四.功能实现 五.测试和发布 结语: 引言: 微信小程序是一种快速.便捷的应用开发方式,而投票系统则是小程序开发中常见且有趣的项目之一.在本文中 ...
- linux libfcmain.so,BabyLinux制作过程详解
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 以下是我认为需要的设备名: cdrom fd0 hda14 hda4 hdb11 hdb19 hdc hdc16 hdc6 hdd13 hdd3 loop ...
- 换脸视频怎么做出来的?AI视频换脸教程【完整版手把手】免费AI换脸视频工具制作过程详解
上期分享了wav2lip-GFPGan图片说话转视频的文章: 超写实虚拟数字人再升级:Wav2Lip-GFPGAN完整版教程及效果视频评测[手把手]_baoxueyuan的博客-CSDN博客 部分饱子 ...
- 用java制作一个软件控制小车_Android手机控制智能小车的手机端程序(完整版)...
[实例简介] 本程序是我写的Android手机控制智能小车的手机端的全部的源程序,下载后直接就能用. [实例截图] [核心代码] 624ba65e-a75e-4ba0-8e72-6dbc0823fcb ...
- 基于STM32F103C8T6的循迹避障小车完整制作过程(详细)----上篇(第123点)
基于STM32F103C8T6的循迹避障小车完整制作过程 本文适合小白观看 由于本人的一个小项目,要做一个基于STM32的循迹避障小车,前后花了约1周的时间,这个过程中也参考了很多大神分享的资料,学到 ...
- 人工智能-树莓派小车(5)——用微信控制智能小车
之前所做的有一个特点就是需要在树莓派上连接一个USB麦克风,通过这个麦克风来进行语音的输入,但是在实际使用场景上来看,这是不合理的,因此需要一个可以远程操控智能小车的方案,因此萌发了将控制端移植到手机 ...
- 五路循迹传感器的优点_5路红外线传感器控制智能小车循迹,27秒走完所有站点...
5路红外线循迹智能小车27秒走完比赛地图 为了指导学生参加2017年广东省机器人挑战赛自选项目"高铁时代"的比赛,我改进了某厂家的arduino智能小车,把红外线循迹传感器从2路增 ...
最新文章
- 通过SSIS的“查找”组件进行不同数据源之间数据的合并操作
- Ultraedit 26.1安装教程
- spring5新特性
- CALayer与UIBezierPath
- 精通Java设计模式从初见到相爱之工厂+策略模式(3)
- java uuid静态方法_Java UUID getLeastSignificantBits()方法与示例
- 解决: WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- 大数据每日哔哔、新征程
- mysql 连接其他数据库_普通用户从其他主机连接MySQL数据库
- 字符串匹配のKMP【@Abandon】
- 通俗易懂的monteCarlo积分方法(八)
- 【腾讯TMQ】老司机教你如何优雅地完成一个小项目测试
- 游戏部署安全策略方案
- GAMLSS代码示例
- java毕业设计艾灸减肥管理网站Mybatis+系统+数据库+调试部署
- 个人永久性免费-Excel催化剂功能第94波-地图数据挖宝之搜索地图上的各种兴趣点数据(商铺名、地名、公共设施等)...
- 查询课程名称为“数学“,且分数低于60的学生姓名和分数
- 2022/11/4电子体温计方案_单片机
- SitePoint Podcast#96:插件大战
- 【QA那些事儿】视频SDK测试介绍