菜单 English Ukrainian 俄语 主页

面向爱好者和专业人士的免费技术图书馆 免费技术库


无线电电子与电气工程百科全书
免费图书馆 / 无线电电子和电气设备方案

USB 服药时间报警器。 无线电电子电气工程百科全书

免费技术库

无线电电子与电气工程百科全书 / 医药

文章评论 文章评论

被迫定期服药的老年人往往难以维持自己的治疗方案。 但有时不仅是健康,而且生命本身也取决于医生指示的及时执行。 解决问题除了通常的组织方法外,还可以使用技术手段。 其中包括建议的警报,它根据输入的时间表每天发送信号,提醒您需要服药。

许多老年人在使用现代软件产品时遇到困难,这是可以理解的。 至于报警器,大多数实际上是有些现代化的闹钟,即使使用两三种药物也无法按时工作,而且从人体工程学角度来看,不适合老年人使用。

作者开发的信号装置的总体视图,该装置有32个独立通道(根据药物的细胞数量),每个通道可以配置每天最多发出1个提醒信号(总共XNUMX个信号),如图所示XNUMX. 要输入或调整用药计划,该设备通过 USB 连接到启动特殊程序的计算机。 加载时间表后,闹钟会自主工作。

药物定时器 USB
米。 1. 信号装置的一般视图

警报器的硬件和软件部分的设计都考虑到了老年人(包括视力受损的人)的使用情况。 该设备的操作极其简单,并且该程序使用的算法和接口解决方案显着提高了易用性。 此外,报警器的设计中还考虑了电气安全措施。

该报警器由约 230 V 网络供电,如果发生电源故障,它会自动切换到内置可充电电池供电。 网络消耗功率不超过5W,800mAh容量电池续航时间可达三天。 即使在长期停电的情况下,也能保证日程的安全。

报警电路如图所示。 2、其工作原理很简单:单片机程序每秒将当前时间的值与指定的信号时间进行比较。 如果匹配,设备会发出声音信号,该信号是多种旋律中的一种,可以随意选择,并打开与药物相对应的单元格的指示灯。 同时,发送该信号的时间也转移到第二天。 要关闭声音和灯光信号,只需按确认按钮SB1即可。

药物定时器 USB
米。 2、信号装置电路(点击放大)

报警设备中使用的微控制器 ATmega8A-PU (DD1) 能够在低至 2,7 V 的电源电压下运行。 12 MHz 的微控制器时钟频率由 ZQ1 石英谐振器设置。 声音报警单元组装在UMS8-08(DD2)音乐合成器的微电路上。 微控制器通过向合成器芯片的 S 输入发送高电平来打开音频信号。 信号持续响起,直到按下 SB1 按钮。 声源是压电发射器 HA1。 音量由可变电阻R16控制。 在播放期间按 SB2 按钮可对旋律进行排序。 有关 UMS 系列微电路的更多详细信息请参见 [1]。

该报警装置具有 5 V 稳定电压变压器源(图中未显示),根据传统电路组装在集成稳定器 7805 上。如果供电网络中出现电压损失,该装置会切换到电源来自 GB1 电池。 其消耗的平均电流不超过5mA。 如果网络中有电压,则通过VD5、VD6、R18电路对电池持续充电。 不过,建议每月将其关闭一次,并执行完整的放电至 3 V 电压并使用外部充电器充电的循环。

UMS8-08音乐合成器的微电路可以替换为UMS7和UMS8系列的微电路。 它们仅在旋律上有所不同。 如果电阻R3102的阻值减小到3102kOhm,则可以用KT3102G、KT547E或进口BC315以及KT315B或KT17G来代替KT51B晶体管。 KD522A、KD521B、KD521A、522N1 及类似二极管可以代替 KD4148B 二极管。 所有固定电阻均为C2-33N或MLT。 C3和C6采用氧化电容器——K50-83、K50-16或进口。 其余电容为陶瓷K10-73-1b、K10-17v。 任何 LED 都适合安装在直径为 5 毫米且具有所需发光颜色的外壳中。 在笔者的版本中,安装了一个绿色LED作为HL1,以免徒劳打扰患者,其余均为红色。 连接器 XS1 - USB-BF 插座。

