嵌入式技术论坛
直播中

王鸿

8年用户 740经验值
擅长:电源/新能源 嵌入式技术 光电显示
私信 关注
[经验]

【TQi.MX6UL试用体验】医疗监护仪制作(二)软件

本帖最后由 超级开发板 于 2017-7-11 16:23 编辑

今天,我们来进行天嵌科技-TQi.MX6UL开发板制作[size=14.6666669845581px]医疗监护仪软件的过程
首先,软件分以下几个模块:

1.软件界面
2.算法代码
3.驱动代码
4.底层系统         

这几样东西从哪个东西做起,每个人想法都不一样,但共通的一点是,为了操作的方便,为了开发更加流畅,而且到最后每个环节都要做,先后顺序只是因人而异。      


  既然打算做一个产品了,那就把它做好,什么是好,从技术角度衡量,就是功能都有,测量准,软件合理且好用,而最直观反应上述指标的是定价的性价比以及销售的数量,我们一般先从容易销售考虑,有好的技术底蕴的产品固然重要,还有一点就是要让购买这一产品用着舒服,如果可以,还有考虑如何让用了这一产品的人显得更专业,这能提升他们的形象,让他们能获得更多的资金来购买更好地产品,如此一来良性循环。首先,此设备将采用高品质高性能的天嵌科技-TQi.MX6UL开发板,天嵌科技的产品在业界以高稳定性和高品质著称,使用了他们的产品等同于提供了优质的硬件保障,这样有内在了,还要有外在,显得更加专业,这时,我们需要为它加上一个与之相配合的产品外观及软件界面,产品外观和接线将在硬件帖子里讲,这儿先讲软件,既然是医用型设备,软件底层的稳定是必须要的,软件运行在稳定的天嵌科技-TQi.MX6UL开发板上,只要算法合理,它将是坚不可摧的,然后,我们考虑如何让用户更加舒适地使用这一仪器,人机交互界面尽量贴合用户的自然习惯,能配合用户做一些专业化动作,尽可能把电子设备能算好的东西都显示出来,减少用户大脑运算工作负担,同时,尽量使界面看上去更具专业化,彰显使用者的权威性,让使用者产生使用先进设备的愉悦感。

天嵌科技-TQi.MX6UL开发板的接口非常丰富,足够接入最高级别的测量方案, 2017-06-23 23-08-48-915.jpg



常规的测量方案接线如下:

[size=14.6666669845581px]五导:红左上 黄右上 白剑突 绿左下 黑右下
[size=14.6666669845581px]

[size=14.6666669845581px]具体:白线(RA):右锁骨中线与第2肋间之交点;黑线(LA):左锁骨中线与第2肋间之交点;红线(LL):左下腹;绿线(RL):右下腹;棕线(C):C1胸骨右缘第4肋间

另外,还有更复杂的:
sshot-215.jpg

当然,一般测测用前面那种普通的就够了,不过在软件设计时把复杂的也考虑进去,以后升级会方便些,一劳永逸,而且兼容性也会好很多,包括文件的保存格式和图形化输出方式等等。

先是软件的显示界面,尽量让软件能自动适配屏幕,也就是低一些分辨率的屏幕以及不同纵横比的屏幕也能显示它,还有就是一些常用参数能让普通人也能轻松看懂,同时还要显得专业,于是,参照以前版本的产品,得出以下软件界面,麻雀虽小,五脏俱全:
sshot-213.jpg

界面的左下角是主心电显示区,右侧中间是心率复合显示区,也能切换呼吸显示,右下角是外设显示区,默认为读取体温传感器,插入相应传感器后会自动识别,可改变为显示血氧含量、血氧等等,左上角是LOGO以及菜单,由于国人从左往右的读取习惯,而此设备采用了优秀的天嵌科技-TQi.MX6UL开发板作为主板,将LOGO在左上角挂出能彰显设备的优秀品质,让人心中产生一种靠谱和稳定的心理,第二排的设置中可以设置采样率、测算方法等,右上角的第一排为当前时间显示,第二排在开启监控功能时会显示监控时间。

然后就是从系统底层开始构建捕捉处理信号及显示的代码了,

首先,在linux环境下解压源码,

把接收器功放接着的口开起来,加入以下代码:
  1. pinctrl_uart1: uart1grp {
  2. fsl,pins = <
  3. MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
  4. MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
  5. >;
  6. };

