最近文章更新
- 1966年生产的广州 珠江 SB6-2型 ..
- HD6870/6850全面评测,让你大饱眼..
- 百万现金刚入门 中国7大奢华私人..
- 罕见4G希捷酷鱼系类万转SCSI服务..
- IBM 6x86MX PR333 CPU
- 采用MC68000 CPU的进口老计算机主..
- 1989年IBM-XT机软驱
- BC3型饱和标准电池拆解
- JUKO ST
- Kingston 品牌的CPU
- YAMAHA 719
- intel 30线 内存条
- intel mmx cpu和主板
- 首款xHCI 1.0正式版标准USB 3.0控..
- 《极品飞车:地下狂飙》纹理MOD视..
- USB接口加扩展子卡:影驰神秘GTX..
- 阿里巴巴将发布浏览器 核心不是W..
- 黄仁勋大秀NVIDIA LOGO纹身
- Google Earth上的奇特卫星图片
- 开火!讯景限量版HD 5970详细测试..
相关文章链接
最新新闻资讯
本周下载排行
- ArcSoft TotalMedia Theatre 3 P..
- Windows 7 Build 7600 16385 RTM..
- 《姗姗来迟软件光盘+飞扬PE工具箱..
- MSDN Windows 7 RTL 7600 Ultima..
- Windows 7 Home Premium (x86) -..
- Windows Virtual PC (x86) - (Mu..
- MSDN Windows 7 Language Pack X..
- Windows 7 Language Pack (x64) ..
- Windows 7 Starter (x86) - DVD ..
- Windows 7 Professional (x86) -..
- Windows 7 Language Pack (x86) ..
- Windows 7 Home Premium (x64) -..
- Windows XP Mode (x86, x64) - (..
- 7127.0.090507-1820_x86fre_clie..
- DMG2ISO
本月下载排行
- ArcSoft TotalMedia Theatre 3 P..
- Windows 7 Build 7600 16385 RTM..
- 《姗姗来迟软件光盘+飞扬PE工具箱..
- MSDN Windows 7 RTL 7600 Ultima..
- MSDN Windows 7 Language Pack X..
- Windows 7 Home Premium (x86) -..
- Windows 7 Language Pack (x64) ..
- Windows 7 Professional (x86) -..
- 7127.0.090507-1820_x86fre_clie..
- Windows 7 Professional (x64) -..
- Windows 7 Starter (x86) - DVD ..
- Windows Virtual PC (x86) - (Mu..
- Windows 7 Ultimate (x64) - DVD..
- Lenovo Windows 7 Ultimate OEM ..
- Windows 7 Home Premium (x64) -..
- 阅览次数: 文章来源: 原文作者: 整理日期: 2010-06-29
超牛!用WIFI控制的摇控汽车
超牛!用WIFI控制的摇控汽车
三、软件部分
本项目要用到三种软件:
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]