GB1电池由三节80号镍氢电池组成,容量为18mAh。 您可以使用其他容量的电池,但建议选择电阻器R3,其阻值应使电池放电至0,1V电压时的初始充电电流在数值上等于其标称容量的XNUMX。

信号装置安装在尺寸为 70x50 mm、穿孔间距为 2,54 mm 的标准穿孔安装板上。 安装方式——铰接式,采用热熔胶固定。 由于电路简单,没有使用印刷线路。 该设备的所有元件(HL2-HL9 LED 除外)均放置在尺寸为 67x80x80 mm 的 IP40 塑料电气接线盒中。

XS1 连接器位于一块小型印刷电路板上;在其对面,在盒壁上切出一个适当尺寸的孔。 元件HA1、HL1、GB1、R16、SB1用热胶固定在盒盖上。 与操作控制无关的按钮SB2位于电路板上。 在图中。 图 3 显示了配电箱内电路板和远程元件的相对位置。

药物定时器 USB
米。 3、接线盒内电路板与遥控元件的相对位置

药品被放置在一个典型的无线电部件盒中,该盒由八个带抽屉的单元组成。 每个单元的尺寸为 112x55x120 毫米。 盒式磁带支架的整体尺寸为 224x110x120 毫米。 由于储存室不是密闭的,但空间很大,因此药物应存放在原包装中。 盒座还提供避光保护,这对于储存某些类型的药物是必要的。 在单元的前面板上,设有用于放置药片的凹槽,并带有药物名称。

接线盒用M3螺钉和螺母固定在盒体左侧壁上。 LED HL2-HL9 一个接一个地位于每个单元的前面板上,并通过软线连接到设备,软线铺设在单元内的 PVC 管中,并捆绑在盒的背面。 连接 LED 的每对电线的长度余量必须确保电池自由延伸至完全打开状态的 75 ... 80%。

本文附带的 USB_HID_ Note.hex 文件应加载到微控制器的程序存储器中。 微控制器的配置必须与表中所示的配置相对应。 1. 正确组装的设备不需要调整。 可以通过选择电阻器 R5-R10 在 7 ... 15 mA 范围内改变 LED 电流来设置所需的 LED 亮度。

表1

出院 Состояние
科普 0
CKSEL [3:0] 1111
SUT [1:0] 10
博登 1
西德 1
RSTDISBL 1

从 USB 规范的角度来看,该设备属于 HID 类 [2],其 USB 接口的软件实现基于著名的 AVR V-USB 驱动程序 [3]。 让我提醒您,在这种情况下,需要将接口切换到低速 USB 1.1 模式,根据规范,这是通过在 D- 和 V 接口线之间连接一个电阻来完成的总线 (在本例中,这是电阻器 R4)。

使用一种标准选项,通过二极管 VD1 和 VD2 将微控制器与其降压电源连接。 尽管存在电池,但仍需要使用这些二极管,因为它消除了电池电压对 USB 总线和微控制器逻辑电平协调的影响。

微控制器以 12 MHz 的时钟速度运行,这是 V-USB 允许的时钟速度之一。 其程序是在AVR Studio 4开发环境下用C语言编写的,程序文本(文件main.c)包含详细的注释。 使用了 vusb-20100715 驱动程序版本 [4] 和 WinAVR-20100110 编译器 [5]。

V-USB 库有详细的文档记录,因此这里仅考虑与项目实施直接相关或与其功能相关的点。 [6] 详细描述了基于 V-USB 库创建程序的分步过程。

在AVR Studio中创建程序时需要注意的要点:

- V-USB 存档的 usbdrv 文件夹中的所有文件必须复制到项目文件夹中;

- 文件 usbdrv.c、usbdrvasm.S、oddebug.c 应添加到 AVR Studio 项目中(通过项目树中的上下文菜单项“添加现有源文件...”);

- 在项目设置(项目 → 配置选项 → 常规 → 频率,Hz)中,微控制器的时钟频率必须设置为 12000000 Hz。 根据该值,AVR Studio 将为编译器确定 V-USB 使用的 F_CPU 常量。

所需的 V-USB 配置包含在 usbconfig.h 文件中,该文件也必须位于项目文件夹中。 标准配置文件应替换为本文所附的配置文件。 在表中。 2 列出了该文件中定义的最重要的常量。 自由开发USB HID设备的能力与重要的一点有关——它必须根据V-USB库中的USB-IDs-for-free.txt文档使用VID/PID标识符对[3]。