如果插在其他口,就开其他的,因地制宜,捕捉过来再把算法映射到内部通讯输出,这儿定义到8102,算法代码贴这儿太长,本帖底下的附件中有弄好的固件,解压开来能看到这个,反编译一下把那文件直接提取出来用即可。


然后再把屏幕显示起来,
屏幕先把背光开起来,不然显示出来也很难看到内容,

背光是pwm的,
用下述代码先把pwm属性给配置起来:
  1. &pwm1 {
  2. pinctrl-names = "default";
  3. pinctrl-0 = <&pinctrl_pwm1>;
  4. status = "okay";
  5. };



然后,天嵌科技-TQi.MX6UL开发板的背光能支持很多级别,可以把这些功能都用起来:
  1. backlight {
  2. compatible = "pwm-backlight";
  3. pwms = <&pwm1 0 5000000>; // 使用的 pwm 和频率, 这儿的pwm1 和上面的 pwm1 相对应
  4. brightness-levels = <0 4 8 16 32 64 128 255>;// 支持的级数,从左往右0到7,0不亮,7最亮。
  5. default-brightness-level = <6>; // 默认亮度等于6( 6 就前述的 128 )
  6. status = "okay";
  7. };



其实还可以在交互UI中做个亮度调节设置

或者插个感光元件让它自动调节,天嵌科技-TQi.MX6UL开发板的接口很丰富,多插几个感光元件都足够,也可以把温湿度红外等这些都插上,那它的功能会超过所有同类产品。

配一下上面这个管脚
  1. pinctrl_pwm1: pwm1grp {
  2. fsl,pins = <
  3. MX6UL_PAD_GPIO1_IO08__PWM1_OUT 0x110b0
  4. >;
  5. };



然后就是在指定坐标显示前面界面中的内容了,不断刷新指定区域显示即可,这样直接编译出来试试效果先,没拖影就行了,其他显示区域容易刷没掉或弄成黑色条状的话可以试试把显存区域读出来再抄回来,或者读取在累加,


如果想更美观,可以做个开机画面,

比如这张图:
logo.png
放这个文件夹里:
sshot-217.jpg
然后开机时挂载一下即可

当这些都搞好后,源码工程文件保存一份,方便下次修改,如果下次不改了,又觉得源码占空间,删了即可,把编译好的文件留下即可。

以下是我编译好的固件,可以烧录到板子里试试,可以直接变成心电监护仪用哦,编译时没用混淆,变量跟代码串都是暴露在外面的,方便大家反编译与修改,大家可以改成你们想要的UI。
tqxdy103.part1.rar (19 MB)
(下载次数: 7, 2017-7-11 15:51 上传)
tqxdy103.part2.rar (9.3 MB)
(下载次数: 6, 2017-7-11 15:52 上传)


烧录方法: https://bbs.elecfans.com/jishu_1145849_1_1.html

如果您对医用软件感兴趣,推荐个不错的软件,以前国外的网站下过来的,只讲名称的话可能你们不好下载到,直接放上来方便大家学习研究之用吧,有linux跟windows版的,用天嵌科技-TQi.MX6UL开发板安装标准的linux可以跑linux版的,很早的软件,在今天看来对配置要求不高,运行起来很流畅。

surfice_linux.part1.rar (19 MB)
(下载次数: 53, 2017-7-11 16:14 上传)
surfice_linux.part2.rar (18.89 MB)
(下载次数: 31, 2017-7-11 16:15 上传)

还有其他一些医学软件也是linux平台的,用天嵌科技-TQi.MX6UL开发板安装标准的linux也能流畅运行,都直接发上来可能不太好,想要学习研究的可以直接向我要,一起交流探讨共同进步。 sshot-206.jpg sshot-210.jpg

下一篇:硬件  https://bbs.elecfans.com/jishu_1145627_1_1.html



回帖(4)

低调de炫耀爱

2017-7-12 15:32:02
这就厉害了
举报

王鸿

2017-7-13 10:17:27

感谢您的支持                     
举报

可乐丸子

2017-9-15 08:27:47
发个测试视频看看
举报

王鸿

2017-9-15 10:21:38
引用: 可乐丸子 发表于 2017-9-15 08:27
发个测试视频看看

感谢您的支持,测试视频见第三篇
举报

更多回帖

发帖
×
20
完善资料,
赚取积分