OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5198|回复: 0

《MiniPRO H750开发指南》第六十四章 综合测试实验(下)

[复制链接]

1140

主题

1152

帖子

2

精华

超级版主

Rank: 8Rank: 8

积分
4896
金钱
4896
注册时间
2019-5-8
在线时间
1248 小时
发表于 2023-3-8 17:53:50 | 显示全部楼层 |阅读模式
本帖最后由 正点原子运营 于 2023-3-7 12:22 编辑

第六十四章 综合测试实验

1)实验平台:正点原子MiniPro STM32H750开发板

2) 章节摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

3)购买链接:https://detail.tmall.com/item.htm?id=677017430560

4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boar ... 32h750_minipro.html

5)正点原子官方B站:https://space.bilibili.com/394620890

6)MiniPro STM32H750技术交流QQ群:170313895

155537c2odj87vz1z9vj6l.jpg

155537nfqovl2gg9faaol9.png

64.2.11 照相机
本照相机支持ALIENTEK OV5640-AF这款500W像素的CMOS摄像头模块,本照相机的特点有:
1,支持自动对焦(轻触触摸屏,即可进行一次自动对焦)。
2,支持闪光灯(可以设置开启/关闭)。
3,支持BMP拍照(拍下的bmp分辨率为LCD分辨率),按WK_UP拍BMP照片。
4,支持JPG拍照(默认是2592*1944像素(500W像素),按KEY1拍JPG照片。
5,屏幕显示可以是全景(缩放)或者1:1显示(无缩放),默认是全景,通过KEY1切换。
6,支持各种参数设置,包括:场景、特效、亮度、色度、 对比度和闪光灯等设置,按KEY_UP进入设置。

双击主界面的照相机图标,首先初始化OV5640摄像头模块,如图64.2.11.1所示:  
image049.png
图64.2.11.1 初始化OV5640和等待拍照

在初始化OV5640之后,进入等待拍照模式, 摄像头默认开启了持续自动对焦,在发现失焦后,摄像头模块会自动重新进行一次对焦。我们也可以轻触液晶触摸屏,人为的触发一次自动对焦,以得到清晰的图片。

此时我们可以长按WK_UP按键松手后,弹出相机设置对话框,对摄像头的参数进行设置,如图64.2.11.2~64.2.11.5 所示:
image051.png
图64.2.11.2 相机设置和场景设置

image053.png
图64.2.11.3 特效设置和亮度设置

image055.png
图64.2.11.4 色度设置和对比度设置

image057.png
图64.2.11.5 闪光灯设置和拍照成功

以上设置,和手机类似,这里就不一一和大家解释了。 我们按KEY1按键,即可实现JPG拍照,JPG照片尺寸固定为:2592*1944,500W像素。按WK_UP按键即可实现BMP拍照,BMP照片的尺寸就是LCD的分辨率。在照片保存期间LED1亮,保存完后蜂鸣器发出“滴”的一声,提示拍照成功,同时弹出拍照成功对话框,如上图右侧图片所示。

从上图可以看出,照片文件的命名还是以当前时间为名字命名的。我们将所有的照片都保存在TF卡/U盘的PHOTO文件夹。如果你没有插入TF卡/U盘,拍照时会提示“创建文件失败,请检查!”的提示信息。

长按KEY1按键松手后,可以实现1:1显示(显示区域小,但是图像无压缩,不变形),或者全尺寸显示(显示整个摄像头拍照区域,但是图像有压缩,会变形)。另外,如果你觉得照片模糊,可以手动调节摄像头模块的镜头,进行调焦,以达到最佳效果。

最后,看看本程序拍到的JPG照片样张,如图64.2.11.6所示:
image059.png
图64.2.11.6 JPG照片样图(500W像素)

64.2.12 无线传书
该功能用来实现两个开发板之间的无线数据传输,在开发板A输入的内容,会在开发板B上完整的“复制”一份,该功能需要2个MiniProSTM32H750开发板(也可以一个探索板与战舰板或 Mini板搭配用,不过都要刷综合实验!!)和2个NRF24L01无线模块。

双击主界面的无线传书图标(假定开发板已插上NRF24L01无线模块),会先弹出模式选择对话框,如图 64.2.12.1 所示:
image061.png
图64.2.12.1 模式选择和发送模式

从左侧的图片可以看出,模式设置,我们可以设置为发送模式或接收模式。右侧的图片则是选择发送模式后进入的界面。我们在另外一块开发板(开发板B)设置模式为接收模式,然后在本开发板(开发板A)手写输入一些内容,就可以看到在另外一个开发板也出现了同样的内容,如图 64.2.15.2 所示:
image063.png
图64.2.12.2 在开发板A输入的内容完整的显示在开发板B上

从上图可以看出,在开发板A上输入的内容,被完整的复制到开发板B上了。这就是无线传书功能。

64.2.13 USB连接
双击主界面的USB连接图标,如果开发板的USB端口没有连接电脑,则显示无连接,如图64.2.13.1所示:
image065.png
图64.2.13.1 USB无连接和USB读数据

上图中,左侧的图片显示开发板没有和电脑连接上,此时,我们找一根USB线,连接开发板的USB_SLAVE端口和电脑的USB,注意:此时USB_HOST不能插任何USB设备!然后,可以看到开发板提示USB已连接,并显示USB正在读数据,同时我们在电脑上面,可以看到右下角提示发现新硬件,并自动安装驱动(如果是第一次连接的话),如图64.2.13.2所示:
      image067.png
图64.2.13.2 电脑发现新硬件

此时,我们打开我的电脑,即可找到可移动磁盘,如果有TF卡插入,那么会显示两个磁盘:ALIENTEK磁盘和TF卡磁盘。如果TF卡没插入,则只显示ALIENTEK磁盘。

这样,我们就实现了开发板和电脑的USB连接,可以直接从电脑拷贝文件到开发板的TF卡和SPI Flash Disk(即25Q128)。

这里再次提醒大家,如非必要,不要往SPI Flash Disk写入数据!否则容易写坏QSPI FLASH。

64.2.14 RGB彩灯
RGB彩灯功能,可通过调节RGB三色灯不同的控制占空比,从而调三色灯的亮度,进而通过三色灯的三原色组合成不同的颜色。

双击主界面的RGB彩灯图标,进入RGB彩灯功能后,默认RGB三色灯调至最亮,我们可手动调节三色灯的亮度,如图64.2.14.1所示:
image001.png
图64.2.14.1 默认RGB三色灯调至最亮和手动调节三色灯的亮度

64.2.15 二维码
MiniPro STM32H750开发板可以用作二维码识别和二维码生成,我们在综合实验集成了这两个功能。

二维码识别:由ALIENTEK提供一个二维码识别库(ATK_QR_V1.4.lib),它可以实现二维码和条形码的识别。其特点包括:
1,支持UTF8和GBK两种编码方式的二维码识别。
2,支持CODE128、CODE39、I25和EAN13等四种编码方式的条码识别。
3,支持UTF8-OEM转换输出(需要客户自己提供转换码表)。

二维码生成:支持GBK编码方式的二维码生成(不支持UTF8编码)。

双击二维码图标,首先进行模式选择,如图64.2.15.1所示:
image003.png
图64.2.15.1 模式选择和待识别的二维码&条形码图案

模式选择可以选择:识别二维码或者生成二维码,首先我们看识别二维码,上图右侧有一个待识别的二维码和条形码图案。选择识别二维码后,首先会初始化OV5640,如果没有OV5640则直接退出,无法进行识别。在初始化OV5640成功后,进入识别状态,此时屏幕中央会显示摄像头拍摄到的图案,将二维码/条形码放到摄像头区域,就会自动进行识别, 识别完成,会有“滴”的一声提示,同时屏幕弹出对话框,显示识别结果。如图64.2.15.2和图64.2.15.3所示。

特别注意:
1),二维码识别需要 ATK-OV5640 摄像头模块的支持,如果没有,则无法进入此功能。
2),OV5640默认开启了自动对焦,如果发现失焦,我们可以触摸屏幕(按住一段时间再松开),手动触发一次对焦,以获得清晰的图片。
3),要识别的图像要全部在扫描区内,才可以识别。
4),对于条形码,最好大于等于7个字符/数字长度,否则可能无法识别。
5),二维码一次最多识别约512汉字大小的编码图片。

