boringhex.top博客

非典型程序员的小破站

在Raspberry Pi上安装OpenCV

这是一个快速指南,展示了如何在 Raspberry Pi 板上安装 OpenCV(开放计算机视觉库)软件。我们在 Raspberry Pi OS 64 位上测试了此安装。OpenCV 是一个用于计算机视觉和机器学习的开源库,带有用于图像处理、视频分析和机器学习应用程序的工具和算法。

树莓派安装OpenCV

在 Raspberry Pi 上安装 OpenCV 的方法有很多种,您可以在虚拟环境中使用 pip 安装,使用 apt install 安装或从源代码编译软件。在本指南中,我们将展示如何使用pip在虚拟环境中安装OpenCV:

先决条件

在继续之前:

  • 你需要一个 Raspberry Pi 板。
  • 您应该有一个运行 Raspberry Pi OS(32 位或 64 位)的 Raspberry Pi。
  • 您应该能够与 Raspberry Pi 建立 SSH 连接。

在 Raspberry Pi 上使用 pip 在虚拟环境中安装 OpenCV

建立SSH连接后,更新和升级软件包:

1
sudo apt update && sudo apt upgrade -y
阅读全文 »

Altium Designer 如何使用数据库类型元器件库

用过OrCAD的工程师都对它的CIS津津乐道,Orcad的CIS功能是指Orcad Capture CIS(Component Information System)模块,它是Orcad电路设计软件套件中的一个重要组成部分。CIS功能提供了一个集成的组件信息系统,用于管理电子元件的相关信息和属性。

以下是对Orcad CIS功能的简要介绍:

  1. 组件信息管理:CIS功能允许用户创建和管理电子元件的详细信息,包括元件型号、制造商、供应商、封装类型、参数等。这些信息可以与元件符号和PCB封装关联,方便在设计过程中查找和选择元件。
  2. 元件库管理:CIS功能提供了一个集成的元件库管理系统,用于组织和管理元件库。用户可以创建自定义的元件库,并将元件信息和属性存储在库中,以便在不同的设计项目中重复使用。
  3. 供应链集成:CIS功能可以与供应商和供应链系统集成,以获取元件的实时供应商和库存信息。这有助于设计过程中进行元件选择和采购决策,提高效率和准确性。
  4. BOM生成:CIS功能可以生成与设计相关的BOM(Bill of Materials)报表。BOM报表列出了设计中使用的所有元件及其相关信息,如型号、制造商、封装等。这有助于制造和采购部门准确地识别和采购所需的元件。
  5. 项目管理:CIS功能允许用户在设计项目中管理和跟踪元件的使用情况。用户可以查看元件在不同设计中的使用情况,以及元件的可用性和替代选项。

通过Orcad的CIS功能,设计人员可以更好地管理和利用电子元件的相关信息,提高设计的效率和准确性。它使得元件的选择、采购和替代变得更加简便和可靠,同时也提供了对供应链的集成和元件库的管理,使整个设计流程更加顺畅和可控。

其实Altium Designer也有类似的功能,就是数据库类型元器件库,并且也是很早就支持了。现在的新版本还支持云数据库,可以在云端管理元器件信息。

但是自建元器件信息库依然是最靠谱的,可以避免很多问题。

今天就来介绍一下如何使用Altium Designer的数据库类型元器件库。

阅读全文 »

Altium Designer中如何修改默认字体

Altium Designer软件安装后,原理图和PCB设计中的文本通常默认是Times New Roman。这是一种Windows系统安全字体,在很早之前的Windows系统中就已经默认安装了这个字体。这种字体对打印也比较友好,是一种很常见的印刷体。

但是这种字体对于习惯了程序员字体的开发者来说,可能不太友好。因为这种字体在显示时,不太容易区分字母l和数字1,字母O和数字0等。还有更要命的是,它不是等宽字体!所以,有必要将Altium Designer的默认字体修改为我们习惯的字体。

修改原理图符号库中的默认字体

下面以原理图符号库中的字体为例,说明如何修改软件中的默认字体。

打开软件,通过Preferences设置默认字体。设置方法如下:

默认字体设置

阅读全文 »

Altium Designer中如何生成原理图符号缩略图和报告

最近在设计OpenECADLib这个项目时发现,如果能给原理图符号和PCB封装图形生成缩略图,在列表中展示,会更直观,方便协作者和用户当前仓库已经包含哪些原理图符号和PCB封装。而且,如果能生成符号和封装的报告,也会方便用户查看。

KiCad有开放api接口,搞起来应该比较容易。然后我就查了一下Altium Designer的手册,发现还真有这个功能,还找到了挺老的一个脚本,估计现在软件中这个功能也是基于这个脚本做的,比较老旧,但毕竟能用。

原理图符号缩略图和报告

绘制好原理图符号并检查无误后,使用Altium DesignerReport功能,生成原理图符号简略图和报告。报告中包含原理图符号的引脚定义,引脚功能,引脚电气特性等信息。将简略图和报告推送到远端仓库,然后提交pull request,等待审核。

方法和设置如下:

Report

阅读全文 »

Rust在嵌入式系统开发中的应用

引言

嵌入式系统开发是一项复杂而具有挑战性的任务。传统上,C和C++是嵌入式系统开发的主要语言选择,但随着Rust的引入,开发者们开始意识到Rust在嵌入式系统开发中的潜力。Rust是一种系统级编程语言,具有内存安全、并发性和高性能的特点。本文将介绍Rust在嵌入式系统开发中的应用,并探讨其优势和适用性。

Rust近几年的发展趋势

Rust语言自2010年诞生以来,迅速发展并获得了广泛的关注和应用。尤其在近几年,Rust语言在嵌入式开发领域的流行趋势更加明显。下面我们将介绍一些Rust近几年的发展趋势和在嵌入式开发领域的流行趋势。

增长的社区和生态系统

Rust语言的社区和生态系统在近几年得到了快速的发展。越来越多的开发者开始使用Rust语言,并贡献了大量的开源项目和库。这些项目和库丰富了Rust的功能和工具链,使得开发者能够更加便捷地进行嵌入式开发。

Rust的特点

在介绍Rust在嵌入式系统开发中的应用之前,我们先了解一下Rust的特点。

内存安全

Rust通过所有权和借用系统来保证内存安全。所有权系统确保了每块内存只有一个所有者,避免了数据竞争和空指针异常。借用系统则允许多个引用同时存在,但有严格的生命周期规则。这些特性使得Rust在嵌入式系统中具有更高的可靠性和安全性。

阅读全文 »

电流测量应用中的开尔文连接

“开尔文连接”(Kelvin connection)是一种电路连接方法,用于测量电阻或电压时减少导线电阻的影响。它通常用于精密测量和低电阻值的应用中。通过使用四根导线,将测量电压施加在被测电阻的两端,并将电流引入被测电阻的两端,可以最大限度地消除导线电阻的影响,从而提高测量的准确性。

在高精度电流测量应用中,开尔文连接可以用于测量电流采样电阻的输出。电流采样电阻的输出是一个与电流成正比的电压。在测量电流采样电阻的输出时,开尔文连接可以减少焊料电阻对测量结果的影响。焊料电阻在绝大多数应用中都是忽略不计的,以一个2512封装的电阻为例,经过回流焊后,两个焊盘的焊料电阻大约在0.15mΩ左右,对于15mΩ以上的电阻来说,焊料电阻不到1%,可以忽略不计。到时在高精度应用中,尤其是大电流高精度测量中,采样电阻的值可能会很小,比如1mΩ,这时焊料电阻就不能忽略不计了,这时就必须精心设计采样电阻的连接方式,甚至需要加入一些校准和补偿措施,才能保证测量结果的准确性。与此同时,我们可以看到很多厂商也为高精度电流采样开发了专用的电阻器,比如下面几种:

电流采样专用电阻

阅读全文 »

INA226数据表详解

简介

INA226是一种电流电压监测器,具有I2C或SMBUS兼容接口。该设备监测电流电压降和总线供电电压。可编程的校准值、转换时间和平均值,结合内部乘法器,使得直接读出电流(安培)和功率(瓦特)成为可能。INA226感知的电流是在公共模式总线电压上,该电压可以独立于供电电压在0V至36V之间变化。该设备从单一2.7V至5.5V的供电中工作,典型的供电电流为330μA。该设备在-40°C至125°C的工作温度范围内指定,并在I2C兼容接口上具有最多16个可编程地址。

特性

  • 感测0V至36V的总线电压
  • 高侧或低侧感知
  • 报告电流、电压和功率
  • 高精度:最大0.1%增益误差,最大10μV偏移
  • 可配置的平均选项
  • 16个可编程地址
  • 从2.7V至5.5V电源供电
  • 10引脚,DGS(VSSOP)封装

典型高侧或低侧电流监测应用

高/低侧监测应用

阅读全文 »

INA226电流/功率计模块使用方法

之前的文章简要介绍了开源INA226电流计模块的功能特点,本文将详细介绍INA226电流计模块的使用方法。

特性

  • 感测总线电压范围:0V - 36V
  • 高侧/低侧电流感测
  • 电压、电流、功率测量
  • 0.1% 增益误差
  • 10uV 偏移
  • 可配置测量平均值
  • 16个可配置I2C地址
  • 2.7V - 5.5V 电源供电
  • 2路电源轨,可选为负载电源,作为 CH347高速USB桥接模块 扩展时,为 3.3V5V
  • Alert指示灯
  • 非共地连接时,可选远端电压感测
  • 引脚兼容CH347模块,即插即用

硬件连接

原理图

阅读全文 »

GitHub Pages部署静态页面

GitHub Pages是GitHub提供的静态页面托管服务,可以用来托管个人博客、项目文档等静态页面。GitHub Pages支持Jekyll,可以使用Jekyll构建博客,也可以使用其他静态页面生成器。现在GitHub Pages也在公测通过工作流部署静态页面,可以通过GitHub Actions自动部署静态页面,这样页面构建工具就不再受约束,可以使用任何静态页面生成器。GitHub Pages还支持自定义域名,可以绑定自己的域名。我的个人博客目前是托管在腾讯云COS上,使用GitHub Actions自动部署,主要考虑是加快国内访问速度,现在都是在公众号上发布文章了,后期考虑把博客迁到GitHub Pages上。

今天先把被动收入组合的盈亏情况搞个页面出来,部署到GitHub Pages上,方便查看。

警告:GitHub Pages 站点可以在 Internet 上公开,即使该站点的存储库是私有的。 如果站点的存储库中有敏感数据,要在发布前删除数据。

如果不需要对站点的生成过程进行任何控制,则建议在将更改推送到特定分支时发布站点。 可以指定要用作发布源的分支和文件夹。 源分支可以是存储库中的任何分支,源文件夹可以是源分支上的存储库根目录 (/),也可以是源分支上的 /docs 文件夹。 将更改推送到源分支时,源文件夹中的更改将发布到 GitHub Pages 站点。

如果想使用 Jekyll 以外的生成过程,或者不想使用专用分支来保存已编译的静态文件,则建议编写 GitHub Actions 工作流来发布站点。 GitHub 为常见的发布方案提供入门工作流,以帮助编写工作流。

本文的静态页面比较简单,就选择特定分支部署的方式,其实直接使用main分支也可以,但为了跟代码有所区分,还有实践习惯,就新建一个gh-pages分支。

创建分支

在GitHub上创建一个分支,分支名是gh-pages,然后将分支切换到gh-pages。创建gh-pages后,GitHub会自动创建一个页面部署工作流,我们需要在仓库设置中选择是使用仓库根目录,还是使用/docs目录。我使用了根目录来进行部署。

仓库设置

阅读全文 »

生物电信号测量技术

引言

生物电信号是生物体内的电活动产生的电流或电压信号,它反映了生物体的生理状态和活动。生物电信号测量技术是一种用于记录和分析这些信号的方法,广泛应用于医学、生物学、神经科学等领域。本文将介绍几种常见的生物电信号测量技术,并讨论它们的原理、优缺点以及应用领域。

脑电图(Electroencephalogram,EEG)

脑电图是一种记录脑部电活动的技术,通过在头皮上放置电极,测量脑部神经元的电信号。脑电图可以用来研究大脑的功能活动、诊断脑部疾病以及监测睡眠状态。它具有高时间分辨率和较低成本的优点,但空间分辨率较低,只能测量到头表的电活动。

心电图(Electrocardiogram,ECG)

心电图是一种记录心脏电活动的技术,通过在胸部或四肢上放置电极,测量心脏肌肉的电信号。心电图可以用来评估心脏的健康状况、诊断心脏疾病以及监测心脏的节律。它具有高时间分辨率和较低成本的优点,但空间分辨率较低,只能测量到心脏的整体电活动。

肌电图(Electromyogram,EMG)

肌电图是一种记录肌肉电活动的技术,通过在肌肉上放置电极,测量肌肉的电信号。肌电图可以用来评估肌肉的功能状态、诊断肌肉疾病以及监测肌肉的活动。它具有高时间分辨率和较低成本的优点,但空间分辨率较低,只能测量到电极附近的肌肉电活动。

眼电图(Electrooculogram,EOG)

眼电图是一种记录眼部电活动的技术,通过在眼睛周围放置电极,测量眼睛的电信号。眼电图可以用来评估眼球运动的情况、诊断眼部疾病以及研究眼睛与大脑之间的关系。它具有高时间分辨率和较低成本的优点,但空间分辨率较低,只能测量到眼部附近的电活动。

血氧饱和度(Pulse oximetry)

血氧饱和度是一种测量血液中氧气含量的技术,通过在指尖或耳垂上放置传感器,测量血液中氧气的饱和度。血氧饱和度可以用来评估血液的供氧情况、诊断呼吸系统疾病以及监测患者的呼吸状态。它具有非侵入性、实时性和较低成本的优点,但只能测量到局部的血氧饱和度。

阅读全文 »
0%