借助我们的先进 9 轴传感技术,为您的设备赋予理解和响应自然人类运动的能力,使交互变得直观且丰富。
A
A
硬件概览
它是如何工作的?
9DOF 3 Click 基于 Bosch Sensortec 的 BMX055,这是一个集成的 9 轴传感器,用于检测运动、旋转和磁方位。它包括一个三轴低重力加速度传感器、一个三轴角速度传感器和一个三轴地磁传感器的全部功能。BMX055 可以在手机、手持设备、计算机外设、人机接口、虚拟现实功能和游戏控制器中感应方向、倾斜运动、加速度、旋转、冲击、振动和方位。BMX055 允许在一个设备内对三个垂直轴上的角速度、加速度和地磁场进行精确测量。可编程的测量范围是:加速度计为 ±2g、±4g、±8g、16g,陀螺仪为 ±125°/s、±250°/s、±500°/s、±1000°/s、±2000°/s,磁力计为 1300µT(x,y)、
2500µT(z)。加速度计、陀螺仪和磁力计的分辨率分别为 0.98mg、0.004°/s 和 0.3µT。每个传感器都可以配置几种电源模式,适用于低功耗应用和节能。传感器的数据通过选定的数字接口(SPI 或 I2C)直接读取地址获取。特色 IC 具有 16 位陀螺仪、12 位加速度计和全性能地磁传感器,以 2 的补码表示提供数据。测量数据补偿和校准以及温度传感器用于减少温度波动对敏感组件的影响也是片上功能。9DOF 3 Click 支持两种串行数字接口协议,作为外设与主机设备进行通信:SPI 和 I2C。通过焊接 SMD 跳线到适当位置选择活动接口。当 Click 板™ 处于 I2C 模式时,可以通过 SMD 跳线配
置 I2C 地址。标有 ADDR SEL 的 SMD 跳线用于设置 BMX055 的 I2C 地址。BMX055 模块为每个传感器支持四个中断引脚:Accel_INT、Gyro_INT、Mag_INT 和 DRDY。传感器中断可以通过一个十字形跳线选择并路由到 Mikrobus INT 引脚。点击顶部还有一个头针,分出了所有可用的传感器中断引脚。此 Click 板™ 只能在 3.3V 逻辑电压电平下工作。在使用不同逻辑电平的 MCU 之前,板子必须进行适当的逻辑电压电平转换。此外,它还配备了一个包含函数和示例代码的库,可用作进一步开发的参考。
功能概述
开发板
Curiosity PIC32 MZ EF 开发板是一个完全集成的 32 位开发平台,特点是高性能的 PIC32MZ EF 系列(PIC32MZ2048EFM),该系列具有 2MB Flash、512KB RAM、集成的浮点单元(FPU)、加密加速器和出色的连接选项。它包括一个集成的程序员和调试器,无需额外硬件。用户可以通过 MIKROE
mikroBUS™ Click™ 适配器板扩展功能,通过 Microchip PHY 女儿板添加以太网连接功能,使用 Microchip 扩展板添加 WiFi 连接能力,并通过 Microchip 音频女儿板添加音频输入和输出功能。这些板完全集成到 PIC32 强大的软件框架 MPLAB Harmony 中,该框架提供了一个灵活且模块化的接口
来应用开发、一套丰富的互操作软件堆栈(TCP-IP、USB)和易于使用的功能。Curiosity PIC32 MZ EF 开发板提供了扩展能力,使其成为连接性、物联网和通用应用中快速原型设计的绝佳选择。
微控制器概述
MCU卡片 / MCU

建筑
PIC32
MCU 内存 (KB)
2048
硅供应商
Microchip
引脚数
100
RAM (字节)
524288
使用的MCU引脚
mikroBUS™映射器
“仔细看看!”
Click board™ 原理图

一步一步来
项目组装
软件支持
库描述
该库包含 9DOF 3 Click 驱动程序的 API。
关键功能:
c9dof3_check_communication- 此功能检查加速度计、陀螺仪和磁力计的设备 IDc9dof3_get_data- 此功能读取加速度计、陀螺仪和磁力计的 X 轴、Y 轴和 Z 轴数据c9dof3_generic_read- 此功能从指定寄存器读取数据
开源
代码示例
完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio。 应用程序代码也可以在MIKROE的GitHub账户中找到。
/*!
* \file
* \brief 9Dof3 Click example
*
* # Description
* This Click introduces a small-scale absolute orientation sensor in the class of low-noise
* 9-axis measurement units. It comprises the full functionality of a triaxial, low-g acceleration
* sensor, a triaxial angular rate sensor and a triaxial geomagnetic sensor. All three sensor
* components can be operated and addressed independently from each other. 9DOF 3 Click offers
* both SPI and I2C digital interfaces
*
* The demo application is composed of two sections :
*
* ## Application Init
* Initialization driver enables - I2C or SPI, check communication,
* set default configuration for accelerometer, gyroscope and magnetometer, also write log.
*
* ## Application Task
* This is an example which demonstrates the use of 9DOF 3 Click board.
* Measures and displays Accel, Gyroscope and Magnetometer values for X-axis, Y-axis and Z-axis.
* Results are being sent to the Usart Terminal where you can track their changes.
* All data logs write on USB uart changes for every 1 sec.
*
* \author MikroE Team
*
*/
// ------------------------------------------------------------------- INCLUDES
#include "board.h"
#include "log.h"
#include "c9dof3.h"
// ------------------------------------------------------------------ VARIABLES
static c9dof3_t c9dof3;
static log_t logger;
c9dof3_accel_t accel_data;
c9dof3_gyro_t gyro_data;
c9dof3_mag_t mag_data;
// ------------------------------------------------------ APPLICATION FUNCTIONS
void application_init ( void )
{
log_cfg_t log_cfg;
c9dof3_cfg_t cfg;
/**
* 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.
c9dof3_cfg_setup( &cfg );
C9DOF3_MAP_MIKROBUS( cfg, MIKROBUS_1 );
c9dof3_init( &c9dof3, &cfg );
Delay_ms ( 100 );
if ( c9dof3_check_communication( &c9dof3 ) == ( C9DOF3_ACC_COMM_SUCCESS |
C9DOF3_GYRO_COMM_SUCCESS |
C9DOF3_MAG_COMM_SUCCESS ) )
{
log_printf( &logger, " Communication OK \r\n" );
}
else
{
log_printf( &logger, " Communication ERROR \r\n" );
log_printf( &logger, " Reset the device \r\n" );
log_printf( &logger, "-------------------------\r\n" );
for ( ; ; );
}
log_printf( &logger, "-------------------------\r\n" );
c9dof3_default_cfg( &c9dof3 );
Delay_ms ( 100 );
}
void application_task ( void )
{
c9dof3_get_data ( &c9dof3, &accel_data, &gyro_data, &mag_data );
log_printf( &logger, " Accel X: %d | Gyro X: %d | Mag X: %d\r\n", accel_data.x, gyro_data.x, mag_data.x );
log_printf( &logger, " Accel Y: %d | Gyro Y: %d | Mag Y: %d\r\n", accel_data.y, gyro_data.y, mag_data.y );
log_printf( &logger, " Accel Z: %d | Gyro Z: %d | Mag Z: %d\r\n", accel_data.z, gyro_data.z, mag_data.z );
log_printf( &logger, "------------------------------------------\r\n" );
Delay_ms ( 1000 );
}
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
额外支持
资源
类别:运动
































