基于3D打印技术的图像控制系统设计

医疗电子

428人已加入

描述

骨折多由严重创伤和高能量损伤所致,近年来发生率明显呈增长趋势。内固定,手术创伤度对骨折手术尤其重要,除了预防并发症外,复位内固定质量与创伤程度对治疗骨折极其关键。大多数骨科临床研究表明,平面显示的二维图像不能完全给人直观、立体的感觉, 影响医患双方沟通,医生不易解释手术方案,不利于构建和谐医患关系。为使手术更精准、安全,本研究将3D 打印技术用于打印骨骼以及骨骼修复体的基于嵌入式的 FDM 型 3D 打印图像控制系统,主要研发了系统的图像控制模块的 framebuffer 的驱动程序,完成了framebuffer 的驱动程序设计,在治疗时,能够利用 3D 技术打印出患者的骨骼实物模型,根据骨骼模型对植入导板进行精确塑形,再将塑形后的骨导板移植到骨骼中进行骨骼的修复。

1 3D 打印图像控制系统中图像的传输与显示

嵌入式系统传输图像数据信息,需要通过 Linux 系统下的帧缓冲(framebuffer)结构控制器来实现。因此 framebuffer 的相关知识对于本系统的实验十分重要,本研究主要完成 framebuffer 的驱动程序设计,完成控制系统中图像的传输与显示。

工作原理如图 1。

3D打印技术

图 1 framebuffer 工作原理图

1.1 嵌入式系统 framebuffer 设计

1.1.1 FDM 3D 打印图像传输系统 framebuffer 总体控制设计

本系统所使用的芯片为 Atmega 2560-16AU(AVR 核心处理器 8 位 16MHz,256KB Flash),集成了很多的外部设备来配合完成芯片控制功能,在 linux 系统下的源代码中的 linux/platform_device.h 头文件中定义了 platform_device 数据结构来管理描述这些外部设备。在系统启动时,就可以将所有芯片的平台设备加载,结构体形如下:

struct platform_device Atm2560_device_fb = {

.name = “Atm2560-fb”, //设备名

.id = -1, //同种多个设备的编号

.num_resources = ARRAY_SIZE(Atm2560_fb_resource),//资源数量

.resource = Atm2560_fb_resource,//资源结构体数组首地址

.dev.dma_mask = &Atm2560_device_fb.dev.coherent_dma_mask,

.dev.coherent_dma_mask = 0xffffffffUL,

};

1.1.2 FDM 3D 打印图像传输系统 framebuffer 驱动结构设计

帧缓冲作为用户与硬件之间的中间层,起到电脑显卡的作用,应 用程序对帧缓冲的操作即可看作是对显存的操作。framebuffer 启动后,需要我们对其 linux/drivers/videos/下的其的驱动程序进行部分编写,驱动程序是应用程序与外部设备之间的操作的接口,对应我们所 使用的 Atmega 2560-16AU(AVR 核心处理器 8 位 16MHz,256KB Flash)芯片,才能实现具体的图像显示功能。framebuffer 设备驱动包括在如下两个内核文件中:

(1)linux/include/linux/fb.h

(2)linux/drivers/video/fbmem.c

fb.h 中主要包括了 framebuffer 驱动程序中占主要地位的数据结构。而 fbmen.c 则是既为上层的应用程序提供操作 framebuffer 设备的函数接口,让基本操作与硬件设备无关,又为底层的硬件设备提供 了相应的操作接口,但这些操作也不由 fbmen.c 完成,而是由系统使用的芯片处理器来决定的,本文中,我们由 Atm2560fb.c 来实现这些操作,需要根据不同的 LCD 控制器来实现相关的接口。图 2 为framebuffer 设备驱动结构。

3D打印技术

图 2 framebuffer 驱动结构

1.1.3 FDM 3D 打印图像传输系统 framebuffer 驱动程序设计

1.1.2 中完成 framebuffer 驱动程序的设计,才能使其正常工作, 让图片正确的显示。驱动程序与开发所使用的的硬件设备相关。所以, 驱动程序分为了两层:标准驱动和非标准驱动。

由图 2 可以看出,标准驱动主要为应用程序提供操作接口[4],主要操作在 fbmem.c 的 file_operations 结构里,而底层驱动则是framebuffer 驱动程序真正需要完成的功能,需要进行相应程序的编写,来实现真正的图片显示。 本系统中帧缓冲驱动主要在drivers/video/Atm2560/Atm2560fb.c 中 ,驱动的全部信息在Atm2560fb_info_t 中。

framebuffer 的驱动程序就需要编写 Atm2560fb.c 文件,主要包括以下几个内容:

(1)初始化 fb_info 中成员函数。

底层驱动需要与设备驱动实现绑定,这一过程就是在底层 驱动的加载的过程中完成的, 为了实现与方便绑定, 每一个platform_device 都定义了一个 platform_driver。

2 系统测试

本文采用黑龙江拓盟科技有限公司的 TMKJ -ET 系列 FDM 3D 打印机进行图像控制系统的操作实验,将骨手术患者术前 CT 扫描数据导入三维建模软件中生成三维骨结构,如图 3 所示。图 4 对术前骨手术患者骨骼进行复位后图像还原对比,得到修复后的骨骼三维图, 利用 3D 打印机将术后骨三维模型打印成型,并对打印的模型进行骨导板复原手术,最后,将精准的骨导板植入到患者骨骼中,完成骨手术的固定复原。

3D打印技术

图 3 骨手术前及术后 CT 图

3D打印技术

图 4 骨手术前三维重建以及术后三维重建图

通过手术证明,FDM 3D 打印图像控制系统运行速度快,交互性高,性能稳定,可以精确打印骨科手术患者的三维骨模型,保证了骨 科手术安全性和可靠性,使基于嵌入式的 FDM 型 3D 打印图像控制系统更好服务于广大骨科疾病患者。

3 结束语

在本研究中,3D 打印技术已经用于打印骨骼及骨骼修复体等。在治疗时,能够利用 3D 技术打印出患者的骨骼实物模型,根据骨骼模型对植入导板进行精确塑形,再将塑形后的导板移植到骨手术中进行骨骼的修复。以往的 3D 打印图像控制系统集成复杂,界面交互感差且效率低。本研究系统的图像控制模块的 framebuffer 的驱动程序, 完成了 framebuffer 的驱动程序设计,通过系统测试结果表明,该图像控制系统运行操作简单,效率高且性能稳定,可以精确打印骨科手术患者的三维骨模型,保证了医生能够进行精准的骨科手术。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分