使用树莓派+arduino+采集卡+frp实现异地控制电视机顶盒


由于各种条件限制,我经常需要出差到外地进行机顶盒的调试工作, 但是我不想动弹 这个就会产生大量的差旅费用,增加公司的开销,为了解决这个问题,我研究了使用树莓派当作控制、显示平台,arduino作为红外线操作平台,使用frp进行内网穿透,实现异地调试机顶盒。以后小的问题就可以直接让运营带着这套东西去当地,技术直接远程调试就行了。

最后组装起来大概是这个样子的:
在这里插入图片描述
然后用远程桌面连接树莓派可以看到机顶盒的画面,大概是这个样子的(请不要吐槽画质,为了加快响应速度只能压一下画质了╮(╯▽╰)╭):
在这里插入图片描述

开发前提

1.带图形界面的Linux系统(windows系统也可以,考虑到这东西需要拿到外地去用,拿便宜小巧的树莓派当平台性价比更高)
2.arduino开发板
3.红外线接收模块/红外线发送模块各一个
4.视频采集卡
5.需要异地调试的机顶盒(遥控器得是红外线的)

I.获取机顶盒画面

首先,去某宝买一个支持linux平台的视频采集卡,将机顶盒和视频采集卡用HDMI线连接,将视频采集卡和树莓派用USB线连接。
接下来在树莓派上安装一个VLC media player[官方下载地址]
启动vlc,选择媒体-打开捕获设备,捕获模式使用默认的Video camera,视频设备名称选择插入采集卡后增加的设备(如果下拉框中没有显示可以手动输入)。音频设备名称只有一个选的,然后点播放就行了。其他品牌型号的采集卡有可能配置不一样,请咨询卖家客服。
在这里插入图片描述

II.安装VNC Sserver

这是远程桌面软件,通过这个软件和采集卡实现远程看到机顶盒画面。
vnc的使用请参考我另一篇博客Linux下vnc的安装、使用以及设置开机启动

III.红外线遥控

只能看见机顶盒的默认页面并没有什么卵用,还需要能够控制机顶盒(目前只讨论红外线的遥控器,蓝牙的以后再研究。)
树莓派自带GPIO,也有红外的模块LIRC,可是踩了一个多月的坑,看了大半个月的英文文档,最终还是扑街了,红外线发射模块无法正常工作╮(╯▽╰)╭
最后决定再加一个平台——arduino开发板,通过树莓派给arduino发送指令,arduino再来发送红外线。

红外线解码

首先准备一个arduino开发板,长这个样子(图片来自百度):
在这里插入图片描述
首先准备好红外线模块,一个用来发送,一个用来解析遥控器的信号(图片来自我买的那家某宝店)
在这里插入图片描述
用杜邦线连接红外线模块和arduino开发板,设置好针脚,先烧录红外线解码程序,然后通过串口监视器收集红外线码:

