如何实现安卓与恩智浦i.MX RT1170的无线投屏与控制

描述

Scrcpy是一款免费开源的软件,支持将安卓端屏幕投影到其他设备,并支持被投屏设备对安卓的反向控制。基于ADB工具,安卓端无需安装任何软件,延迟低,稳定性好。现在,安卓也可投屏到恩智浦i.MX RT1170上。

一、硬件组成

硬件平台包括:

MIMXRT1170-EVKB

AW611无线模组,集成 Wi-Fi与蓝牙功能

RK055HDMIPI4M触摸屏或树莓派官方7寸屏

安卓

二、软件框架

软件包括 i.MX RT1170工程与安卓的Scrcpy两部分。i.MX RT1170工程基于官方的MCUXpresso SDK开发,其中已提供了Libjpeg和LWIP等第三方库,无需再从头移植。

安卓端的Scrcpy官方源码为https://github.com/Genymobile/scrcpy。

下图是软件的整体框架:

安卓

具体流程可以分为投屏与控制两部分:

1、投屏流程:

安卓端通过Video Socket与i.MX RT1170建立UDP连接后,将捕捉的屏幕图像编码为JPEG格式并通过Wi-Fi发送。i.MX RT1170使用uSDHC以SDIO协议从AW611接收数据,再使用LWIP库Socket解析。并使用Libjpeg或FFmpeg库将接收的JPEG数据解码为 YUV格式。YUV数据通过硬件PXP转换为RGB格式,并进行缩放、旋转等处理,最终通过ELCDIF或LCDIFv2显示到LCD屏幕上。

2、控制流程:

i.MX RT1170可接收LCD屏幕的触摸数据,并将其转换为对应的安卓输入事件。通过Touch Socket与安卓端建立TCP连接后,将事件发送给安卓端。安卓端的Scrcpy接收到事件数据后,解析事件类型、触摸点坐标等,以此对安卓端进行控制。

三、运行项目

投屏与控制数据通过网络传输,因此安卓端与i.MX RT1170需处于同一局域网下。i.MX RT1170支持有线(Ethernet)与无线(Wi-Fi)连接。使用无线连接时,i.MX RT1170可选择使用热点(AP)模式或客户(STA)模式。

对于安卓端,需要打开开发者选项中的USB调试选项。使用USB数据线连接到电脑后,运行ADB命令启动Scrcpy服务。命令行中可指定传输图像的帧率、编码格式、使能控制等。

四、运行结果

经过长时间测试,目前i.MX RT1170可以稳定运行在20FPS(传输数据尺寸为 800x480px时)。根据具体应用场景,可以调整ADB命令行参数来侧重提高流畅性或显示效果。

小结

本文聚焦恩智浦i.MX RT1170,利用Scrcpy实现安卓到嵌入式平台的无线投屏与控制,展示了整体框架与具体流程。希望对大家有所帮助!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分