查看: 5461|回复: 0

分享一款无线视频传输模块,LEADIY-WIFI100视频模块,传输距离远、体积小、低功耗!

[复制链接]
发表于 2015-9-30 15:41:05 | 显示全部楼层 |阅读模式
关键词: 视频模块 , 无线模块 , WIFI传输 , 航拍FPV , WIFI视频模块
介绍:传输距离远、体积小、低功耗、低延时、重量轻,板载串口,方便与单片机等通讯。可作为飞碟、飞机、航模、DIY小车的遥控器。具有录像、拍照、重力感觉控制、摇杆控制功能,通过wifi直连方式与安卓及苹果手机或平板电脑连接,进行视频观看及命令控制。
1.      概述
极控app用于与wifi602视频模块配套使用,可以实时观看wifi602无线传输的流媒体,并且能把摇杆信号发送到wifi602视频模块上。Wifi602接收到的极控app遥控器信号通过串口发送到飞控板上,具体可见wifi602使用说明。以下说明,以安卓版本做为示例,苹果版本操作类似。App版本仍在不断更新,界面和功能都会有所变化,请视实际情况操作。
短款视频模块.jpg

特性:
l  支持android2.3~4.4版本
l  支持音频播放
l  支持视频播放
l  支持视频图像缩放功能
l  支持视频录像功能
l  支持视频截图功能

2.      应用领域
l  智能家电
l  智能家居,比如智能插座、万能遥控器等等
l  个人医疗、健康类产品
l  工业控制
l  物联网其它产品

3.      技术规格
  
名称
  

参数

  
工作电压(V)
  

3.7~5V

  
接口类型
  

UART

  
接口速率(bps)
  

1120~2M

  
WIFI通信最高速度(Mbps)
  

54

  
启动时间(s)
  

15

  
休眠时功耗(mW)
  

< 10

  
最大发送数据时功耗(mW)
  

<350mW

  
接收数据时功耗(mW)
  

< 200mW

  
存储温度(℃)
  

-55 ~ +125

  
工作温度(℃)
  

-20~+70

  
尺寸(mm * mm)
  

51 * 22


4.       模块引脚图
QQ图片20150930152215.png



5.       引脚功能描述
  
Pin
  
Number
  

分组说明


引脚名称


I/O


描述

  
1
  

保留









  
2
  








  
3
  








  
4
  

电源


DGND


P


电源负极

  
5
  

串口


RXD


I


串行数据输入,接单片机的TXD

  
6
  

TXD


O


串行数据输出。接单片机的RXD

  
7
  

保留









  
8
  

电源


VBAT_IN


P


电源正极,3.7~5V电压


6.       引脚功能详细说明6.1        保留位
扩展功能预留端口

6.2        串口
标准的TTL串口功能,默认串口参数:115200、8bit、无校验、停止位1bit
手机遥控器app每间隔20ms发送一帧数据,帧长度为12个字节。
6.3        电源接口
WIFI601模块是3.7~5V 单电源供电
QQ图片20150930152350.png
7.      硬件连接图

USB串口模块相连,USB 串口模块的+5V,TXD,RXD,GND 接
Wifi602模块的 VCCRXDTXDGND。注意 TXD RXD 的交叉:
QQ图片20150930152433.png

与单片机相连,同样注意TXD和RXD交叉相连:
QQ图片20150930152459.png


8.      使用说明
首先准备好wifi602视频模块,在设置->WLAN打开手机wifi界面。扫描wifi热点,待出现热点名为a.intchip时,点击连接。
待wifi连接成功后,点击极控app,进入启动页面,点击播放。

9.       摇杆操作
进入遥控界面后,出现左右两个摇杆图盘。
左边摇杆:主要操作油门和四轴的自旋功能。其中上下移动控制油门大小,左右移动控制自旋方向;手指离开左摇杆后,油门保持最后的值,自旋值归0;
右边摇杆:主要操作前进/后退和左飞/右飞功能。其中上下移动控制四轴的前进、后退;左右移动控制四轴的左飞、右飞;手指离开右摇杆后,自动归0。

