拓展openwrt路由控制mbot
首先直接项目的流程介绍:一、材料准备
1、 mbot小车一套;
这里说明一下这个项目需要用到板子上面的串口,但是厂家并没有将MCU的所有IO都拓展出来,只留了结果特殊的,但是可以发现蓝牙插针用到的几个口正好是串口(RXD、TXD),而这里我们最终的目的是利用WiFi控制mbot,所以暂时我们是用不到蓝牙模块的,可以说有了路由器”就让蓝牙去死吧!”我们把蓝牙模块拔掉收起来,最后我们需要用到蓝牙接口一边有4个的插针和路由器的接口连接到一起进行通信控制(VCC、GND、RXD、TXD)。
2、智能路由器主板一个(能够挂载USB摄像头)
上面这个是之前打板设计好的路由器底板,可以看到这个路由器已经包含有挂载摄像头的USB接口、WAN口、LAN口、RT5350WIFI芯片的插口以及通信必要的IO口。所有的元器件通通焊接完毕并且测试成功,这个路由器目前使用的非常多,我们已经利用该产品开发了好几套和物联网相关的产品并且获得了相关专利和比赛证书。
下面几张图是没有焊接元器件的裸板和这个路由器底板使用到的部分元器件,大部分都是0603封装的贴片,焊接起来也是比较费事的。
3、WiFi芯片一块(带天线的)
下面这两张图片就是路由器的核心了——RT5350WIFI芯片,其排针和路由器底板的母座都是一一对应设计好的。这个芯片可以直接淘宝购买使用,因为设备是做不出来的,性能也会大大减弱。另外,针对路由器的设计和功能不同选用的芯片也会所差别,那个黑色长长的线就是”天线”了,没有这个天线也能搜索到WiFi信号但是非常弱,将导致最终的控制范围缩小。
4、USB摄像头一个
这种摄像头是淘宝上买到的,其实就是我们笔记本电脑上的摄像头,卖家改装之后出售的,几十块钱,几百万的像素(好像是500万的吧,但是小车对于视频监控完全口够用了)。记得要购买支持openwrt和MJPG的摄像头。
5、杜邦线若干;
这个就不用多说了吧,接触电子的必备物品之一。这里我们只需要4根就可以啦,如果不使用mcore主板上的电源给路由器供电的话那么两根就够了。最好是使用外接电源给路由器供电,因为测试过程中发现有时候如果使用mcore上电源会导致路由器卡死的现象!
二、智能路由器的相关准备
接触过WiFi视频智能小车的可能有所了解,要想通过WiFi控制硬件必须要有能够和MCU通信的路由器主板。这就要提起网上比较流行的openwrt智能路由了。
OpenWrt 可以被描述为一个嵌入式的 Linux 发行版(主流路由器固件有dd-wrt,tomato,openwrt三类)而不是试图建立一个单一的、静态的系统。OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。OpenWRT是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中。 同时,它还提供了100多个已编译好的软件,而且数量还在不断增加,而 OpenWrt SDK更简化了开发软件的工序。
1、必备软件(使用其他功能相同的软件也可以)
① Tftpd32;
② SecureCRT
③ 路由器固件
提前在Linux环境下编译好路由器需要的固件,需要的固件必须能够挂载摄像头,网上有许多教程而且有编译好的固件可以使用,但是有的是不支持摄像头的,最好是看bin 固件的大小:小于4M的就没必要下载了,一般没有将摄像头编译进去的,尽量选择大的下载。下面这个图是我当时在网上下载的,只有第二个才能用。这里出于时间原因就不再详细说明固件编译流程了,反正挺麻烦的,如果第一次接触Linux环境基本上每走一步都是一个新问题,光Linux的环境配置需要很多功夫,但这是必走的一条路。下面这个图是我当时在网上下载的,只有第二个才能用。
2、必备硬件
① 可以刷系统的路由器(本人用的就是上面提到的)
② 一根通信良好的网线
③ Micro USB数据线一根
3、刷入openwrt系统
以上准备工作做完之后就可以给路由器刷入openwrt了,这里刷进去的就是我们之前在Linux环境下编译好的bin固件,同时使用到了之前介绍的2个软件。
①查看RT5350路由芯片IP
首先将Micro USB数据线插上路由器上供电,另一方面通过串口观察路由器启动信息。打开Securecrt软件,选择对应的COM口连接,打开路由器开关上电,可以在该软件里面看到路由器启动信息,而且有几秒时间让你选择一种启动方式,如果你不选择系统默认普通启动,下面第一张图是路由器启动信息的一部分:
路由器启动完成之后串口信息会有提示按下ENTER键进入系统,按下enter键之后就会看到大写的openwrt字母字样,这就是一个典型的openwrt标志,说明路由器已经启动完成了:
到这里我们并没有给路由器刷入固件,原因是我们需要查看路由器芯片的内部IP地址,因为我们刷固件时间需要将有线网卡的IP和路由器芯片IP配置在一个网段。我们在里面输入ipconfig回车查看芯片IP,如下图我的这个处于192.168.1的网段:
② 配置有线网卡IP和固件路径
首先将网线一头插到电脑的网口,另一端连接上路由器的LAN口,等待电脑识别网络。打开带电脑网络和共享中心,修改网卡IP,使其和路由芯片IP在一个网段内:
③开始刷入固件
打开Tftpd32,将我们要刷入的固件的路径配置好,并且观察第二项“服务器地址”是否和我们刚刚配置的IP一样,如果不一样刷新一下或者重新打开软件试试。然后在Securecrt软件里面打开相应的COM口,按下路由器开关启动路由器,注意这次需要在系统等待启动的几秒内选择启动模式。我记得是选择2回车进入刷系统模式,然后在软件里面输入几条命令:芯片的IP和网卡的IP,然后是要刷入的固件的名称,最后回车就开始进行刷入系统了(具体的大家可以参考网上的系列完整教程,因为在这里说是不完整不详细的,而且需要注意的事项很多,比较好的教程都是一系列的文档,这里不是一句两句能说明白的,而且会给大家带来很多问题,帖子最后会提供相关的资料参考)。
固件刷入成功之后就可以搜索到WiFi信号了,到这里,路由器方面的配置就完成了,后面我们就要利用上位机或者手机客户端连接WiFi控制mbot了!!!
三、编写Arduno程序
上面已经将硬件基本配置完成,但是mbot的主板还没有写接收上位机数据的程序和控制mbot运动的程序。下面开始在Arduino IDE里面给mcore板子上面的单片机编写通信和控制的程序。这里需要注意的是要在Arduino的库文件中添加对应的mobt库文件,否则程序编译的时间会出现很多错误,因为程序里调用了很多官方的库,另外还要注意其安装路径,之前我遇到很多问题就是因为这方面一直编译不通过。程序已经写好了,帖子附件提供程序源码。
程序的重点依然是在我们经常遇到的通信部分,之前我按照网上的方法试了很多遍,普通方法只能接收单个的字符,而这里一个按键发送的数据是5个十六进制组成字符串,所以为了提高程序的准确性需要对通信内容控制好,最终我还是移植自己以前的方法成功了,所以这里也告诉我们不管别人的程序有多简洁多方便终归还是别人的思想,程序还是自己写的最了解!
四、上位机控制软件
上位机软件我直接借用“小R科技”的WiFi智能小车操纵平台,大家如果有精力也可以尝试自己一个上位机。该上位机功能是比较强大的,通道数完全够我们学习和拓展,另外界面也是非常美观的。
这个最终的项目基本上属于一个雏形,借助“小R科技”的上位机还可以继续实现其他的功能,自己完全可以在Arduino程序里面添加“车灯”、“喇叭”、舵机(如果加上机械臂mbot可能会因为重量导致行动不稳定)以及速度的控制、拍照、监控,录像等功能!大家完全可以在mbot上实现,从针对孩子学习方面这也是一个更深的学习途径!
五、结束语
最后,贴上我最终“升级”后的mbot图片,因为DIY过程中需要在mbot上加装路由器板和摄像头,为了使其固定牢固和美观,我用热熔胶将路由器和摄像头粘在mbot车架了,最后一张照片RJ45接口的标签在最后拆解时间因为热熔胶粘合太牢固,无奈不小心撕掉了,我用双面胶有粘上了,在此向深圳市创客工场科技有限公司表达歉意,同时在使用期间我发现了很多产品不合理或者需要改进的地方以及产品设计尺寸有误的现象,我都另外记录了下来,有机会的话后期整理另发一贴!
Arduino程序源码:
Tftpd32软件:
SecureCRT软件:
openwrt固件刷入部分资料:
好资料啊
页:
[1]