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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

2011-05-22 00:40

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

而通过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控制端程序,安装过程

请到这个地址查看:/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控制智能小车机器人的介绍就到这里了,希望搞这一行的新

相关文档
最新文档