需要确认注册邮箱后才能开通博客,立即确认我的邮箱
文章 搜索 高级搜索 ?3? ?3?
  • 滤波器new!
  • LED驱动 new!
  • 新能源 new!
  • PLL
  • PCIE协议
  • 可穿戴
  • LSI
  • FCI
文章 论坛 博客 小组 研讨会
EDN China>EDN论坛>模拟专区>牛人自制Wi-Fi遥控车二十二个步骤详解
?
大家在做什么...
楼主 问题:

牛人自制Wi-Fi遥控车二十二个步骤详解

发布时间:2015-11-13 下午3:04

作者: yunxixi

等级: 高级工程师

积分: 2422分

发帖数: 611次

网站总积分: 2432分

2237分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
今天的作品(来自Instructables)是一台搭载了相机,并可由Wi-Fi控制的遥控车,你可以通过互联网驾驶它。这台遥控车比较特别,因为它的“遥控器”是无线路由器,而不是我们熟悉的手柄。好吧,言归正转,跟着我一起熟悉下制作步骤吧。
?
1.jpg
?
第一步:设定


?
这是一台两轮驱动的遥控车
前轮是该车的转向轮
该车的两个后轮和电机位于车体后部
?
第二步:需要准备的原材料
?


?

?
兼容OpenWrt的路由器,如GL.iNet?6416
支持USB?Video?Class的摄像头,我使用的是带有自动对焦功能的微软?LifeCam?HD-5000
4块3.7伏的锂离子电池(一定要买有内置保护电路的)
兼容Arduino系统的DIY智能小车Chassis?Kit?2?WD
L298N电机驱动控制器开发板
多功能DIY直流对直流转换器
FTF杜邦跨接电线
MTF杜邦跨接电线(20厘米)
阻抗为47欧姆的白光LED。
螺母和螺栓。
?
第三步:原理图
?


?
如上图所示,无线路由器起到了中枢的作用,它可以控制所有部分。网络摄像头通过支持流媒体视频的USB接口连接到无线路由器,电机控制板则直接通过通用输入输出接口(GPIO)与路由器相连,这样,即使没有了遥控器,我们也可控制小车。
?
第四步:无线路由器
?


?
在这个项目中我采用了GL.iNet?6416A无线路由器,因为它体积十分小巧(三维只有58*58*22毫米),其机身上的五个接口使用起来也十分方便。
?
如果存储空间能过关,其他支持Openwrt的路由器也能胜任该项工作,你可以在OpenWrt的官网上找到支持该标准的路由器名单。
?
多数路由器的接口数量都稍显不足,无法满足控制电机的需求。你可以在路由器上使用类似LED?pin的其他引脚,不过你要卸掉LED的接口模块或者手动控制LED。
?
第五步:网络摄像头
?


?
我手头上就有一台微软HD-5000摄像头,它可以录制720p的视频。不过摄像头的自动对焦弄得我烦烦的,小车上这功能没什么意义,所以干脆直接关掉这一功能了事。不过摄像头还是要找个支持UVC的。
?
第六步:电机控制板
?


电机对电流的需求比路由器提供的要高的多,如果你操控电机时没有使用H桥,就有可能会对路由器造成损害。我在该项目中使用L298N电机驱动控制开发板就是为了控制两台直流电机的速度和方向。
?
在实验过程中我发现,输入电压和L298的输出电压之间有一个约为1.5伏的电压降。
?
第七步:多功能DIY直流对直流转换器(可自动降压升压)
?


?
这是一台可自动降压升压的转换器,它具有输出电压调幅功能,可以让输出电压高于或低于输入电压。
?
与线性调节器相比,直流对直流转换器的优势在于其转化效率,该效率可达95%以上,因此它的能耗相对来说要低得多。为此我还做了一个简单的实验,我将该模块的输出电压改为5伏,而输入电压则在2伏到24伏间调节,但无论输入电压如何(除非输入低于2.6伏),输出电压都稳定的保持在5伏。
?
第八步:智能小车Chassis?Kit
?


