电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>智能血压计(SBPM)开源分享

智能血压计(SBPM)开源分享

2022-11-07 | zip | 0.79 MB | 次下载 | 5积分

资料介绍

描述

背景

在开始之前先解释一下这个项目是如何产生的很重要。当我申请免费硬件时,我并没有过多考虑这个想法。那时我已经向三个不同的比赛提交了六个好的项目,赢得了零奖。我也在等待我提交了两个项目的最新竞赛的结果。因此,我对Advanced Wearables竞赛的想法与我刚刚建立的一样,即智能血压计 (SBPM)。

尽管我尽最大努力被拒绝,Nordic Semiconductor还是好心地给了我一个免费的硬件包。当我收到我的硬件时,我非常兴奋,因为我会学到很多新东西;但是,我不会再构建另一个 SBPM。

“为什么不是 SBPM?”,您可能会问。实际上有几个原因:

  • 我不喜欢 Makers 不断重做他们相同的旧项目而几乎没有改进。
  • 老实说,我认为低功耗蓝牙 (BLE) 不会为 SBPM 实施增加太多价值。
  • 在查看了为免费硬件提交的想法后,我发现了几个 SBPM。所以,现在我确定我不会建造什么。
  • 最后但并非最不重要的一点是,我想我有一个更好的主意

除了竞赛规则外,我们还将在这个项目中承诺额外的标准。首先,nRF5340DK 不会被简单的智能手机应用程序替代。此外,nRF5340DK 不会在功能上变得多余;就像在另一个 MCU 上使用它一样。

介绍

当我在 Google 中建立 AVR-IoT WG: Out for Blood Pressure Monitoring 时,它本来是要成为 The Silent Killer(高血压或高血压)的杀手。这个项目将是The Silent Killer的杀手锏。

 
 

你看,不是事后检查血压,我们需要一种从一开始就防止高血压发生的设备。SBPM是一种测量读数装置;我们将建造一个设备,以促进更上游的预防措施。

根据梅奥诊所

运动是降低高血压的无药物方法

记住那个无毒的东西,它会再次出现。国家医学图书馆补充说:

定期跑步会降低 RBP

帮助我在 14 年后戒烟并降低血压和心率的一件事就是开始跑步。为了跑得更多,我使用了几种方法来减少恢复时间,直到我的教练推荐了一种称为 TENS 或经皮神经电刺激的无药物(见?告诉你!)方法。

poYBAGNkg-eAaLY2AAGZV0zJukI333.png
快速又便宜
 

今日医学新闻报道

TENS 装置的工作原理是通过带有粘性垫的电极传递小的电脉冲,将它们附着在人的皮肤上。这些电脉冲充斥着神经系统,降低了其将疼痛信号传输到脊髓和大脑的能力。同样的电脉冲也刺激身体产生称为内啡肽的天然止痛药。

顺便说一句,我想象中的法律团队建议我给出以下免责声明:

此处所做的声明尚未经过食品和药物管理局的评估。产品不用于诊断、治疗、治愈或预防任何疾病。

我不是医生,我什至从来没有在电视上玩过。我还应该提到,与现实的任何相似之处纯属巧合。

我们都放弃了,让我们开始吧。

比赛计划

该项目的主要目的不仅是控制 TENS 单元,还记录用于进一步分析的设置,以确定哪种电脉冲模式最适合每块肌肉。正如彼得·德鲁克曾经说过的:

如果你不能衡量它,你就无法改进它。

与我之前的项目不同,我们不会使用 UART 与 TENS 单元进行通信我们将使用 GPIO 来模拟按钮按下。每 10 秒 nRF5340DK 会将当前设置发送到 nRF52840 加密狗,后者将通过 UART 将信息中继到 WeMos D1 Mini。最后,信息将通过 Wi-Fi 发送到 Google 表格。

nRF5340DK + Adafruit 2.8" TFT Touch Shield for Arduino w/Capacitive Touch Display

pYYBAGNkg-qAf1oLAALWE98zx9Q962.png
 

该节目的明星是 nRF5340DK,它已使用随 nRF Connect SDK 安装提供的 Segger Embedded Studio (SES) 进行编程显示器很好地安装在板上,但为了让它工作,我们必须应用补丁更多详情请参阅 Hung Bui 的网络研讨会

一旦我们确定ncs-display-ble-example工作,我们可以修改它以适应我们的项目。我们可以在这个项目中保留LED Button Service (LBS)代码,但我们需要Nordic UART Service (NUS)通过 BLE 发送文本。

将 nRF5340DK 插入计算机将使其显示为驱动器我们可以在该驱动器上拖动N-TENS.hex来加载我们的代码。我们还可以按照几个简单的步骤从 GitHub 中的源代码构建项目。首先,我们需要以下结构来重新创建这个项目:

poYBAGNkg-2AUGXAAABnTmRPKbQ677.png
 

文件和文件夹捆绑在N-TENS.zip中接下来,打开工具链管理器。

poYBAGNkg_OAZJI2AABtsplPrCE145.png
 

文件 > 打开 nRF Connect SDK 项目...

poYBAGNkg_WABoDpAACv7ALi0sU381.png
 

选择项目和董事会名称。

pYYBAGNkg_iAZExcAADrqF0TcwY131.png
 

按住 Ctrl 按钮,然后按下并释放 T,然后按下并释放 F5。

pYYBAGNkg_uABkjoAACdHGYOtjA147.png
 

我们的项目现在已加载到 nRF5340DK 上。

poYBAGNkg_2ALAHoAAD222eWrGE524.png
 

pYYBAGNkhAKAQymvAALjM33L8uk359.png
 

我们最终使用的装置有 10 个速度等级、10 个功率等级和 8 种模式。所有这些以及仅通过 4 个按钮控制的开/关功能。该单元还有一个 15 分钟会话的倒数计时器。

pYYBAGNkhAWAEpLJAABXkaYPzzA846.png
让我们取消那个东西的保修
 

我们使用了引脚 P0.28、P0.29、P0.30 和 P0.31,因为它们已经配置为输出 (LED):

C:\ncs\v1.5.0\zephyr\boards\arm\nrf5340dk_nrf5340\nrf5340_cpuapp_common.dts

在同一个文件中,我们还使用 P0.09(按钮 4)通过 2N2222A 晶体管将信号发送到蜂鸣器进行放大。这样做是为了在触摸屏幕时向用户提供声音反馈。

 

我们将使用专用滑块来独立控制速度和功率级别,而不是共享功能按钮。您可能已经注意到,滑块是北欧标志和阴阳融合的抽象。显示尺寸为 320 X 240,我们必须规划滑块、按钮和文本的位置。

poYBAGNkhAiAIcGQAAF4tkJgSOg430.png
你知道当我必须拿出铅笔和计算器时会很好
 

左滑块将始终控制速度级别,而右滑块将始终控制功率级别。因此,用户不必跟踪 TENS 单元显示屏上未显示的 S/P 按钮。至于模式按钮,我们注意到 8 种模式中的大多数都有相同的节奏。无论如何,即使描述相同,我们也给每种模式一个独特的字母,以防它们对肌肉的影响不同。可以通过按下两个滑块之间的按钮来更改模式。就是这样,两个滑块,一个按钮,顶部的文本显示广告名称和 BLE 连接状态,底部的文本显示设备运行了多长时间。

等待 TENS 设备启动时显示北欧标志
 

喜欢这个案子?在将其设为蓝色后从以前的项目升级

右侧的小窗口仅用于演示验证。最终产品应该只有具有所有控制和信息的触摸屏。

nRF52840 加密狗

根据比赛规则:

nRF52840 Dongle 是捆绑中包含的补充设备,不需要在项目中使用。

话虽如此,我非常感谢Nordic Semiconductor将它包含在捆绑包中。我开始使用 SES 并使用 nRF Connect Programmer 编写生成的 HEX 文件,然后我切换到 CircuitPython我知道它运行起来有点慢,但开发和加载速度更快。

我也知道这是 Cobra 而不是 Python,但那家伙看起来像我
 

rdagger68有一个很棒的视频,让我们开始在 nRF52840 加密狗上使用 CircuitPython。在他开始编写代码之前,该教程中的一切都很顺利。我花了一段时间才弄清楚这一点,但 CircuitPython 相对年轻(8 岁以上),过去几年几乎没有什么变化。例如,您会看到我必须在代码中为 UART 使用“adafruit_ble.services.nordic”,而不是“adafruit_ble.uart”。尽管如此,我们在 nRF52840 Dongle 上使用 CircuitPython 比在任何其他板上都更成功。

pYYBAGNkhBKAE0JjAABRQ25HOe0390.png
采用倾斜帽檐修身。
 

由于 nRF52840 Dongle 提供了选择引脚的灵活性,我在一侧焊接了 8 个相邻引脚,仅包括 VBUS 和 GND(P0.02 和 VDD OUT 未连接)。

pYYBAGNkhBWAMHaqAAD_TTb2jaw119.png
艺术家演绎
 

用 Mu 编写代码非常简单。但是,我们并不真正需要它。我们可以使用任何推荐的文本编辑器并将文件保存为 code.py 在CIRCUITPY Drive上

pYYBAGNkhBiAa_ylAAFg_bCg5Ik636.png
 

请注意,CircuitPython 会不断在板上查找更新的代码文件以运行。有四个选项:code.txt、code.py、main.txt 和 main.py。CircuitPython 按顺序查找这些文件,然后运行它找到的第一个文件。

pYYBAGNkhBuAeGL4AACV1thCjGA821.png
 

正如您在上面的屏幕截图中看到的那样,code.py 并不是唯一需要在 nRF52840 加密狗上复制的文件。CIRCUITPY.zip包含需要复制的所有文件和文件夹。

WeMos D1 Mini & OLED 显示屏

pYYBAGNkhB-AdyYiAANmvdcp-NI907.png
 

什么是方形的,蓝色的,闻起来像超级胶水?

poYBAGNkhCGAL-4DAABEj0IEF7A813.png
相信我,这是最详细的角度
 

如果您猜到了牙线盒中的 WeMos D1 Mini 和 OLED 显示屏,那么您是对的。否则,您可以再试一次。

 
 
 
pYYBAGNkhCSAep3hAAAkVHYCSMU740.jpg
 
1 / 3
 

它们之间没有直接连接,但它们都连接到 nRF52840 Dongle。我们必须使它们可分离,因为 WeMos D1 Mini 在闪烁时不喜欢 Tx 和 Rx 引脚上的任何东西。说到 WeMos D1 Mini,我们使用 Arduino IDE 来利用最好的 Wi-Fi 库之一 WiFiManager

为简单起见,WeMos D1 Mini 将连接到 Wi-Fi,然后等待来自 nRF52840 加密狗的呼叫。完成后,WeMos D1 Mini 将进入一个循环,通过 Wi-Fi 发送从 nRF52840 Dongle 接收到的任何 UART 数据。

pYYBAGNkhCeAEmtrAAFEryNWLbA278.png
 

OLED 灯没有为显示屏打开开口,而是穿过牙线盒一侧,使设置看起来更优雅。

 

谷歌表格

pYYBAGNkhCuAZtgPAAODB0DmM-4861.png
 

我们创建了 Google Sheet 来保存我们的数据并记下

poYBAGNkhC6AJtfrAADj7VDQwks651.png
 

我们在 Google Apps 脚本中使用了相同的

poYBAGNkhDGABD8vAAHaKyXoZLE653.png
 

来自 nRF5340DK 的数据将保存在第一列,而第二列保存时间戳。

poYBAGNkhDaAGqsHAAVElG7GpcQ985.png
 

第一列中的每个单元格将包含 8 个字母数字字符。前三个数字是以秒为单位的经过时间,接下来的两个是速度级别,唯一的字母是模式,最后两个数字是功率级别。

pYYBAGNkhDiASqvxAABa4HdW7OU771.png
 

如果速度级别、模式和功率级别与之前的单元格相同,则新记录将被删除,这意味着我们将仅保留包含新设置值的记录。为了表示会话结束,最后一条记录将始终为 900,即 15 分钟内的秒数。

有一个应用程序

pYYBAGNkhDuAVmA4AAB6Ar9mBME058.png
 

Google Apps 脚本期待带有有效负载 {"report":"PlaceHolder"} 的 HTTPS 发布,无论它来自 nRF52840 Dongle + WeMos D1 Mini 还是应用程序都没有关系。

poYBAGNkhD-AIMWDAAEIaUkpdnM564.png
 

nRF5340DK 的主要功能不能用应用程序代替,因为它正在控制 TENS 单元并发送数据。另一方面,我们可以将 nRF52840 Dongle + WeMos D1 Mini 替换为任何具有 BLE 和 Wi-Fi 功能的智能设备上的应用程序。最简单的方法是使用MIT App Inventor ,它已在我之前的一个项目中介绍过

pYYBAGNkhEKAehXWAAGh1SzsdJ0685.png
创建简单的 BLE Wi-Fi 网关所需的块
 

请注意,应用程序使用名称而不是 MAC(松散耦合)连接到 N-TENS。

 

保持真实

pYYBAGNkhEWAPMb2AADGbVb7dYA842.png
 

在制作这个项目的过程中,我们确实面临着问题、机遇、挑战和宝贵的学习经验。与 Wally 不同的是,我们必须克服它们。值得庆幸的是,没有一个与 nRF5340DK 相关,因为它非常强大。第一个原因是另一个更昂贵的 TENS 单元,也有 4 个按钮,但没有显示。与 nRF5340DK 不同,TENS 单元没有短路保护。第二个因果关系是一个与我们最终在这里使用的类似的 TENS 单位。

pYYBAGNkhEiACxIUAAJGjxRNylg023.png
 

只要 nRF5340DK 继续前进,就无法停止挑战极限并尝试新事物。我渴望有一天能像Torbjørn Øvrebekk那样编写代码。在那之前,我会以这样的项目为契机,向我们展示我们大多数人不会只是从床上爬起来,拼凑一些软件和硬件来构建一个项目。

结论

我希望你和我在构建这个项目时一样开心。这是功能强大的 nRF5340DK 的成功简单实施。开发板和 nRF Connect SDK 并不难使用,大部分项目工作都需要在外部完成。我通常为收到的每个硬件构建多个项目,但由于时间限制,我只用 nRF5340DK 构建了一个大项目。尽管如此,我还是学到了很多关于 BLE、Zephyr、CircuitPython 和其他有用技术的知识。

演示

这是获得 BONUS 所需的一分钟演示视频 - 15 分:

 

 


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费