10.  视频录像、截图
视频录像、截图点击后,进入视频录像和截图;其中,视频录像存储位置为/inichip/video目录下,视频截图存储位置为/intchip/capture目录下。
11.  视频传输模式
采用RTSP流媒体传输方式,可以用VLC在手机和电脑端播放实时视频,也可以采用软芯软研发的手机播放软件。
l  安卓手机版本下载:
在360手机助手或者360安全市场里,搜索关键字“GeekRC”后点击下载安装。
l  苹果手机版本下载:
在app store里,搜索关键字“GeekRC”后点击下载安装。
软件无广告、无病毒,可以放心使用。

无线传输距离:空旷地环境下,笔记本电脑可达200米范围;手机160米范围;无线环境比较复杂,传输距离受到干扰变化较大。如:周围wifi信号干扰、生物体(人、动物等)吸收信号、建筑物干扰。
传输码率:2Mbps

12.  多媒体说明12.1    视频
视频带宽:最大8Mbps
视频编码:h264
视频码流:CBR
视频像素:100w/30w可选
视频格式:720P
分辨率:1280*720
帧率:30帧每秒
12.2    音频
音频编码:ACC

13.  多媒体存储模式13.1    TF卡存储
    支持市面常见TF卡,最大容量32G

13.2    存储模式
开机前,插入TF卡。系统自动识别是否插卡、卡空间是否足够。如果开机前没有插卡或者卡剩余空间不足,不会进入录像模式。
当检测到TF卡正常后,系统自动进入录像模式。录像格式如下:
1、采用avi通用模式,支持所有播放器;
2、视频模式:高清VGA(分辨率640x480,30帧每秒),支持百万像素
3、音频模式:ACC
4、分段保存:2分钟一段视频,保证视频完整性
视频大小:1分钟20M,4G容量的TF卡可录近200分钟




14.  通信协议
连接板子,手机与wifi热点连接成功后,打开手机app。出现视频界面后,手机每隔20ms将遥控数据发送到wifi602上。Wifi602再通过串口与单片机通信,每种控制字占用一个字节(8bits),数据说明如下:
  
数据编号
  

指令内容


功能


说明

  
Buf0
  

帧起始码


判断一帧开始


固定为十六进制:0X81

  
Buf1
  

校验位


检查帧数据是否正确


Buf2~Buf10异或结果,不包括帧起始码和结束码

  
Buf2
  

油门


控制飞行器上升、下降


范围0~127,初始为0。手指离开摇杆后不归0,即保持油门值。对应左边摇杆上下操作

  
Buf3
  

左右


控制飞行器向左、向右


范围-100~100,初始为0。对应右边摇杆,移到最左边为-100,移到最右边为100。手指离开摇杆后归0

  
Buf4
  

前后


控制飞行器前进、后退


范围-100~100,初始为0。对应右边摇杆,移到最上面为100,最下面为-100。手指离开摇杆后归0

  
Buf5
  

自转


控制飞行器原地旋转


范围-100~100,初始为0。对应左边摇杆,移到最左边为-100,最右边为100。手指离开摇杆后归0

  
Buf6
  

按键


一键起飞、一键降落


按下一键起飞:与0x80异或;按下一键降落:与0x40异或。

  
Buf7
  

左右微调


修正左右漂移


范围-50~50,初始为0。修正左右漂移。

  
Buf8
  

前后漂移


修正前后漂移


范围-50~50,初始为0。修正前后漂移。

  
Buf9
  

保留3


未使用


发送十六进制:0x00

  
Buf10
  

保留4


未使用


发送十六进制:0x00

  
Buf11
  

帧结束码


判断一帧结束


固定为十六进制:0X82

15.  数据帧提取代码
考虑串口接收中断响应及时和多平台移植,数据帧处理分成两个部分:串口接收模块和帧提取模块。如果单片机资源不足可以合并在一起处理。

l  串口接收模块代码示例:

#define UART_BUFFER_SIZE 64

volatile uint8_t rxBuffer[UART_BUFFER_SIZE];
volatile uint8_t rxBufferRTail = 0;
volatile uint32_t g_u32RecCnt = 0;

