【解析新特性】300W单路输出工业电源>>
电子产品世界 » 论坛首页 » 综合技术 » 通讯及无线技术 » 分享一款无线视频传输模块,LEADIY-WIFI100视频模块,传输距远..

共1条 1/1 1 跳转至

分享一款无线视频传输模块,LEADIY-WIFI100视频模块,传输距远..

菜鸟
2015-10-28 15:03:43    评分

传输距离远、体积小、低功耗、低延时、重量轻,板载串口,方便与单片机等通讯。可作为飞碟、飞机、航模、DIY小车的遥控器。具有录像、拍照、重力感觉控制、摇杆控制功能,通过wifi直连方式与安卓及苹果手机或平板电脑连接,进行视频观看及命令控制。

1. 概述


极控app用于与wifi602视频模块配套使用,可以实时观看wifi602无线传输的流媒体,并且能把摇杆信号发送到wifi602视频模块上。Wifi602接收到的极控app遥控器信号通过串口发送到飞控板上,具体可见wifi602使用说明。以下说明,以安卓版本做为示例,苹果版本操作类似。App版本仍在不断更新,界面和功能都会有所变化,请视实际情况操作。


特性:

l 支持android2.3~4.4版本

l 支持音频播放

l 支持视频播放

l 支持视频图像缩放功能

l 支持视频录像功能

l 支持视频截图功能

2. 应用领域

l 智能家电

l 智能家居,比如智能插座、万能遥控器等等

l 个人医疗、健康类产品

l 汽车电子

l 工业控制

l 物联网其它产品

3. 技术规格

名称

参数

工作电压(V

3.7~5V

接口类型

UART

接口速率(bps

11202M

WIFI通信最高速度(Mbps

54

启动时间(s

15

休眠时功耗(mW

< 10

最大发送数据时功耗(mW

<350mW

接收数据时功耗(mW

< 200mW

存储温度(℃)

-55 +125

工作温度(

-20+70

尺寸(mm * mm

51 * 22



4. 模块引脚图

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串口功能,默认串口参数:1152008bit、无校验、停止位1bit

手机遥控器app每间隔20ms发送一帧数据,帧长度为12个字节。

6.3 电源接口

WIFI601模块是3.7~5V 单电源供电

USB串口模块相连,USB 串口模块的+5VTXDRXDGND Wifi602模块的 VCCRXDTXDGND。注意 TXD RXD 的交叉:与单片机相连,同样注意TXDRXD交叉相连:


7. 使用说明

l 首先准备好wifi602视频模块,在设置->WLAN打开手机wifi界面。扫描wifi热点,待出现热点名为a.intchip时,点击连接。

l wifi连接成功后,点击极控app,进入启动页面,点击播放。


8. 摇杆操作

进入遥控界面后,出现左右两个摇杆图盘。

左边摇杆:主要操作油门和四轴的自旋功能。其中上下移动控制油门大小,左右移动控制自旋方向;手指离开左摇杆后,油门保持最后的值,自旋值归0

右边摇杆:主要操作前进/后退和左飞/右飞功能。其中上下移动控制四轴的前进、后退;左右移动控制四轴的左飞、右飞;手指离开右摇杆后,自动归0

9. 视频录像、截图

视频录像、截图点击后,进入视频录像和截图;其中,视频录像存储位置为/inichip/video目录下,视频截图存储位置为/intchip/capture目录下。

10. 视频传输模式

采用RTSP流媒体传输方式,可以用VLC在手机和电脑端播放实时视频,也可以采用软芯软研发的手机播放软件。

l 安卓手机版本下载:

360手机助手或者360安全市场里,搜索关键字“GeekRC”后点击下载安装。

l 苹果手机版本下载:

app store里,搜索关键字“GeekRC”后点击下载安装。

软件无广告、无病毒,可以放心使用。

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

传输码率:2Mbps

11. 多媒体说明 11.1 视频

视频带宽:最大8Mbps

视频编码:h264

视频码流:CBR

视频像素:100w/30w可选

视频格式:720P

分辨率:1280*720

帧率:30帧每秒

11.2 音频

音频编码:ACC

12. 多媒体存储模式 12.1 TF卡存储

支持市面常见TF卡,最大容量32G

12.2 存储模式

开机前,插入TF卡。系统自动识别是否插卡、卡空间是否足够。如果开机前没有插卡或者卡剩余空间不足,不会进入录像模式。

当检测到TF卡正常后,系统自动进入录像模式。录像格式如下:

1、采用avi通用模式,支持所有播放器;

2、视频模式:高清VGA(分辨率640x48030帧每秒),支持百万像素

3、音频模式:ACC

4、分段保存:2分钟一段视频,保证视频完整性

视频大小:1分钟20M4G容量的TF卡可录近200分钟

13. 通信协议

连接板子,手机与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

14. 数据帧提取代码

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

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_t u8InChar=0xFF;

volatile uint32_t u32IntSts= UART0->ISR;

if(u32IntSts & UART_ISR_RDA_INT_Msk)

{

/* Get all the input characters */

while(_UART_IS_RX_READY(UART0))

{

/* Get the character 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 < WIFI_RC_FRAME_LEN; k++ )

{

Rxbuf[k] = rc_date[k];

}

//for ( k = 0; k < WIFI_RC_FRAME_LEN; 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;

}

15. 电气特性

名称

描述

Min

Typ

Max

单位

Vin

Vin=3.7~5V

3.7

4

5

V

供电电流

Vin=4V

250

300

350

mA












关键词: 无线     传输     视频模块     摇杆    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]