陶瓷电容是一类以陶瓷材料为介质制作而成的电容器。在电子电路中,电容器的主要作用是储存电荷,并在需要时释放,以维持电路的稳定运行。
2024-03-19 11:34:47317 。
5、可靠性好:厚膜电阻器性能稳定,正常使用下功能不易改变,可靠性高于薄膜电阻器。
基于以上优点,厚膜电阻适用于要求输出功率大、电阻范围宽、耐高温、高湿、耐热的领域,如汽车电子、工业、军工、航空等。
2024-03-15 07:17:56
一、碳膜系列
由碳膜电阻系列材料制成的电阻一般称为碳膜电阻,主要是由有机材料分解的膜电阻。遮盖1Q一lOMQ的阻值范畴,价格低、生产制造非常容易,作为通用性电阻而热销(流通量数最多)。反过来,因为
2024-03-13 06:56:09
要区分电阻是薄膜还是厚膜,可以从以下几个方面进行判断:
外观:观察电阻的外观,如果看到电阻表面有一层薄膜涂层,则可能为薄膜电阻;如果电阻表面较为粗糙,没有明显的涂层,则可能为厚膜电阻。
尺寸:薄膜
2024-03-07 07:49:07
OVP过压保护芯片:为何电子工程师需要它?功能、作用全解析
2024-03-06 10:27:18279 继电器模组的作用和优缺点 继电器模组是一种常用的电子元件,用于控制高功率电路的开关。它在电子电路中承担着重要的作用,具有许多优点和一些缺点。 一、继电器模组的作用: 1. 电路的开关:继电器模组
2024-03-05 17:06:55254 滤波器在电子领域中起着至关重要的作用,它可以用来选择特定频率范围内的信号,抑制其他频率的干扰信号。
2024-03-04 12:36:41222 耦合电容(Coupling Capacitors)在电子电路中起到连接不同电路阶段的作用。它们被用来传输信号,将一个电路的输出连接到下一个电路的输入,同时阻隔直流信号。在音频放大器、射频放大器和其他
2024-03-01 15:46:12181 三极管作为一种重要的半导体器件,在电子电路中起着至关重要的作用。
2024-02-26 18:26:27742 滤波器在电子领域中起着至关重要的作用,它可以用来选择特定频率范围内的信号,抑制其他频率的干扰信号。一个滤波器的频率范围取决于多个因素,下面小编将为您分析。
2024-02-26 10:22:01139 随着全球能源结构的转变和可再生能源的普及,电力电子技术在现代社会中的作用日益凸显。作为电力电子技术的关键元件,功率器件的性能直接影响着能源转换和使用的效率。近年来,碳化硅(SiC)功率器件因其优异
2024-02-25 10:37:01165 三极管是一种控制电流的半导体器件,并且在在电子电路中起着至关重要的作用。
2024-02-23 18:13:52723 稳压管(Voltage Regulator),也称为稳压二极管、稳压二极管、稳压二极管、硅稳压二极管等,是一种能够稳定输出电压的电子元件。 稳压管起稳压作用是利用它的电流-电压特性。下面是一个深入
2024-02-22 10:09:15197 二极管是一种最简单的电子器件,它具有许多重要的作用和广泛的用途。本文将详细介绍二极管的工作原理、主要功能以及常见的应用领域。 一、二极管的工作原理 PN结 二极管由P型半导体和N型半导体构成的PN
2024-02-14 15:10:00513 电子镇流器热保护器:优势和适用性分析 电子镇流器热保护器是一种应用于电子镇流器的热保护装置,其作用是在电子镇流器过热时自动断开电路,以保护电子镇流器免受损坏。本文将从优势和适用性两个方面对电子
2024-02-01 17:25:19154 X电容和Y电容作用 安规电容X与Y的区别 X电容和Y电容都属于安规电容,它们在电子产品中起着重要的作用。虽然它们都是电容器,但是它们具有一些区别。本文将详细讨论X电容和Y电容的作用、区别以及它们
2024-01-31 15:45:51461 电子烟一般由主控芯片、电池、按键、 LED呼吸灯、气流传感、 雾化器组成。升压芯片FP6277作为电子烟的核心组件之一,主要作用是将输入的电压升高至合适的工作电压,霍尔传感器MH251控制电子烟的使用状态,以确保电子烟的正常工作。
2024-01-31 11:43:37409 扼流圈是一种电感器,通常由线圈缠绕在磁芯上构成。它在电子设备和电路中起着重要的作用,能够阻止高频交流电流的通过,同时允许低频率的交变电流和直流电流通过。
2024-01-30 10:35:12611 YYD液位变送控制器是集液位测量,显示,输出、控制于一体的智能数显液位测控产品。该产品为全电子结构,前端采用磁滞伸缩传感器。电子仓发出一个脉冲波沿测杆方向传播,遇到浮球的磁性材料脉冲波
2024-01-24 09:21:53
由于石墨烯缺乏本征带隙,半导体石墨烯在石墨烯纳米电子学中起着重要作用。在过去的二十年中,通过量子限域或化学官能团化来改变带隙的尝试未能生产出可行的半导体石墨烯。
2024-01-05 10:41:32271 随着电子工业的迅速发展,大型电子制造领域对高效、可靠的电力传输需求日益增加。滑环技术,作为电力传输领域的先锋,正在大型电子制造中发挥着不可替代的作用。本文将深入探讨滑环技术在大型电子制造领域的创新应用,揭示其如何助力提升生产效率、实现智能制造,并为未来工业的发展开辟新的可能性。
2024-01-03 15:09:32170 抗干扰磁环的原理与作用是什么呢? 抗干扰磁环是一种应用于电子设备中的磁性材料,它的作用是抑制或屏蔽电子设备中的干扰信号,确保设备的正常工作和性能稳定。本文将详细介绍抗干扰磁环的原理、作用及其
2023-12-21 16:34:28986 如下图,当H+接一个1欧姆发热丝短路时,我程序能识别到短路也能关断MOS管,但是芯片会低电复位,有没有什么解决方法吗?有做过电子烟的这块的大佬能不能指点一下啊! (pcb已经量产,小白在实习,拿着它学习程序)
2023-12-20 08:58:17
电子元器件是电子电路的基本组成部分,其作用是控制、调节和处理电流和电压信号。在现代电子技术中,有许多常用的电子元器件,每种元器件都有其独特的功能和应用场合。本文将介绍常用的电子元器件及其在电路
2023-12-15 11:10:10798 金属氧化膜电阻器是一种广泛应用于电子电路中的电阻元件,它的主要作用是限制电流的流动。
2023-12-14 13:42:40523 稳压器的作用与功效是什么 稳压器是一种电子设备,用于将输入电压经过调节后输出稳定的电压。它将不稳定的电源电压转换为稳定的电压输出,确保电子设备正常工作。稳压器的作用与功效十分重要,下面将详细解释
2023-12-12 14:04:101125 整流二极管是一种常见的半导体器件,它的主要作用是将交流电信号转换为直流电信号。当交流电信号通过整流二极管时,它只允许一个方向的电流通过,从而实现了电流的单向导通。这种性质使得整流二极管在电子电路中具有以下几种主要作用。
2023-12-08 09:16:12469 不过根据记者的采访,相关企业认为市场依然大有可为。华润微表示,看好碳化硅未来市场需求。碳化硅在电动车辆和混合动力汽车的功率电子系统中起着关键作用,可以在更高的电压和温度下工作,而且效率更高,散热更好。
2023-12-04 10:26:48310 -产品详情-PMT-C薄膜、复合膜穿刺力测试仪产品简介PMT-C穿刺力测试仪是医药包装系列专业用于胶塞穿刺力检测的仪器。亦可进行薄膜、复合膜、人造皮肤、组合盖、口服液盖的穿刺力测试。参数设置满足国标
2023-11-28 16:00:58
热缩管在线缆保护中的作用 热缩管是一种常用的电缆保护材料,广泛应用于电力输配电、汽车制造、通信设备、电子设备等行业中,其主要作用是对电缆进行绝缘和防护,保障电缆的安全运行和延长使用寿命。在热缩管在线
2023-11-28 14:18:37397 中图仪器CP系列台阶膜厚仪是一种常用的膜厚测量仪器,它是利用光学干涉原理,通过测量膜层表面的台阶高度来计算出膜层的厚度,具有测量精度高、测量速度快、适用范围广等优点。它可以测量各种材料的膜层厚度
2023-11-28 11:31:52
半导体分立器件是电子元器件中的重要组成部分,它们在电子设备中发挥着重要的作用。本文将介绍半导体分立器件的基本概念、分类、应用和发展趋势。
2023-11-23 10:12:56792 。 第一部分:介绍地的概念和作用 地(通常以GND或地接线表示)是电子设备中的一个重要概念。在电子电路中,地有两个基本作用:作为电路的基准点和参考点,以及信号的回归路径。地的正确连接和使用对电子设备的性能和工作稳定性至关重要。
2023-11-17 12:30:58671 高压衰减棒是一种用于电子产品中的重要元件。它的作用是对电流进行精确的转换和调控,以保证电子设备的正常运行。高压衰减棒在各种领域都得到了广泛的应用,如家电、通信设备、医疗仪器等。本文将详细介绍高压衰减棒的工作原理、分类、应用领域和未来的发展趋势。
2023-11-14 13:34:38237 (或二种不相混合的界面)下2-3mm,然后再慢慢将铂金环向上提,环与液面会形成一个膜。膜对铂金环会有一个向下拉的力,测量整个铂金环上提过程中膜对环的所作用的最大力值
2023-11-10 16:41:59
直流电源在电子设备中发挥着核心作用,为各种电路提供稳定且符合要求的电源。
2023-11-08 10:24:16423 电阻作为电子电路最基本的元器件,被应用在各个电子电路中。 那为什么电阻可以应用在电子电路的各个地方呢?它的作用到底有哪些?本篇文章将会做一个精讲。 根据官方对于电阻的百科是——导体对电流的阻碍作用
2023-11-07 14:54:19509 电阻作为电子电路最基本的元器件,被应用在各个电子电路中。 那为什么电阻可以应用在电子电路的各个地方呢?它的作用到底有哪些?本篇文章将会做一个精讲。 根据官方对于电阻的百科是——导体对电流的阻碍作用
2023-11-06 11:43:09477 电子元器件中的散热器:作用与重要性
在电子元器件的世界里,散热器扮演着至关重要的角色。作为一种专门用于散发电子元件产生的热量的装置,散热器对于维护电子设备的稳定性和可靠性具有不可替代的作用。本文将详细介绍散热器在电子元器件中的定义、分类、作用以及应用,并探讨其设计原则和维护方法。
2023-11-01 09:20:06513 电子烟是一种新型烟草制品,由于其健康、环保和口感多样化的特点,逐渐受到了消费者的青睐。升压芯片作为电子烟的核心组件之一,主要作用是将输入的电压升高至合适的工作电压,霍尔传感器控制电子烟的使用状态
2023-11-01 08:07:24415 电子烟是一种新型烟草制品,由于其健康、环保和口感多样化的特点,逐渐受到了消费者的青睐。升压芯片作为电子烟的核心组件之一,主要作用是将输入的电压升高至合适的工作电压,霍尔传感器控制电子烟的使用状态,以确保电子烟的正常工作。本文将详细介绍升压芯片、霍尔在电子烟中的应用。
2023-10-30 13:48:16258 在食品包装领域,复合膜因其优良的阻隔性能、机械强度和热封性能而被广泛应用。然而,为了确保食品的安全性和保质期,复合膜的热封性能必须得到严格控制。复合膜热封试验仪正是在这种情况下发挥作用的设备,用于
2023-10-24 16:40:47
在制造业、材料科学和科研领域,对薄膜厚度的精确测量至关重要。机械接触式膜厚测量仪作为一种高效、精确的测量工具,在各种应用中都发挥着重要作用。本文将详细介绍机械接触式膜厚测量仪的工作原理、特点和用途
2023-10-24 16:31:45
电子元件构成电子信息时代的基础,而集成电路(IC)的崛起在许多现代电子设备中发挥着关键作用,使它们更小、更高效、更功能强大。无论如何,电子元件和集成电路都是电子工程师工具箱中不可或缺的元素,为现代科技的创新和发展提供了坚实的基础。
2023-10-24 15:09:09872 运放的偏置电流是运放自己产生吗?怎么给运放提供偏置电流? 运放是一种重要的电子器件,在电子电路中发挥着重要的作用,用于放大信号、比较信号、求和、求差等。一般而言,运放的工作需要一些偏置电流来保证正常
2023-10-23 10:23:55692 塑料薄膜复合膜在包装、农业、建筑等领域被广泛应用,其拉伸性能对于产品的质量和安全性具有重要影响。为了准确地检测塑料薄膜复合膜的拉伸性能,电子拉力试验机成为了不可或缺的测试设备。塑料薄膜复合膜电子拉力
2023-10-18 16:24:12
光耦合器也称为光隔离器,通过在输入和输出电路之间提供电气隔离,在电子电路中发挥着关键作用。业界常用的两种光耦合器6N136和6N137。本文深入研究了这些组件的技术方面,重点介绍了它们的主要差异和应用。
2023-10-17 09:57:12964 稳流补偿器工作原理 稳流补偿器的作用 稳流补偿器是一种用于调整电网中电流质量的装置,被广泛应用于移动通信、电子制造、医疗设备等行业,其作用是通过提供波形改善、电源系统稳定、电磁兼容性改善等,以确保
2023-10-13 17:39:45528 电子元器件是电子和电气系统的基础,它们起到关键的作用,确保电子设备和系统的正常运行和高效性能。以下是电子元器件的五大特点:
2023-09-26 09:17:12763 集成电路(IC)电源芯片在现代电子设备中起到至关重要的作用。它们负责管理和分配电能,以满足不同组件和子系统的需求。电源芯片有多种不同的类别,每一种都有其特定的应用场景和优点。本文将对常见的几种集成电路电源芯片进行详细的介绍。
2023-09-25 09:08:56879 复合膜层间剥离试验机 复合膜剥离力测试仪是一款专业用于测试复合膜、薄膜等相关材料剥离强度的仪器。该仪器采用先进的电子测量技术,能够快速、准确地测定复合膜或薄膜材料的剥离力。该设备主要由主机
2023-09-20 15:29:25
pcb覆铜有什么作用? PCB是电子产品中常见的电路板,覆铜则是PCB上的一种覆盖性金属,通常是铜。从名字上就可以看出,覆铜的作用就是在PCB的表面叠加一层铜,起到固化电路,使电子元器件间连接,保护
2023-09-14 10:47:201955 陶瓷电容、瓷片电容和贴片电容是电子元器件中常见的三种类型,它们在电子电路中起着非常重要的作用。本文将详细介绍这三种电容的区别。
2023-09-12 16:44:33946 在电子设备中,DC电源模块的作用是将市电或其他源的交流电转换成适合设备使用的直流电,因此,DC电源模块是电子设备中不可或缺的一个部分。在实际设计和应用中,DC电源模块的设计和布线显得尤为重要,下面详细介绍其重要性。
2023-09-12 10:30:06323 贴片电感作为一种应用广泛的电感类型,它在很多电子设备都有着非常重要的作用。我们在做贴片电感的选型工作时,会要求一定要明确使用的贴片电感封装尺寸,因为贴片电感的尺寸不仅仅直接关乎到是否可以正常应用于
2023-09-10 20:40:100 AH8673是一款功能全面、性能出色的开关降压型DC-DC控制器。它的宽电压输入、低功耗、高效率、输出恒压恒流以及多项保护功能等特性,使得它在各种工业和消费电子设备中都能发挥重要作用。作为一种*进的电源控制器,AH8673为电子*品的稳定供电提供了可靠的解决方案。
2023-09-08 15:29:58453 数字称重传感器是一个广泛应用于电子秤方案中的关键元件。它的作用是测量物体的重量,并将其转化为电信号输出,实现数字化称重。在电子秤领域,数字称重传感器扮演着不可或缺的角色,它不仅提高了称重的准确性,还带来了更多便利和效率。
2023-09-07 16:01:40429 工字电感线圈是电子电路中非常常见的一种电子元器件,它在电路中在作用主要就是存储和释放能量。很多人问工字电感线圈的大小对它的电性能是否有影响?本篇,谷景就跟大家一起来简单探讨一下这个问题。 关于工字
2023-09-07 14:42:18378 企业要做好工业液晶电子看板,需要从硬件选择、安装使用、维护保养、软件更新、人员培训、管理制度等方面进行全面的考虑和实施。只有这样,才能够确保工业液晶电子看板能够发挥出最大的作用,提高生产效率和管理水平。
2023-09-05 21:32:15219 CLM32L003应用:小家电、充电器、遥控器、电子烟、燃气报警器、数显表、温控器、记录仪、电机驱动、智能门锁、迷你手电筒 ,手持电风扇。详细内容请查看规格书。
2023-09-05 10:38:21
金封管和塑封管哪种音质好? 音频管是一种非常有用的电子元件,可以在电子设备中起到传输和保护信号的作用。在音频管的世界中,金封管和塑封管是两种主要的包装形式。这两种管子都有各自的优点和缺点,所以在选择
2023-09-02 11:26:003309 不同
由于材料不同,厚膜电阻一般较为厚重,适用于体积较大的电气设备,而贴片电阻因其轻薄柔软的特性,尺寸小巧、容易安装,常用于小型电子产品。
4、适用场景不同
厚膜电阻的耐温性、耐湿性、耐腐蚀性和电气
2023-09-01 17:49:47
铝箔膜厚度测量仪-简介PVC输液袋,双软管输液袋,医用冲洗袋,营养袋,腹膜透析袋,EVA营养袋,多联袋,血浆袋,集尿袋,多层共挤膜袋,兽药袋,铝箔袋,膏药袋,洁净袋,资料袋,自封袋,可书写袋,胶囊袋
2023-09-01 16:26:19
AH8663芯片是一种重要的电源管理芯片,具有高效、稳定的特点。它在电子设备中发挥着重要的作用,帮助实现电压的转换和供电的稳定,为各行各业的技术创新和发展提供了强有力的支持。
2023-08-29 11:07:16312 出于各种原因,电子系统需要实施隔离。它的作用是保护人员和设备不受高电压的影响,或者仅仅是消除PCB上不需要的接地回路。在各种各样的应用中,包括工厂和工业自动化、医疗设备、通信和消费类产品,它都是
2023-08-26 08:25:36423 功率放大器是一种电子设备,它主要用于将低功率、小信号的电流或电压放大为高功率、大信号的电流或电压,以驱动大功率负载。功率放大器在现代电子技术中具有广泛的应用,其主要作用可以从以下几个方面进行介绍
2023-08-10 15:06:161064 但是,并不是所有的金属都是顺磁性的。有些金属在外加磁场时,会表现出与外场反向的磁化现象,这就是抗磁性。抗磁性的原理是,当外加磁场时,金属内部的自由电子会受到洛伦兹力的作用,产生一个涡旋电流,这个电流会产生一个与外场反向的磁场,从而使得整个金属表现出与外场反向的磁化现象。
2023-08-07 16:10:02316 降压芯片在现代电子设备中起着至关重要的作用。80V降压芯片、48V降压5V电源芯片和48V降压3.3V电源芯片AH7550分别适用于不同的输入电压范围和输出电压需求。无论是工业控制、通信设备还是家用电器,这些芯片都能够提*稳定可靠的电源输出,为各种电子设备的正常运行提*了有力支持。
2023-08-04 09:18:22949 滤波器电路图是一种用于电子设备中的重要电路元件。它的作用是滤除信号中的杂波或噪声,从而提供更清晰和稳定的信号输出。对于工程师和技术人员来说,了解如何查看滤波器电路图是至关重要的。
2023-07-27 10:12:07494 总线控制在计算机和电子系统中起着重要的作用,它管理和协调了各个设备和组件之间的数据传输和通信,保证了系统的正常运行和效率。通过总线控制,各个设备可以共享总线资源并进行协同操作,实现数据传输和协议的正确性和可靠性。
2023-07-24 15:32:345459 驱动轮的“滑转”还会导致横向附着系数大幅下降,从而使驱动轮出现横向滑动,随之产生汽车在行驶过程中的方向失控现象。为控制驱动轮的滑转,诞生的ASR
2023-07-18 12:42:16837 射频芯片封装是将原始射频芯片封装在外壳中,以保护芯片免受外界环境的影响,并提供更好的电磁兼容性、热管理和机械保护。射频芯片封装在现代电子设备中起着至关重要的作用,广泛应用于通信、无线电、雷达和卫星系统等领域。
2023-07-04 15:49:38959 无源探头和有源探头是现代电子领域中使用广泛的两种不同类型的探头。它们在测量、控制和监测电子设备和电路中起着重要的作用。尽管它们都被用于电子设备的测试和分析,但无源探头和有源探头之间存在着一些显著的区别。
2023-07-04 10:33:211336 摘要:随着集成电路向高密度、高功率和小体积的方向不断发展,如何快速导出电子元器件产生的热量已成为研究的热点。环氧树脂质轻、绝缘、耐腐蚀且易于加工,在电子封装领域起着重要作用,但本征极低的热导率限制
2023-06-29 10:14:46599 这就是大多数传感器的工作方式。传感器通常进行深奥的电气测量(电容、阻抗、电流、电压)。但是通过一个复杂的系统结构,一个感兴趣的物理事件(加速度、压力、脚步声、距离)来改变这种测量。了解了系统结构后,我们可以将变化解释为物理参数,同时假设传感系统中的其他一切都保持不变或至少得到良好控制。
2023-06-28 11:34:15293 电子在电场E的作用下,在飞向基片过程中与氩原子发生碰撞,使其电离产生出Ar正离子和新的电子;新电子飞向基片,Ar离子在电场作用下加速飞向阴极靶,并以高能量轰击靶表面,使靶材发生溅射。
2023-06-27 10:08:555833 光电液位传感器是一种利用光电原理进行液位检测的传感器,其优点和应用如下:
优点:
精度高:光电液位传感器具有高精度的检测能力,能够精确测量液体的水平高度,误差小于0.5%。
反应速度快:光电液位
2023-06-26 13:59:50
BGA返修设备在高端电子产品制造中具有重要作用,这一点毋庸置疑。它们可以帮助电子制造商在短时间内提高产品质量,并减少生产成本。本文将详细分析BGA返修设备在高端电子产品制造中的重要作用,包括: 1.
2023-06-15 13:50:39247 可靠的液位检测方案有没有,大家做过哪种?检测液位深度和液面位置。
2023-06-15 07:25:52
龙头的作用,例如通信工程、测控技术、空间科学等比比皆是。而信号发生器在电子技术中发挥着重要的作用。所谓信号发生器就是不需要外部电路输入信号,自身能够产生某种信号的电路。许多电子电器中用到了各种形式的信号发
2023-06-13 17:24:390 印刷电路板(Printed Circuit Board,简称PCB)和集成电路(Integrated Circuit,简称IC)是电子产品中的两个基本组成部分,它们都在电子设备中发挥着关键作用。然而,尽管它们都与电子电路有关,但它们之间存在着显著的差异。本文将深入探讨PCB和IC之间的区别。
2023-06-07 16:25:34909 DC电源模块是一种电源转换器件,作用是将输入电源的直流电压转换为稳定的输出直流电压,以供电子器件使用。DC电源模块主要作用是将交流电源转换为直流电源,为电子设备提供稳定的直流电源。它可以在各种电子设备和电路中,如通信设备、工业控制、计算机硬件等应用。
2023-05-26 10:30:301477 电池供电设备中,AH53XX稳压芯片能够有效地将电池输出的电压转换为稳定的3.3V输出,使其能够供电给各种芯片或模块,实现多种功能。例如,通过将该芯片应用于烟-雾传感器中,可以及时检测到烟-雾,并发
2023-05-18 16:01:10
等领域。它可以用于电源和过滤电路中,以提供较高的电压和电流承受能力。此外,在各种电子设备中,如工业自动化控制系统和敏感传感器等应用场景中也可以使用高压厚膜贴片电阻。
特性Features
2023-05-16 16:50:29
PPM-T127H平膜压力变送器采用不锈钢隔离膜片的压力芯体,配合高性能智能运算补偿电路制作而成。激光焊接技术保证不锈钢壳体与基座无缝连接,适用于粘稠易堵浆体、固液混合的流体压力测量,防结垢,防堵塞
2023-05-09 14:29:45
超声波技术是传感器技术中的一种重要应用,而超声波式液位传感器则是应用最为广泛的类型之一。超声波式液位传感器作为一种可靠的测量仪器,在日常生活和各行各业的应用中发挥着越来越重要的作用。下面将从技术
2023-05-05 15:19:42
线性稳压器是广泛应用于电子电路中的一种电源管理器件,其作用主要是将不稳定的直流电源(输入)转换为稳定的输出电压,并且输出电压与负载电流几乎无关。线性稳压器能够提供相对稳定、纹波较小的电源电压给电路中的各个组件使用,从而保证了电子设备、家用电器、计算机等的正常运行。
2023-04-23 09:13:112026 浅谈电子三防漆对PCB板的作用有哪些?
2023-04-14 14:36:27
随着现代城市化进程的不断加快,洒水车在城市保洁和园林绿化等方面发挥着不可替代的作用。而洒水车中的水箱液位监测是保证其正常工作的重要因素之一。然而,传统的机械式液位传感器存在着精度低、易损坏、不易维护
2023-04-14 14:02:32
在现实世界中,电子电路所处的周围环境总是变幻莫测的。人体静电、雷击浪涌、误操作等诸多不可预料的因素时刻威胁着电子设备的正常工作。因此保护电路的作用与意义非常重要。经过多年的发展,保护电路从最简单
2023-04-12 11:17:252428 PCB干膜和湿膜具体指什么?两者之间的区别在哪里?与正片和负片有什么关系?
2023-04-06 15:58:39
PCB制作中干膜和湿膜可能会带来哪些品质不良的问题?以及问题如何解决呢?
2023-04-06 15:51:01
21世纪,随着科技的发展,出现大量电子产品,人们开始过上了有电子产品的生活。电子产品的出现既能帮助我们提高工作效率又能提高生活幸福指数。电子产品由不同的电子元器件组成,每个电子元器件都起到重要作用。电子元器件中有三大被动元件:电感、电阻、电容。
2023-03-31 09:56:01401 大佬们好,分享一下我用鲁班猫做ros主控,stm32f407做底层驱动的一个ros小车。
目的是识别烟雾并净化:净化是用的负离子发生器(效果如文章顶部视频,净化还是很顶的),外加扇叶将其扩散出去。同时也具有环境气体浓度(质量)检测的功能。
b站链接:
https://www.bilibili.com/video/BV1hh4y1n7Fz/?vd_source=4fa660ff7e4423139e6ebdbd4dece6c7
这是我去年12月底开始做的,入坑鲁班猫算是比较早了。在读大三学生。正奥里给考研中。。。
最底下还塞了一块vet6和一块esp32.
板子上加了个风扇,为了散热快。
鲁班猫1s做ROS主控用于ros建图(gmapping)和导航,同时接入NPU做抽烟监测,模型是yolov5自己训练的模型转化成rknn部署在板子上。
功能部分即功能层的stm32与串口屏、esp32通信部分。功能层的主要目的是获取传感器数据和通过继电器控制小车前端的负离子发生器和两个加快负离子扩散的风扇。这里的stm32相当于一个中转,用的是rt—thread实时操作系统,版本是4.0.2(写的比较早,当时的rtt还有小bug,现在已经很好用了。)
开启三个串口:一个用于读取传感器,一个用于接收和发送指令给串口屏,一个用于给esp32传输数据,通过esp32将数据发送到巴法云平台,做接入小程序中转。
篇幅有限,代码放在了网盘上。
链接:https://pan.baidu.com/s/1ltgypPMq9heezk412r4IKw?pwd=jhzs
提取码:jhzs
因为用的是rtt,移植性很高,故只写了应用层的main.c函数。如下:
气体传感器如下(所用的是串口协议)
#include <rtthread.h>
/ *串口1用来调试* /
#define DBG_TAG \"main\"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
#include <string.h>
#include <serial.h>//此处有坑,要改头文件路径为rt-thread/components/drivers/include/drivers
#include <stdio.h>
#include \"stdlib.h\"
#defineleft_motor_run{rt_pin_write(6,PIN_LOW );rt_pin_write(7,PIN_HIGH);}
#defineleft_motor_back{rt_pin_write(6,PIN_HIGH );rt_pin_write(7,PIN_LOW);}
#definestoping{rt_pin_write(6,PIN_HIGH );rt_pin_write(7,PIN_HIGH);rt_pin_write(16,PIN_HIGH );rt_pin_write(17,PIN_HIGH);}
#defineright_motor_run{rt_pin_write(16,PIN_LOW );rt_pin_write(17,PIN_HIGH);}
#defineright_motor_back{rt_pin_write(16,PIN_HIGH );rt_pin_write(17,PIN_LOW);}
#define key1_openrt_pin_write(51,PIN_LOW );//d3
#define key1_closert_pin_write(51,PIN_HIGH );
#define key2_openrt_pin_write(52,PIN_LOW );//d4
#define key2_closert_pin_write(52,PIN_HIGH );
#define key3_openrt_pin_write(53,PIN_LOW );//d5
#define key3_closert_pin_write(53,PIN_HIGH );
/*micropython esp32与rtt串口DMA传输数据时有坑,
* 需在drv_usart.c找到HAL_UART_RxCpltCallback和HAL_UART_RxHalfCpltCallback将dma_isr(&uart->serial)注释掉,
* 能降低数据错误率*/
/ *串口2的变量 115200* /
struct serial_configureuar2_configs = RT_SERIAL_CONFIG_DEFAULT;
rt_sem_t sem2;
rt_device_t uar2_dev;
rt_thread_t uar_2_th;
rt_thread_t uar_2_deal;
char buffer[128] = {0};
rt_size_t rxlen2 = 0;
/ *串口3的变量 9600* /
struct serial_configureuar3_configs = MY_SERIAL_CONFIG_DEFAULT;
rt_sem_t sem3;
rt_device_t uar3_dev;
rt_thread_t uar_3_th;
uint8_t buffer3[17] = {0};
rt_size_t rxlen3 = 0;
/ *串口4的变量 115200* /
struct serial_configureuar4_configs = RT_SERIAL_CONFIG_DEFAULT;
rt_sem_t sem4;
rt_device_t uar4_dev;
rt_thread_t uar_4_th;
rt_uint8_t buffer4[256] = {0xff};
rt_size_t rxlen4 = 0;
//char deal;
rt_uint8_t deal ;
char wheater[8];
char humidity[4];
char temperature[4];
char wind_speed[4];
char shi[3];
char miao[3];
char fen[3];
char wheater_deal[23]=\"main2.g3.txt=\"\";
char humidity_deal[18]=\"main2.g1.txt=\"\";
char temperature_deal[17]=\"main2.g0.txt=\"\";
char wind_speed_deal[19]=\"main2.g2.txt=\"\";
char shi_deal[15] = \"main.z1.val=\";
char miao_deal[15] = \"main.z0.val=\";
char fen_deal[15] = \"main.z2.val=\";
char end[2]=\"\"\";
char xf_end[3];//串口屏控制帧尾
void uar2_thread_entry(void *parameter)//串口2DMA线程入口
{
rt_size_t len = 0;
/*发送ch2o数据*/
rt_device_write(uar4_dev,0,ch2o_date,sizeof(ch2o_date));
rt_device_write(uar4_dev,0 ,xf_end,sizeof(xf_end));
/*end*/
/*发送tvoc数据*/
rt_device_write(uar4_dev,0 ,tvoc_date,sizeof(tvoc_date));
rt_device_write(uar4_dev,0 ,xf_end,sizeof(xf_end));
/*end*/
/*发送pm2.5数据*/
rt_device_write(uar4_dev,0 ,pm2_5_date,sizeof(pm2_5_date));
rt_device_write(uar4_dev,0 ,xf_end,sizeof(xf_end));
/*end*/
/*发送pm10数据*/
rt_device_write(uar4_dev,0 ,pm10_date,sizeof(pm10_date));
rt_device_write(uar4_dev,0 ,xf_end,sizeof(xf_end));
/*end*/
/*发送temp数据*/rt_device_write(uar4_dev,0,temp_date,sizeof(temp_date));
rt_device_write(uar4_dev,0 ,xf_end,sizeof(xf_end));
/*end*/
/*发送humi数据*/
rt_device_write(uar4_dev,0,humi_date,sizeof(humi_date));
rt_device_write(uar4_dev,0 ,xf_end,sizeof(xf_end));
/*end*/
memset(buffer4, 0, sizeof buffer4);
// }
}
}
rt_err_t uar3_rxback(rt_device_t dev, rt_size_t size)//串口3接收//回调函数9600
{
rxlen3 = size;
rt_sem_release(sem3);
return RT_EOK;
}
void uar4_thread_entry(void *parameter)//串口4DMA线程入口
{
rt_size_t len = 0;
while(1)
{
rt_sem_take(sem4, RT_WAITING_FOREVER);
len = rt_device_read(uar4_dev, 0, buffer4, rxlen4);
buffer4[len] = \'\\\\0\';
rt_kprintf(\"%c\\\\n\",len);
if (buffer4[0] == 0x02) {
deal=0x02;
rt_device_write(uar2_dev,0 ,&deal,16);
rt_kprintf(\"uart4\");
deal=0;
}
if (buffer4[0] == 0x01) {
deal=0x01;
rt_device_write(uar2_dev,0 ,&deal,16);
rt_kprintf(\"uart4\");
deal=0;
}
if (buffer4[0] == 0x03) {
deal=0x03;
//memset(buffer,0,sizeof(buffer));
rt_device_write(uar2_dev,0 ,&deal,16);
rt_kprintf(\"uart4\");
deal=0;
}
switch(buffer4[0])
{
case 0x44: key1_open;break;
case 0x55: key1_close;break;
case 0x66: key2_open;break;
case 0x77: key2_close;break;
case 0x88: key3_open;break;
case 0x99: key3_close;break;
}
}
}
rt_err_t uar4_rxback(rt_device_t dev, rt_size_t size)//串口4接收回调函数
{
rxlen4 = size;
rt_sem_release(sem4);
return RT_EOK;
}
void clearmachine_and_motor_pin_init()
{
rt_pin_mode(6,PIN_MODE_OUTPUT );//a6
rt_pin_mode(7,PIN_MODE_OUTPUT );//a7
rt_pin_mode(16,PIN_MODE_OUTPUT );//b0
rt_pin_mode(17,PIN_MODE_OUTPUT );//b1
rt_pin_mode(28, PIN_MODE_INPUT);//b12 left
rt_pin_mode(29,PIN_MODE_INPUT);//b13right
rt_pin_mode(51,PIN_MODE_OUTPUT );//d3
rt_pin_mode(52,PIN_MODE_OUTPUT );//d4
rt_pin_mode(53,PIN_MODE_OUTPUT );//d5
key1_close;
key2_close;
key3_close;
}
int main(void)
{
clearmachine_and_motor_pin_init();//引脚初始化
/*串口2 DMA初始化*/
uar2_dev = rt_device_find(\"uart2\");
if (uar2_dev == NULL) {
LOG_E(\"rt_device_find[uart2] FAILED...\\\\\\\\\\\\\\\\n\");
return -EINVAL;
}
rt_device_open(uar2_dev, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_DMA_RX);
rt_device_control(uar2_dev, RT_DEVICE_CTRL_CONFIG, (void *)&uar2_configs);
rt_device_set_rx_indicate(uar2_dev, uar2_rxback);
uar_2_th = rt_thread_create(\"uar2_rx_thread\", uar2_thread_entry, NULL, 4096, 10, 5);
rt_thread_startup(uar_2_th);
sem2 = rt_sem_create(\"sem2\", 1, RT_IPC_FLAG_FIFO);
if(sem2 == RT_NULL){
LOG_E(\"sem2 rt_sem_create failed...\\\\\\\\\\\\\\\\n\");
return -ENOMEM;
}
LOG_D(\"sem2 rt_sem_create successed...\\\\\\\\\\\\\\\\n\");
/*串口2 DMA初始化结束*/
//uar_2_deal = rt_thread_create(\"uar2_deal\", uar2_deal_entry, NULL, 512, 13, 5);
//rt_thread_startup(uar_2_deal);
/*串口3 DMA初始化9600*/
uar3_dev = rt_device_find(\"uart3\");
if (uar3_dev == NULL) {
LOG_E(\"rt_device_find[uart3] FAILED...\\\\\\\\\\\\\\\\n\");
return -EINVAL;
}
rt_device_open(uar3_dev, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_DMA_RX);
rt_device_control(uar3_dev, RT_DEVICE_CTRL_CONFIG, (void *)&uar3_configs);
rt_device_set_rx_indicate(uar3_dev, uar3_rxback);
uar_3_th = rt_thread_create(\"uar3_rx_thread\", uar3_thread_entry, NULL, 4096, 12, 5);
rt_thread_startup(uar_3_th);
sem3 = rt_sem_create(\"sem3\", 1, RT_IPC_FLAG_FIFO);
if(sem3 == RT_NULL){
LOG_E(\"sem3 rt_sem_create failed...\\\\\\\\\\\\\\\\n\");
return -ENOMEM;
}
LOG_D(\"sem3 rt_sem_create successed...\\\\\\\\\\\\\\\\n\");
/*串口3 DMA初始化结束*/
/*串口4 DMA初始化*/
uar4_dev = rt_device_find(\"uart4\");
if (uar4_dev == NULL) {
LOG_E(\"rt_device_find[uart4] FAILED...\\\\\\\\\\\\\\\\n\");
return -EINVAL;
}
rt_device_open(uar4_dev, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_DMA_RX);
rt_device_control(uar4_dev, RT_DEVICE_CTRL_CONFIG, (void *)&uar4_configs);
rt_device_set_rx_indicate(uar4_dev, uar4_rxback);
uar_4_th = rt_thread_create(\"uar4_rx_thread\", uar4_thread_entry, NULL, 4096, 11, 5);
rt_thread_startup(uar_4_th);
sem4 = rt_sem_create(\"sem4\", 4, RT_IPC_FLAG_FIFO);
if(sem4 == RT_NULL){
LOG_E(\"sem4 rt_sem_create failed...\\\\\\\\\\\\\\\\n\");
return -ENOMEM;
}
LOG_D(\"sem4 rt_sem_create successed...\\\\\\\\\\\\\\\\n\");
/*串口4 DMA初始化结束*/
return RT_EOK;
}
最后是串口屏显示,同时数据也能在微信小程序上查看
接下来是鲁班猫1s做ros主控的部分。
1、移植轮趣大佬的ros源码:
根据我现有的硬件:思岚a1雷达、一个usb rgb摄像头选择合适的功能包,然后开始移植。
中途会出现很多错误。例如缺少部分功能包,sudo apt install ros-noetic-(包名)【我的ros版本是noetic】。
2、移植完毕后发现大佬们并没有使用鲁班猫上的npu。所以我尝试了用npu跑yolov5在debain10的环境下用python接口效果如下:
Python与c++接口将图片监测改成实时摄像头的代码:
只需更改cv.Capture()函数的摄像头设备号即可。
链接:https://pan.baidu.com/s/1gauOezF-X8ZuvU4b0I4v4A?pwd=jhzs
提取码:jhzs
Python接口的yolov7只需更改yolov5代码的锚点即可
以下只列出主函数部分,完整的在链接里。
import urllib
import time
import sys
import numpy as np
import cv2
from rknnlite.api import RKNNLite
#from PIL import Image
RKNN_MODEL = \'mask.rknn\'
IMG_PATH = \'./test.jpg\'
OBJ_THRESH = 0.25
NMS_THRESH = 0.45
IMG_SIZE = 640
......(省略中间部分)
if __name__ == \'__main__\':
# Create RKNN object
rknn = RKNNLite()
# init runtime environment
print(\'--> Load RKNN model\')
ret = rknn.load_rknn(RKNN_MODEL)
#ret = rknn.init_runtime(target=\'rv1126\', device_id=\'256fca8144d3b5af\')
if ret != 0:
print(\'Load RKNN model failed\')
exit(ret)
print(\'done\')
ret = rknn.init_runtime()
if ret != 0:
print(\'Init runtime environment failed!\')
exit(ret)
print(\'done\')
capture = cv2.VideoCapture(9)
ref, frame = capture.read()
if not ref:
raise ValueError(\"error reading\")
fps = 0.0
while(True):
t1 = time.time()
#
ref, frame = capture.read()
if not ref:
break
# BGRtoRGB
frame = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)
#############
img = frame
img, ratio, (dw, dh) = letterbox(img, new_shape=(IMG_SIZE, IMG_SIZE))
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# Inference
print(\'--> Running model\')
outputs = rknn.inference(inputs=[img])
input0_data = outputs[0]
input1_data = outputs[1]
input2_data = outputs[2]
input0_data = input0_data.reshape([3, -1]+list(input0_data.shape[-2:]))
input1_data = input1_data.reshape([3, -1]+list(input1_data.shape[-2:]))
input2_data = input2_data.reshape([3, -1]+list(input2_data.shape[-2:]))
input_data = list()
input_data.append(np.transpose(input0_data, (2, 3, 0, 1)))
input_data.append(np.transpose(input1_data, (2, 3, 0, 1)))
input_data.append(np.transpose(input2_data, (2, 3, 0, 1)))
boxes, classes, scores = yolov5_post_process(input_data)
img_1 = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
#img_1 = img_1[:,:,::-1]
if boxes is not None:
draw(img_1, boxes, scores, classes)
fps= ( fps + (1./(time.time()-t1)) ) / 2
print(\"fps= %.2f\"%(fps))
#img_1 = cv2.putText(frame, \"fps= %.2f\"%(fps), (0, 40), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
cv2.imshow(\"video\",img_1[:,:,::-1])
c= cv2.waitKey(1) & 0xff
if c==27:
capture.release()
break
print(\"Video Detection Done!\")
capture.release()
cv2.destroyAllWindows()
但这还没有接到ros中,为此我去翻rknn的github找到了接入ros的方法。
Ros功能包如下:
Launch文件:
Yolov5.launch
<param name=\"model_file\" value=\"yolov5s-640-640.rknn\"/>
<param name=\"display_output\" value=\"$(arg display_output)\"/>
<param name=\"prob_threshold\" value=\"0.35\"/>
<param name=\"chip_type\" value=\"$(arg chip_type)\"/>
<remap from=\"/camera/image_raw\" to=\"$(arg camera_topic)\"/>
Camrea.Launch
<param name=\"video_device\" value=\"/dev/$(arg device)\" />
<param name=\"image_width\" value=\"640\" />
<param name=\"image_height\" value=\"480\" />
<param name=\"framerate\" value=\"30\" />
<param name=\"pixel_format\" value=\"yuyv\" />
<param name=\"camera_frame_id\" value=\"usn_cam\" />
<param name=\"io_method\" value=\"mmap\"/>
<param name=\"camera_name\" value=\"usn_cam\"/>
启动摄像头
默认的摄像头设备号为video0 鲁班猫为video9
1、roslaunch rknn_ros camera.launch
2、roslaunch rknn_ros camera.launch device:=video9(可传参或者改launch)
3、roslaunch rknn_ros yolov5.launch chip_type:=RK3566
链接:
链接:https://pan.baidu.com/s/1QhfRjDs1sftAB0Q-TS5dBA?pwd=jhzs
提取码:jhzs
不出意外改好板子型号和对应的video就能用了。
可打开rviz或者rqt_image_view查看。
模型是我自己训练的,链接如下:
链接:https://pan.baidu.com/s/1FSJyW6kp4cy3-yakTq_Q4g?pwd=jhzs
提取码:jhzs
YOLOV5配置和使用:
官方的源码是不建议的:
用这个:
https://gitcode.net/mirrors/airockchip/yolov5?utm_source=csdn_github_accelerator
这是瑞芯微官方推荐的源码,但是也需要更改。
yolov5-master\\\\models下的yolo.py
找到
def forward(self, x):
函数,更改为:
def forward(self, x):
z = []# inference output
for i in range(self.nl):
if os.getenv(\'RKNN_model_hack\', \'0\') != \'0\':
z.append(torch.sigmoid(self.m[i](x[i])))
continue
x[i] = self.m[i](x[i])# conv
\'\'\'
bs, _, ny, nx = x[i].shape# x(bs,255,20,20) to x(bs,3,20,20,85)
x[i] = x[i].view(bs, self.na, self.no, ny, nx).permute(0, 1, 3, 4, 2).contiguous()
if not self.training:# inference
if self.onnx_dynamic or self.grid[i].shape[2:4] != x[i].shape[2:4]:
self.grid[i], self.anchor_grid[i] = self._make_grid(nx, ny, i)
y = x[i].sigmoid()
if self.inplace:
y[..., 0:2] = (y[..., 0:2] * 2 + self.grid[i]) * self.stride[i]# xy
y[..., 2:4] = (y[..., 2:4] * 2) ** 2 * self.anchor_grid[i]# wh
else:# for YOLOv5 on AWS Inferentia https://github.com/ultralytics/yolov5/pull/2953
xy, wh, conf = y.split((2, 2, self.nc + 1), 4)# y.tensor_split((2, 4, 5), 4)# torch 1.8.0
xy = (xy * 2 + self.grid[i]) * self.stride[i]# xy
wh = (wh * 2) ** 2 * self.anchor_grid[i]# wh
y = torch.cat((xy, wh, conf), 4)
z.append(y.view(bs, -1, self.no))
if os.getenv(\'RKNN_model_hack\', \'0\') != \'0\':
return z
return x if self.training else (torch.cat(z, 1),) if self.export else (torch.cat(z, 1), x)
\'\'\'
return x[0],x[1],x[2]
这样就可以在pt权重转onnx时去掉最后一个Detect层。
pt转onnx指令
python export.py --weights yolov5s.pt --img 640 --batch 1 --opset 11 --include onnx
红色字体部分换成要转换的权重文件例如我的就是:
**python export.py --weights ** **weights/best.pt ** --img 640 --batch 1 --opset 11 --include onnx
opset选择11。
这样出来的模型是有三个节点的模型,才是可用的。
可用netron查看:
netron:https://netron.app/(浏览器网址)
将模型拖到页面可查看。
有三个输出节点。
且要记好三个节点的名字。
在官方要求的ubuntu pc端上进行模型转换。
我这里有个改好的yolov5源码(里面是我训练的抽烟监测模型)
网盘链接如下:
链接:https://pan.baidu.com/s/1fXKNoXhu4m1SmTr4fc-afg?pwd=jhzs
提取码:jhzs
Chatgpt部分是b站机器人阿杰github开源项目。
https://www.bilibili.com/video/BV12M4y1R76M/?spm_id_from=333.788
效果如图:
呜。。。不要看问得什么
整车的sw模型链接:soildwork2020及以上版本可直接打开
链接:https://pan.baidu.com/s/1KqB1SOD418dCvyDaZFMgpg?pwd=jhzs
提取码:jhzs当时还理想化的撸了个履带,可后来发现打印出来根本用不了,故放弃,换成了轮子。
放链接是希望能够帮到像我一样步步踩坑的菜鸟级选手。我是老踩坑怪了。
有不当的地方,还望大佬们海涵。
2023-03-24 20:05:14
评论
查看更多