开发指纹模块(基于STM32 MCU和串口TFT LCD模块的指纹识别)

Posted

篇首语:形成天才的决定因素应该是勤奋-郭沫若本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发指纹模块(基于STM32 MCU和串口TFT LCD模块的指纹识别)相关的知识,希望对你有一定的参考价值。

开发指纹模块(基于STM32 MCU和串口TFT LCD模块的指纹识别)

文章来源:CNX Software中文站

注:这是在STONE技术公司工作的Amy的一篇客座文章,STONE技术公司是一家专门从事工业液晶显示模块的公司。

2019年11月,我计划开发一个指纹门锁项目。当我选择好指纹识别模块时,项目就被暂停了。不过,我想既然已经购买了指纹识别模块,那还是简单地测试一下吧。

这个指纹模块轻易地就能在线购买,它通过UART接口与单片机板通信。另外,它可以支持指纹扫描、指纹输入、指纹比较和指纹删除等功能。

因为该指纹模块制造商为STM32F103系列微控制器提供了一个演示程序,所以我买了一个基于STM32F103C8T6的小型开发板。

指纹模块的演示程序一般使用LED灯提示用户输入指纹并比较其状态(成功或失败)。但我个人比较倾向用显示屏来提示用户和显示结果,因此我选择了480×272分辨率的串口显示屏。该屏通过UART可以与单片机进行通信,具体型号是STONE STVC050WT-01,这部分我会在后面的章节中介绍。

硬件组件

总共使用了三个硬件模块:

  • STM32开发板
  • 指纹模块
  • STONE STVC050WT-01 显示屏

带有UART TTL接口的指纹识别模块

指纹识别模块

UART指纹读取器模块是由意法半导体公司的STM32F205高速数字处理器驱动的,它集成了指纹算法(TFS-9)和高精度光学传感器(TFS-d400),支持指纹输入、图像处理、特征值提取、模板生成、模板存储、指纹比较和搜索,并公开了一个由主微控制器或处理器驱动的UART接口。

特征‎

  1. ‎敏感指纹传感和快速识别速度:指纹模块采用高精度光学路径和成像元件,因此使用时只需用手即可。‎
  2. ‎稳定性好:该模块采用STM32F205 单片机,功耗低、速度快。速度和稳定性都比中国芯片好一些。‎
  3. “科学结构”:该模块采用模块化结构、指纹传感器+处理主板+算法平台。‎
  4. ‎标准16针通用接口:传感器可独立选择,由光学和其他传感器取代;使用商业算法。‎
  5. ‎易于开发:串口UART 操作(可以直接连接到任何带串口的单片机上)极其简单。该公司还提供了演示软件、学习软件、MCU程序以及相关工具。‎
  6. ‎开放性:免费输入和输出指纹图片、指纹特征值文件和各种指纹操作。

‎应用场景

‎典型的应用程序包括指纹锁、指纹保险箱、指纹访问控制、指纹出勤、对讲机、人员识别、权限管理等。‎指纹模块可以在全球速卖通上购买‎‎,售价是37.78美元‎‎。‎

STONE 5英寸STVC050WT-01 4:3 TFT-LCD 模块

480×272 TFT 显示屏介绍

在这个项目中,我想使用STONE STVC050WT-01 TFT-LCD 来显示指纹模块的状态(包括输入状态、比较状态和指纹数据删除)。此显示屏配有驱动芯片,且能为用户界面开发提供开发软件。所以,用户只需根据需要通过软件以及任何按钮或文本框添加设计的 UI 图片,然后生成配置文件并以闪存形式接入显示屏。‎

‎STONE STVC050WT-01显示屏通过UART TTL信号与MCU通信。‎

‎从理论上来说,STONE显示屏和指纹模块硬件是可以直接连接的。但是,由于通信数据协议不同,无法建立通信。所以,仍需要MCU来处理串口通信。‎

显示屏模块

‎更多的技术信息,包括数据表都可以在产品页面‎‎获取,该模块以37.78美元的价格在‎全球速卖通上售卖‎ ‎。‎