?
Chassis?Kit由丙烯材料制作而成,其尺寸为19.8?x?14.0?x?6.5厘米,比我想象中要小巧许多。装配过程可不简单,我绞尽脑汁才把各个零件、模块和设备的位置搞清楚。
?
套件包含两台减速电机,两个塑料轮子,一个能容纳4块AA电池的电池夹,此外还有两个高速编码器,不过在这个项目中我们用不到它俩。
?
据?Gearbest.com上的数据显示,电机的输入电压为3伏到12伏,下面几点是我在网上找到的其他相关信息。
?
建议工作电压为6到8伏
电压为3V时,其最大扭矩可达800gf?cm(约为78牛米)
空载速度可达1:48
负载电流为70毫安(最大250毫安)
这玩意相当有趣,那两个减速电机体积很小,但性能强劲,甚至可以推动一把塑料椅。
?
第九步:电池和电压问题
?


?
在整个项目中,我使用了4节3.7伏的18650锂离子充电电池,其中两块串联,另外两块则采用并联的方式,这样电压就提升到了7.4伏。若使用或充电方式不当,有可能会引发电池爆炸或火灾,所以我推荐大家购买内置保护电路的电池。
?
由于电机的输入电压可变,所以遥控车需要两种不同的电压,5伏来支持无线路由器,其它的则供给给电机。
?
在组装遥控车前,我订购了双USB降压调压器模块和直流对直流转换器(可自动升压降压)。前者通过USB线为无线路由器和网络摄像头提供稳定的5伏电压,后者则会在输出之前将电压调整到电机所需的大小。
?
在测试过程中,我发现电机的输入电压不能超过5伏,要不然遥控车会速度过快,或者由于电路保护而直接停掉。
?
基于这一测试结果,双USB降压调压器模块就被我弃用了,而直流对直流转换器则被我留了下来,它可以将输出电压稳定在4.5伏左右。这样一来,路由器和摄像头电压就变为4.5伏,两台电机则只有3伏的输入电压了。
?
第十步:OpenWrt——路由器的Linux
?