void UART0_IRQHandler(void)
{
    volatile uint8_tu8InChar=0xFF;
    volatile uint32_tu32IntSts= UART0->ISR;

    if(u32IntSts &UART_ISR_RDA_INT_Msk)
    {
        /* Get all the inputcharacters */
       while(_UART_IS_RX_READY(UART0))
        {
            /* Get thecharacter from UART Buffer */
            u8InChar=UART0->RBR;
            /* Check if buffer full */
           rxBuffer[rxBufferRTail] = u8InChar;
            rxBufferRTail++;
            if (rxBufferRTail>= UART_BUFFER_SIZE ) rxBufferRTail = 0;
            g_u32RecCnt++;
        }
    }
}
串口只负责接收数据,保存到缓存里,并且记录当前的数据个数和写缓存索引号。
l  帧提取代码示例:
#define WIFI_RC_FRAME_LEN     11    /* 遥控器数据帧长,不包含帧结束码 */
#define WIFI_RC_FRAME_START  0x81   /* 帧起始码,固定为0x81*/
#define WIFI_RC_FRAME_END    0x82   /* 帧结束码,固定为0x82*/

int read_wifi_data(unsigned char *Rxbuf,int len)
{
   int i, k, write_idx;
   unsigned char recv_buf[UART_BUFFER_SIZE];

   /* 数据长度不够,返回 */
   if (WIFI_RC_FRAME_LEN > g_u32RecCnt)
    {
       return 0;
    }
   //debug_info("cnt %d ", g_u32RecCnt);

   /* 保存串口接收缓存 */
   memcpy(recv_buf, (unsigned char *)rxBuffer, UART_BUFFER_SIZE);
   write_idx = rxBufferRTail;  // 写索引
   /* 写索引回减1帧数据长度 */
   if (WIFI_RC_FRAME_LEN <= write_idx)
    {
       write_idx -= WIFI_RC_FRAME_LEN;
    }
   else
    {
       write_idx = WIFI_RC_FRAME_LEN - write_idx;
       write_idx = UART_BUFFER_SIZE - write_idx;
    }

   /* 向后查找一个完整且有效帧*/
   /* 只查找2个帧长-1, 这样如果当前数据无效会用上一帧数据 */
   for ( i = 0; i < WIFI_RC_FRAME_LEN*2-1; i++ )
    {
       //debug_info("%x ", recv_buf[write_idx]);
       /* 查找到起始位后,进行校验*/
       if (WIFI_RC_FRAME_START == recv_buf[write_idx])
       {
           unsigned char check = 0;
           unsigned char rc_date[WIFI_RC_FRAME_LEN]; /*数据*/
           int idx = write_idx;

           /* 校验位移数据是否正确接收*/
           for ( k = 0; k < WIFI_RC_FRAME_LEN; k++ )
           {
                check      ^= recv_buf[idx];
                rc_date[k]  = recv_buf[idx];
                idx         = (idx++) < UART_BUFFER_SIZE ? idx: 0;
           }

           if (   (WIFI_RC_FRAME_START ==check) /* 多异或了第0位,所以最后结果应该是第0*/
                &&(WIFI_RC_FRAME_END   ==recv_buf[idx])) /* 结束位判断,不在有效数据内 */
           {
                for ( k = 0; k
                {
                    Rxbuf[k] = rc_date[k];

                }
               //for ( k = 0; k
                {
                    //debug_info("%3d", Rxbuf[k]);
                }
                //debug_info("\r\n");

                g_u32RecCnt = 0;

                return 1;
           }
        }
       /* 回减到有效数据元素 */
       write_idx = (write_idx--) < 0 ? (UART_BUFFER_SIZE - 1) : write_idx;
    }

   return 0;
}

16.  电气特性
  
名称
  

描述


Min


Typ


Max


单位

  
Vin
  

Vin=3.7~5V


3.7


4


5


V

  
供电电流
  

Vin=4V


250


300


350


mA




17.  外观尺寸
天线长度、摄像头尺寸视实际需要而定。
视频模块尺寸短.jpg

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表