使用STONE 显示屏模块只需要‎4 步

  1. ‎使用 PhotoShop 或其他照片编辑软件设计用户显示界面。‎
  2. ‎使用STONE TOOL软件设计显示逻辑和按钮逻辑,并将设计文件下载到显示模块中。‎
  3. MCU通过串口与STONE 显示屏模块进行通信。‎
  4. ‎第 3 步获得的数据应使用在MCU的其他操作中。

STONE TOOL软件安装‎

‎从官方网站下载最新版本的‎‎STONE TOOL软件‎‎(当前为是 TOOL 2019版)并安装。‎

‎软件安装完成后,将会打开以下界面:‎

STONE TOOL软件界面

单击左上角的“文件‎‎”按钮以创建新项目,具体项目将会在下面部分进行介绍‎。

STM32 单片机开发板

‎我们使用‎‎基于STM32F103C8T6 MCU的开发板‎‎,该开发板可以在‎‎全球速卖通上通过快递购买,售价低于2美元‎‎。‎

STM单片机开发板

STM32开发环境

Keil vision是由Keil开发的集成开发环境。目前,主要有Vision2、Vision3、Vision4和Vision5几个版本。其实这当中是有一些故事的。2005年,Keil被Arm收购。2011年3月,Arm发布了最新集成开发环境的Realview MDK开发工具,该工具其实是集成了Keil uvision4的最新版本,其编译器和调试工具主要针对Arm设备进行了优化。

STM32使用KEIL MDK开发环境的具体情况,可以在该公司网站上找到。

STONE 显示屏和指纹模块测试项目的实现

开发板与STONE 显示屏的硬件连接

为了确保以后可以编写代码,我们首先必须确定硬件连接是可靠的。

STM32F103C8T6开发板和STVC050WT-01 TFT 显示屏通过UART连接,STM32F103C8T6开发板和指纹模块也可以通过UART连接。

确保硬件连接正确之后,继续下一步。

UI图形设计只需一步

首先,我们需要设计一个UI显示图像,它可以用PhotoShop软件或其他图像设计工具进行设计。UI 显示图像设计完成后,要将图像保存为 JPG 格式。(下图是我在Photoshop设计的UI 图像)

UI显示图像

TFT -LCD显示模块设计

打开STONE TOOL2019 软件,并创建一个新项目:

创建新项目

删除项目默认的图像

删除新项目加载的默认图像,并添加我们自己设计的 UI 图像。

如何通过STONE TOOL工具添加字体文件

项目添加字体文件

‎UI 设计时,会出现一个实时显示指纹验证的状态栏,因此你需要添加字体以及文本显示组件和按钮。‎

效果如下:

UI设计效果

如何生成STONE LCD的配置文件

完成上述 UI 设计后,你可以生成配置文件并将其下载到 STVC050WT-01 显示屏上,在 STONE 开发材料中对该显示屏进行过描述。

生成配置文件并下载

执行步骤 1 :生成配置文件,然后将 U盘插入计算机,U盘就会显示出来。

执行步骤2:然后单击“下载到你磁盘”,将配置文件下载到 U盘中,之后再将 U盘插入 STVC050WT-01 中以完成升级。

如何通过 UART TTL接口连接指纹模块

指纹模块实际上由两部分组成:

  1. 光学收集器
  2. 驱动电路

核心部分是驱动电路,且由STM32F2系列芯片集成。该芯片将指纹算法和扫描算法嵌入到芯片中,并采用UART通信来获取结果,这为应用程序的开发人员提供了非常方便的条件。

硬件连接:

VCC— 3.3 v或5v

GND — GND
TXD(指纹模块串口发送)— RXD(PC或单片机串口Rx)

RXD(指纹模块串口接收)— TXD(PC或单片机串口Tx)

BL(指纹头背光,未连接)— IO端口

RST(指纹模块重置,未连接)— IO端口

首先,你可以使用 Windows PC 通过串口与指纹模块进行通信,从而进行测试。你们也可以在微雪百科中上找到更多的细节信息。

STM32 应用开发

你们可以访问指纹模块供应商的官方网站,下载指纹模块演示程序,然后使用KEIL软件打开程序。

