基于树莓派的车载无线视频传输系统

2017-03-27 18:10李喜鹏陈嘉威赵长安
科技创新与应用 2017年7期
关键词:树莓派

李喜鹏+陈嘉威+赵长安

摘 要:本设计基于树莓派3代b型开发板,搭配L298N系统小车,构成主体硬件架构。先在树莓派上安装树莓派官方摄像头,通过树莓派创建无线AP。在C/S模式下使用TCP Socket编程技术实现树莓派与PC上位机的无线数据通信,PC上位机可时实显示视频信息,并可以通过控制树莓派GPIO来控制小车的行进方向。实验证明该系统能够稳定正常运行,可靠性较高。

关键词:树莓派;TCP Socket;車载无线视频传输

21世纪,摄像头已经成为了人们必不可少的工具之一。随着摄像头各项技术的提升和Linux软件的创新,摄像头的应用变得越来越广,视频信息的传输也从初始的有线传输变为无线传输。本系统的设计可以作为智能家居机器人的初始模型,小车系统可视为机器人机身,摄像头则是机器人的眼睛,通过PC上位机可实时接收到机器人所传输过来的视频信息并控制机器人前进,基于我们所设计的系统模型,读者可以自行添加拓展模块,如传感器模块,对室内温湿度各种指标进行采集。

1 硬件及开发技术简介

1.1 树莓派

树莓派由注册于英国的慈善组织Raspberry PI开发,本设计使用树莓派3代B型,其采用ARM7架构,是一台只有信用卡大小的微型电脑,其系统基于Linux。Raspberry PI 3B版本搭载1.2GHz 的64位四核处理器(ARM Cortex-A53 1.2GHz 64-bit quad-core ARMv8 CPU),1GB 内存,拥有4个USB2.0接口,支持HDMI及RCA输出,带有WiFi和蓝牙4.1模块。支持Java、Python,Java,C等编程语言。

本设计使用的树莓派系统为RASPBIAN JESSIE LITE,使用读卡器和镜像烧写软件Win32DiskImager将系统烧写到SD卡中。

1.2 树莓派官方摄像头

本设计采用Raspberry Pi Camera V2 视频模块,其使用Sony IMX219PQ CMOS 图像传感器,具有8 百万像素固定焦点(包括小焦点调整工具),最高支持1080p视频传输。

1.3 小车系统

本设计使用常见的亚克力板作为小车底盘,搭载L298N电机驱动模块,驱动模块输出端接直流电机,控制端接树莓派的GPIO,树莓派的GPIO由wiringPi库来控制。

WiringPi是应用于树莓派平台的GPIO控制库函数,可以使用C语言或者C++开发。程序编写中用到WiringPi库中pinMode函数来配置指定引脚的IO模式,本设计中使用OUTPUT模式,使用digitalWrite函数来控制引脚输出电平信号的高低。本设计中树莓派的GPIO1,GPIO4,GPIO5,GPIO6接L298N的控制端IN1-IN4。

小车前进代码如下:

#definecar_godigitalWrite(1,HIGH);digitalWrite(4,LOW);

digitalWrite(5,HIGH);digitalWrite(6,LOW)

2 软件部分简介

2.1 树莓派创建无线AP

本设计使用树莓派自带的WiFi模块,用create_ap项目将其变成无线热点,从而使树莓派成为C/S模式下的服务器。安装create_ap后,输入如下命令

sudo create_ap- -no -virt wlan0 eth0 car123456789

创建一个名为car,密码为123456789的无线AP。

在树莓派中输入ifconfig命令,可查看树莓派的IP地址。

2.2 开源视频服务器软件MJPG-streamer的安装

MJPG-streamer软件使用V4L2接口,从webcam摄像头采集图像,把它们以流的形式通过基于IP的网络传输到浏览器如Firehox,Cambozola,VLC播放器,Windows的移动设备或者其他拥有浏览器的移动设备。

这款工具源代码简洁,注释清晰。组件功能明确,衔接清晰。使用Linux C语言进行开发,可以移植到不同的计算机平台。在树莓派上安装MJPG-streamer软件后,电脑连接到树莓派AP,可在如下网址中看到传输过来的视频。

http://<树莓派IP>:8080/?action=stream

2.3 PC上位机编写

客户端软件通过Microsoft Visual Studio 2010使用C#.NET语言开发实现,可以完成连接树莓派服务器,并接收、显示、保存数据等功能。

树莓派与PC上位机的无线数据通信使用TCP Socket编程实现,涉及到客户端和服务器三次握手和四次释放的过程。Socket技术基于IP和端口就能传送数据。在上位机中,一共需要确定服务器的两个Socket,一个为视频传输的Socket,一个为控制小车行进的Socket。上位机通过WiFi向下位机发出控制信号,下位机接收到数据包以后,对数据进行解析,当解析出来的数据与树莓派内部编写的控制数据一致时,树莓派执行控制命令,改变GPIO口输出的电平高低,从而控制L298N电机驱动模块。上位机与下位机的通信协议中前进命令协议包为FF000000FF,其他命令仿照次协议包修改数据位数值即可。

3 系统总体工作流程

本设计首先通过树莓派基于自身的WiFi模块创建无线AP,并在树莓派上安装开源视频服务器软件MJPG-streamer,使用TCP socket编程技术,实现上位机与下位机的通信,从而实现整个车载无线视频传输系统的设计,整体流程图如下:

本系统在搭建完后,在50平米的实验室内测试,在PC上位机的控制下,小车能够稳定快速的实现前进转弯的功能,摄像头所采集到的视频信息也能快速地传回上位机并实时显示,本设计测试时系统设置的视频流为720p、24帧,因为使用的是树莓派自带的WiFi模块进行视频传输,WiFi模块的数据吞吐量大,视频显示十分流畅。实验证明本系统能够稳定正常运行,可靠性较高。

4 结束语

本设计基于树莓派开发板,使用Linux开发环境,由于Linux系统的开源性,我们使用开源项目MJPG-streamer对视频流进行了采集和处理,并通过Linux的网络套接字方式完成了图像数据的传输,及控制命令的传输。实验结果证明,本设计稳定可靠。作为一个基本的车载无线视频传输的模型,本设计还有许多模块的功能值得开发拓展,如室内智能家居,图像识别,手势识别,安防监控。加上上述这些功能模块后,本设计将具有更广泛的用途,在人们的生活中,起到更大的帮助作用。

参考文献

[1]曹秀霞.基于TCP_IP协议的无线视频传输控制系统的设计与实现[D].西安:西安电子科技大学,2013.

[2]陈书益.开源视频服务器软件MJPG_streamer的研究和应用[D].广州:广东工业大学,2012.

[3]李龙棋.树莓派平台下的实时监控系统开发[D].福州:闽江学院物理学与电子信息工程系,2014.

[4]Schmidt M. Raspberry Pi 快速入门指南[M].王峰,王江伟,王汝波,译.北京:科学出版社,2014.

[5]王伟江.玩转树莓派Raspberry Pi[D].北京:北京航空航天大学出版社,2013.

[6]鸟哥.鸟哥的Linux私房菜[M].北京:人民邮电出版社,2011.

猜你喜欢
树莓派
谈树莓派在学生创新教育中的应用
基于Raspberry Pi的智能教室系统
基于微信端的智能家居监控系统的设计与实现
智能安全防盗探测小车
手势绘图锁的应用研究
基于嵌入式技术的农村医疗系统设计