您的位置: 飞扬精品软件园 >> 文章中心 >> 硬件天地 >> 无线天地 >> 超牛!用WIFI控制的摇控汽车

相关文章链接

最新新闻资讯

    超牛!用WIFI控制的摇控汽车

    超牛!用WIFI控制的摇控汽车


    • 阅览次数: 文章来源: 原文作者: 整理日期: 2010-06-29


    三、软件部分

    本项目要用到三种软件:

    1. VB6 Wifi_Robot客户端应用程序(运行在Windows系统中);

    2. 用在路由器上的用C语言编写的CarServer,该路由器运行OpenWRT WhiteRussian v0.9 (Linux版本);

    3. 微控制器固件。

    我已经提供了经测试过的PIC16F628A微控制器和Arduino (Freeduino MaxSerial)固件,相关的源码都遵循GNU GPL v2发布了。

    假设您有一个安装了OpenWRT WhiteRussian v0.9 的Linksys WRT54GL,并将它已连接到了互联网,可以参考下面的安装指令。OpenWRT安装指令参考这个指南。

    Installing CarServer(安装CarServer)

    如果你只是想要使用该软件,在你的路由器安装配置SSH,然后运行以下代码:

    # cd /tmp

    # wget http://www.jbprojects.net/projects/wifirobot/carserver_1_mipsel.ipk

    # ipkg install ./carserver_1_mipsel.ipk

    Compiling and Installing CarServer(编译和安装CarServer)

    如果你想看看它是如何工作的,或者想自己修改代码,你需要先下载OpenWRT SDK(Linux  版本),然后遵循Eric Bishop的Writing and Compiling A Simple Program for OpenWRT去编译软件(只需参考第一部分)

    Makefile place in /OpenWrt-SDK-Linux-i686-1/package/carserver/

    Makefile place in /OpenWrt-SDK-Linux-i686-1/package/carserver/src

    carserver.c place in /OpenWrt-SDK-Linux-i686-1/package/carserver/src

    你编译的ipkg 将出现在 /OpenWrt-SDK-Linux-i686-1/bin/packages. 然后将代码# scp carserver_1_mipsel.ipk root@<router_ip>:/tmp/. 复制到你的路由器,配置SSH,并安装它。

    相关资源

    关于WRT54G系列路由器有一本很不错的电子书:《Linksys WRT54G Ultimate Hacking》。这本书教人如何添加一个串口,如何设置软件,还有一大堆的黑客技巧。我已经联系过该书的作者之一,这本书并非免费的,但是你在Google Books上可以读到它。

    3.1 如何让串口工作起来

    我们需要利用TTS/1(语音合成),因此,如果您只添加了一个串行端口,那就保证这个端口用于语音合成。假定你已经安装了OpenWRT WhiteRussian v0.9,那么运行如下指令即可。

    # ipkg update

    # ipkg install setserial

    # cd /usr/sbin

    # wget http://www.jbprojects.net/projects/wifirobot/stty.tgz

    # tar -zxvf stty.tgz

    # chmod 755 stty

    将下列语句添加在/etc/init.d/custom-user-startup后,使串口启动后工作起来,并使CarServer自动启动。

    /usr/sbin/setserial /dev/tts/1 irq 3

    /usr/sbin/stty -F /dev/tts/1 raw speed 9600

    /bin/carserver &

    3.2 运行Wifi机器人客户端应用程序




    下载:wifi_robot_client.zip(Wifi机器人客户端应用程序软件包)

    该压缩包(wifi_robot_client.zip)包含了VB6源码和编译过的EXE文件。如果您不想修改源程序的话,您只需用到wifi_robot_client.exe和config.txt文件,当然,如果您想修改源码,也完全可以。此外,该应用程序只适用于Windows系统,如果有人想开发用于其他操作系统的客户端软件,我也很欢迎。

    3.3 微控制器固件

    PIC 

    您首先需要一个PIC编码器来烧录固件。市场上有许多PIC编码器可供选择,我自己使用的编码器P16PRO40是在易趣上买的。您可以使用Microchip公司的MPLAB自己编译HEX文件,或直接下载本文提供的HEX文件。

    链接:car_pic.asm

    链接:car_pic.HEX

    Arduino(Freeduino MaxSerial) 

    指南:Arduino Tutorial

    相关源码下载链接: car_arduino.c

    如果您使用的是Freeduino MaxSerial,请务必对其进行小的硬件改造,以防Freeduino每次从路由器串口接收数据时都要重启。更多细节请参考本文的“硬件”部分。 

    3.4 下载所有的文件 

    以下这个压缩包包括上述所有的源码和编译过的二进制码。

    下载:wifi_robot_software.zip

    3.5 免责声明 

    我已经尽最大的努力确保所有上述信息是准确的。如果您发现任何错误,请发送电子邮件至 jon@jbprojects.net,我会立刻做出更正。

    四、衡量标准和实测数据 

    4.1 最高时速 

    为了得知该遥控车的最大速度,我在地上相隔3米放了两条带子,然后用摄像机拍摄。摄像机每秒记录30帧,摄像机的误差大约+ /-3 .3%,带子的误差大约是+ /- 1%。 


    该车在0.7秒内开出3米远(即相机在一秒内拍了21帧),所以最高时速为:4.3米/ s= 15.5km/h = 9.6miles/h


    4.2 距离 

    在500米之处,遥控车上装配的路由器还能连接到我的笔记本电脑(传输速度1MB/s),然而距离超出500米,就不行了。固件(OpenWRT)本可以提高输出功率,我也试图修改相关参数值,但无济于事,可能是我的戴尔Inspiron 6000型笔记本有限制。

    4.3 数据传输速率 

    控制信号:3.5KB /s

    摄像头:50-190KB /s 

    该摄像头使用多少带宽取决于所拍摄图像的亮度,如果亮度很高,就会需要较大的带宽。

    如果遥控车开出了很远,路由器还能以较低的速度继续连接笔记本电脑,直到传输速度降到1Mb/s,在这种速度下摄像头无法传回数据,但控制信号仍然有效。 

    4.4 功率测量 

    以下所有测量由一个Fluke 187 True RMS万用表来完成。 

    4.4.1 摄像头

    时间
    (单位:秒) 电流
    (mA @ 15.3V) 电流
    (mA @ 9.2V) 功率
    (W) 
    0 39 65 0.6 
    5 58 96 0.9 
    8 98 163 1.5 


    4.4.2 路由器 

    时间
    (单位:秒) 电流
    (mA @ 15.3V) 电流
    (mA @ 9.2V) 功率
    (W) 
    0 185 235 2.8 
    23 263 335 4.0 
    30 250 319 3.8 


    4.4.3 喇叭

    时间
    (单位:秒) 电流
    (mA @ 15.3V) 电流
    (mA @ 9.2V) 功率
    (W) 
    0 40 66 0.6 


    4.4.4 遥控车 

    状态 电流
    (mA @ 15.3V) 电流
    (mA @ 12V) 功率
    (W) 
    系统加载(Booting) 
    0 ~23秒 Fluctuates
    ~400 510 6.1 
    PIC+LED, 稳压器, 两块控制板(不包括路由器或摄像头) 102 130 1.6 
    系统加载完成,但车未启动(稳态) 479 611 7.3 
    加速行驶 5500 7012 84.1 
    运速行驶 4000 5100 61.2 


    注意:我们在遥控车行驶时测得的数据不那么精确,因为,当你举着一个笔记本电脑来操控遥控汽车,并且还得在大街上追着它跑,是很难读准万用表的。嗯,数据大概有正负0.1A的误差。 

    根据我的经验,正常情况下电池能维持1.5小时。 

    4.5 温度/过热问题

    从以上的功率测量我们可以看出,汽车加速时驱动晶体管工作电流超过了7A(12V),而它们的额定电流是5A,所以晶体管变热了。 

    在室内,遥控车运行25秒后,晶体管温度达到89摄氏度,汽车发动机也越来越热,达到85摄氏度。当遥控车在室外行使时,晶体管似乎并没有那么热,这也许是因为遥控车在室外多半是匀速行驶,不像在室内有很多的加速启动和停止。该晶体管能承受的额定温度高达150摄氏度,所以我觉得问题不大,不过我没有任何关于发动机的资料。 

    五、工程造价 

    项目 成本(单位:美元) 
    遥控汽车 6 
    第2块控制板(取自另一辆遥控汽车) 6 
    路由器 73 
    摄像头 115 
    电池 67 
    喇叭 3 
    PIC 电路 6 
    其它:螺母、螺栓、螺丝钉、电线、连接器 20 
    总计 296 

    [1] [2]


查看所有评论

网友对超牛!用WIFI控制的摇控汽车的评论

网名:
主题:
内容:
验证码: