MT7688双摄像头双电机驱动小车(1)环境搭建

设计目标:

实现一个带双摄像头,可实现远程无线监控,控制的小车。

其他:
1.监控具体的作用还为定义。
2.硬件需要设计为可拓展性,方便后续增加功能。

实现方案:

这里的方案主要指硬件的方案。

这里限制方案选型的条件有:摄像头,无线。普通单片机速度上带不起摄像头;另外现在X宝上买的无线模块基本是以串口数据透传居多的,这样在速度上也没法达到要求。

所以这里最终选用了一款MT7688联发科的一款智能家居芯片,上面跑openwrt,自带wifi,可以做为一个路由器,通过网络连接进行通信,能基本能满足要求。

附带的参考如下:
https://labs.mediatek.com/zh-cn/chipset/MT7688
http://www.52solution.com/news/80022207.html


因为之前没接触过Linux的项目,也没在Linux环境下编过程,所以下面的方案不一定是合理的。大概是到只能到可以正常实现的地步。如果有更好的方式评论留言。

不过估计这部分代码如非必要不会再改了,开发环境实在是卡的要命,整个交叉编译调试的过程太过与痛苦了。而且倒霉的是第一次写的环境被CSDN的BUG给吞掉了

OpenWRT第一次接触,所以这里要非常感谢叽叽叽老司机给予我的热切帮助。


整体目录:

1>.环境搭建:(本篇)http://blog.csdn.net/dfsae/article/details/78715815

2>方案及通信协议设计说明:http://blog.csdn.net/dfsae/article/details/78817490

3>.驱动实现:http://blog.csdn.net/dfsae/article/details/78612715

4>.驱动测试:http://blog.csdn.net/dfsae/article/details/78819927

5>.上位机测试软件实现:http://blog.csdn.net/DFSAE/article/details/78728270

6>.应用软件实现:http://blog.csdn.net/dfsae/article/details/78816531



环境搭建

本篇目录

一.Linux环境搭建

二.下载openwrt并编译固件

1.安装必要的库

2.下载openwrt源码

3.openwrt配置

4.openwrt编译

三.常用软件介绍

1.SecureCRT

2.虚拟机和windows的交互

3.FileZilla

4.tftpd

四.烧写固件

五.WIFI设置

1.设置密码

2.设置IP

3.开启wifi


一.Linux环境搭建

整个开发是一个交叉编译的环境,我的电脑是WIN10,所以需要装个虚拟机(如果本身是Linux系统的或者双系统的请随意),在上面跑Linux,我们需要它的环境进行编译。下面很多是常规操作,有的就直接放上参考地址了。

注意:这里需要有一些Linux的基础操作,具体的不在这里不赘述了。

参考:
http://blog.csdn.net/u013142781/article/details/50529030
http://www.linuxidc.com/Linux/2012-11/74945.htm

1>.安装虚拟机VMware和virtual box都可以。

2>.下载一个Ubantu 12的镜像

3>.对虚拟机进行配置

4>.启动Ubantu

二.下载openwrt并编译固件

参考:http://blog.csdn.net/lell3538/article/details/50639324
http://blog.csdn.net/fyh2003/article/details/44564219

1.安装必要的库

Ctrl + Alt + T,进入终端。创建一个文件夹,用来存放下载下来的Openwrt。在下载之前需要安装一些必要的库,输入下面的命令:

sudo apt-get install git-core
sudo apt-get install g++
sudo apt-get install libncurses5-dev
sudo apt-get install zlib1g-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install unzip
sudo apt-get install autoconf
sudo apt-get install gawk
sudo apt-get install make
sudo apt-get install gettext
sudo apt-get install gcc
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install libz-dev
sudo apt-get install asciidoc
sudo apt-get install subversion
sudo apt-get install sphinxsearch
sudo apt-get install libtool
sudo apt-get install sphinx-common
sudo apt-get install libssl-dev
sudo apt-get install libssl0.9.8

2.下载openwrt源码

具体操作参照参考,过程需要一定时间。
下载完了执行命令:
./scripts/feeds update -a
./scripts/feeds install -a

(注:如果后面make menuconfig莫名其妙少了很多,就用上面这两个命令来恢复。)

3.openwrt配置

在编译前需要进行配置,在openwrt目录下,输入make menuconfig命令。
跳出界面如下(记得窗口需要足够大):
MT7688双摄像头双电机驱动小车(1)环境搭建_第1张图片
需要进行一些基本的配置:
注:上面有提示,[*]是编译进内核, M编译成模块