image005.png
图64.2.15.2 二维码扫描和二维码识别

image007.png
图64.2.15.3 条形码扫描和条形码识别

我们按KEY0,可以返回主界面,结束二维码识别。接下来,我们看二维码编码,在模式选择界面,选择生成二维码,然后如图64.2.15.4所示。
image009.png
图64.2.15.4 输入要编码的内容和生成编码结果

首先,我们输入需要编码的内容,在输入完成后,点击“编码”按钮,即可生成编码结果,如图64.2.15.4图片所示。然后,我们可以用手机扫描这个二维码,来验证是否编码正常。按 KEY0可以清除编码结果,重新回到输入编码内容界面,我们可以输入新的内容,然后重新编码。在编码界面,按KEY0,可以返回主界面,结束二维码生成应用。

注意:这里的二维码编码采用的是GBK码,并不是UTF8编码,所以有的扫描软件,可能无法识别其中的汉字。遇到这种情况,请用微信自带的扫一扫功能,来扫描。

64.2.16 人脸识别
双击主界面的人脸识别图标,即可进入本应用。本应用需要ATK-OV5640摄像头模块的支持,如果没有摄像头,则无法打开本应用,本应用采用ALIENTEK提供的人脸识别LIB(ATKFREC.lib)来实现人脸识别,本人脸识别LIB的特点有:
1,占用内存少,20张人脸,仅需约560KB内存。
2,使用简单,仅需修改6个函数,即可实现移植。
3,识别速度快,20 张人脸里面,识别一张人脸,耗时约70ms(STM32H750@480Mhz)。不过,由于本识别库以M3/M4为目标处理器,内存有限,算法上进行了大量阉割。所以,很多功能不太完善,效果也不是很好,且没有做识别有效检查(输入错误的人脸,也会有结果输出),所以此LIB仅供大家参考用。

