<h1 align="center">基于图像检测的自动报警系统</h1>
![](https://img.shields.io/badge/build-passing-green)
![](https://img.shields.io/badge/Language-C-yellow)
![](https://img.shields.io/badge/type-course-yellow)</br>
KeyWords:**STM32**、**OV7725**、**嵌入式**</br>
Partner:[王小石](https://github.com/w1246410140)</br>
# 📒目的与意义</br>
>为了更好的理解嵌入式系统的原理,提高小组成员之间分工与合作的能力以及应用设计的创新能力,我们选择了合作实现基于图像检测的自动报警系统这个课题。
通过本次课程设计,比较清晰地理解了关于`摄像头模块`、`FLASH读写`、`图片显示`、`触摸屏模块`、`LCD模块`、`按键模块`、`触摸板模块`、`外部SRAM模块`、`光敏传感器`、`温度传感器`、`LED`、`蜂鸣器`、`外部SD卡读写`的工作原理,学会了如何控制这些外设,如何去编程利用这些模块来实现自己想要的效果,在本次设计中,补全了在课程学习中没有注意到以及掌握较为薄弱的地方,并学习了图像检测与处理的基础知识.
</br>
# 📔课程设计思路及具体流程</br>
+ 设计思路</br>
 基于我们的选题——基于图像检测的自动报警系统,我们设计通过OV7725摄像头采集图像信息,对图像进行处理检测,一但检测到闯入者,则发出报警信息。</br>
![](https://picturestr.oss-cn-shanghai.aliyuncs.com/img/20200308001652.png)
</br>
# 各模块划分
</br>
 程序以LCD模块、按键模块、触屏模块、FLASH模块、外部SRAM模块、光敏模块、蜂鸣器等硬件为基础,以摄像头模块作为核心实现:</br>
>1.LCD模块在屏幕上输出信息
>2.按键模块检测用户输入
>3.外部SRAM模块存储动态图像数据
>4.光敏模块检测环境光亮度并输出提示信息
>5.摄像头模块采集图像信息
>6.程序对图像进行处理与检测
>7.蜂鸣器模块输出报警信息
</br>
 再另外附加触屏模块实现密码登录和用户交互以及FLASH实现图像抓拍的存储功能,使可视化界面展示了被保护物品的所有时间维度的状态,一旦被盗或者发生移动之后,可以实现 FLASH图像抓拍,并且存储到主机里面。</br>
![](https://picturestr.oss-cn-shanghai.aliyuncs.com/img/20200308001742.png)
</br>
# 📘关键操作函数的实现</br>
+ 开机界面的设计</br>
 (1)所用硬件</br>
 所用硬件资源如下:</br>
>1)串口
>2)TFTLCD模块
>3)SD卡
>4)SPI FALSH
 本次实验使用的是容量为8G的SD卡支持`SPI/SDIO驱动`,战舰`STM32F103`自带了标准的 `SD`卡接口,使用 `STM32F1`自带的`SDIO`接口驱动,`4位模式`,最高通信速度可达`24Mhz`,最高每秒可传输数据`12M`字节,所以够满足我们的实验要求。SD卡根目录下新建一个`PICTURE`文件夹用来存放JEPG、JPG、BMP或GIF图片。</br>
 开机的时候先初始化SD卡,初始化成功之后,注册两个工作区(一个给SD卡用,一个给`SPI FLASH`用),然后获取SD卡的容量和剩余空间,并显示在LCD模块上,最后等待`USMART`输入指令进行各项测试。</br>
(2)设计思路</br>
 首先在`alert_system`项目中新建一个`PICTURE`文件夹,里面有`bmp.c`、`bmp.h`、`tjpgd.c`、`tjpgd.h`、`integer.h`、`gif.c`、`gif.h`、`piclib.c`和`piclib.h`
等 9 个文件,其中`bmp.c` 和 `bmp.h`用于实现对`bmp`文件的解码;`tjpgd.c` 和 `tjpgd.h`用于实现对 `jpeg/jpg` 文件的解码;`gif.c`和`gif.h`用于实现对gif文件的解码。从网上下载一幅图片拷贝于SD卡中,图片不易过大,因为对于战舰`STM32`闪存只有521KB,图片过大会导致界面加载过慢。本实验图片通过PS进行处理,添加自己的系统名和作者。</br>
 在`alert_system`项目中还添加了`FATFS`、`MALLOC`、`TEXT`文件,将每个分组的源文件根据路径进行添加,编译后再根据错误的执行进行添加。`FATFS`
是一个FAT文件系统模块,`MALLOC`里面包含计算机对内存资源的分配和使用的函数,可以更加高效和快速的分配内存资源。</br>
 通过`f_opendir()`打开图片文件夹,给图片的索引、文件名、长文件缓存分配内存,判断获取的数据是不是图片,如果是就`ai_load_picfile()`显示相应的图片。</br>
 (2)具体程序设计实现</br>
 ①打开文件夹</br>
```Java
while(f_opendir(&picdir,"0:/PICTURE"))//打开图片文件夹
{
Show_Str(30,170,240,16,"PICTURE IS WRONG!",16,0);
delay_ms(200);
LCD_Fill(30,170,240,186,WHITE);//清除显示
delay_ms(200);
}
```
 ②内存分配,出错则打不开文件
```Java
while(picfileinfo.lfname==NULL||pname==NULL)//内存分配出错
{
Show_Str(30,170,240,16,"memory share wrong!",16,0);//内存分配失败
delay_ms(200);
LCD_Fill(30,170,240,186,WHITE);//清除显示
delay_ms(200);
}
```
 ③图片显示</br>
```Java
ai_load_picfile(pname,0,0,lcddev.width,lcddev.height,1);//显示图片
```
 2.用户登陆界面
(1)所用硬件
>1)指示灯LED1
>2)串口
>3)TFTLCD模块(含触摸屏)
>4)SPI FLASH
</br>
 指示灯`LED1`每30次循环闪烁一次,让输入的密码显示到屏幕上,同时输出到串口。`TFTLCD`模块用于实现`ASCII`字符和彩色的显示并在串口打印`LCD`控制器ID,同时在LCD上面显示,`FLASH`用于缓存数据。</br>
 (2)设计思路</br>
 我们是用`LCD_DrawLine()`画图函数将键盘、提示框和输入框画出。当用户输入密码时,如果密码超过指定长度则会报`“password is out-length!!”`,可以通过`CANCEL`进行取消这次输入。当用户输入的密码和自己设置的密码一直则会进入开机界面。</br>
 (3)具体程序设计</br>
 ①用户输入键盘画图函数</br>