1>.选择硬件及编译器

CPU选择:Target System -> Ralink RT288X/RT3XXX
子类型:Subtarget->MT7688 based boards
具体型号:Target Profile -> LinkIt7688
具体上图有标识。

2>.开启SSH服务

配置SSH服务,后面在做文件传输的时候会用到。
具体位置在这几个地方:
Network->SSH->openssh-server和openssh-sftp-server
MT7688双摄像头双电机驱动小车(1)环境搭建_第2张图片
MT7688双摄像头双电机驱动小车(1)环境搭建_第3张图片

3>.配置UVC摄像头相关

摄像头一部分要配置UVC免驱,另一部分要配置mjpg-streamer。

选择UVC配置:
在Kernel modules->video support -> kmod-video-core -> kmod-video-uvc
MT7688双摄像头双电机驱动小车(1)环境搭建_第4张图片

选择mjpg-streamer配置:
Multimedia->mjpg-streamer
MT7688双摄像头双电机驱动小车(1)环境搭建_第5张图片

4>.加入多线程库

这个后面的应用软件的编程里有用到多线程,所以把这个也给编译进去。
加入libpthread:
在Base system-> libpthread
MT7688双摄像头双电机驱动小车(1)环境搭建_第6张图片

4.openwrt编译

对上述配置进行保存
输入命令:make V=99 –j 3进行编译。后面的3指3个线程。
第一次编译的时间会比较长。
注意:中间dl中的一些包下载速度回很慢,有的会被墙掉。也可以找已经下载好的人那里复制粘贴就好。

最后生成的固件是在目录bin/ramips中的openwrt-ramips-mt7688-LinkIt7688-squashfs-sysupgrade.bin文件。

三.常用软件介绍

1.SecureCRT

SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。

我们这里用这个软件主要是用它在开发的时候,通过串口实现对开发板的控制。控制就像Linux终端一样,可以输入命令操作等。

1>.硬件连接串口

连接后可在:我的电脑-右键-设备-设备管理器-端口(COM和LPT)下查看端口号。
注:在使用这个软件之前,需要保证安装了串口驱动。至于是哪个串口驱动,需要看硬件上的串口芯片是什么。

2>.选择串口及波特率

串口是开发板的串口号,然后波特率57600,RTS/CTS去掉勾选,其他保持默认即可。
MT7688双摄像头双电机驱动小车(1)环境搭建_第7张图片

3>.确认连接

就能看到连接信息。
MT7688双摄像头双电机驱动小车(1)环境搭建_第8张图片

2.虚拟机和windows的交互

如果使用虚拟机开发,这里其实也可以用FileZilla和SecureCRT,道理其实都类似。但是这样显得过于麻烦了。虚拟机自己带有一些工具可以是虚拟机和windows的交互显得很方便。
比如说VMware自带的VMtools就可以实现文件的拖拽,复制粘贴等功能,非常方便。下面是安装:
https://jingyan.baidu.com/article/22fe7ced6437433002617fee.html
也可以使用共享文件夹的方式,VMware装了VMtools就把不需要用这个了。
如果是用Virtual box的实现共享文件的话,可以按下面来操作。
https://jingyan.baidu.com/article/647f0115ab16f17f2048a861.html

3.FileZilla

FileZilla是一个免费开源的FTP软件,分为客户端版本和服务器版本,具备所有的FTP软件功能。可控性、有条理的界面和管理多站点的简化方式使得Filezilla客户端版成为一个方便高效的FTP客户端工具,而FileZilla
Server则是一个小巧并且可靠的支持FTP&SFTP的FTP服务器软件。

这个软件在开发的过程中主要是用来做文件传输的。通过SSH端口将PC端编译出来的固件传送到硬件上,然后在执行安装之类的操作。

注:连接前要保证硬件网络的正常连接(wifi或者网线),即用本机ping硬件ip成功。另外还需要保证硬件上开启了SSH服务。所以也就是前面为什么要把FTP相关的也配置进去的原因。

然后我们需要输入IP,用户名,密码,及端口号后才能连接。
IP是后面设置的硬件IP地址。用户名是root,密码是后面设置的密码:123456,端口号固定22(ssh的端口号)。
连接后如图,可以看到硬件上文件目录,同时实现PC和开发板间的文件拖拽,移动,添加删除等操作。
MT7688双摄像头双电机驱动小车(1)环境搭建_第9张图片

