0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RK3566搭载Android11加速度和陀螺仪调试

sXx1_industio 来源:深圳触觉智能 作者:深圳触觉智能 2023-03-31 17:37 次阅读

前言

加速度和陀螺仪传感器可用于运动跟踪及设备姿态检测等功能,本文基于IDO-SBC3566智能主板介绍MPU6500六轴传感器在Android11系统的适配方法。

IDO-SBC3566基于瑞芯微RK3566研发的一款高性能低功耗的智能主板,采用四核A55,主频高达1.8GHz,专为个人移动互联网设备和AIOT设备而设计,内置了多种功能强大的嵌入式硬件引擎,为高端应用提供了优异的性能,支持几乎全格式的4K编解码,内置3DGPU,能够完全兼容OpenGL ES1.1/2.0/3.2、OpenCL2.0和Vulkan1.0.特殊的MMU2D硬件引擎,此外,凭借其强大的兼容性,可以轻松地转换基于TensorFlow/MXNet/PyTorch/Caffe等一系列框架的网络模型。

支持Android,LinuxOpenHarmony,麒麟OS等多种操作系统,可广泛应用于平板、教育平板、带屏音箱、词典笔、云终端、视频会议系统等安卓/Linux类应用方案,以及其他带屏消费类、或轻量级AI应用场景。

产品规格书:IDO-SBC3566-V1B 产品手册

硬件分析

d940a1e4-cfa5-11ed-bfe3-dac502259ad0.png

根据硬件原理图设计确认PMU6500通过I2CCPU连接。

内核配置

按照硬件I2C总线号及中断引脚信息,配置dts

&i2c3 {
status = "okay";

mpu6500_acc: mpu_acc@68 {
compatible = "mpu6500_acc";
reg = <0x68>;
pinctrl-0 = <&mpu6500_irq_gpio>;
irq-gpio = <&gpio1 RK_PB0 IRQ_TYPE_EDGE_RISING>;
irq_enable = <0>;
poll_delay_ms = <30>;
type = ;
layout = <2>;
status = "okay";
};

mpu6500_gyro: mpu_gyro@68 {
compatible = "mpu6500_gyro";
reg = <0x68>;
irq_enable = <0>;
poll_delay_ms = <30>;
type = ;
layout = <2>;
status = "okay";
};
};

