上位机图像处理和嵌入式模块部署(树莓派4b和mcu的分工与配合)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        树莓派4b从广义上来说,它本身就是一个mini小电脑。我们需要什么软件,就可以apt install去下载即可。这和之前嵌入式linux开发方式有很大的不同。因为很早之前的嵌入式linux开发,都是自己从uboot、device tree、kernel、rootfs一步一步编译而来的,甚至于需要什么第三方软件,还要自己去编译、开发。mcu则不同,对于mcu而言,基本上不存在复杂的第三方软件,一般都是个人包圆了,甚至于个人硬件、软件一条龙去实现,也不是不可能。所以这里,我们从树莓派4b的角度看,两者应该怎么配合。

1、通信方式

        要说通信,最主要的通信方式还是232。本着越简单、越稳定的原则,如果对数据量本身没有太大的需求,那么还是用232这种方式进行通信比较稳妥。当然,通信方式只是第一步,通信后面的协议定义也是非常重要的。这里假定mcu也是我们自己开发的,所以协议通信这部分不是什么难点。

2、升级方式

        树莓派4b升级是比较容易的,因为它上面是上位机,上位机和它之间可以通过网络相连。但是mcu不一样,一般来说,树莓派和mcu之间只有串口通信的部分。所以,如果想要对mcu升级,首先是把firmware下载到树莓派上面,然后通过树莓派给mcu升级固件。

        当然这个时候,树莓派一般会对mcu发起一个重启的命令。mcu启动过程中,在确认需要update固件之后,就会进入升级状态,一步一步下载固件,最后重新启动最新的固件代码。当然现在很多的mcu也支持蓝牙,通过蓝牙下载也不是不可以,不过总觉得没有232放心。

3、功能交互

        树莓派上层对mcu的功能访问主要体现在这三个地方。第一个是固件升级,刚才已经讨论过。第二个是状态确认,如果固件有什么问题,那么需要通过树莓派的网络,及时向上report出来,毕竟大部分mcu不会自带网络的。第三个就是控制命令的下发,复杂的算法一般都是树莓派上计算好的,mcu拿到这个结果之后直接做对应的动作就可以了。如果mcu内部也有对应的算法,比如pid、mpc、lqr等等,最好直接通过串口和pc相连,然后进行标定和测试,这个时候就不要借助于树莓派转手一下了。

4、功能划分

        树莓派偏重于网络通信和算法计算,而mcu偏重于运动控制和结果执行。两者的定位是不一样的,两者之间无法相互取代的。像slam、camera图像、ai、视频编解码、3d、丰富网络协议、复杂图形界面,这些mcu干不了;实时运动控制,树莓派也做不了,除非它其他什么也不干。真的不需要算法计算的话,直接上位机连接mcu就好了,自然就不需要树莓派了。因此在前期验证和调试的时候,两者可以分开来开发。等到最终作为产品调试的时候,再merge到一起,这是比较合适的处理办法。

        像树莓派这种板子,自身就是linux系统,上面的软件代码任务会比较重一点,有可能会牵涉到不同的部门和开发人员。而mcu相对而言,功能单一,软件和硬件有可能都是同一个人开发的。所以这个时候,大家只要明确彼此之间的功能接口,就算人员很多,开发起来一般问题不大。

5、把接口的划分落实到文档上面

        树莓派的软件一般比较多,开发人员也就比较多;mcu的软件相对较少,所以开发人员也比较少。但真正树莓派接口层,和mcu的接口层,对接的内容未必有那么多。但是哪怕东西再少,也要转成一个标准的文档。只有变成专业的文档,大家才能对协议、接口、参数、流程等彼此之间需要协同的东西了然于心,而不是你做你的,我做我的。

其他:

        事实上除了mcu之外,有的时候soc还会和fpga进行协作。当然,通信的方式一般就是spi、232这样居多,zynq之类的fpga+soc组合体另当别论。一些对采样、控制和实时性有要求的场合,用fpga还是非常方便的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/8815.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8G显存玩转AI换衣IDM-VTON(支持MAC、WIN)

最近AI换衣项目IDM-VTON挺火哈,我也火速体验了一把。效果也是很不错,相对OOTDiffusion的换衣效果提升了不少。 那部署的时候遇到比较大的问题是高显存占用!太吃配置了!24G的显卡占用了18G左右。于是花了点时间改成 使用了低精度模…

吴恩达2022机器学习专项课程C2(高级学习算法)W1(神经网络):2.5 更复杂的神经网络

目录 示例填写第三层的层数1.问题2.答案 公式:计算任意层的激活值激活函数 示例 层数有4层,不包括输入层。 填写第三层的层数 1.问题 你能把第二个神经元的上标和下标填写出来吗? 2.答案 根据公式g(wxb),这里的x对应的是上…

pdf2htmlEX:pdf 转 html,医学指南精细化处理第一步

pdf2htmlEX:pdf 转 html,医学指南精细化处理第一步 单文件转换多文件转换 代码:https://github.com/coolwanglu/pdf2htmlEX 拉取pdf2htmlEX 的 Docker: docker pull bwits/pdf2htmlex # 拉取 bwits/pdf2htmlex不用进入容器&…

mysql oceanbase数据库alter语句阻塞,解决方案

获取当前阻塞事件 select d.trx_started, a.thread_id, b.processlist_id, a.SQL_text from performance_schema.events_statements_current ajoin performance_schema.threads b on a.thread_id b.thread_idjoin information_schema.processlist c on b.processlist_id c.i…

最稳定的VPS有哪些?2024年稳定服务器推荐

