检测倾斜变化,非常适用于安防系统、防盗设备和运动触发警报
A
A
硬件概览
它是如何工作的?
Tilt 5 Click 基于 OncQue 的 RBS240100T,这是一款球接触式倾斜传感器开关,旨在为各种应用提供精确的倾斜检测。该 Click 板™ 利用 RBS240100T 传感器的特性,能够在 360° 全方位范围内可靠地检测 45° 倾斜,使其成为运动触发和方向感应的高度通用解决方案。该传感器默认处于常开开关状态,确保在未检测到倾斜事件时保持低功耗。其出色的电气性能和可靠性表现包括 50mΩ 的接触电阻和 50MΩ 的绝缘电阻,同时能够承受最大 10mA 的接触电流,使其适用于各种低功耗和节能应用。该 Click 板™ 非常适用
于安全和防护系统,例如防盗和防篡改设备,在需要检测未经授权的移动时尤为重要。它还适用于报警系统、地震检测装置以及通过仅在检测到运动时激活来优化功耗的唤醒机制。该 Click 板™ 采用了 MIKROE 新推出的 "Click Snap" 设计,与标准 Click 板™ 版本不同,该功能允许传感器区域通过断开 PCB 独立移动,从而为多种应用实现更大的灵活性。借助 Snap 特性,RBS240100T 可通过直接访问 1-8 号引脚信号独立运行。此外,Snap 部分包含一个固定螺丝孔位置,使用户能够将 Snap 板固定在所需的位置。Tilt 5
Click 通过一个单独的 INT 引脚与主 MCU 进行通信,作为倾斜检测信号输出。当检测到倾斜事件时,传感器通过 INT 引脚生成信号,并由主 MCU 进行进一步处理。除了 INT 引脚,该板还配备了一个橙色 LD2 LED 指示灯,用于直观显示倾斜检测状态,确保用户获得实时反馈,提高其实用性。该 Click 板™ 可通过 VCC SEL 跳线选择 3.3V 或 5V 逻辑电压,以确保 3.3V 和 5V 兼容的 MCU 能够正确使用通信线路。此外,该 Click 板™ 配备了包含易于使用的函数和示例代码的库,可作为进一步开发的参考。
功能概述
开发板
32L496GDISCOVERY Discovery 套件是一款功能全面的演示和开发平台,专为搭载 Arm® Cortex®-M4 内核的 STM32L496AG 微控制器设计。该套件适用于需要在高性能、先进图形处理和超低功耗之间取得平衡的应用,支持无缝原型开发,适用于各种嵌入式解决方案。STM32L496AG 采用创新的节能架构,集成
了扩展 RAM 和 Chrom-ART 图形加速器,在提升图形性能的同时保持低功耗,使其特别适用于音频处理、图形用户界面和实时数据采集等对能效要求较高的应用。为了简化开发流程,该开发板配备了板载 ST-LINK/V2-1 调试器/编程器,提供即插即用的调试和编程体验,使用户无需额外硬件即可轻松加载、调
试和测试应用程序。凭借低功耗特性、增强的内存能力以及内置调试工具,32L496GDISCOVERY 套件是开发先进嵌入式系统、实现高效能解决方案的理想选择。
微控制器概述
MCU卡片 / MCU

建筑
ARM Cortex-M4
MCU 内存 (KB)
1024
硅供应商
STMicroelectronics
引脚数
169
RAM (字节)
327680
使用的MCU引脚
mikroBUS™映射器
“仔细看看!”
Click board™ 原理图

一步一步来
项目组装
软件支持
库描述
Tilt 5 Click 演示应用程序使用 NECTO Studio开发,确保与 mikroSDK 的开源库和工具兼容。该演示设计为即插即用,可与所有具有 mikroBUS™ 插座的 开发板、入门板和 mikromedia 板完全兼容,用于快速实现和测试。
示例描述
本示例演示了 Tilt 5 Click 的使用方式,该 Click 板™ 通过球开关传感器检测倾斜运动。示例程序初始化设备,并持续监测倾斜状态,记录 ACTIVE(活动) 和 IDLE(静止) 状态之间的变化。
关键功能:
tilt5_cfg_setup- 初始化 Click 配置结构为默认值。tilt5_init- 初始化所有必要的引脚和外设,以支持该 Click 板™ 的正常运行。tilt5_get_out_pin- 读取并返回 OUT 引脚 的逻辑状态。
应用初始化
初始化日志记录器,并配置 Tilt 5 Click。
应用任务
持续读取倾斜状态并记录变化。当检测到倾斜时,状态变为 "ACTIVE",当传感器恢复默认位置时,状态变为 "IDLE"。
开源
代码示例
完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio。 应用程序代码也可以在MIKROE的GitHub账户中找到。
/*!
* @file main.c
* @brief Tilt 5 Click Example.
*
* # Description
* This example demonstrates the use of the Tilt 5 Click board, which detects
* tilt motion using a ball switch sensor. The example initializes the device
* and continuously monitors the tilt state, logging changes between active
* and idle states.
*
* The demo application is composed of two sections:
*
* ## Application Init
* Initializes the logger and configures the Tilt 5 Click board.
*
* ## Application Task
* Continuously reads the tilt state and logs changes. The state toggles between
* "ACTIVE" when a tilt is detected and "IDLE" when the sensor is in its default
* position.
*
* @author Stefan Filipovic
*
*/
#include "board.h"
#include "log.h"
#include "tilt5.h"
static tilt5_t tilt5; /**< Tilt 5 Click driver object. */
static log_t logger; /**< Logger object. */
void application_init ( void )
{
log_cfg_t log_cfg; /**< Logger config object. */
tilt5_cfg_t tilt5_cfg; /**< Click config object. */
/**
* Logger initialization.
* Default baud rate: 115200
* Default log level: LOG_LEVEL_DEBUG
* @note If USB_UART_RX and USB_UART_TX
* are defined as HAL_PIN_NC, you will
* need to define them manually for log to work.
* See @b LOG_MAP_USB_UART macro definition for detailed explanation.
*/
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
tilt5_cfg_setup( &tilt5_cfg );
TILT5_MAP_MIKROBUS( tilt5_cfg, MIKROBUS_1 );
if ( DIGITAL_OUT_UNSUPPORTED_PIN == tilt5_init( &tilt5, &tilt5_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}
void application_task ( void )
{
static uint8_t old_state = TILT5_STATE_IDLE;
uint8_t state = tilt5_get_out_pin ( &tilt5 );
if ( state != old_state )
{
old_state = state;
if ( TILT5_STATE_ACTIVE == state )
{
log_printf( &logger, "State: ACTIVE\r\n\n" );
}
else
{
log_printf( &logger, "State: IDLE\r\n\n" );
}
Delay_ms ( 100 );
}
}
int main ( void )
{
/* Do not remove this line or clock might not be set correctly. */
#ifdef PREINIT_SUPPORTED
preinit();
#endif
application_init( );
for ( ; ; )
{
application_task( );
}
return 0;
}
// ------------------------------------------------------------------------ END
额外支持
资源
类别:运动
