fre内网穿透只能穿透http协议,且页面大小限制在1496B以内(MTU,包含header头部) 包含函数如下: begin(char*,char*,char*,uint16,String,String);//设定参数信息,第一个参数是wifi名称,第二个参数是wifi密码,第三个参数是服务器地址,第四个参数是服务器端口,都五个参数是自定义域名密码,第六个参数是域名(多个域名以英文逗号分割) on(String,void);//页面以及回调函数,第一个参数是页面路径,第二个参数是回调函数 header(String,String);//设定header头部信息 sendfile();//发送默认的SPIFFS文件 sendfile(String);//发送指定的SPIFFS文件 send(int,string,string);//发送string,第一个参数是响应代码一般是200,第二个参数是页面类型,第三个参数是需要发送的文本 send(int,string,uint8_t*,size_t);//发送uint8_t数组文件,第一个参数是响应代码一般是200,第二个参数是页面类型,第三个参数是需要发送的uint8_t数组文件,第四个参数是uint8_t数组文件的大小 send(int,string,char*,size_t);//发送char数组文件,第一个参数是响应代码一般是200,第二个参数是页面类型,第三个参数是需要发送的char数组文件,第四个参数是char数组文件的大小 Authenticate(String, String);//判断Auth鉴权信息,第一个参数是用户名,第二个参数是密码 requestAuthentication();//向页面返回鉴权需求,使页面弹出Auth鉴权登录信息 getheader(String);//返回header指定头部信息参数值 arg(String);//返回GET请求参数值
### 回答1: 树莓派是一种小型的单板电脑,可以作为计算机的核心部件用来控制其他硬件设备。树莓派3B是树莓派系列中的一款,性能较好,适合用来进行一些较复杂的任务。 Arduino是一种开源硬件平台,它采用了简单易学的编程语言,并配备了丰富的电子模块,可以用来制作各种互动项目。 ROS是机器人操作系统(Robot Operating System)的简称,它是一个开源的软件框架,为机器人的软件开发提供了基础工具和功能库。 结合树莓派Arduino和ROS,我们可以构建一个功能强大、灵活多样的机器人系统。首先,我们可以使用树莓派作为主控制单元,运行ROS系统,完成机器人的导航、感知等任务。同时,我们可以连接Arduino树莓派使用Arduino控制各种传感器和执行器,实现机器人的感知和运动。树莓派作为主控制器可以接收Arduino传感器数据,并进行处理和决策,并通过ROS系统与外部进行通信。 在使用树莓派3B和Arduino进行ROS教程的学习时,可以先了解树莓派Arduino的基本使用方法,并对它们之间的通信方式有所了解。然后,可以参考ROS官方提供的教程,学习如何在树莓派上安装ROS系统,并使用ROS提供的工具和库对机器人进行编程和控制。 总之,树莓派3B、Arduino和ROS的结合可以为我们提供一个强大的机器人开发平台,通过学习相关教程和实践,我们可以灵活运用这些工具来开发各种有趣的机器人项目。 ### 回答2: 树莓派Arduino和ROS是现今最流行的嵌入式系统开发平台之一。树莓派是一款基于Linux的单板电脑,具备强大的计算能力和丰富的扩展性,常被用于构建物联网应用、机器人控制等项目。Arduino是一款开源的硬件平台,通过编程实现各种传感器、执行器和外围设备的控制。ROS(Robotic Operating System)是一种用于机器人开发的开源中间件,提供了丰富的库和工具,方便开发者进行机器人应用程序的编写。 将这三者结合使用可以实现更加复杂和功能强大的嵌入式系统开发。如果你想学习树莓派Arduino和ROS的教程,以下是一些概述: 首先,你需要学习树莓派的基础知识,包括如何搭建和设置系统、使用Linux命令行等。树莓派基金会提供了丰富的教程和文档,你可以从官方网站获取到相关的资源。 其次,你需要了解如何使用Arduino进行硬件控制。你可以学习Arduino的编程语言,掌握基本的电路连接和编程技巧。Arduino的官方网站和各种在线教程提供了大量的学习资料,你可以根据自己的需求选择合适的教程。 最后,你可以学习如何使用ROS来开发机器人应用程序。ROS提供了一套强大的工具和库,包括传感器数据处理、运动控制、导航规划等功能。你可以通过学习ROS文档和参考书籍,了解其架构和使用方法。同时,也可以参考ROS的官方教程和其他开发者分享的资源。 总之,树莓派Arduino和ROS的结合使用可以实现各种有趣和实用的嵌入式系统开发。通过学习相关教程和实践,你可以逐步掌握它们的使用方法,并在实际项目中运用所学知识。 ### 回答3: 树莓派3B、Arduino和ROS分别代表了三个不同的开源硬件和软件平台。树莓派3B是一款基于Linux系统的单板计算机,具有较强的计算能力和丰富的接口,可以用来构建各种嵌入式系统和物联网设备。Arduino是一款简易的开源电子原型平台,可以用来快速搭建各种电子设备和交互设备,如传感器、机器人和智能家居等。ROS(机器人操作系统)是一个用于构建机器人应用软件的框架,提供了一系列的软件库、工具和通信机制,方便开发者进行机器人相关应用的开发和调试。 在将树莓派3B与Arduino和ROS结合使用时,可以利用树莓派作为主控制器,通过GPIO接口控制和读取Arduino上的各种外设和传感器,并通过ROS与其他设备进行通信和数据交互。这样的结合可以为机器人、智能家居和物联网等项目提供强大的计算资源和灵活的控制能力,实现更加复杂和智能的功能。 对于初学者,学习树莓派3B、Arduino和ROS的教程是很重要的。关于树莓派3B的教程,可以学习如何安装操作系统、配置网络和使用Python编程语言等;对于Arduino的教程,可以学习如何使用Arduino IDE进行编程,控制各种传感器和执行器;而在学习ROS的教程中,需要了解ROS的基本概念、节点、主题、服务和参数等,以及如何使用ROS控制树莓派Arduino进行数据交互和控制。 同时,还可以通过网络上的教程和资源,了解如何将树莓派3B、Arduino和ROS进行整合,例如使用ROS的Arduino库(rosserial_arduino)来实现树莓派Arduino的通信,借助ROS的功能和生态系统,为树莓派3B和Arduino提供更多可扩展性和灵活性。 总之,掌握树莓派3B、Arduino和ROS的教程,能够提供给开发者强大的开发工具和平台,为他们创造各种创新和应用机会。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值