用户名: 密码: 验证码: 注册帐号 忘记密码?        ^O^公告:这里是机器人爱好者的自留地!

当前位置: 主页 > 车形 Car >

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

时间:2011-12-23 00:53来源:热心网友 作者:网络 点击:

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

  而通过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://hi.baidu.com/liuhuiviking/home

以上零部件可以在官方指定超市购买:机器人超市

手机、平板电脑阅读本文,请扫描右侧二维码,我们有适合移动端的网页形式!

机器人制作网文章版权归作者所有,请转载前联系作者!

顶一下
(24)
96%
踩一下
(1)
4%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
发布者资料
机器人天空 查看详细资料 发送留言 加为好友 用户等级:注册会员 财富值:172¥ 注册时间:2011-12-22 12:12 最后登录:2011-12-23 00:12
机器人配置
推荐内容
赞助商