简单说来,使用C8051微控制器开发套件、加速度计评估板和来自Silicon Labs的Simplicity Studio IDE,便可以快速、轻松地制作运动检测报警器。

下面显示了报警器的组件连接图。

Motion_Detector_F1

图1:运动检测报警器组件连接图。

部件清单

制作运动检测报警器需要用到下面一些部件:

• C8051F930开发套件
• 电路测试板
• 跳线盒
• 加速度计评估板
• 音频报警器
• LED泛光灯(2个)
• N沟道MOSFET(2个)

开发套件

C8051F930开发套件带安装的C8051F930微控制器,用作C8051F93x-C8051F92x MCU系列微控制器的开发平台,如图2所示。

Motion_Detector_F2

图2:C8051F930开发套件 C8051F930微控制器(红框内)。

C8051F930微控制器的功能:

• 单电源:0.9至3.6V
• 高速8051μC内核
• 10位ADC
• 4352字节内部数据RAM
• 64kB闪存
• 24端口I/O
• SMBus,I2C,2x SPI,UART
• 片上调试

加速度计评估板

加速度计评估板(STEVAL-MKI135V1)的核心是加速度计本身(LIS2DH),具有如下特点:

• 超低功耗
• 三轴装置
• 数字I2C/SPI串行接口
• 用户动态可选满量程±2g/±4g/±8g/±16g
• 可以在下面的基础上配置为产生最多两个中断信号:
  - 移动检测(用户可选阈值)
  - 无移动检测(用户可选阈值)
  - 自由落体事件

Motion_Detector_F3

图3:加速度计评估板。

音频报警器

所选的音频压电报警器是一个慢颤音报警器,谐振频率范围为2500至3500 Hz。其尺寸较小,在100cm处可产生100dB刺耳的声音(驱动电压为12V)。该报警器有自己的内部驱动电路,工作在5V至15V电压,而我们有12V可用。

Motion_Detector_F4

图4:音频报警器。

LED泛光灯

选择特殊的LED泛光灯的原因只是因为我的实验室里有现成的。而且,它们是它们采用12V电源供电,便于在我们的12V系统中使用。

Motion_Detector_F5

图5:12V LED泛光灯。

连接组件

微控制器使用SPI协议配置加速度计,以检测X轴和Y轴上非常轻微的加速度。如果在任一轴上检测到加速度,加速度计将产生中断信号,而微控制器会检测到的这些中断信号。接收到中断信号后,微控制器接通两个外部FET,音频报警器和两个LED泛光灯将通电。报警器和指示灯将保持通电状态,直到微控制器复位。

在微控制器开发套件通电之前,请务必做如下配置:

跳线:

• J11:VBAT到WALL_PWR
•  J12:VDD到VIO
• J17:VBAT_PIN到VBAT

开关:

• SW4:设置为“2 CELL”
• 电源开关(SW5)置于“OFF” - 稍后再更

电缆:

•  将带状电缆调试适配器连接到J9
•  将USB调试适配器连接到PC
•  将AC/DC电源适配器连接到P2

线路板组件

图1显示了各种组件之间的连接。可以看出,两个N沟道FET用作低端开关:当FET的栅极被拉高(3.3V)时,FET允许电流从漏极流到源极。图中还显示了加速度计和微控制器之间的4线SPI连接。

一旦组件全部连接,就可以编写固件了。

编写固件

使用Simplicity Studio IDE非常简单。在运行Simplicity Studio IDE之前,请确保开发套件已连接到PC并通电。

IDE一旦运行,应该能自动找到C8051F930评估套件。

在Simplicity Studio将C8051F930开发套件显示为当前产品之后,进行相关配置。

提示:在制作报警器的过程中,我在配置“时钟相位”和“时钟脉冲”时遇到了问题。加速度计LIS2DH数据表并没提到“时钟相位”和“时钟极性”,它只是简单地说:“SPC是串行端口时钟并由SPI主机控制。当CS为高电平(无传输)时,高电平停止。SDI和SDO分别为串口数据输入和输出,这些线路在SPC的下降沿被驱动,在SPC的上升沿被捕获。”

实际上,在我使用SPI总线分析仪之前,这个问题真把我难住了。

如果您遇到任何SPI总线问题,或者您的加速度计或任何其它SPI或I2C设备无法正常工作,我强烈建议您考虑购买SPI总线分析仪。我使用的是Saleae逻辑分析仪(24MHz,8通道)。

完成对微控制器的配置更改后,必须添加所有代码才能正确配置加速度计。

配置寄存器0x20后,只有X和Y轴被使能。寄存器0x32设置当Int1信号被驱动时的加速度阈值(设置为256mg),256mg阈值设置是使运动检测器对轻微加速度敏感的值。

编译、加载代码……测试系统

所有代码被修改好之后,将代码下载到微控制器(点击下载所有代码 )。确保加速度计放在相当水平的表面。运行代码之后,轻轻敲击加速度计评估板(或测试板),应该能听到报警声同时两个LED泛光灯点亮。

至此,运动检测报警器就做好了。

原文见Nick Davis的Build Your Own Motion Detection System Using an Accelerometer

20160630000123