开源项目
文章平均质量分 83
非子玉
InfoQ签约作者,阿里云专家博主,51CTO专家博主,华为云云享专家,嵌入式开发工程师,AE工程师。
座右铭:向着太阳,追逐梦想!
展开
-
基于ZYNQ 平台测试SD NAND
本来打算拿这些样片去试试信息安全领域是否有所应用,但发现其似乎内置了复位或初始化,导致无法提取上电时的不确定值,故无法提取该SD NAND的物理不可克隆特性,所以这方面的测试无法进行;对于芯片正常读写的测试结果,还是很让人满意的,芯片的价格也很合理。并且LGA-8封装更适合无卡槽的嵌入式开发板设计,在一定的应用领域有着简化硬件设计、减小硬件面积的功能。最后贴上测试工程的链接,还迎复现实验:t=O83A。原创 2024-11-06 21:12:35 · 940 阅读 · 0 评论 -
codigger体验过程记录
codigger是一款分布式操作系统,主要是便于进行个人移动化办公、在线协同办公、开发和娱乐的私人应用。收到codigger开发者朋友的邀请,于是进行了这款产品的升级体验,接下来就简单介绍一下自己的体验过程吧。原创 2024-11-04 21:59:51 · 336 阅读 · 0 评论 -
C++中的AI编程助手添加
这两年 AI 发展迅猛,作为开发人员,我们总是追求更快、更高效的工作方式,AI 的出现可以说改变了很多人的编程方式。AI 对我们来说就是一个可靠的编程助手,给我们提供了实时的建议和解决方案,无论是快速修复错误、提升代码质量,或者查找关键文档和资源,AI 作为编程助手都能让你事半功倍。原创 2024-10-28 21:36:52 · 903 阅读 · 0 评论 -
ROS 编程入门的介绍
在 ROS 中,自定义消息类型和服务类型是很常见的需求。我们可以定义自己的消息和服务文件来满足特定的应用需求。首先,在my_robot功能包的msg目录下创建一个新的消息文件,例如然后,在FILES在类似地,我们可以在srv目录下创建一个新的服务文件,例如---然后,在FILES在本文介绍了如何创建 ROS 功能包,并使用主题、服务和 actionlib 实现机器人功能。通过这些基础知识,您可以构建复杂的机器人应用程序。原创 2024-10-25 23:03:24 · 720 阅读 · 0 评论 -
PID算法原理
今天为大家介绍一下经典控制算法之一的PID控制方法从提出至今已有百余年历史,其由于结构简单、易于实现、鲁棒性好、可靠性高等特点,在机电、冶金、机械、化工等行业中应用广泛。在大学期间,参加的智能汽车竞赛中就使用到了PID经典控制算法,对于智能小车的调试更加的方便。原创 2024-10-24 22:20:16 · 749 阅读 · 0 评论 -
关于LDO,读懂这一篇就够了
在电子设计中,我们经常需要用到不同的直流电压给不同器件供电,其中广泛常见的就是通过LDO稳压芯片来实现得到不同的直流电压输出,因为成本低、性能好,且使用起来也很简单,让低压差线性稳压器(下文简称LDO)用的也越来越多,几乎每款电子产品里都有其身影。说它好用,是因为在普通设计里,只需要加入合适的输入电压,和几个滤波电容即可得到想要的输出电压,非常简单,然而也正因为这看似简单的用法也要工程师熟悉LDO的主要参数结合自己的具体设计。LDO是靠自身的反馈环路控制主功率管,与负载分压,保持输出端电压的稳定。原创 2024-10-22 22:28:23 · 1395 阅读 · 0 评论 -
基于RT-Thread摄像头车牌图像采集系统
使用基于RT-thread操作系统的AB32VG1开发板作为主控,对ov7670摄像头进行图像采集,并使用串口发送图片RGB565格式到PC供opencv进行图像识别。原项目设想在开发板上进行采集的同时并通过简单的二值算法和插值算法实现车牌号识别,但实践中发现开发板的ram并不够保存采集回来的图像信息,与数据手册中介绍的192k有一定差距,实现用户能使用的ram是70k;同时原设想是带lcd屏幕的,但最后发觉io口数量不够,只能通过串口调试显示,但lcd屏幕的 spi代码仍保留在原码中,可供参考。原创 2024-10-21 22:03:27 · 246 阅读 · 0 评论 -
C++ 之 perf+火焰图分析与调试
perf是Linux下的一款性能分析工具,能够进行函数级与指令级的热点查找。利用perf剖析程序性能时,需要指定当前测试的性能时间。性能事件是指在处理器或操作系统中发生的,可能影响到程序性能的硬件事件或软件事件perf list主要是用于列出有哪些可用的event,可以供来分析。,其中可以列出 hard ware 的event, sw 是software的event, 其它类似。原创 2024-10-20 22:30:37 · 967 阅读 · 0 评论 -
RA8D1-Vision Board上OSPI-Flash实践
高阶安全性:卓越的加密算法、TrustZone、不可变存储、带DPA/SPA攻击保护的防篡改功能、安全调试、安全工厂编程和生命周期管理支持。(1)FSP配置:最开始自己按照官方例程配置,在尝试无法获取UID后,发现是工程模板默认配置的CS引脚是CS0,实际硬件连接为CS1。(4)编写程序:由于使用的flash芯片型号不同,主要修改了官方例程的配置和初始化内容。(5)下载调试:首先需要调试初始化在识别芯片UID后,此时可确定配置正常,修改芯片状态后再调试和测试FAL执行情况。原创 2024-10-19 21:18:42 · 298 阅读 · 0 评论 -
PID算法原理分析及优化
今天为大家介绍一下经典控制算法之一的PID控制方法从提出至今已有百余年历史,其由于结构简单、易于实现、鲁棒性好、可靠性高等特点,在机电、冶金、机械、化工等行业中应用广泛。在大学期间,参加的智能汽车竞赛中就使用到了PID经典控制算法,对于智能小车的调试更加的方便。原创 2024-10-18 22:45:58 · 924 阅读 · 0 评论 -
Transformer图解以及相关的概念
RNN还有一个特定就是能考虑词的顺序(位置)关系,一个句子即使词完全是相同的但是语义可能完全不同,比如”北京到上海的机票”与”上海到北京的机票”,它们的语义就有很大的差别。我们上面的介绍的Self-Attention是不考虑词的顺序的,如果模型参数固定了,上面两个句子的北京都会被编码成相同的向量。为了解决这个问题,我们需要引入位置编码,也就是t时刻的输入,除了Embedding之外(这是与位置无关的),我们还引入一个向量,这个向量是与t有关的,我们把Embedding和位置编码向量加起来作为模型的输入。原创 2024-10-17 22:02:45 · 884 阅读 · 0 评论 -
关于粒子滤波的解析
基本原理:随机选取预测域的 N NN 个点,称为粒子。以此计算出预测值,并算出在测量域的概率,即权重,加权平均就是最优估计。之后按权重比例,重采样,进行下次迭代。初始状态:用大量粒子模拟X(t),粒子在空间内均匀分布;预测阶段:根据状态转移方程,每一个粒子得到一个预测粒子;校正阶段:对预测粒子进行评价,越接近于真实状态的粒子,其权重越大;重采样:根据粒子权重对粒子进行筛选,筛选过程中,既要大量保留权重大的粒子,又要有一小部分权重小的粒子;原创 2024-10-15 21:40:02 · 736 阅读 · 0 评论 -
WebViz可视化工具的应用
Webviz是一个基于Web的可视化工具,意味着您可以通过浏览器/APP访问它,而不需要安装额外的软件。这对于远程访问和团队协作非常方便。Foxglove是一个开源的工具包,包括线上和线下版。旨在简化机器人系统的开发和调试。它提供了一系列用于构建机器人应用程序的功能。本节将介绍如何使用Foxglove进行数据查看,以及话题通信。为了实现OriginBot与Foxglove的连接,我们需要在OriginBot上搭建ROS环境。原创 2024-10-14 22:20:00 · 358 阅读 · 0 评论 -
多线程;顺序容器;智能指针
shared_ptr的拷贝和赋值1、当新的 shared_ptr 对象与指针关联时,则在其构造函数中,将与此指针关联的引用计数增加1。deque是一个的双向开口,意思是可以在头尾两端分别做元素的插入和删除操作,当然,vector 容器也可以在头尾两端插入元素,但是在其头部操作效率奇差,无法被接受。要加锁的代码段,我们用{}括起来形成一个作用域,括号的开端创建lock_guard对象,把mutex对象作为参数传入lock_guard的构造函数即可。LIO-SAM中的std::lock_guard。原创 2024-10-09 21:18:47 · 948 阅读 · 0 评论 -
python实现匈牙利匹配
现在针对某个项目,利用python实现DBSCAN和Kmeans算法。项目简介:利用某传感器可以采集场景中的点云,每一帧都可以采集数量不等的点(x,y,z)。想要利用DBSCAN和Kmeans对点云进行无监督式的聚类,并利用匈牙利匹配对不同帧的点云簇进行匹配,从而实现跟踪效果。项目备注:这是别人拜托我来写的,我花了一点点时间。从我的角度,这种方法解决该项目,简直是胡扯。。。不过,项目和人不靠谱,并不影响代码的有效性,权当一种消遣。原创 2024-09-29 23:17:23 · 299 阅读 · 0 评论 -
如何帮助我们改造升级原有架构——基于TDengine 平台
此次升级改造总体进行得比较顺利,但过程中也有一些波折,尤其是在数据建模的时候遇到了一些困难。办法总比困难多,通过一些方法和技巧,我们把TDengine改造成了schema-free的数据库,满足了物联网平台的要求,最终完成了升级改造。目前,已经支撑起了所有物联网设备上报的数据,同时支撑起了应用层的各种应用场景。我们使用到的功能还比较简单,主要是插入、连续查询以及降采样查询,对于物联网平台来说基本够用。原创 2024-09-25 23:23:28 · 1251 阅读 · 0 评论 -
基础的点云转换
对于点云处理而言,最简单也逃不过的就是点云转换了,我们就从点云转换开始,来一步步完成点云加速的学习。点云基础转换是3D点云处理中的一个重要步骤。它的主要目的是将点云从一个坐标系转换到另一个坐标系中,通常是为了方便后续处理或者显示。在实际应用中,点云基础转换通常包括平移、旋转、缩放等操作。这里对应了这种方法。原创 2024-09-24 21:50:44 · 725 阅读 · 0 评论 -
基于波特图的控制系统设计算法
波特图(Bode Plot)是一种用于描述线性控制系统频率响应的图形表示方法,通常用于分析和设计控制系统。它以控制系统的传递函数(或频域传递函数)为基础,将系统的幅频特性(振幅-频率响应)和相频特性(相位-频率响应)以图形的方式展示出来。可以根据波特图理解和评估系统的稳定性、性能和鲁棒性。波特图可以指导控制器的设计。通过调整控制器的参数,可以改变系统的频率响应,以满足特定的性能要求。波特图提供了反馈信息,帮助选择合适的控制器类型和参数,以达到期望的控制效果。原创 2024-09-21 23:57:41 · 455 阅读 · 0 评论 -
关于深度学习量化的操作
深度学习中做量化提升运行速度是最常用的方法,尤其是大模型这类非常吃GPU显存的方法。一般是高精度浮点数表示的网络权值以及激活值用低精度(例如8比特定点)来近似表示达到模型轻量化,加速深度学习模型推理,目前8比特推理已经比较成熟。比如int8量化,就是让原来32bit存储的数字映射到8bit存储。int8范围是[-128,127], uint8范围是[0,255]。原创 2024-09-18 21:27:05 · 668 阅读 · 0 评论 -
ROS 编程入门的介绍
在 ROS 中,自定义消息类型和服务类型是很常见的需求。我们可以定义自己的消息和服务文件来满足特定的应用需求。首先,在my_robot功能包的msg目录下创建一个新的消息文件,例如然后,在FILES在类似地,我们可以在srv目录下创建一个新的服务文件,例如---然后,在FILES在本文介绍了如何创建 ROS 功能包,并使用主题、服务和 actionlib 实现机器人功能。通过这些基础知识,您可以构建复杂的机器人应用程序。原创 2024-09-17 23:56:46 · 1053 阅读 · 0 评论 -
图像检测【YOLOv5】——深度学习
Anaconda的安装配置:(Anaconda是一个开源的Python发行版本,包括Conda、Python以及很多安装好的工具包,比如:numpy,pandas等,其中conda是一个开源包和环境管理器,可以用于在同一个电脑上安装不同版本的软件包,并且可以在不同环境之间切换,是深度学习的必备平台。5.安装完成以后,会提示done,然后输入pip list,查看我们的包是否被安装,这里可以看到torch相关的包都安装了。小伙伴们在这里注意一下,环境名和python的版本是可以自己指定的嗷~原创 2024-09-13 21:58:04 · 686 阅读 · 0 评论 -
关于NAND NOR FLASH闪存产品概述
芯片类产品有SD NAND,eMMC, SPI NAND. 他们共同特点是内部都带了针对NAND Flash的管理机制。二来会增加CPU的负荷。随着国内对集成电路,特别是存储芯片的重视,前来咨询我们关于NOR Flash,NAND Flash,SD NAND, eMMC, Raw NAND的客户越来越多了。2,NAND Flash出厂时会有坏块(不用惊讶,原厂出厂的时候都会标识出来,而且比例是很低),在使用当中也可能产生坏块。NAND Flash产品本身存在一定的特性,要正常使用,必须配备对应的管理机制。原创 2024-09-12 22:12:46 · 1380 阅读 · 0 评论 -
动物目标检测——基于YOLOv5和树莓派4B平台
通过以上步骤,我们成功地在性能更强的计算机上训练了YOLOv5模型,并将训练好的模型部署到树莓派4B上,利用树莓派的摄像头实现了实时动物目标检测。这一过程展示了从环境配置、数据准备、模型训练到模型部署和实时推理的完整流程。通过本文的介绍,相信读者能够掌握在树莓派上部署YOLOv5进行动物目标检测的完整流程。这一技术在智能家居、安防监控、农业监测等领域具有广泛的应用前景。希望本文能够为你的项目开发提供帮助和参考。原创 2024-09-12 22:03:37 · 659 阅读 · 0 评论 -
使用CLion进行ROS开发
回到一开始的"Threads & Variables"窗口,左上角有一些控制按钮,从左到右依次是:Rerun(Ctrl+F5),Stop(Ctrl+F2),Resume(F9),Pause(暂时用不上),Step Over(F8),Step Into(F9),Step Out(Shift+F8)。上图中,上方从左到右依次为:选择编译器,选择源文件,构造(用于项目打包整体编译,现阶段用不到),运行,调试。单击要修改名称的源文件,按下快捷键“Shift+F6”,修改名称,并点击"Refactor"。原创 2024-09-11 22:38:29 · 817 阅读 · 0 评论 -
关于粒子滤波的解析
基本原理:随机选取预测域的 N NN 个点,称为粒子。以此计算出预测值,并算出在测量域的概率,即权重,加权平均就是最优估计。之后按权重比例,重采样,进行下次迭代。初始状态:用大量粒子模拟X(t),粒子在空间内均匀分布;预测阶段:根据状态转移方程,每一个粒子得到一个预测粒子;校正阶段:对预测粒子进行评价,越接近于真实状态的粒子,其权重越大;重采样:根据粒子权重对粒子进行筛选,筛选过程中,既要大量保留权重大的粒子,又要有一小部分权重小的粒子;原创 2024-09-10 21:51:28 · 991 阅读 · 0 评论 -
C++ 之 perf+火焰图分析与调试
perf是Linux下的一款性能分析工具,能够进行函数级与指令级的热点查找。利用perf剖析程序性能时,需要指定当前测试的性能时间。性能事件是指在处理器或操作系统中发生的,可能影响到程序性能的硬件事件或软件事件perf list主要是用于列出有哪些可用的event,可以供来分析。,其中可以列出 hard ware 的event, sw 是software的event, 其它类似。原创 2024-09-09 22:40:06 · 1372 阅读 · 0 评论 -
Transformer图解以及相关的概念解析
RNN还有一个特定就是能考虑词的顺序(位置)关系,一个句子即使词完全是相同的但是语义可能完全不同,比如”北京到上海的机票”与”上海到北京的机票”,它们的语义就有很大的差别。我们上面的介绍的Self-Attention是不考虑词的顺序的,如果模型参数固定了,上面两个句子的北京都会被编码成相同的向量。为了解决这个问题,我们需要引入位置编码,也就是t时刻的输入,除了Embedding之外(这是与位置无关的),我们还引入一个向量,这个向量是与t有关的,我们把Embedding和位置编码向量加起来作为模型的输入。原创 2024-09-08 21:23:00 · 731 阅读 · 0 评论 -
对深度学习概念的基础理解与认识
人工神经网络(Artificial Neural Networks,简写为ANNs)是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的,并具有自学习和自适应的能力。。为了详细地描述神经网络,我们先从最简单的神经网络说起。感知机是1957年,由Rosenblatt提出会,是神经网络和支持向量机的基础。原创 2024-09-06 22:16:42 · 613 阅读 · 0 评论 -
LDO的原理及测试方法
这是LM317芯片的核心,这个电路单元称为Bandgap Reference带隙基准源。属于模拟集成电路中的经典电路结构。常见的基本结构利用VBE的负温度系数,而VT是正温度系数,正负温度系数抵消就的得到稳定的基准参考电压了(三极管的方程VBE=VT*In(lC/IS))。原创 2024-09-05 23:31:05 · 715 阅读 · 0 评论 -
关于LDO,读懂这一篇就够了
在电子设计中,我们经常需要用到不同的直流电压给不同器件供电,其中广泛常见的就是通过LDO稳压芯片来实现得到不同的直流电压输出,因为成本低、性能好,且使用起来也很简单,让低压差线性稳压器(下文简称LDO)用的也越来越多,几乎每款电子产品里都有其身影。说它好用,是因为在普通设计里,只需要加入合适的输入电压,和几个滤波电容即可得到想要的输出电压,非常简单,然而也正因为这看似简单的用法也要工程师熟悉LDO的主要参数结合自己的具体设计。LDO是靠自身的反馈环路控制主功率管,与负载分压,保持输出端电压的稳定。原创 2024-09-03 21:27:48 · 1809 阅读 · 0 评论 -
DC-DC产品设计PCB注意事项
DC-DC的电路比LDO会复杂很多,噪声也更大,布局和layout要求更高,layout的好坏直接影响DC-DC的性能,所以了解DC-DC的layout至关重要。原创 2024-09-02 21:50:36 · 938 阅读 · 0 评论 -
FPGA平台实现SD卡的数据读写(SD NAND FLASH)
SD NAND控制器模块:SD NAND控制器模块例化了SD NAND初始化模块、 SD NAND写数据模块和SD NAND读数据模块。这些寄存器只能通过对应的命令访问,对 SD NAND的控制操作是通过命令来执行的, SD NAND定义了 64 个命令(部分命令不支持 SPI 模式) ,每个命令都有特殊意义,可以实现某一特定功能, SD NAND接收到命令后,根据命令要求对 SD NAND内部寄存器进行修改,程序控制中只需要发送组合命令就可以实现 SD NAND的控制以及读写操作。转载 2024-08-27 23:07:12 · 113 阅读 · 0 评论 -
基于RT-Thread的智能家居助手
智能家居助手主要基于RT-Thread开发的,该系统主要分为语音子系统,环境监测子系统,智能控制子系统,智能网关子系统,音乐播放器,云端以及应用软件七大部分。语音子系统可通过语音进行人机交互来控制家电设备。环境监测子系统为智能家居提供环境信息输入,实时监测室内的环境信息。智能控制子系统为智能家居提供控制接口,用户可根据实际需求来控制家电设备。原创 2024-08-25 22:02:15 · 889 阅读 · 0 评论 -
一款基于AB32VG1的桌面智能坞
我基于这个开发板制作了一款桌面小工具,它是一个小巧、功能丰富、具有实用价值的桌面物联网“控制中枢”。可以实现: 精灵播放音乐时内部有一颗呼吸灯的效果;精灵可以通过OLED显示当前音乐名字、播放状态;精灵可以自动连接到MQTT服务器,实现网络交互;精灵可以通过红外遥控,实现音乐切换和暂停播放;精灵可以通过手机连接热点配网,配置联网信息,连接 WIFI;精灵连接有功放模块实现播放TF卡中的音乐;精灵连接有一个RGB彩灯,在一个精致小夜灯中实现彩虹灯的效果;原创 2024-08-23 23:03:58 · 324 阅读 · 0 评论 -
SD模式与SPI模式初始化配置——基于SD NAND模块
3.发送SD卡命令CMD0-------------------------使在SD卡收到复位命令时,CS为有效电平(低电平),则SD卡切换到SPI模式,进入IDLE状态。6.发送CMD58------------------------对SD2.0版本进一步确认SD卡型号(SDHC为扇区块寻址,普通SD卡为字节寻址)9.发送CMD16-------------------------------------设置SD卡扇区大小(默认为512字节)1.配置时钟,0-400KHZ,设置工作模式。转载 2024-08-21 23:11:56 · 137 阅读 · 0 评论 -
eFuse电子保险丝
eFuse使用有源电路而非易熔连接部分来切断电流,用于帮助设计人员满足快速切断、自复位和低电流条件下可靠运行等要求。电子保险丝还能具有各种保护功能,以及可调转换率。因此,这类器件是工程师的电路和系统保护器件包的重要补充。如上所述,电子保险丝可以取代传统的热保险丝,尽管在许多情况下只是用于局部保护并采用热保险丝作为补充。与传统的热保险丝一样,许多电子保险丝也通过了安全相关功能的认证从而扩大了通用性和适用性。原创 2024-08-16 22:26:37 · 789 阅读 · 0 评论 -
HarmonyOS的功能及场景应用
鸿蒙HarmonyOS主要应用的设备包括智慧屏、平板、手表、智能音箱、IoT设备等。具体来说,鸿蒙系统是一款面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,通过同一套系统能力、适配多种终端形态。以下是关于鸿蒙系统技术知识的介绍:分布式架构首次用于终端OS,实现跨终端无缝协同体验。原创 2024-08-03 20:56:27 · 897 阅读 · 0 评论 -
我的办公小助手——办公小浣熊
办公小浣熊是商汤科技开发的一款数据分析工具。它基于商汤自主开发的大语言模型,旨在帮助用户进行数据分析和可视化,而无需编程或复杂操作。只要用户用自然语言表达自己的需求,办公小浣熊就可以自动将复杂的数据转换为直接可用的分析结果。办公小浣熊已广泛应用于互联网、游戏、文化旅游、教育、医疗、金融、编程等多个行业。小浣熊家族 Raccoon - AI 智能助手 - 商汤科技这只小浣熊并不普通,它颠覆了传统的手工数据分析方法,将能够重新定义办公。经过初步测试和评估,原创 2024-07-22 22:06:09 · 1598 阅读 · 0 评论 -
Apache IoTDB进行IoT相关开发实践
我先来给大家简单介绍一下:IoTDB即物联网数据库,是一个面向时间序列数据的集成数据管理引擎,可以为用户提供特定的数据收集、存储和分析服务。由于其轻量级结构、高性能和可用特性,以及与Hadoop和Spark ecology的紧密集成,IoTDB满足了物联网工业领域的海量数据集存储、高速数据输入和复杂数据分析的要求。IoTDB作为一款专门针对时序数据设计的数据库,以其高性能、高压缩比、多协议兼容等特性,在物联网领域得到了广泛的应用。原创 2024-07-19 22:48:05 · 848 阅读 · 0 评论 -
Xilinx ZYNQ的应用开发介绍
当我们一提到 Xilinx ZYNQ,大家脑海大多数就会浮现一个描述的词汇,高端,其实这个词很贴切的形容了Zynq系列产品,Xilinx (赛灵思公司)推出的行业第一个可扩展处理平台Zynq系列,旨在为视频监视、汽车驾驶员辅助以及工厂自动化等高端嵌入式应用提供所需的处理与计算性能水平。原创 2024-05-06 22:01:10 · 718 阅读 · 0 评论