双击主界面的人脸识别图标后,首先会初始化OV5640摄像头模块,在初始化成功以后,进入人脸扫描界面,如图64.2.16.1所示:
image011.png
图64.2.16.1 扫描人脸和模板添加提示

上图左侧图片显示识别程序正在扫描人脸,我们可以调节摄像头,将人脸放到屏幕正中央,以便程序识别,当发现人脸模糊,对焦不清的时候,轻触屏幕触摸屏,即可手动触发一次自动对焦,以获得清晰的图像。

当调整好人脸位置以后,按KEY1按键,可以对当前扫描的人脸进行识别,如上图右侧图片所示,不过由于我们默认是没有模板的,所以无法进行识别(至少需要有一个模板,才可以进行人脸识别),屏幕提示要按:EKY_UP(即WK_UP)按键添加模板,所以我们按WK_UP按键,先添加一些模板,如图 64.2.16.2 所示:
image013.png
图64.2.16.2 添加人脸和查看人脸列表

上图左侧图片就是添加人脸的界面,我们可以对当前人脸的:姓名、电话和性别等信息进行编辑,编辑完成后,点击保存,即可将该人脸数据保存到TF卡磁盘里面(TF卡磁盘根目录: ATK_FREC文件夹内),以便后续识别使用。

综合实验,我们最多可以添加20个人脸,当添加人脸完成以后,长按WK_UP按键,可以弹出人脸列表,如上图右侧图片所示,由图可知,总共有20个人脸,我们可以双击某个人的名字,对这个人的信息进行编辑,也可以按左下角的“选项”按钮,弹出对话框,选择“编辑”,对该人脸进行编辑,如图 64.2.19.3 所示:
image015.png
图64.2.16.3 选项对话框和编辑人脸

上图中,左侧图片表示我们按下“选项”按钮后,弹出一个选择操作的对话框,可以选择编辑和删除,如果选择编辑,则和双击人脸列表的姓名一样,进入编辑人脸信息界面,如上图右侧图片所示。在编辑人脸信息界面,我们可以对当前人脸的姓名、电话和性别等信息进行修改,修改完成后,点击保存即可完成编辑。

删除人脸方法:在人脸列表里面,我们选中某个人脸(单击),然后按“选项”按钮,弹出选择对话框(如图64.2.16.3 左侧图片所示),选择“删除”,然后点击确定,即可完成对这个人脸的删除,删除完成会有提示对话框,如图64.2.16.4 所示:
image017.png
图64.2.16.4 删除人脸和识别结果

