2579|1

530

帖子

4

TA的资源

一粒金砂(高级)

楼主
 

【GD32F350 都市青年家庭安防卫士 】第三贴 人体感应模块设计 [复制链接]

本帖最后由 传媒学子 于 2018-9-9 23:37 编辑

【GD32F350 都市青年家庭安防卫士 】第三贴 人体感应模块设计



一、设计内容

     本周学习GD32的GPIO输入,然后采用热释电传感器进行了安防卫士的人体感应模块设计。




二、设计方法

      热释电模块采用HC-SR505传感器模块,如下图所示。电源输入5V,OUT输出3.3V/0V电平,当有人在3M范围内出现时,会输出高电平,否则输出低电平。采用兆易创新生产的GD32作为主控制器,监控传感器的输出信号,判断人是否出现;当人出现时,通过串口、WIFI等向主人告警,本例采用串口和板载LED告警状态。
   
热释电传感器模块

     为叙述方便,板载LED从上到下,依次为LED1, LED2, LED3。LED1代表系统状态指示,LED2/LED3为告警显示。

     本实验,采用家用瓷碗遮盖传感器,作为无人状态模拟
     系统设计图如下:

     系统流程图如下:
     

三、实验现象
     系统正常时,LED1代表系统状态,闪亮为正常,不亮、常亮为异常。

     LED2/LED3不亮,代表无人闯入;常亮,代表有人闯入。

    3.1 系统实物图和正常情况实物图


串口输出:





   3.2  有人闯入实物图

串口输出:

3.3 GPIO输入主要代码
  1. int main(void)
  2. {

  3.            unsigned char hc_sr_flag = 0;
  4.      systick_config();
  5.        
  6.     /* initilize the hc_sr505 sensor module */
  7.           gpio_deinit(GPIOC);
  8.           
  9.          /* initilize the LEDs, USART and key */
  10.     gd_eval_led_init(LED1);
  11.     gd_eval_led_init(LED2);
  12.     gd_eval_led_init(LED3);
  13.     gd_eval_com_init(EVAL_COM1);
  14.        
  15.           gpio_mode_set(GPIOC, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, GPIO_PIN_6); //sensor output PC6
  16.           rcu_periph_clock_enable(RCU_GPIOC); // must set
  17.           rcu_periph_clock_enable(RCU_CFGCMP);
  18.        
  19.     gd_eval_key_init(KEY_WAKEUP, KEY_MODE_GPIO);
  20.        
  21.    
  22.    printf("\r\n***安防模式已启动***");
  23.     rcu_ckout_config(RCU_CKOUTSRC_CKSYS, RCU_CKOUT_DIV1);
  24.     while (1){
  25.                        
  26.                         if(1 == gpio_input_bit_get(GPIOC, GPIO_PIN_6))
  27.                         {
  28.                                 gd_eval_led_on(LED2);
  29.                           gd_eval_led_on(LED3);
  30.                                 if(hc_sr_flag == 0)
  31.                                 {
  32.                                         printf("\r\n警告,有人闯入!");
  33.                                         hc_sr_flag = 1;
  34.                                 }
  35.                         }
  36.                         if(0 == gpio_input_bit_get(GPIOC, GPIO_PIN_6))
  37.                         {
  38.                                 gd_eval_led_off(LED2);
  39.                           gd_eval_led_off(LED3);
  40.                                 hc_sr_flag = 0;
  41.                         }

  42.     }
  43. }
复制代码





        

注意: 启用输入模式,必须启用对应的时钟:如启用PC6输入,需

  1. gpio_mode_set(GPIOC, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, GPIO_PIN_6); //sensor output PC6
  2. rcu_periph_clock_enable(RCU_GPIOC); // must set
  3. rcu_periph_clock_enable(RCU_CFGCMP);
复制代码



四、实验感悟与下一步安排


        本实验,主要纠结的地方就是时钟,以前玩8051,FPGA或者其它单片机的时候,有时不需要启用时钟,而arm等处理器,需要开启GPIO的时钟,采用正常使用输入和输出,因此读懂源码和多查阅datasheet是很有必要的。

       稍后,将会调试摄像头传感器,这个对我自己是有挑战的,争取加油完成达到预定的目标。
myprogram.rar (11.3 MB, 下载次数: 12)







LED位置.JPG (13.8 KB, 下载次数: 0)

LED位置.JPG
此帖出自GD32 MCU论坛

最新回复

nmg
摄像头传感器调整的怎么样啦,遇到问题可以及时来大赛专区交流  详情 回复 发表于 2018-9-22 22:59
点赞 关注
 

回复
举报

5260

帖子

239

TA的资源

管理员

沙发
 
摄像头传感器调整的怎么样啦,遇到问题可以及时来大赛专区交流
此帖出自GD32 MCU论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表