一、简介
本项目设计初衷是为了提醒自己 出门不要忘记带东西,“身”、“手”、“钥”、“钱” 身份证,手机,钥匙,钱包等。现在好像都在线支付了。钱包都不带了。后期可以播报天气等,提醒带伞等等。本来想着使用 安信可24G雷达传感器模块人体微动感应检测模组“Rd-03” 来做的。由于手上刚好有一个"HC-SR501红外感应电子模块传感器" 模块,凑合也能用。等买的新雷达模块到了再替换。
硬件:
红外感应模块:HC-SR501
语音合成播报模块:XFS5152
开发板:Ai-M61-32S
GPIO 全称 General Purpose Input Output(通用输入 / 输出),博流系列芯片的 GPIO 外设主要有以下功能。
普通输入输出带上下拉 复用功能带上下拉 模拟功能 外部中断(上升沿、下降沿、高电平、低电平) 硬件消抖 驱动能力控制
bl mcu sdk 的引脚配置方式分为两种。
部分代码
- #include "bflb_mtimer.h"
- #include "board.h"
- #include "bflb_gpio.h"
- #include "locale.h"
- #define DBG_TAG "MAIN"
- #include "log.h"
- struct bflb_device_s *gpio;
- int main(void)
- {
- board_init();
- gpio = bflb_device_get_by_name("gpio");
- bflb_gpio_init(gpio, GPIO_PIN_13, GPIO_INPUT | GPIO_PULLDOWN | GPIO_SMT_EN | GPIO_DRV_0);
- bflb_gpio_init(gpio, GPIO_PIN_12, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
- while (1) {
- bool isH = bflb_gpio_read(gpio, GPIO_PIN_13);
- if(isH){
- bflb_gpio_set(gpio, GPIO_PIN_12);
- }else{
- bflb_gpio_reset(gpio, GPIO_PIN_12);
- }
- LOG_F("是否有人=%d\r\n", isH);
- bflb_mtimer_delay_ms(500);
- }
- }
复制代码
Step1: 构建项目并实现 Ai-M61-32S 与 人体红外感应模块 HC-SR501 连接,并获取状态值。
默认灯光是关闭的。
默认状态
检测有人经过时,红灯亮起。
|