表2

不变 内容
USB CFG IOPORTNAME D 总线连接端口
USB CFG DMINUS 位 4 D-线连接的端口的位
USBCFGDPLUSBIT 2 D+线所连接端口的位(必须连接到INTO中断输入)
USB CFG 接口类 3(隐藏) 设备类
USB CFG 最大总线功率 100 USB 总线的最大电流消耗。 嘛
USB CFG HID 报告描述符长度 22 * HID 报告描述符长度
USB CFG 供应商 ID 氧化碳,0x16 设备制造商 ID
USB CFG 设备 ID 0xDF, 05xXNUMX 产品编号

*) 该值必须等于程序中 PROGMEM usbHidReportDescriptor 字符数组的大小。

程序采用UNIX时间格式,时间值为从UTC 00/00/00 01.01.1970:XNUMX:XNUMX开始经过的秒数,闹钟不直观地显示时间,避免了电路和算法不必要的复杂化其运作。 pdata 变量用于传输时间戳 - 四字节 UNIX 时间值。

每天发送的最大信号数在程序中由常量 NUM_ CALLS 指定。 为了存储时间值,使用大小为 NUM_CALLS+1 的数组 u_time。 在这种情况下,数组元素 u_time[NUM_CALLS] 包含当前时间,其余部分 - 发送信号的时间。 每个通道(药品盒的单元)分配有四个阵列元素。 例如,第一个单元包含从 u_time[0] 到 u_time[3] 的元素,第二个单元包含从 u_time[4] 到 u_time[7] 等。如果数组元素的值为零,则考虑相应的信号不活跃。 这种方法使我们能够简化传输和处理信息的算法。

描述包结构的描述符以及信息传输过程usbFunctionWrite和usbFunctionRead是基于标准解决方案创建的。 [3] 中的 usbdrv.h 头文件详细描述了基本功能。 该程序还补充了检查已处理通道数量的条件。 设备从计算机接收到的数组元素数量比发送的数组元素数量多 XNUMX,因为计算机始终传输当前时间以进行同步。

在 main() 程序开始时,配置 I/O 寄存器,将时钟分频因子设置为 256,并向定时器寄存器 TCNT1 加载形成 1 s 时间间隔所需的数字。 默认情况下,定时器溢出中断被禁用。

之后,程序进入主循环。 如果没有 USB 连接,则将启用全局中断和定时器 1 溢出中断。在 for 循环中,将检查 u_time[i] 数组中非零值的每个元素是否等于当前时间。 如果找到匹配,相应单元的声音信号和LED将打开,并且该通道的响应时间将增加86400秒(每天)。

然后检查 PB0 输入的电平。 如果为低电平(按下SB1按钮确认信号接收),所有输出将被设置为低逻辑电平,这将关闭信号。

与此同时,每当定时器 1 溢出时,就会启动中断处理程序 TIMER1_OVF_vect。 它恢复 TCNT1 计数器的预设,增加 u_time[NUM_CALLS] 数组元素中的当前时间值,并更改 PB1 输出的状态(与其连接的 HL1 LED 以 2 秒的周期闪烁)。

当设备连接到USB时,PC5输入从USB总线的Vbus线接收高电平。 在这种情况下,if (PINC & (1<<5)) 条件会禁用定时器 1 溢出中断并激活 V-USB 驱动程序。 HL1 LED 亮起并持续亮起。

激活V-USB驱动程序后,就可以通过USB交换信息。 usbPoll() 函数在循环中被调用,在没有信息交换的情况下保持接口处于活动状态。 有关计算机程序的文章部分更详细地描述了信息传输过程。

让我们继续考虑将时间表输入 USB_HID_Note 信号设备的计算机程序。 从其主窗口(图4)可以看出,在开发过程中特别注意优化界面,以确保老用户的易用性。 该程序在Windows XP、Windows Vista、Windows 7、Windows 8、Windows Server 2003、Windows Server 2008下运行。其在Windows 10和Windows Server 2012下的性能尚未经过测试,但有理由假设它会正常工作。

药物定时器 USB
米。 4. 将时间表输入信号装置的计算机程序的主窗口