```Java
LCD_DrawLine(45,200,145,200);</br>
LCD_DrawLine(145,200,145,250);</br>
LCD_DrawLine(145,250,45,250);</br>
LCD_DrawLine(45,250,45,200);</br>
LCD_ShowString(95,220,100,20,16,"1");
```
 依次算出12个按键的间隔和坐标输出上述函数,再构建一个输入框和提示框,键盘就完成了。</br>
 ②获得键盘值函数</br>
```Java
if(tp_dev.x[0]<=145&&tp_dev.x[0]>=45&&tp_dev.y[0]<=250&&tp_dev.y[0]>=200){//按下“1”
key=1;
delay_ms(20);
}
```
 根据`tp_dev.x[0]`和`tp_dev.y[0]`限制键盘的坐标值,当用户点击这个区域,就让这个`key`获得这个值。</br>
 ③防止用户连触点击而发生输入不对的情况函数
```Java
if(key){
if(key_x!=255){
if(key_x==key){
key=0;
}else{
key_x=key;
}
}else{
key_x=key;
}
}
```
 `key_x`记录上一次用户点击的键值,`key`记录这次用户的键值,如果没有按键按下并且这次的按键和上次的按键相等(发生了连触),就将此次的键值变为零。如果没有按键按下,则让这次的按键等于上一次,这样就能保证点击一次屏幕只能发生一次点击。</br>
