南京邮电大学自动化学院
实验报告
实验名称:基于STM32的简易数字照相机系统
课程名称: 智能仪器
所在专业: 测控技术与仪器
学生姓名: 方川
班级学号: B12050507
任课教师: 徐国政
2014 /2015 学年第 二 学期
实验地点:教五-214
摘要:本系统采用STM32F103ZET6作为系统的CPU,通过CMOS摄像头OV7725做图像采集,将采集到的一帧图像实时显示在3.2寸TFT液晶屏上。利用按键中断控制拍照动作,将拍到的照片存储到SD卡中,在这之前SD卡要移植好FATFS文件系统。经测试证明,本系统可以实现稳定的拍照、存储、显示功能。
一、实验目的
1、理解所用传感器的工作原理,掌握传感器的使用;
2、掌握STM32F10X系列单片机的使用和控制电路的设计;
3、掌握FATFS文件系统的原理和移植方法。
4、掌握bmp格式图片的数据结构和显示方法。
二、实验内容
基于STM32F103ZET6最小系统板,外接OV7725图像传感器,在TFT液晶屏上实时显示摄像头采集到的图像,并实现拍照功能,要求能够将拍到的照片保存到SD卡中,在电脑上能查看图片。
三、实验设备
(1)计算机 1台
(2)STM32F103ZET6 1片
(3)OV7725图像传感器模组 1个
(4)3.2寸TFT液晶显示屏 1个
四、实验硬件原理
1、系统结构框图
N
Y
图1 系统框图
2.所用芯片或模块介绍
2.1 STM32简介
STM32F103xx增强型系列使用高性能的ARM/Cortex-M3/32位的RISC内核,工作频率为72MHz,内置高速存储器(高达512K字节的闪存和64K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。所有型号的器件都包含16个12位的ADC 、8个通用16位定时器,还包含标准和先进的通信接口:多达2个I2C和3个SPI、3个USART、1个USB和1个CAN,还有本次用到的1个SDIO。STM32F103xx增强型系列工作于-40℃至+105 ℃的温度范围,供电电压2.0V至3.6V,一系列的省电模式保证低功耗应用的要求。
完整的STM32F103xx增强型系列产品包括从36脚至144脚的五种不同封装形式;根据不同的封装形式,器件中的外设配置不尽相同。下面给出了该系列产品中所有外设的基本介绍。
这些丰富的外设配置,使得STM32F103xx增强型微控制器适合于多种应用场合:
·电机驱动和应用控制 ;
·医疗和手持设备 ;
·PC外设和GPS平台;
·工业应用:可编程控制器、变频器、打印机和扫描仪 ;
·警报系统,视频对讲,和暖气通风空调系统 ;
图2、STM32F10X系列资源一览表
图3、STM32F103ZET6管脚图
2.2 OV7725简介
本摄像头模组采用CMOS感光芯片OV7725,能达到每秒30帧的速率,增加了先进先出的存储器AL422B,从而减轻了MCU压力。MCU只需控制从FIFO芯片中读取图像数据。该摄像头模块可通过SCCB总线编程,可输出整帧、子采样、取窗口等方式的8位影像数据。用户可以控制图像质量、数据格式、传输方式,所有图像处理过程如伽马曲线、白平衡、饱和度都可以通过SCCB总线设定。
AL422B这个先进先出的DRAM数据存储器主要用于存放完整的一帧OV7725输出的图像数据。AL422B有384KBytes的存储空间,支持VGA,CCIR,NTSC,PAL等视频格式的分辨率大小。AL422B还提供了读写复位,读写时钟引脚。因此在设计硬件系统过程中,由OV7725的像素信号输出时钟PCLK作为AL422B的写输入时钟,由STM32F103ZET6的通用IO提供读时钟。
图4、OV7725摄像头模组电路图
2.3 SD卡、SD协议简介
本系统通过SDIO外设与SD卡进行通信。SD/SDIO MMC卡主机模块(SDIO)在AHB外设总线和多媒体卡(MMC)、SD存储卡、SDIO卡和
CE-ATA设备间提供了操作接口。与SD存储卡规格版本2.0全兼容,支持良种不同的数据总线模式:1位(默认)和4位。
图5、SDIO模块框图
图6、SD卡引脚定义
下面分析下SD卡初始化的流程:
图7、SD卡初始化
2.4 FATFS文件系统简介
FatFs是一个通用的文件系统模块,用于在小型嵌入式系统中实现FAT文件系统。 FatFs 的编写遵循ANSI C,因此不依赖于硬件平台。它可以嵌入到便宜的微控制器中而不需要做任何修改。
本系统采用的是FatFs R0.09版本。 FatFs 提供一系列基本的文件操作函数,在ff9.c中,又因为FatFs源码不支持中文,所以我们需要添加一个中文的字库到工程中cc936.c:
因为FatFs模块完全与磁盘I/O层分开,因此需要diskio.c中的的函数来实现底层物理磁盘的读写与获取当前时间。底层磁盘I/O模块并不是FatFs的一部分,并且必须由用户提供。资源文件中也包含有范例驱动。
3、系统功能
3.1、TFT显示摄像头采集到的图像
OV7725一场中断发生后,MCU控制OV7725数据写入FIFO,第二场中断来临时,MCU从FIFO中读取上一帧图像数据,并送与TFT显示。
图8、TFT显示图像
3.2、按键中断控制拍照功能
中断处理拍照键,并用LED2来表明是否拍照完成,LED1表明按键按下。若LED2熄灭,则拍照完成。
图9、拍照
3.3、SD卡存储照片
先将每帧截图转换成bmp格式图片,SD卡存储截图,并对图片进行编号。
图10、bmp图片编号存储
图11、电脑查看截图
4.电路图和实物图
图12、 系统实物图
五、软件程序
5.1程序流程图
5.2 各模块代码分析
由于本系统代码框架过大,只贴出main()函数源码。其他各.c源码见附件。
int main(void)
{
uint8_t file_name[20];
uint8_t num = 0;
/* 按键初始化 */
EXTI_PC13_Config();
/* LED 初始化 */
LED_GPIO_Config();
LED1_OFF;
LED2_OFF;
/* 液晶初始化 */
LCD_Init();
/* 设置液晶扫描方向为 左下角->右上角 */
Lcd_GramScan( 2 );
LCD_Clear(0, 0, 320, 240, BACKGROUND);
/* 初始化sd卡文件系统,因为汉字的字库和bmp图片放在了sd卡里面 */
Sd_fs_init();
/* ov7725 gpio 初始化 */
Ov7725_GPIO_Config();
XCLK_init_ON();
/* ov7725 寄存器配置初始化 */
while(Ov7725_Init() != SUCCESS);
/* ov7725 场信号线初始化 */
VSYNC_Init();
Ov7725_vsync = 0;
while(1)
{
if( Ov7725_vsync == 2 )
{
FIFO_PREPARE; /*FIFO准备*/
ImagDisp();/*采集并显示*/
Ov7725_vsync = 0;
}
/* screen_flag 在按键中断函数里面置位 */
if( screen_flag == 1 )
{
sprintf((char *)&file_name,"/camera%d",num++);
/* 设置液晶扫描方向为 右下角->左上角 */
Lcd_GramScan( 3 );
Screen_shot(0,0,320,240,file_name);
/* 截图完毕LED2灭 */
LED2_ON;
screen_flag = 0;
}
}
}
六、总结及心得体会
通过一个星期的准备,终于完成了这个简易照相机的制作。由于之前从未接触过Fatfs文件系统,所以在这一个星期的时间基本上都在学习这个文件系统的相关知识,其实没必要那么详细的了解这个文件系统。所谓文件系统,就是磁盘管理各种数据的一种方法,而我们只要知道如何使用这些API函数管理我们的文件即可。
其实Fatfs的移植很简单,由于本系统很简单,所以我们只将ff9.c、diskio.c、cc936.c移入系统中,而要改的部分只有diskio.c中的disk_initialize()、disk_read()、disk_write()三个函数,只要将SD卡的初始化和读写函数添加进即可。
经过本次实验,我更加意识到各数据手册和帮助文档的重要性,比如OV7725许多操作都必须严格对照他的datasheet来设置,SD卡操作的各命令要参照SD 2.0协议来编程、而Fatfs文件系统的帮助文档则能帮助我们如何使用这些API。TFT的使用就更不用说了。总而言之,datasheet要读,要认真读,而且要读英文原版的datasheet,因为翻译成中文的数据手册都是被人们用烂的,想要创新,不可能用别人家玩烂的东西。
实验报告
EDX全称Energy Dispersive X-Ray Spectrometer,属于X射线荧光分析仪(XRF)的一种。此仪器配置新型滤光片,Pb、Cd等的灵敏度比以往机型提高2倍,无需前处理,非破坏性,快速分析(1~5分钟);可准确的定性分析,元素测定范围宽:11Na~92U;精确的定量分析,根据不同元素,可精确到:1.9PPM~3.7PPM;配备全自动开关的大样品室,适应固体、液体、粉体、光盘、薄膜等各种类型样品的检测。
实验名称EDX720仪器测样品
实验样品 内存卡芯片
仪器介绍 能量色散x荧光光谱仪EDX720以独特的产品配置、功能齐全的测试软件、友好的操作界面来满足RoHS的成分检测的需要,人性化的设计,使测试工作更加轻松完成 性能特点 可自动切换准直器和滤光片 专业RoHS检测 内置信噪比增强器,可有效提高仪器信号处理能力25倍以上 智能RoHS软件,专业开发,与仪器相得益彰 任意多个可选择的分析和识别模型 多变量非线性回收程序 技术指标 测量元素:从硫到铀等 75 种元素 元素含量分析范围:1ppm-99.99% RoHS指令规定的有害元素(限 Cd/Pb/Cr/Hg/Br)检测限最高达 1ppm 测量时间:60-300s 能量分辨率:150±5eV 管压:5-50 kV 管流:50-1000μA 温度范围:15-30℃ 电源:交流 220V±5V(建议配置交流净化稳压电源) 重量:60kg 自动选择滤光片 多种准直器自动自由切换 电制冷硅针半导体检测器 加强金属元素感度分析器 三重安全保护模式 相互独立的基体效应校正模型 多变量非线性回归程序 任意多个可选择的分析和识别模型 一次可同时分析 24 个元素 标准配置 信噪比增强器 自动切换准直器和滤光片,分别针对不同样品 独特的光路增强系统,方便用户更好地观察样品 测量 RoHS,电镀镀层,全元素分析,一机多用 电制冷硅针半导体检测器,摒弃液氮制冷 特别开发测量软件,操作界面十分友好 内置高清晰摄像头,方便用户随时检测样品 精准的移动平台,更精确方便地调节样品位置 高贵时尚的外型,带给您全新的视觉冲击 样品腔尺寸:605mm×395mm×100mm 应用领域 电子电器行业,电镀行业、各种材质,塑胶,木头,玻璃等等物质中的有害元素检测 电镀行业检测。
仪器工作原理X射线管发射一次射线到被测样品上,激励被测样品,样品中的每一种元素会放射出二次X射线,探测系统测量这些放射出来的二次X射线的能量及数量,仪器软件将探测系统所收集到的信息转换成样品中各种元素的种类及数量。从物理化学的角度阐述其检测原理:X射线是电磁波谱中的某特定波长范围内的电磁波,其特性通常用能量描述,X射线荧光实际上就是原子内产生变化所致的现象。一个稳定的原子结构由原子核及核外电子组成。这些核外电子围绕着原子核按不同轨道运转,它们按不同的能量分布在不同的电子壳层,分布在同一壳层的电子具有相同的能量,当具有高能量的入射(一次)X射线与原子发生碰撞时,会打破原子结构的稳定性,处于低能量电子壳层(如:K层)的电子更容易被激发而从原子中释放出来,电子的逐放会导致该电子壳层出现相应的电子空位。这是处于高能量的电子(如:L层)会跃迁到该低能量电子壳层来补充相应的电子空位。由于不同电子壳层之间存在着能量差距,这些能量上的差以二次X射线的形式释放出来,不同的元素所释放出来的二次X射线具有特定的能量特性。这一过程就是我们所说的X射线荧光(XRF)。工作原理图示如下:
EDX怎样检测出各元素及其含量呢?
说明:
A)横坐标表示能量差,纵坐标表示元素的浓度
B)浓度越大,峰值越高
C)一般情况下,只用α或β值既能判断出是哪个元素,然后通过峰值高度计算其含量。
D)一般情况下,Cs以前的元素要用:与K层的能量差值来判断,如:Ka、Kb值;Ba以后的元素则用:与L层的能量差值来判断,如:La、Lb值;
E)但是,Pb需要用La、Lb两个值来判断,因为Pb较容易受其它元素值得干扰。
样品的基本要求面积:金属直径3MM以上 非金属直径10MM以上
厚度:金属一次成型1MM以上 非金属一次成型3MM以上
平整度:样品一次成型高度3MM以上 非一次成型高度5MM以上
仪器操作过程
1、打开仪器的总电源,打开仪器的变压、稳压电源开关,打开分析仪主机的电源开关。打开打印机电源。打开显示器电源,打开电脑主机电源。
2、双击屏幕上的“EDX Software”图标,启动测试软件。屏幕上显示出“EDX-主程序窗口,点击“维护”选项,在维护窗口中点击“仪器初始化”,仪器会自动进行调整,完成仪器的初始化。
3、点击“仪器设置”出现“Instrument Setup”窗口,注意“HT检测器状态”为NO,X射线的电压为50Kv,点击“执行设置”启动X光管。需要30~60分钟的预热时间。
4、打开样品盖,把样品平放在测试孔上,预热后点击“开始”进行校正大约需要10分钟。
5、回到“EDX-主程序”窗口,把需要测试的样品摆放在测试孔上,双击桌面上的“EyeXRF2K”图标,打开测试观察软件。观察样品的对位情况。
6、点击“Save As...”为图片命名,点击确认。
7、点击“开始”按钮进行测试。测试完毕后,自动显示出测试结果。
操作注意事项
一、安装环境:1)温度:10~30℃(温度变化应控制在2℃每小时)
2) 湿度:40~70%
3)由于仪器使用到氮气(液态时为-196℃,起冷却作 用),因此安装仪器的房间必须要通风良好;
4)安装仪器的地方要远离妨碍仪器安全的因素。特别 是仪器安放在有电磁干扰的地方,仪器的分析精度会下降。
二、安装使用遵循的原则:
1)在仪器操作时温度变化应很小
2)仪器不应受到空调器的直接吹拂
3)仪器不应受到阳光直射
三、使用时重点注意: 1)使用前,应首先检查EDX内的液氮容量,(装满为三升,平时应经常检查,及时补充,第一次加液氮或是液氮耗尽后补加,均需要等待30分钟,又以便机器充分冷却。)
2)液氮-196度,加入液氮时要小心轻拿轻放,以防止液氮飞溅到皮肤上而被冻伤。添加液氮时必须配戴好手套,切记裸手操作。
3)仪器启动三十分钟以后,才可以进行正常操作。
4)注意EDX的电源必须为100V,其它相关设备为220V。
4)仪器使用完后,依次关闭计算机、显示器、打印机,十分钟后才可以关闭EDX电源。
样品数据 附在试验报告最后
数据分析 数据报告共分三部分
第一部分:相关信息
第二部分:测量条件(Measurement Condition)
第三部分:定量分析结果(Quantitative Result)
实验结论 通过EDX仪器对此样品的分析,可以清晰的看出内存卡芯片的主要组成成分有Cu、Ba、Sr、Ca、Cr、Mo,其中占最多的是Cu。这和我们想象中的差距很大,并且通过此实验,了解并学会了使用EDX仪器,使用此仪器,在今后需要材料的具体组成成分时,就会轻而易举,既省时间又省力气。
智能仪器仪表实验报告姓名蔺涛学号指导教师黄伟军20xx年6月14号实验一AD转换0809应用一实验目的1掌握AD转换与单片机的接口…
电子线路课程设计第1页共15页智能仪器设计报告学号专业日期姓名电子信息工程20xx1114南京理工大学紫金学院电光系电子线路课程设…
南京邮电大学自动化学院实验报告实验名称基于STM32的简易数字照相机系统课程名称智能仪器所在专业测控技术与仪器学生姓名方川班级学号…
实验课程智能仪器原理与设计实验项目基于MCS51单片机的直流电压测量显示仪设计专业班级学号学号姓名指导教师实验日期20xx年05月…
智能仪器设计实验报告题目生物医疗仪器实验姓名学号专业测控技术与仪器班级日期20xx1129地点12407A一实验目的1心电测试学习…
计算机控制系统实验报告姓名罗才宝学号0953505008指导教师专业年级所在院系完成日期实验一DA数模转换实验一实验目的1掌握数模…
人工智能第二次实验报告一实验题目遗传算法的设计与实现二实验目的通过人工智能课程的学习熟悉遗传算法的简单应用三实验内容用遗传算法求解…
人工智能实验报告实验名称模糊方法实现电热箱的闭环控制实验模糊逻辑控制FuzzyLogicControl简称模糊控制FuzzyCon…
人工智能实验报告ArtificialIntelligence老师刘丽珏班级物联网1201学号0909120xx5姓名钱晓雪日期20…
智能控制技术实验报告书学院专业学号姓名实验一模糊控制与传统PID控制的性能比较一实验目的通过本实验的学习使学生了解传统PID控制模…