将报警设备连接到计算机后启动程序后,按屏幕按钮 “堵塞”。 将显示一条消息,指示连接尝试的结果。 如果成功,屏幕上的按钮将变为可用。 “阅读全部”和 “节省”。

要输入时间表,只需从第一个下拉列表(选择器)中选择单元编号,并从第二个列表中选择该单元的信号编号即可。 然后设置所需的信号时间,单击数字左侧的复选框以启用或禁用选定的单元格和信号组合(标志的颜色发生变化),并在唯一可用的行中写入药物名称。 药物的名称与单元格编号相关联,因此该行的内容仅在切换第一个选择器时发生变化。 启用标志指的是所选的单元和信号编号的组合。

因此请填写所有必要的单元格。 单元格的默认状态是禁用的;无需将它们全部激活。 如有必要,可以更改单元格设置。 输入的值会动态保存。

通过按下屏幕按钮 时间表被传输到信令设备并写入配置文件。 传输结果上将显示一条消息。 按下屏幕按钮即可读取检测器中存储的时间表 。 此后,您可以在程序窗口中查看它,必要时进行编辑,然后将其加载回报警设备中。 按屏幕上的按钮 擦除相应窗口中的药物名称,以便有机会写下另一个药物名称。

闹钟的一个重要功能是,当连接到 USB 时,它会停止当前计时器。 计算机程序关闭时,日程表和当前时间会自动记录在警报中(同步)。 因此,关闭程序后,应尽快断开USB线与报警设备的连接,以尽量减少真实时间与“系统”时间之间的差异。

然而,在这种情况下,即使是几分钟的差异也并不重要,因此尚未采取任何措施来消除此功能。 如果在完成 USB_HID_Note 程序后,信号设备意外地长时间保持与计算机的连接,则只需再次启动该程序即可,按屏幕按钮 然后 就在那里 或者直接关闭程序。 闹钟的正确计时将会恢复,之后即可断开 USB 电缆。

药品名称存储在程序配置文件中,并在连接信号装置时显示在计算机屏幕上。 在将时间表输入程序的同时,应注意确保盒式磁带支架的每个单元都配有带有适当铭文的标签。

USB_HID_Note程序是在Qt 5.3.2编程环境中用C++编写的。 选择该环境是因为它的免费性质、跨平台、广泛的功能和用于创建和调试任何级别的应用程序的独特内置工具,以及接口解决方案的灵活性。 应用程序实现类型是Qt Widget。 小部件的源文本是文件 widget.cpp。 整个项目被编译到 USB_HID_Note_ pro.zip 存档中,并附在本文中。

该程序的一个特殊功能是直接访问SetupAPI 和HID 库的功能。 因此,编译所在的计算机必须具有与其操作系统版本对应的setupapi.lib和hid.lib文件。 这些文件通常包含在 WinDDK 包中。 为了避免需要完整安装整个WinDDK软件包,作者将WinDDK 7600开始的各个版本的文件收集到一个文件夹winddk_libs中,该文件夹可以在编辑部的FTP服务器上找到。 可以在Windows 16385.1、Windows Server 7 R2008、Windows Vista SP2、Windows Server 1 SP2003、Windows XP SP1或更高版本下进行编译和调试。 .pro 文件必须明确指示库的完整路径,例如,如表中所示。 3.

表3

药物定时器 USB

该程序的已编译可执行文件以及配置 (.cfg) 和样式 (.qss) 文件位于本文随附的 USB_HID_Note 文件夹中。 必要的 Qt 动态库(.dll 文件)也位于此处。 如您所知,对于任何使用 Qt 开发的应用程序来说,此要求都是强制性的。 表中给出了所考虑案例的这些库的列表。 4.

表4

药物定时器 USB

所有库都是从 ..ToolsQtCreator in 文件夹中复制的,最后两个库除外,它们是从 ..5.3mingw482_32pluginsplatforms 复制的,并放置在程序工作文件夹的相应子文件夹中。 您还可以自己将它们从编译程序的计算机复制到程序的工作或系统文件夹(存档大小 - 126 MB,解压后 - 400 MB)。

