[Beagle Bone]

【Beagle Bone开源设计】四轴飞行器(13)-增加视频实时传输

[复制链接]
1700|3
手机看帖
扫描二维码
随时随地手机跟帖
friendyh|  楼主 | 2015-3-16 15:59 | 显示全部楼层 |阅读模式
本帖最后由 friendyh 于 2015-6-7 22:14 编辑

      四轴飞行器在空中飞行时,要在电脑上面看到飞行器实时传输的画面,将摄像头采集到的数据通过WIFI传送回电脑,电脑的客户端再解析这些数据形成视频画面。因此在BBB的USB端口挂接一个USB HUB。这里有的HUB不能被BBB识别,比如下面这个:
131.png
      这里依然是分为客户端和服务器端,BBB是服务器端,负责采集数据并把数据通过无线网卡传送回来,PC是客户端,通过接受数据来显示四轴飞行器在空中的实时画面。
     本次的程序使用了SDL制作,SDL(Simple DirectMediaLayer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
     我这里使用的SDL1.2版本,目前最新版本为2.0。大家使用我这个程序的时候需要安装SDL插件,安装很简单,就五行代码:
     sudo apt-get install libsdl1.2-dev
     sudo apt-get install libsdl-image1.2-dev
     sudo apt-get install libsdl-mixer1.2-dev
     sudo apt-get install libsdl-ttf2.0-dev
     sudo apt-get install libsdl-gfx1.2-de
      安装完成后在Eclipse的项目属性中库中加入SDL才可以使用。图片如下:
132.png
      BBB连接出来的USB HUB上面连接了一个摄像头,一个无线网卡,无线网卡IP地址依然是之前设置好的192.168.1.150.
133.png
    这上面的小窗口就是摄像头采集回来的实时视频数据,在PC上面显示。给大家说一下,这个代码可以修改使得视频更大,将客户端和服务器端主程序中的640和480不要除以2,返回来就是大屏幕的视频查看。
     这些东西都安装到四轴飞行器上面,就可以实现PC控制四轴飞行器并且可以实时查看四轴飞行器返回的画面(时不时感觉四轴飞行器硬件安装比软件编程还要复杂)。后期可以在该基础上完成更多的应用,比如加入录像功能,就可以边控制飞行器边航拍,再远一点儿,可以实现四轴飞行器针对具体目标的跟踪和识别,这些都要涉及到图像处理了。视频客户端和服务器端的代码放在了附件中,共大家使用。

四轴飞行器视频传输.zip

752.07 KB, 阅读权限: 200

相关帖子

icecut| | 2015-3-20 12:45 | 显示全部楼层
视频怎么传输的?读出来直接发送的?有没有压缩?

使用特权

评论回复
friendyh|  楼主 | 2015-3-20 17:08 | 显示全部楼层
icecut 发表于 2015-3-20 12:45
视频怎么传输的?读出来直接发送的?有没有压缩?

嘿嘿,是读出来直接发送的,暂时还没有做压缩

使用特权

评论回复
yhy123456| | 2015-5-7 22:06 | 显示全部楼层
向楼主学习 !

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

70

帖子

6

粉丝