上图右侧图片显示人脸删除成功。在编辑/删除人脸完成以后,我们按KEY0或“返回”按钮,回到人脸扫描界面,然后调节摄像头(轻触屏幕的触摸屏,可以触发一次自动对焦,以获得清晰的图像),让待识别的人脸处于屏幕正中央,调整好位置以后,按KEY0按键,即可对当前图像进行识别,识别完成后,显示识别结果,如上图右侧图片所示。

在识别结果界面,上半部分的大图,是摄像头拍摄到的需要识别的图片,下面右侧的小图片,则是在添加模板的时候,保存的预览图片。可以看到,两个图片基本一样,说明识别是成功的,同时,还显示了这个人的姓名、电话和性别等,整个识别过程,耗时70ms(20张人脸),还是比较快的。在识别结果界面,按KEY0,可以返回人脸扫描,继续识别其他人脸。

在人脸扫描界面,再按KEY0即可返回主界面,结束人脸识别。

64.2.17 电压表
电压表功能用于测量0~3.3V的直流电压源,可以是开发板上的电压源,也可以是外部的,但是电压的范围一定要是0~3.3V,否则容易烧毁STM32芯片。

下面我们一起来测量板载的可调电位器的电压,使用短路帽将多功能端口P3的ADC和RV1排针连接,然后双击主界面的电压表图标,进入电压表功能后,就可以通过调节可调点位旋钮改变接入ADC的电压,从而在屏幕上显示不同的电压值,如图64.2.17.1左侧图所示:
image019.png
图64.2.17.1 调节电位器得到不同电压和最大允许接入3.3V电压

上图中,ADC值是电压的数字值,Uin值是经过转换后的实际电压。由于STM32H750的ADC最大分辨率是16位,所以电压的数字值范围是0~65535。

当我们把可调电压值调至最大,就可以得到3.3V的最大输入电压,如图64.2.14.1右侧图所示。电压的数字值是65535,对应的实际电压是3.3V。

64.2.18 蜂鸣器
蜂鸣器功能用于测试蜂鸣器,通过触摸屏来控制蜂鸣器响或不响。

双击主界面的蜂鸣器图标,进入蜂鸣器测试窗口后,就可以通过点击显示屏的“打开”按钮,让蜂鸣器响。此时“打开”按钮变成“关闭”按钮,之后点击“关闭”按钮则会关闭蜂鸣器,“关闭”按钮又会变成“打开”按钮,如图64.2.18.1图所示:
image021.png
图64.2.18.1 默认RGB三色灯调至最亮和手动调节三色灯的亮度

按按键KEY0,则会退出蜂鸣器测试功能,回到主界面。

64.2.19 按键测试
按键测试功能用于测试板载的三个功能按键。

双击主界面的按键测试图标,进入按键测试窗口后,此时,如果没有任何按键被按下,默认显示屏上显示的三个黄色的实心圆(KEYUP、KEY1、KEY0),如图64.2.19.1左侧图所示:
image023.png
图64.2.19.1 默认没有按键按下和按下按键KEY1

当我们按下其中一个按键,则对应的实心圆会显示红色,比如按下按键KEY1,显示屏的实心圆KEY1变红色,如图64.2.19.1右侧图所示,此后松开KEY1按键,该实心圆又变回黄色。注意:当两个按键被同时按下,只有其中一个有效。当KEY0被按下,则实心圆KEY0会先变成红色,然后马上退出按键测试功能,返回主界面。

64.2.20 LED测试
LED测试功能用于测试板载的RGB灯,通过触摸屏来控制RGB灯的亮灭。

双击主界面的LED测试图标,进入LED测试窗口后,默认RGB灯全部熄灭,显示屏的三个实心圆显示白色,如图64.2.20.1左侧图所示:
image025.png
图64.2.20.1 默认没有按键按下和按下按键KEY1

我们可以通过点击显示屏的“红灯亮”、“绿灯亮”和“蓝灯亮”这个三个按钮,来控制RGB对应颜色的灯亮。比如点击“蓝灯亮”按钮,那么蓝灯对应的实心圆就变成蓝色,如图64.2.20.1右侧图所示,此时RGB的蓝灯也会亮。其它灯的控制方法类似的。
按按键KEY0,则会退出LED测试功能,回到主界面。

64.2.21 拨号
注意,本开发板没有麦克风和咪头,所以不能实现真正的打电话功能,只是功能模仿,可以接通电话,但不能正常对讲。