在进一步开发软件之前,我们先来连接一下硬件。

硬件连接图

然后通过串口控制台发送指令的方式检查连接是否能正常工作。

串口工具发送指令

我用最终代码(main.c)对程序做了一些小修改,如下所示:

具体代码点文末了解更多

我们还必须要修改stm32f10x_it.c文件,以此来添加 USART 中断处理函数。

具体代码点击文末了解更多


添加中断处理函数

最终结果

最后,我们只需要连接STM32板、指纹模块、显示屏幕和电源。而后按下 STONE 显示屏上方对应的按钮,你应该就能够添加、删除和验证指纹了。

指纹识别结果

指纹识别结果

相关参考

智能照明调光控制器模块(基于STM32实现的普通灯泡调光模块)

大家好,我是杂烩君。本次分享一个很久之前做的一个小模块。功能用STM32控制一个普通灯泡的亮度,一路开关控制普通灯泡电源的通断,另外两路开关分别控制普通灯泡亮度的增加和减小。调光控制器的原理通过STM32控制双向...

液晶显示模块(基于STM32的数控直流电源)

数控直流电源目录1、介绍    …………2、整体方案    …………3、硬件电路    …………4、软件     …………5、心得小结    …………6、附录:1、元器件…………      2、电路图………… ...

液晶显示模块(基于STM32的数控直流电源)

数控直流电源目录1、介绍    …………2、整体方案    …………3、硬件电路    …………4、软件     …………5、心得小结    …………6、附录:1、元器件…………      2、电路图………… ...

智能纯净水表(动手实践丨手把手教你用STM32做一个智能鱼缸)

摘要:本文基于STM32单片机设计了一款基于物联网的智能鱼缸。本文分享自华为云社区《基于STM32+华为云IOT设计的物联网鱼缸【玩转华为云】-云社区-华为云》,作者:DS小龙哥。1.前言为了缓解学习、生活、工作带来的压力,提...

智能温控表(基于低功耗32位MCU CW32系列的智能温控器的应用)

随着社会的发展,温度的测量及控制变得越来越重要。及时准确的获取温度信息并对其进行适当的控制,这在许多场合中都是很重要的环节。对于不同场景要求下的温度控制,所采用的控制方式也不同。目前,学习与应用单片机...

开发mcu单片机(NXP S9S08LG32J0VLK 单片机MCU 集成电路IC)

19166207802特征•8位HCS08中央处理器(CPU)–最高40MHzCPU,温度范围为5.5V至2.7V范围为-40°C至85°C和-40°C到105°C–HCS08指令集,添加BGND指令–支持多达32个中断/复位源•片上存储器–32KB或18KB双阵列闪存;读取/编程/擦除过满工作电压...

开发工具都有哪些(常用的十大Python开发工具)

...很容易快速高薪就业。可能你并不太了解常用的十大Python开发工具都有哪些,现在告诉你。1.MicroPythonMicroPython基于ANSIC,语法跟Pyton3基本一致,拥有自家的解析器、编译器、虚拟机和类库等。目前支持基于32-bit的ARM处理器,比如...

常用的译码芯片(学嵌入式STM32系列芯片应该怎么选择,都有什么区别)

...每一处细节,整个人是通透的。不像写应用软件或者做Web开发,底层全都给你包好了,你只是个用户而已。文章相比较较长,字数比较多,大家能够先翻开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还...

湿度传感器实验报告总结(I2C通信实例 - SHTx温湿度传感器 02)

...2Project,配置好时钟等(参考前文)。STM32F103ZET6有两个I2C模块,这里选用的是I2C2。参数设置非常简单,如图1所示:图1.I2C配置界面从左侧Connectivity组选择I2C2;Mode下拉列表,选择I2C。从下方ParameterSettin

湿度传感器实验报告总结(I2C通信实例 - SHTx温湿度传感器 02)

...2Project,配置好时钟等(参考前文)。STM32F103ZET6有两个I2C模块,这里选用的是I2C2。参数设置非常简单,如图1所示:图1.I2C配置界面从左侧Connectivity组选择I2C2;Mode下拉列表,选择I2C。从下方ParameterSettin