去年网上看到国外通过WIFI控制四轴飞行器,就很想自己做一个,但后来发现相应航模材料太贵了也就没有开展起来。前几天买了个小米手机,无意中看到小米官网上wifi控制赛车,觉得非常有趣,于是决定自己也做一个,到网上找了许多WIFI的控制小车的制作过程,发现最复杂就是需要建立wifi控制模块,参考网上说明可以通过简单的无线路由器刷成openwrt,再安装相应的模块即可实现wifi控制。
网上介绍较多的TP link 703N,主要是它小巧方便,不过其中flash大小也有限,后续安装组件时需要注意不要将所有都安装不然没有足够的空间。
首先参考http://www.ncnynl.com/doc/201302/6282.htm
1.下载703N对应的openwrt firware,(openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory)该版本需要熟悉一些linux操作的。
2.通过自带的web控制界面升级,如果下载错误会提示一些长度不匹配的错误。
3.升级后重启703n,通过网线连接到PC设备,通过telent 192.168.1.1登陆,
passwd root
修改路由器root账户密码。
4. 直接在上面,修改几个配置文档,用命令行的vim)
option type mac80211
option channel 6
option phy phy0
option hwmode 11ng
option htmode HT40- //启用150M的无线
option noscan 1
list ht_capab SHORT-GI-20
list ht_capab SHORT-GI-40
list ht_capab RX-STBC1
list ht_capab DSSS_CCK-40
option device radio0
option network lan
option mode ap
option ssid TPLINK_703N
//SSID,按需设置
option encryption psk2
option key 1234567890
//密码请自行设置
option 'ifname' 'lo'
option 'proto' 'static'
option 'ipaddr' '127.0.0.1'
option 'netmask' '255.0.0.0'
option 'type' 'bridge'
option 'proto' 'static'
option 'netmask' '255.255.255.0'
option 'ipaddr' '192.168.10.1'
// 仅仅为了和上级路由IP不冲突,可自行设置,但是最好与上级路由保持相同网段,不然后面将连接不上
option 'ifname' 'eth0'
option '_orig_ifname' 'eth0'
option '_orig_bridge' 'false'
option 'proto' 'dhcp'
//WAN口设为从上级路由获取IP地址
/etc/config/wireless
config wifi-device radio0
config wifi-iface
/etc/config/network
config 'interface' 'loopback'
config 'interface' 'lan'
config 'interface' 'wan'
修改好后,重启703N。同时把703N用网线接到上一级带DHCP的可上网的路由器上。
5.现在pc设备已经可以找到对应的无线路由设备,通过ssh2登陆到刚刚设置的静态IP,如192.168.10.1,如果登陆不成功,可能与上级路由器不同的网段。
这时需要重新将网线直接连接PC,通过SSH2登陆设置的静态IP,修改对应的配置。
完成上述操作后,路由器应该可以上外网了。
6. 更新组件
(1)调用opkg update,若能正常连接到外面,则参考下面安装
opkg update
opkg install luci
//luci界面
opkg install luci-i18n-chinese
//luci中文支持
--opkg install luci-theme-bootstrap
//luci的theme,可不装
opkg install luci-app-ddns
//ddns
opkg install luci-app-hd-idle
// usb硬盘自动休眠,usb口接硬盘用的,可不装
opkg install luci-app-samba
// samba
opkg install luci-app-upnp
--opkg install luci-app-qos
//qos,喜欢的装
opkg install luci-app-ushare
// dlna服务,看个人喜好
opkg install luci-proto-3g
// 3g拨号支持
opkg install nfs-kernel-server
// nfs文件服务器,要的装
opkg install usb-modeswitch-data // 国内的3g上网卡要装这个,比如我的中兴583
opkg install kmod-usb-serial-option //
3g上网卡要的
opkg install kmod-usb-storage // 外挂usb硬盘要的
opkg install kmod-usb-ohci
//usb1.1的设备,似乎默认就装了
opkg install kmod-usb2 //默认就装了
opkg install kmod-usb-uhci //外挂usb硬盘要的,似乎不装也行,好像只是针对intel,via的一些控制器。
opkg install block-mount // 自动挂载用的
opkg install kmod-fs-ntfs
// ntfs,只读
opkg install kmod-fs-ext4
// linux的ext2,3,4系统
opkg install kmod-fs-vfat
// fat,fat32
opkg install kmod-nls-utf8
// 文件系统的语言支持,想支持中文必须的
opkg install kmod-nls-cp437
// 文件系统的语言支持,可不装
opkg install kmod-nls-iso8859-1 // 文件系统的语言支持,可不装
opkg install ntfs-3g // ntfs的读写支持
--opkg install e2fsprogs // ext格式工具
--opkg install usbutils
// usb的工具
--opkg install restorefactory // reset,可不装
opkg install luci-app-transmission // transmission,爱装不装
装好后,执行下面命令,启动luci界面。
/etc/init.d/uhttpd enable
/etc/init.d/uhttpd start
在这之后就可以进入web页面配置了。详细的就不列举的。
(2)若不能上外网,也没有关系,可以在PC端搭建FTP服务器,路由器从PC端下载,PC上需要将对于安装包都下载下来。(我就是采用该方式)
网上下载FTP服务器工具,推荐使用xlight ftp,非常好用,PC上搭建OK;
修改路由器上opkg.conf,
/etc/opkg.conf
将上面的下载路径修改
http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages --》
ftp://192.168.2.104/packages
再调用opkg update,packages中放置上面外网连接上东西,首先现在packages.gz,后续安装需要会提示对应缺少什么软件包,再下载。
接着参考上面可以进行对应软件包安装。
注:按照上面操作,我还是登不上web界面,只是出来一下就无法连接,具体原因还没查明。
6.挂载USB摄像头
我手头上刚好有个天敏的免驱摄像头,上面有表示UVC,说明应该支持UVC数据。
确保下面软件包完成安装
kmod-video-uvc
kmod-usb2
kmod-video-core
mjpg-streamer
通过logread可以看到对应USB2.0摄像头挂载成功。
调用
mjpg_streamer -i "input_uvc.so -r 352x288 -f 15 -q 80 -y" -o "output_http.so -p 8080 -w /www"
PC上使用firefox浏览器里面输入
http://192.168.1.1:8080/?action=stream
看到了视频哦。
kmod-input-core
kmod-video-uvc