&pinctrl {
mpu6500 {
mpu6500_irq_gpio: mpu6500-irq-gpio {
rockchip,pins = <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};

内核配置中开启以下配置

GYRO_MPU6500 [=y]
MPU6500_ACC [=y]

编译内核烧录镜像至主板可看到以下打印日志,则说明驱动加载成功并识别到设备。

console:/ # dmesg | grepmpu
[ 1.321088] gsensor_mpu6500 3-0068: sensor_register_device: mpu6500_acc, id = 29
[ 1.321111] i2c i2c-3: sensor_probe: mpu6500_acc,000000002d6ea1c1
[ 1.321151] gsensor_mpu6500 3-0068: sensor_chip_init:mpu6500_acc:devid=0x0,ops=0x000000000903c4c1
[ 1.517448] gsensor_mpu6500 3-0068: sensor_irq_init:usepolling,delay=30ms
[ 1.517564] gsensor_mpu6500 3-0068: sensor_misc_device_register mma8452_daemon
[ 1.517583] gsensor_mpu6500 3-0068: sensor_probe:initialized ok,sensor name:mpu6500_acc,type:2,id=29x0a
[ 2.672631] gyro_mpu6500 3-0068-1: sensor_register_device: mpu6500_gyro, id = 58
[ 2.672647] i2c i2c-3: sensor_probe: mpu6500_gyro,0000000058545d17
[ 2.672670] gyro_mpu6500 3-0068-1: sensor_chip_init:mpu6500_gyro:devid=0x0,ops=0x00000000608437a5
[ 2.757813] gyro_mpu6500 3-0068-1: sensor_irq_init:usepolling,delay=30ms
[ 2.758046] gyro_mpu6500 3-0068-1: sensor_misc_device_register gyrosensor
[ 2.758071] gyro_mpu6500 3-0068-1: sensor_probe:initialized ok,sensor name:mpu6500_gyro,type:4,id=58x0a
[ 4.788677] wait_for_keymaster: Computing HMAC with params { (seed: , nonce: 0811b2df836030705cced8b1a949fdd6c9896eeda9c5ea7253d514cfd7d6b72) }
[ 4.788697] wait_for_keymaster: Computing HMAC forOpteeKeymasterDevice from Rockchip SecurityLevel:TRUSTED_ENVIRONMENT HAL: android.hardware.keymaster@4.1::IKeymasterDevice/default
[ 10.072684] gsensor_mpu6500 3-0068: failed toreadaccel offset data from storage
[ 10.073214] gyro_mpu6500 3-0068-1: failed toreadgyro offset data from storage
[ 36.442413] gsensor_mpu6500 3-0068: setsensor poll time to66ms
[ 36.533897] gsensor_mpu6500 3-0068: sensor on: starting poll sensor data 62ms

查看input设备

# cat/proc/bus/input/devices

d95225fe-cfa5-11ed-bfe3-dac502259ad0.png

从上面的内核启动日志中可以看到以下提示,因为芯片还没经过校准无法从存储器中读取加速度偏移数据。

[ 10.072684] gsensor_mpu6500 3-0068: failed toreadaccel offset data from storage
[ 10.073214] gyro_mpu6500 3-0068-1: failed toreadgyro offset data from storage

命令行校准方法如下:

#Gsensor
echo 1> /sys/class/sensor_class/accel_calibration
#GYRO
echo 1> /sys/class/sensor_class/gyro_calibration

查看校准值:

cat /sys/class/sensor_class/accel_calibration
cat /sys/class/sensor_class/gyro_calibration

如果无法查看校准值,则说明校准失败,可以打印 kernel log 确定失败原因。校准成功后,校准的值会保存到emmc 的 vendor storage 里面,不会被擦除,下次开机自动生效。

Android配置开启Sensor支持

需要修改Android编译设备配置,添加加速度计和陀螺仪的支持。

RK356X配置文件为:device/rockchip/rk356x/BoardConfig.mk

BOARD_GRAVITY_SENSOR_SUPPORT := true
BOARD_GYROSCOPE_SENSOR_SUPPORT := true
加速度和陀螺仪测试

可使用Sensor Sense软件来测试传感器的数据

d9642a9c-cfa5-11ed-bfe3-dac502259ad0.png

如下为重力变化测试,翻转硬件,重力曲线随之变化

d976f79e-cfa5-11ed-bfe3-dac502259ad0.png

安装Gyroscope Test_1.0.5_Apkpure软件,运行模拟画面来确定当前主板传感器的坐标系,测试界面如下图所示。在内核驱动 drivers/input/sensors/sensor-dev.c 中定义了9个坐标系,在软件模拟确认后,修改dts中的layout值来选择坐标系矩阵。

d9fe7732-cfa5-11ed-bfe3-dac502259ad0.png






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2522

    文章

    47965

    浏览量

    739626
  • Android系统
    +关注

    关注

    0

    文章

    55

    浏览量

    13184
  • 陀螺仪传感器

    关注

    1

    文章

    26

    浏览量

    13602
  • 六轴传感器
    +关注

    关注

    1

    文章

    17

    浏览量

    16181
  • RK3566
    +关注

    关注

    0

    文章

    124

    浏览量

    3848

原文标题:【技术分享】RK3566搭载Android11加速度和陀螺仪调试

文章出处:【微信号:industio,微信公众号:深圳触觉智能】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    关于陀螺仪加速度传感器

    楼主新人,准备看看三轴的加速度传感器和陀螺仪,然后又看到了MPU-6050(整合了陀螺仪和三轴加速度传感器),想向大家请教一下加速度传感器和
    发表于 03-13 19:10

    请问为什么陀螺仪需校准而加速度计不需?

    我看了原子四轴的代码。发现上电后需要对陀螺仪数据进行统计,计算出样本方差和均值。陀螺仪的均值作为零偏。为何加速度计不需求方差验证?为何加速度计不需要修正零偏?
    发表于 07-04 04:35

    介绍加速度计和陀螺仪的数学模型和基本算法

    本帖翻译自IMU(加速度计和陀螺仪设备)在嵌入式应用中使用的指南。这篇文章主要介绍加速度计和陀螺仪的数学模型和基本算法,以及如何融合这两者,侧重算法、思想的讨论
    发表于 08-06 08:04

    介绍加速度计和陀螺仪的数学模型和基本算法

    本帖翻译自IMU(加速度计和陀螺仪设备)在嵌入式应用中使用的指南。这篇文章主要介绍加速度计和陀螺仪的数学模型和基本算法,以及如何融合这两者,侧重算法、思想的讨论介绍本指南旨在向兴趣者介
    发表于 08-09 06:46

    初识加速度计与陀螺仪

    如何认识这个加速度呢?加速度计的原理是什么?什么是陀螺仪
    发表于 09-28 08:50

    如何结合加速度传感器和陀螺仪的数据呢

    加速度计检测什么?陀螺仪检测什么?如何将传感器ADC读取的数据转换为物理单位?如何结合加速度传感器和陀螺仪的数据呢?
    发表于 11-12 07:36

    MPU-6050模块三轴加速度+三轴陀螺仪简介

    MPU-6050模块三轴加速度+三轴陀螺仪简介模块引脚说明名称接线简介MPU-6050集成了3轴MEMS陀螺仪,3轴MEMS加速度计,以及一个可扩展的数字运动处理器DMP,可用IIC接
    发表于 02-10 07:17

    为什么RK3566 Android11编译后打包固件会出错呢

    为什么RK3566 Android11编译后打包固件会出错呢?是什么原因?怎样去解决呢?
    发表于 03-02 06:26

    RK3566 git拉取android11的源码后进行编译报错如何解决

      你好:  我买的rk3566的开发板,git拉取android11的源码后进行编译报下面的错误,麻烦看下。
    发表于 07-19 15:47

    RK3566 Android 11添加自定义service并提供jar包资料分享

    1、rk3566 Android 11添加自定义service并提供jar包  环境  基于rk3566 android
    发表于 09-06 18:05

    RK3566 dhcp_utils.c文件移植到android11目录下提示函数没有定义的错误这个怎么回事

    Hi:rk3566 android11的sdk目录/system/core/libnetutils下没有dhcp_utils.c文件,在rk3288 android5的这个路径下有这个
    发表于 10-09 17:30

    加速度陀螺仪测试上位机软件

    蓝宙电子加速度陀螺仪测试上位机软件蓝宙电子加速度陀螺仪测试上位机软件蓝宙电子加速度陀螺仪测试上位
    发表于 01-21 14:45 41次下载

    瑞芯微RK3566平板产品已通过Android 11 GMS认证

    瑞芯微RK3566平板产品已通过Android 11 GMS认证 瑞芯微电子 现在搭载瑞芯微RK3566的平板产品,已正式通过
    的头像 发表于 04-30 14:58 1498次阅读

    ROC RK3566 PC固件Android11固件

    电子发烧友网站提供《ROC RK3566 PC固件Android11固件.txt》资料免费下载
    发表于 09-21 14:55 31次下载
    ROC <b class='flag-5'>RK3566</b> PC固件<b class='flag-5'>Android11</b>固件

    RK Android11系统SD卡启动方法

    本文基于PurplePiOH3566主板,介绍Android11源码的修改,获得可从SD卡启动的Android11系统镜像。PurplePiOH作为一款兼容树莓派的开源主板,采用瑞芯微RK35
    的头像 发表于 09-04 16:18 592次阅读
    <b class='flag-5'>RK</b> <b class='flag-5'>Android11</b>系统SD卡启动方法