1. 引言
近年来,随着图像传感等领域对光电探测器的需求不断增加,科研人员对高性能光电探测器,尤其是覆盖多波段响应的宽光谱探测器 [1] 的关注度也越来越高。其中光电探测器扫描系统在可见光或近红外波段的应用领域不断扩大,包括农业环境监测 [2] 、工业检测与质量控制 [3] 、天文检测 [4] 、化学检测 [5] 等。这种趋势显示出光电探测器的应用未来可期。在科技和社会进步的发展下,光电探测器扫描系统的应用领域也继续深入发展,性能要求也与之提高。尤其是在化学检测 [6] 、医学影像 [7] 和食品安全 [8] 等高精密领域中,对基于单个光子探测的光电探测器提出了更为严格的要求。传统探测器的构造需要不同波段的探测器组合,此外每个器件需具有独立的成像光路,复杂度高,降低了探测效率,价格较高且体积大,制约了其推广使用 [9] 。采用纳米线的探测器,与传统的探测器对比可以突破晶格匹配的限制,使探测的范围更广泛,同时降低成本且具有较高集成度 [10] 。与此同时,科研人员在提高成像技术方面取得了显著进展。他们通过改进光学成像系统 [11] 、优化信号处理算法 [12] 以及提升探测器的灵敏度 [13] ,实现了对探测器的高分辨率成像,还增强了系统对微小变化和局部特征的探测能力。为了更全面地探索样品的性质和结构,研究人员不断探索将纳米线光电扫描成像系统与其他成像技术相结合的可能性。通过与原子力显微镜(AFM)、扫描电子显微镜(SEM)等成像技术的结合 [14] ,可以实现对样品在不同性质下的多维成像,为纳米级别材料和结构的深入研究提供了更全面的手段和途径。
本文基于STM32单片机和宽光谱光电探测器构建了一个光电扫描系统,介绍该成像系统的设计原理、硬件架构和软件实现,并对实验的结果进行了分析和讨论。宽光谱光电探测器在可见光或近红外波段可用于遥感 [15] 、生物科学研究 [16] 和光度计量 [17] 等方面,拥有广阔的发展前景,为光电科学应用领域提供有力的支持。
2. 系统总体方案设计
本文主要以纳米线光电扫描成像系统的设计与构建,数据采集与图像绘制来展开。以上方面涉及到光学元件的选择、扫描器件的搭建、光电信号的采集电路以及通信接口的配置等。
图1为纳米光电扫描成像系统框图,该扫描成像系统选择STM32F103C8T6单片机作为核心控制单元,与光电模块,小信号放大模块,WiFi模块,驱动模块,晶振电路,复位电路,TETLCD显示模块等共同组成纳米光电扫描成像系统。光电扫描模块产生光电信号,通过探头将光电信号转换为电信号,将电信号通过小信号放大模块传输到单片机上,获取到的电流数据格式是IEEE754,将IEEE754格式的数据转换成十进制即可获取相应的数据,将传输的光电强度通过TETLCD液晶显示屏呈现出来,最后,使用单片机的WiFi模块连接到电脑端实时查看数据走向。
光电扫描成像系统开始接收光照后,WiFi模块也会同时开启工作,将测量到的数据实时传输到电脑端进行查看,从数值的起伏变化,我们可以获取物体的表面形状和纹理,检测和检验物体的特定特征,如缺陷、表面质量、精度等信息,并将其转换为数字图像。这些图像可以用于显示、观察、分析以及在计算机中进行后续处理。
纳米线光电扫描成像系统的研制方法主要涉及系统设计、硬件实现和软件开发这三个方面,在系统设计阶段首先进行硬件架构设计,该系统主要包括纳米线光电探测器、设计电路以及WiFi模块等组成部分。硬件实现阶段采用STM32微控制器作为核心,搭建硬件电路并进行相关的编程配置。纳米线光电探测器用于捕获光信号,设计电路则负责对光电探测器进行数据采集,WiFi模块则用于与进行数据交互。软件开发阶段通过编程将硬件实现阶段所搭建的硬件电路与STM32微控制器进行有效的整合,实现系统的基本功能。
![](//html.hanspub.org/file/19-2960398x8_hanspub.png?20240531091855886)
Figure 1. Block diagram of nanophotoelectronic scanning imaging system
图1. 纳米光电扫描成像系统框图
3. 硬件设计
纳米光电扫描成像系统采用STM32F103C8T6作为主控芯片,能够实现数据的采集,数据的转换,获取物体的表面形貌、纹理或其他特征,并将其数据传输到电脑端,通过上位机获取数字化的图像。
3.1. 系统硬件电路图
系统硬件电路图如图2所示,其WiFi模块使用USART3与STM32单片机完成连接传输,USART3_RX对应PB11连接ESP8266的TXD,USART3_TX对应PB10连接ESP8266的RXD.小信号放大模块使用Modbus_RTU通信协议传输数据,Modbus_RTU_TXD连接PA10,Modbus_RTU_RXD连接PA9。
![](//html.hanspub.org/file/19-2960398x9_hanspub.png?20240531091855886)
Figure 2. System hardware circuit diagram
图2. 系统硬件电路图
3.2. 扫描驱动模块
使用三个滑轨搭建三维扫描架构,将物体放置在滑轨的平台上,通过控制滑轨的移动既可以实现物体沿平面移动。光电扫描模块固定在距离物体一定距离的平台上,当物体沿一定方向移动时,即可实现物体的扫描,然后将数据通过WIFI传输给电脑端。
3.3. 数据无线传输
ESP8266模块通过“AT”指令集完成配置。首先使用AT指令测试WiFi模块是否正常,然后使用“AT + CWQAP”指令断开所有连接。使用“AT + CWMODE = 3”指令设置WiFi工作在AP兼Station模式,设置模式后要重新复位模块才能生效,所以使用“AT + RST”指令。复位成功后使用“AT + CWJAP_CUR”连接到WiFi,连接WIFI成功后使用“AT + CIPSTART”指令连接到相应的TCP。连接成功后使用“AT + CIPMODE”指令开启透传模式,开启透传模式后使用“AT + CIPSEND”指令开始透传。经过此一系列的指令控制后,单片机即可上传数据到电脑端。
3.4. 光电扫描数据获取转换功能
光电扫描成像系统采用D60模块,进行测量光电强度,从D60模块获取的数据格式是MODBUS-RTU自定义通讯协议,其中第四个到第七个共四个数据为有效数据,这四个有效数据的格式是IEEE754。IEEE754以32个二进制位的方式存储十进制浮点数,数据格式为:符号位:占据最高位(第31位)这一位,用于表示这个浮点数是正数还是负数,为0表示正数,为1表示负数,指数位占据第30位到第23位这8位,用于表示以2位底的指数,浮点型的指数位都有一个固定的偏移量(bias),用于使指数 + 这个偏移量 = 一个非负整数,在32位单精度类型中,这个偏移量是127,尾数位:据剩余的22位到0位这23位,用于存储尾数。所以通过一定的转换方法,就可以获取D60模块的数据,即获取信号的大小。
3.5. STM32功能
STM32F103C8T6芯片内部集成了ARM Cortex-M3 32位处理器,具有高性能和低功耗的优势,可以实现高效的数据处理和运算,内置了64KB Flash存储器和20 KB SRAM,可以满足不同应用场景的存储需求,同时支持擦除和编程操作。
4. 软件设计
上位机部分是基于Qt Creator4.11.0开发的电脑端程序,程序主要分为通信部份和绘图部分。整个上位机工程利用C++语言来实现,流程图如图3所示。用一个布尔类型的按钮与tcp服务器关联当作开关,在同一个WIFi的环境下打开开关时电脑端app和单片机的端口和IP号一致先按下开关开启服务端再打开客户端即可建立连接,若连接失败上位机会接收到单片机发来的AT数据需要重新连接,WIFi的连接情况会在显示区提示。接着选择需要绘制的图像程序可以选择I-t和I-V图像进行绘制,若选择I-V要提前根据用户的需要选择电压的范围。点击界面的开始绘制按钮移动物体就能够在绘图窗口观察实时的图像变化。
![](//html.hanspub.org/file/19-2960398x10_hanspub.png?20240531091855886)
Figure 3. Upper computer engineering flowchart
图3. 上位机工程流程图
4.1. 系统的通信部分
系统软件的通信采用TCP/IP的通信协议与STM32单片机的WIFi模块进行数据传输,通信流程图如图4所示。首先在程序建立Tcpsever类在头文件声明套接字变量并在源文件创建然后绑定监听端口。接着启动监听函数查看客户端的IP和端口号,等待客户端对其进行连接。客户端连接后对服务器发送数据。通信的连接建立好后,就开始进行数据的接收和发送,这部分在界面里的在textEdit控件上进行。显示区先是接收单片机发送的电流数据,因为单片机发送的数据十六进制的,需要通过IEEE754进制转化把每个十六进制数转为十进制小数显示,发送区也能够发送数据给单片机进行通信。在界面接收设置的部分上还有不显示接收、隐藏接收框、显示原始数据、清除接收的功能方便用户更好地观察图像。
![](//html.hanspub.org/file/19-2960398x11_hanspub.png?20240531091855886)
Figure 4. Communication flowchart of WIFI module of STM32 microcontroller for data transmission
图4. STM32单片机的WIFI模块进行数据传输的通信流程图
4.2. 系统的绘图部分
如图5所示,系统能够对单片机发送的数据进行图像绘制,主要是绘制I-t图像和I-V图像还有一些基础功能如图像的自动缩放、复位视图、保存图像为PNG等功能。
绘制I-t图像的流程图如图所示,首先编写一个计时器的程序并写一个槽函数控制它WIFi连接后选择I-t图像开始启动,计时的步长设为一格100 ms。接着就是通过IEEE754进制转化对电流数据进行处理。最后利用QT里qcuspot类的内置函数让两个变量分别做x轴、y轴绘制图像。绘制I-V图像的流程图如图所示,首先设置好电压的最大值、最小值、点数和刻度范围,然后和I-t图像绘制处理电流的操作原理一样处理电流数据,最后进行数据联立两个变量的数据绘图。
5. 系统测试与分析
在对光电扫描系统的硬件部分、STM32控制器中的软件部分和上位机客户端部分进行调试、修改,系统各模块测试均能正常运行之后,进行对系统整体性能的测试。
5.1. 上位机传输调试
将系统获取的数据上传至上位机,并针对WiFi模块、数据上传和命令过程下发进行调试。调试程序如图6所示。
5.2. 测试结果与分析
在搭建好的光电系统中,将物体放置在平台中,在滑轨控制器的驱动下,以平缓的速度扫描,实验在室内进行测试时,存在一定的光照强度误差,当物体移动时,可以通过上位机观测到物体移动的光电强弱最高点,与物体实际的光电强弱大致相同,表1为不同物体最高点光电强弱数据,其中室内光为空白对照组。
![](//html.hanspub.org/file/19-2960398x13_hanspub.png?20240531091855886)
Figure 6. Debugging the upper computer program
图6. 调试上位机程序
![](Images/Table_Tmp.jpg)
Table 1. Photoelectric intensity data at the highest point of different objects
表1. 不同物体最高点光电强弱数据
6. 结论
本文以STM32F103C8T6单片机作为主控芯片,并与光电模块,小信号放大模块,WiFi模块,驱动模块等器件,设计了纳米光电扫描成像系统。光电探测器能够感知光的变化,并将其转换为电信号。为了将其更好地利用,可以将待检测的物体放置在一个滑轨上,并通过控制滑轨的移动来改变物体的位置。在操作过程中,上位机负责接收光电数据,并将其显示出来。光电数据可以提供关于物体的位置、形状和轮廓等信息。通过对这些数据进行处理和分析,上位机可以基本上反映出物体的轮廓。这使得用户能够更清楚地了解物体的形状和结构。
利用光电探测器和滑轨的组合,可以实现对物体的精确定位和轮廓检测。无论是在工业生产线上进行自动化检测,还是在科学研究中对物体进行形状分析,都可以借助这种技术来实现。这种方法具有高精度、高效率和易于操作的特点,为各种领域的应用提供了便利。
基金项目
广西科技基地和人才专项,桂科AD20238095;桂林市创新平台和人才计划,20210217-9;广西师范大学2023年自治区级大学生创新创业训练计划立项(S202310602064)。