最稳定的VPS有:DigitalOcean、萤光云、Vultr、Linode、AWS。 VPS的硬件质量、网络稳定性、数据中心设施、数据中心位置等都是评估VPS好坏的重要条件,接下来为一起来看看5个2024年稳定服务器厂商,大家可以自己对比一下。 2024年稳定服务器推荐…

MySql表的增删查改(CRUD)

对表中的数据操作分为4大类,增加数据,删除数据,查找数据,修改数据。对表中的数据进行增删查改操作简称为CRUD。Create(增),Retrieve(查找),Updata(修改),Delete(删除)CRUD的操作是对表中的数据进行操作的,是…

【Ajax零基础教程】-----第三课 FastJson

一、Fastjson 是什么 Fastjson 是阿里巴巴的开源jSON解析库,它可以解析JSON格式的字符串,支持将javaBean序列化为JSON字符串,也可以从jSON字符串反序列化到javaBean。 二、Fastjson使用场景 Fastjson已经被广泛使用在各种场景,包…

【随笔】Git 高级篇 -- 上传命令的参数 (下)git push(三十七)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

单节锂电池充电芯片H4054无需外接检测电阻500mA电流7V输入

锂电池充电芯片的主要功能如下: 充电管理功能:充电芯片能够对锂电池进行智能化管理,根据电池的状态和需求,调节充电电流和电压,以实现快速充电、恒流充电、恒压充电等不同的充电模式。通过合理控制充电过程&#xff0…

Excel 查找值的位置后再用位置取值Excel处理

例题描述 Excel 文件中有下图所示的 3 个片区数据 (不同颜色标明)。 现在要算出1-12对应的一列数据,计算规则:在片区3中依次查找1-12,找到后在片区1对应位置取数,如果是0则取片区2同位置的数,如果是1则取F当前查找数。…

基于单片机的小型自动浇灌系统设计

摘 要:以单片机为主控芯片,结合传感器和计算机,搭建了一套智能化的浇灌系统;利用LabVIEW 设计并编写了基于状态机程序架构的上位机软件,实现了友好的用户交互界面,实时测量、显示与记录等功能,并由主控芯片进行浇灌。经测试,本系统具有结构简单,研制成本低,运…

Axure中继器介绍以及案例分享

中继器是 Axure 中一个比较高阶的应用,它可以让我们在纯静态网页中模拟出类似带有后台数据交互的增删改查的效果。 一、中继器的基本使用方法: 整体流程分为三个步骤 ☆创建中继器 我们先在 Axured画布中拖入一个中继器元件 双击中继器后的效果 打开之…

[windows系统安装/重装系统][step-2]BIOS设置UEFI引导、磁盘分区GPT分区、安装系统[含完整操作拍照图片]

背景 先准备U盘启动盘和系统镜像: [windows系统安装/重装系统][step-1]U盘启动盘制作,微软官方纯净系统镜像下载 前言(略长,建议可跳过) 我的笔记本升级了CPU升级了内存后出现了一个小问题, 每次启动徽标显示后会…

【Pychart】jupyter中pyecharts无法显示问题无法使用/No module named pyecharts

无法显示或No module,一般就是更换python版本后,没有在新的python里安装jupyter;另外原因就是引用方式问题,就是import方式不对;都解决后,有报错没有add,或者str问题。 最后的解决方案竟然是bin…

智慧旅游推动旅游服务智慧化转型:借助智能科技的力量,实现旅游资源的精准匹配和高效利用,为游客提供更加便捷、舒适的旅游环境

目录 一、引言 二、智慧旅游的定义与特点 (一)智慧旅游的定义 (二)智慧旅游的特点 三、智能科技在旅游服务中的应用 (一)大数据分析助力旅游决策 (二)人工智能实现个性化推荐…

Android 网络请求 实现

Android 网络请求 实现 一、背景 在Android开发中,网络请求是一个非常常见的需求。应用程序可能需要与远程服务器通信来获取数据、上传文件、验证用户身份等等。背景下,Android应用通常会面临以下几个主要情况和挑战: ①数据交互: 许多应用程序需要从服务器获取数据,例…

杰发科技AC7840——软件Sent_HAL39X

0. 序 截止2024.5.8,杰发的MCU没有硬件Sent功能,因此使用PWM模拟Sent来试试。 测试下7840的软件sent功能。 参考链接:SENT协议应用笔记 - TechPlus汽车工坊的文章 - 知乎 SENT协议 1. Sent功能测试 使用提供的软件Sent代码在7840上测试&a…

医疗图像处理2023年CVPR:Label-Free Liver Tumor Segmentation-无标签肝肿瘤分割

目录 一、摘要 二、介绍 三、相关工作 四、网络框架 1.位置选择 2.纹理处理 3.形状生成 4.后处理 5.参数设计 五、实验 1.数据集: 2.评价指标: 3.实现: 4.结果: 六、结论 一、摘要 通过在CT扫描中使用合成肿瘤&am…

8086 汇编学习 Part 9

端口的读写 CPU 的邻居 CPU 内部的寄存器内存单元端口(各种接口卡、网卡,显卡,主板上的接口芯片等) 各种芯片工作时,都有一些寄存器由 CPU 读写从 CPU 角度,将各寄存器当端口,并统一编制CPU …

webservice和TCP类型接口测试

1.webservice类型接口 1.1.webservice类型接口介绍 Web服务(WebService)是一种基于网络的应用程序接口(API),可通过网络来进行通信和交互。它们使用标准化的协议和格式来进行通信,最常见的是使用XML&#…