该程序算法基于[7]中给出的标准解决方案。 实现的特点首先与不同编程语言的使用相关(与源代码 Delphi 和 C# 中描述的语言相反)。 要使用 HID API 和 SetupAPI 函数,必须分别包含头文件 hidsdi.h 和 setupapi.h。

屏幕按钮单击处理程序是 on_Connect Button_clicked() 过程。 首先,驱动程序函数 HidD_GetHidGuid 确定与 HID 关联的 GUID。 然后调用SetupAPI 函数来创建接口枚举器并获取设备的HID 名称。 这在第 7 页的 [333] 中有详细描述。 XNUMX. 在本案中,故意不使用确定产品名称或其序列号的功能。 仅检查 VID/PID 对。 这样做是为了避免该设备用于商业用途的可能性。 VID/PID值由global_vars.h文件中的Dev_VID_PID常量指定。

一旦检测到设备,控制权就会转移回 HID 驱动程序。 CreateFile 函数请求其句柄,HidD_GetPreparsedData 返回一个指向包含设备参数信息的缓冲区的指针,HidP_GetCaps 返回一个包含这些参数值的结构。

与常用的在程序中直接分配报告大小的方法不同,这里它的值由从描述符获取的 Caps.FeatureReportByteLength 结构的元素确定。 这允许您创建一个更通用的解决方案,当设备描述符中的报告大小发生变化时,不需要更改程序并重新编译它。

实际的信息交换是使用 HidD_Get Feature(读)和 HidD_SetFeature(写)函数进行的,根据单元数量在相应的过程 data_read() 和 data_transfer() 中调用。 正如已经指出的,信令装置接收到的阵列元素的数量比发送的阵列元素的数量多XNUMX,因为为了同步,计算机总是传输当前时间。

程序文本中提供了描述最重要程序目的的详细注释。 其余过程的目的要么是标准的,要么是直观的,例如,on_comboBox_currentIndexChanged() - 用于组合框索引更改事件的处理程序。 注释掉的 qDebug 行及其同伴仅用于调试程序。 如果您需要在内置的 Qt 调试器窗口中进行调试并查看信息交换的进度,则所有这些指令都应该取消注释。

该程序将常规配置存储在settings.cfg 文件中。 它采用常规文本格式,如有必要可以手动编辑。 它的 [General] 部分包含单元格数量 NUM_BOX=8 和每个单元格的信号数量 NUM_BOX_CALL=4,在 [view] 部分中,程序窗口在屏幕上的位置以整数指定。 [names] 部分包含按细胞划分的药物名称,[used] 部分 - 细胞活动标志,[times] 部分 - UNIX 时间戳格式的响应时间值。 后者本质上主要是信息性的,因为操作值位于检测器微控制器的存储器中。 手动编辑文件时,请注意名称参数为C/C++/Java源代码格式(例如u3256)。

最后,为那些想要独立更改设备发送的信号数量的人提供一些建议。 如果细胞数量固定,则改变每个细胞的信号数量相对容易。 在微控制器程序中,为此首先需要更改 NUM_CALLS 常量。 其值应等于单元数与每个单元的最大信号数的乘积。 在本文考虑的情况下,它等于8x4=32。 其次,在 switch...case... 过程中,每行中 case 语句的数量必须等于每个单元格的信号数量。 在这种情况下,case 语句的参数必须形成从 0 到 NUM_CALLS-1 的连续序列。 函数体和break语句保持不变。 然后必须保存并重新编译该程序。

计算机程序无需调整。 只需更改 settings.cfg 文件中的 NUM_BOX_CALL 常量(每个单元格的信号数量)的值即可。 它必须严格对应于微控制器程序中包含的内容。

微控制器和计算机的程序可以从 ftp://ftp.radio.ru/pub/2017/01/signal.zip 下载。

文学

  1. Drinevsky V.,Sirotkina G. UMS 系列音乐合成器。 - 广播,1998 年,第 10 期,第 85 页XNUMX.
  2. 通用串行总线。 HID 信息。 - URL:usb.org/developers/hidpage/。
  3. V USB。 - 网址:obdev.at/products/vusb/index.html。
  4. 驱动程序存档 vusb-20100715。 - 网址:obdev.at/downloads/vusb/vusb-20100715.tar.gz。
  5. 编译器 WinAVR-20100110。 - URL:sourceforge.net/projects/winavr/files/WinAVR/20100110/WinAVR-201 0 0110-install.exe/download。
  6. 用于 AVR 的 USB。 第 2 部分。V-USB 上的 HID 类。 - 网址:we.easyelectronics.ru/electro-and-pc/usb-dlyaavr-chast-2-hid-class-na-v-usb.html。
  7. Agurov P. USB 编程实践。 - 圣彼得堡:“BHV-彼得堡”,2006 年。

作者:D. Pankratiev

查看其他文章 部分 医药.

读和写 有帮助 对这篇文章的评论.

<< 返回

科技、新电子最新动态:

控制和操纵光信号的新方法 05.05.2024

现代科学技术发展迅速,每天都有新的方法和技术出现,为我们在各个领域开辟了新的前景。其中一项创新是德国科学家开发了一种控制光信号的新方法,这可能会导致光子学领域取得重大进展。最近的研究使德国科学家能够在熔融石英波导内创建可调谐波片。这种方法基于液晶层的使用,可以有效地改变通过波导的光的偏振。这一技术突破为开发能够处理大量数据的紧凑高效光子器件开辟了新的前景。新方法提供的偏振电光控制可以为新型集成光子器件提供基础。这为以下人员提供了绝佳的机会: ... >>

Primium Seneca 键盘 05.05.2024

键盘是我们日常计算机工作中不可或缺的一部分。然而,用户面临的主要问题之一是噪音,尤其是对于高端型号。但随着 Norbauer & Co 推出的新型 Seneca 键盘,这种情况可能会改变。 Seneca 不仅仅是一个键盘,它是五年开发工作的成果,创造了理想的设备。这款键盘的每个方面,从声学特性到机械特性,都经过仔细考虑和平衡。 Seneca 的主要特点之一是其静音稳定器,它解决了许多键盘常见的噪音问题。此外,键盘支持各种键宽,方便任何用户使用。尽管 Seneca 尚未上市,但预计将于夏末发布。 Norbauer & Co 的 Seneca 代表了键盘设计的新标准。她 ... >>

世界最高天文台落成 04.05.2024

探索太空及其奥秘是一项吸引世界各地天文学家关注的任务。在高山的新鲜空气中,远离城市的光污染,恒星和行星更加清晰地揭示它们的秘密。随着世界最高天文台——东京大学阿塔卡马天文台的落成,天文学史上翻开了新的一页。阿塔卡马天文台位于海拔5640米,为天文学家研究太空开辟了新的机遇。该地点已成为地面望远镜的最高位置,为研究人员提供了研究宇宙中红外波的独特工具。虽然海拔高,天空更晴朗,大气干扰也更少,但在高山上建设天文台却面临着巨大的困难和挑战。然而,尽管困难重重,新天文台为天文学家开辟了广阔的研究前景。 ... >>

来自档案馆的随机新闻

抗氧化剂可降低复发性心脏病发作和中风的风险 12.09.2018

俄勒冈大学的科学家们开发了一种新方法来降低继发性心脏病发作或中风的风险。

老鼠的心脏病发作导致炎症细胞和血小板很容易粘附在全身动脉的内壁上——尤其是在有斑块的地方。 结果,血栓形成,导致新的心脏病发作或中风。

事实证明,用强大的抗氧化剂夹竹桃苷治疗患有心脏病或中风的小鼠可以将斑块形成减少一半,并将体内炎症降低到第一次发作之前的水平。

研究人员使用他们开发的一种独特形式的超声成像来观察血管内部的分子,从而检测到粘性细胞和血小板。

其他有趣的新闻:

▪ 网站了解访问者的感受

▪ 声流定位创建完美信号

▪ 无排放飞机

▪ PANASONIC VCR 的终结

▪ 去医院 - 不打领带

科技、新电子资讯

 

免费技术图书馆的有趣材料:

▪ 现场电气设备保护部分。 文章精选

▪ 文章 外面的人。 流行表达

▪ 文章 谁发明了球? 详细解答

▪ 文章可折叠工作台。 家庭作坊

▪ 关于树脂干燥剂(树脂)的干性油文章。 简单的食谱和技巧

▪ 文章 采用微控制器控制的电源,0-25 伏。 无线电电子电气工程百科全书

留下您对本文的评论:

Имя:


电子邮件(可选):


点评:





本页所有语言

主页 | 图书馆 | 用品 | 网站地图 | 网站评论

www.diagram.com.ua

www.diagram.com.ua
2000-2024