4.tftpd

Tftpd是一个集成DHCP, TFTP, SNTP和Syslog多种服务的袖珍网络服务器包,同时提供TFTP客户端应用,tsize,
blocksize 和 timeou支持t等等

这个软件是用来下载固件的(当然有其他方法可以下载),有64位和32位之分,根据电脑的具体位数选择就好,具体操作见下,烧写固件部分。

四.烧写固件

烧写固件的方式有很多,买过来的开发板的也会自带一种烧写的方法。这里主要介绍TFT下载。

1>.首先下载的方式是通过网线。所以需要连接网线从硬件到PC。

2>.设置电脑的IP和硬件处于同一网段。

硬件的IP为10.10.10.2,所以我们可以给PC添加一个同网段的ip:10.10.10.3
这个自己设置,反正只要多添加一个IP即可。

3>.开启TFTP服务

打开TFTPD64服务器,设置服务器的IP为本机同网段ip,即10.10.10.3。然后设置当前目录为固件所在的目录。后面下载文件会在这个目录下寻找。
MT7688双摄像头双电机驱动小车(1)环境搭建_第10张图片

4>.下载固件

启动板子,在倒计时段的时候输入2:选择下载通过TFTP烧写到FLASH。
接着他会问你是否擦除FLash上的Linux。输入Y。
再是输入服务器IP,输入10.10.10.3。硬件IP是默认跳出来的。
内核固件名字复制粘贴过去就好了。然后确认之后开始下载。
MT7688双摄像头双电机驱动小车(1)环境搭建_第11张图片

注:在烧写过程中千万不要断电,否则据说会成砖。

五.WIFI设置

1.设置密码

首先可以给ROOT设置一个密码,就设置为123456吧= =(也可以设复杂点,不容易被破解)
启动硬件,打开SecureCRT,并输入passwd命令。输入2次,提示太简单可以不用理他= =

也可以在源码里修改密码:https://www.cnblogs.com/haciont/p/6390592.html
然后编译后就自带密码。

2.设置IP

1>.终端修改ip

IP的配置文件在/etc/config/network中
在终端输入 vim /etc/config/network
然后把ipaddr设置为192.168.55.1(IP可以自己定,只要后面保持统一就好了,包括后面的应用软件里,最主要不要和路由器冲突)
MT7688双摄像头双电机驱动小车(1)环境搭建_第12张图片
然后保存并退出。
然后在命令行输入:ifconfig就可以查看ip了。

这里补充一点:这里也可以设置lan和wan端口分配。。(补充)这里就用默认就好。

2>.源码修改IP

源码里修改了IP,编译出来的默认IP也就也改了,不用后续在设置。
配置的脚本文件在目录:package/base-files/files/lib/functions/下uci-defaults.sh文件中
MT7688双摄像头双电机驱动小车(1)环境搭建_第13张图片
把ip改成192.168.55.1保存,在编译就可以了。

另外:版本不一样可能文件的为有所不同

3.开启wifi

1>.放出WIFI

接着在这个应用里我们希望把MT7688作为一个AP(即无线接入点)。
所以我们需要开启板子的WIFI。
WIFI的配置文件在/etc/config/wireless中。
所以输入命令行:vim /etc/config/wireless
把config wifi-device ‘radio0’下的option disable 1前面加个#,表示注释掉。
保存退出,然后重启网络命令:/etc/init.d/network restart
接着就能收到WIFI信号了
这里写图片描述
注:同样源码中可以配置。

2>.给wifi换个名字加个密码

这个过程不太赘述,过程类似于我们配置新路由器的过程。
显示连接上前面放出来的openwrt的wifi,然后再在浏览器输入192.168.55.1(IP地址)。
出现如下画面:
MT7688双摄像头双电机驱动小车(1)环境搭建_第14张图片

可能是我浏览器问题,这里有时候进得去有时候进不去的,所以也可以在右下角有个go to OpenWrt按钮。点进去,输入root,密码(123456)就可以进去更改WIFI名称密码了,里面东西很多,可以自己研究。
MT7688双摄像头双电机驱动小车(1)环境搭建_第15张图片

你可能感兴趣的:(MT7688双摄像头双电机驱动小车(1)环境搭建)