?
GL.iNet无线路由器出厂就自带OpenWrt?Barrier?Braker软件,它拥有全新设计的易用网页界面,你可以在这里对路由器进行设置。请跳转到http://192.168.8.1并登录你的网络账号。
?
此外你还可以点击高级选项(或者打开http://192.168.8.1/cgi-bin/luci)来进入传统的Luci网络界面对路由器进行设置。
?
在测试中我发现,如果不登陆到路由器,视频流就无法正常工作,为此我不得不从OpenWrt的网站上下载相关文件并将其传送至路由器。
?
如果你的路由器上还没安装OpenWrt的固件,请参阅相关教程并对你的固件进行升级。
?
第十一步:网络连接
?


?
安装相关软件时路由器需要网络连接,所以你得先对路由器进行设置,具体步骤点这里,学习一番之后你就能为路由器设置好网络了。此外,你还可以为路由器创建一个新的SSID,这样你的各类设备都能连上互联网了。
?
第十二步:为路由器安装额外的软件
?


?
默认条件下,OpenWrt包括一些标准软件,借助它们你可以建立无线网络或者加入现有网络,不过你需要在路由器上安装一些额外的软件。下面的步骤详细介绍了摄像头所需软件的安装过程,如果你没有摄像头或不需要视频流,尽可以略过这部分。
?
使用SSH将软件传输至路由器,然后逐行执行下列命令,推荐使用名为PuTTY的工具。
?
在安装软件前,你需要从本地软件库中下载当前列表中的软件包。
?
opkg?update?#update?list?of?available?packages
?
对摄像头进行设置时,请参阅相关教程。
?
opkg?install?kmod-video-uvc?#UVC?camera?driver
?
opkg?install?mjpg-streamer?#stream?JPEG?files?over?an?IP-based?network
?
若要开启视频,请对/etc/config/mjpg-streamer文件进行编辑,在这里我是用的编辑工具是WinSCP。
?
config?mjpg-streamer?core
option?enabled?"1"???
option?device?"/dev/video0"????
option?resolution?"640x480"????
option?fps?"15"????
option?www?"/www/webcam"????
option?port?"8080"
?
如果你想打开或关掉摄像头的自动对焦,请安装uvcdynctrl。
opkg?install?uvcdynctrl
?
如果想随时获知摄像头的状态,请安装Isof。
opkg?install?lsof
?
要开启视频请重启路由器。
/etc/init.d/mjpg-streamer?enable
?
重启路由器后你就可以使用视频功能了。
?
下面一行命令可以暂时关掉自动对焦功能。
uvcdynctrl?--set='Focus,?Auto'?0
通过lsof命令来查看摄像头状态。
lsof?/dev/video0
?
第十三步:启动时禁用自动对焦
?
将下列代码保存到/etc/init.d/disableAutoFocus。
#!/bin/sh?/etc/rc.common
START=99
STOP=15
start()?{?
uvcdynctrl?--set='Focus,?Auto'?0
}?
stop()?{?
uvcdynctrl?--set='Focus,?Auto'
}
将文件系统权限设定为0755,你也可以通过WinSCP修改权限。
chmod?0755?/etc/init.d/disableAutoFocus
需要时可关掉自动对焦
/etc/init.d/disableAutoFocus?start
激活服务自启动能
/etc/init.d/disableAutoFocus?enable
?
第十四步:电路图
?


?
第十五步:源代码
?
该项目的核心代码由Lua脚本语言撰写而成,网页界面则使用了html和javascript。作者已经将所有文件整合进了一个压缩包,请点击此处下载。
?
Lua是一种解释性语言,对脚本进行修改也并不需要重建整个项目,它的代码在保存后就会立即执行,所以Lua在升级和维护上十分方便。如果你对Lua感兴趣,可以仔细阅读下列Lua文档。
?
/usr/lib/lua/gpio.lua
控制路由器上各类接口的读写工作。
/usr/lib/lua/2w_motor.lua
与gpio.lua协同工作,可控制小车上的两台直流电机。
/www/cgi-bin/control
该程序可作为浏览器和路由器之间的一个接口。
之前我们提到过,网页界面的编写使用了html和javascript。如果你想开发自己的界面,可以参考下列文档。
/www/car/index.html
主程序,可加载外部js?&?css文件并实现图像的onClick事件。
/www/car/pantilt.html
主程序,可带来更大的视频分辨率。
/www/car/car.css
控制选项布局,如图片位置,颜色和字体等。
/www/car/car.js
该文档包含有一部分javascript函数。
/www/images
网页上一个装满图片的文件夹。
/www/codebase
该文档中包含了一部分javascript的元素,开发者可以用它来制作滑块。
?
第十六步:软件安装(1)
?


?
实际上你并不需要费劲安装软件,只要把它们放在路由器的相关文件夹中就行,在项目中我是用WinSCP来管理文件和文件夹。
WinSCP是Windows下的SFTP/FTP/WebDAV/SCP客户端,你可以利用它在电脑和路由器间传输文档和管理文件夹。?
?
第十七步:软件安装(2)


若你的电脑上已经安装了WinSCP并建立了与路由器的连接,就可以解压缩下载的文档(2W_WiFi_car.zip)?到你的电脑并将其传送至路由器上相应的文件夹(如上图所示)。


第十八步:软件安装(3)


名为?/www/cgi-bin/control的文件需要执行权限,请将其权限修改为0755?(rwxr-xr-x)(如上图所示)。至于修改权限的相关步骤,你可以参考WinSCP的相关提示。


第十九步:脉宽调变(PWM)-速度控制


GL.iNet无线路由使用了一块Atheros?AR9331?CPU,不过它在硬件上却不支持脉宽调变,想要实现该功能,只能通过安装相关软件来支持。


在内核升级到3.14之后,许多OpenWrt的软件如Barrier?Breaker和Chaos?Calmer都不再支持输入输出接口端的脉宽调变了。所以你得自行对OpenWrt的固件进行修改,以便使用脉宽调变功能。


我跟着教程试着对固件进行修改,但当我将修改好的固件上传至路由器后,它却直接变砖了,还好路由器恢复起来比较简单,真是惊出我一身冷汗。


我上手gpio-pwm-ar9331时间不短了,之前下载了先行编译版的程序并上传至我的路由器,不过安装缺总是出错,显示的错误信息如下:


Installing?kmod-gpio-pwm-ar9331?(3.10.49-1)?to?root...Collected?errors:
*?satisfy_dependencies_for:?Cannot?satisfy?the?following?dependencies?for?kmod-gpio-pwm-ar9331:*?kernel?(=?3.10.49-1-69f3c9d824d79ff97e8c05f8219a41f3)?*
*?opkg_install_cmd:?Cannot?install?package?kmod-gpio-pwm-ar9331.


此后,我从源码对gpio-pwm-ar9331进行了重新编译,这次安装成功了,但它却完全无法工作。


于是我从网上找了一些软件端脉宽调频教程,经过不断地测试,我终于取得了成功,希望在使用过程中不要出现bug。


不过我的担心还是发生了,路由器上的脉宽调频还是废了,希望未来几周我能搞定这个问题。如果各位有什么高见,我洗耳恭听。


第二十步:试着操控车辆

?



你可以通过网络浏览器(别用万恶的IE,我推荐你们使用Chrome)或者安卓应用来控制小车。
打开浏览器并跳转到http://routerIP/car/(一般是http://192.168.8.1/car/)或者http://routerIP/car/pantilt.html(如:http://192.168.8.1/car/pantilt.html)。
在界面中点击相关按钮或使用键盘对校车进行操控。
狂点键盘上的一个键就可以让小车跑起来,松开按键小车就会停下来。


第二十一步:键盘快捷键

?



第二十二步:Wi-Fi遥控车完成


我的名字叫Wi-Fi遥控车,我于05年十月诞生于马来西亚。我能跑能看,身强力壮长得又帅,熟悉我之后保证你会爱上我。
?


分享到:? 新浪微博 ?? 微信 ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
qq空间 ?? 腾讯微博 ?? 人人网 ?? 百度搜藏 ??
?
???标签: wi-fi遥控车
yunxixi 编辑于 2015-11-13 下午3:09
引用 回复 收藏 推荐到小组 ( 0) ( 0) 关注

快速回复 高级回复
用户名:?
美国的游客?????? (您将以游客身份发表,请登陆 | 注册) ?
标题: * 标题还可以输入80
评论: * 你还可以输入30000
验证码: ?*?
分享: 新浪微博?? qq空间?? qq微博?? 人人网?? 百度搜藏??
维护专业、整洁的论坛环境需要您的参与,请及时举报违规帖子,如果举报属实,我们将给予相应的积分奖励。
谢谢您的热心参与!
返回模拟 | 返回专业技术交流区
本论坛仅陈述专家或个人观点,并不代表EDN China 电子技术设计互动社区网站立场。
积分排行榜
彩云 [殿堂级工程师]
mzlr [殿堂级工程师]
特权同学 [殿堂级工程师]
敬请关注EDNC官方微信“edn-china"

每月定期向您递送电子元器件规格书网中的最新元器件数据手册下载、库存信息及技术参数更新。请点击订阅:

2016我的工程师社区
EDN官方QQ群???更多QQ群
  • EDN-深圳 8366025
  • 菜农Cortex-M0技术交流 12047788
  • EDN-哈尔滨 75642591
  • EDN-上海 15156661
  • EDN-广州 57660943
  • EDN-桂林 48813559
  • EDN-武汉 25150805
  • EDN-模拟电路 2837145
  • EDN-通讯 30548292
  • EDN-综合 57490949

促进EDN网友交流合作,方便EDN网友学习沟通

有问题请反馈