实现该功能,需要ALIENTEK ATK-SIM900A GSM模块的支持,所以本功能的测试,请先确保有GSM模块,并连接成功(详见64.2节开头部分)。

双击主界面的拨号图标,进入拨号界面,如图64.2.21.1所示:
image027.png
图64.2.21.1 拨号主界面和拨号

上图中左侧图片就是拨号主界面,这个和手机拨号是一样的。右侧是我们输入的拨号号码,点击拨号图标,即可进行拨号。如图64.2.21.2所示。
image029.png
图64.2.21.2 拨号中和通话中

image031.png
图64.2.21.3 来电和接听来电

图64.2.21.2为拨号和拨通后的通话界面。图64.2.21.3为来电和接听来电后的通话界面,此时蜂鸣器会发出“滴、滴”的提示声,提示有电话呼入。其他的操作和我们智能手机基本一模一样,就无需多说了。

注意,在通话状态,如果按KEY0,则会挂断电话,结束通话。

64.2.22 应用中心
双击主界面的应用中心图标,进入应用中心界面,如图64.2.22.1所示:
image033.png
图64.2.22.1 应用中心和红外遥控测试

左侧图片是我们刚进入应用中心看到的界面,在该界面下总共有16个图标,我们仅实现了第一个:红外遥控功能。其他都没有实现,大家可以自由发挥,添加属于自己的东西。

双击第一个图标,会弹出一个红外遥控的小窗口,用于接收红外信号,此时,我们将红外遥控对准开发板的红外接收头,并按下按钮,就可以在红外遥控窗口里面显示键值、按键次数、符号等信息。如图64.2.22.1右侧图片所示。

按KEY0可以退出红外遥控功能,返回应用中心主界面,再按一次KEY0按键就可以返回主界面。

64.2.23 短信
双击主界面的短信图标,开始读取GSM模块SIM卡中的短信,如图64.2.23.1所示:
image035.png
图64.2.23.1 短信读取中和读取到的短信

上图中,左侧显示了短信读取的进程,当所有短信读取完成后,显示读取到的短信,如图右侧图片所示。可以看出,SIM卡中总共有4条短信,其中:前面有黑色实心圆标志的代表是未读的短信,前面有空心圆的表示读取过了的短信。
当短信内容大于一行宽度后,会采用走字的方式显示,起到预览的作用。在该界面,按KEY0可以返回系统主界面。

点击左下角的选型按钮,可以选择对短信的操作,如图64.2.23.2所示:
image037.png
图64.2.23.2 短信操作和新建信息

上图中,左侧图片显示的短信操作总共有三个操作:新建信息、阅读信息和删除信息。其中阅读信息也可以在读取到的短信界面,直接双击短信条目进行阅读。

右侧图片显示了新建信息的界面,新建信息是,收件人是可以编辑的,我们先输入收件人,比如1008611,然后就可以进行对话了。如图64.2.23.3所示:
image039.png
图64.2.23.3 短信对话和重新回到读取到的短信界面

图中左侧的短信对话界面,有点类似现在手机的短信方式,收发双方的内容都显示在一个区域,可以通过滚动条拖动查看。图中是我们发数字给1008611,以及1008611对我们做出的应答。每当一条短信发送成功后,蜂鸣器会有“滴”的一声短叫,提示发送成功。如果接受到新的短信,蜂鸣器会有“滴、滴”的两声短叫,然后新收到的短信(收件人发过来的)会实时添加到我们的对话中来。

图中,右侧图片是我们同1008611进行短信对话之后,按KEY0,返回到读取到的短信界面。从图中可以看出,短信条数比图64.2.23.1中多了很多,说明收到了很多短信,且都已经自动添加到读取到的短信中来了。

短信的其他操作,就不详细介绍了,和手机基本一模一样,大家自己摸索下就可以了。

至此,开发板的综合测试实验就介绍完了。其中,参考了不少网友的代码,对这些网友表示衷心的感谢,同时我也希望我们的这个代码,可以让大家有所受益,能开发出更强更好的产品。

综合实验整个代码编译后大小为545K左右(-O0优化),代码量是非常的大,希望大家慢慢理解,各个攻破,最后祝大家身体健康、学习进步!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 17:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表