④用户输入超过六位警告函数</br>
```Java
POINT_COLOR=RED;
LCD_ShowString(140,165,250,20,16,"password is out-length!!");
POINT_COLOR=BROWN;
```
在指定的用户警告框中输入,给定一个地址、一个长度、高度、字号进行输出</br>
⑤CANCEL键函数</br>
```Java
if(key_index==12){//删除
password_length=0;
inputstr[0]='\0';
input_pwd=0;
LCD_Fill(192,118,288,148,WHITE);
LCD_Fill(137,163,387,180,WHITE);
}
没有合适的资源?快使用搜索试试~ 我知道了~
嵌入式-图像检测自动报警系统.zip
共393个文件
c:84个
h:76个
d:60个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 178 浏览量
2023-12-24
09:52:59
上传
评论
收藏 19.42MB ZIP 举报
温馨提示
图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检
资源推荐
资源详情
资源评论
收起资源包目录
嵌入式-图像检测自动报警系统.zip (393个子文件)
alert_system.uvguix.Administrator 92KB
OV7725_OV7670.axf 850KB
cc936.c 697KB
cc949.c 546KB
cc950.c 433KB
cc932.c 240KB
ff.c 148KB
stm32f10x_tim.c 104KB
lcd.c 80KB
ILI93xx.c 78KB
sdio_sdcard.c 60KB
stm32f10x_flash.c 59KB
stm32f10x_rcc.c 49KB
stm32f10x_adc.c 45KB
stm32f10x_i2c.c 43KB
stm32f10x_can.c 43KB
tjpgd.c 40KB
main.c 38KB
stm32f10x_usart.c 36KB
system_stm32f10x.c 35KB
stm32f10x_fsmc.c 34KB
ccsbcs.c 29KB
stm32f10x_spi.c 29KB
stm32f10x_dma.c 28KB
stm32f10x_sdio.c 27KB
stm32f10x_gpio.c 22KB
stm32f10x_dac.c 18KB
core_cm3.c 16KB
gif.c 15KB
usmart.c 15KB
touch.c 14KB
bmp.c 14KB
stm32f10x_cec.c 11KB
usmart_str.c 11KB
timer.c 10KB
app4.c 10KB
w25qxx.c 9KB
stm32f10x_pwr.c 8KB
stm32f10x_rtc.c 8KB
stm32f10x_bkp.c 8KB
delay.c 7KB
ov7725.c 7KB
fattester.c 7KB
gt9147.c 7KB
fontupd.c 7KB
misc.c 7KB
stm32f10x_exti.c 7KB
ov7670.c 6KB
diskio.c 6KB
fattester.c 6KB
exti.c 6KB
stm32f10x_wwdg.c 5KB
malloc.c 5KB
piclib.c 5KB
mycc936.c 5KB
stm32f10x_dbgmcu.c 5KB
mycc936.c 5KB
usart.c 5KB
adc.c 5KB
ft5206.c 5KB
stm32f10x_iwdg.c 5KB
sram.c 5KB
ott2001a.c 5KB
syscall.c 4KB
tpad.c 4KB
text.c 4KB
app3.c 4KB
stmflash.c 4KB
exfuns.c 4KB
sccb.c 3KB
sccb.c 3KB
24cxx.c 3KB
stm32f10x_crc.c 3KB
spi.c 3KB
ctiic.c 3KB
myiic.c 3KB
stm32f10x_it.c 2KB
key.c 2KB
usmart_config.c 2KB
app2.c 2KB
led.c 1KB
lsens.c 1KB
app1.c 1020B
sys.c 758B
beep.c 727B
unicode.c 386B
main.crf 387KB
tjpgd.crf 352KB
sdio_sdcard.crf 348KB
gif.crf 347KB
bmp.crf 346KB
fattester.crf 346KB
lcd.crf 343KB
piclib.crf 341KB
fontupd.crf 340KB
touch.crf 338KB
gt9147.crf 332KB
stm32f10x_tim.crf 331KB
exfuns.crf 330KB
text.crf 329KB
共 393 条
- 1
- 2
- 3
- 4
资源评论
天天501
- 粉丝: 596
- 资源: 4666
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功