美文网首页
A2. Gsensor调试

A2. Gsensor调试

作者: 拂去尘世尘 | 来源:发表于2020-06-22 13:37 被阅读0次

    问题: 机器G-Sensor方向不对,Y轴与现实相反,导致相机拍照存下的照片上下颠倒。

    解决: G-sensor传感器 : BMA222E

    需要修改文件 : 配合hwmsen_helper.c修改dts中gsensor方向。

    路径 :
    dts: kernel/arch/arm64/boot/dts/[target].dts
    hwmsen_helper.c:kernel/drivers/misc/mediatek/hwmon/hwmsen/hwmsen_helper.c

    在hwmsen_helper.c中找到

    struct hwmsen_convert map[] = {
        { { 1, 1, 1}, {0, 1, 2} },
        { {-1, 1, 1}, {1, 0, 2} },
        { {-1, -1, 1}, {0, 1, 2} },
        { { 1, -1, 1}, {1, 0, 2} },
     
        { {-1, 1, -1}, {0, 1, 2} },
        { { 1, 1, -1}, {1, 0, 2} },
        { { 1, -1, -1}, {0, 1, 2} },
        { {-1, -1, -1}, {1, 0, 2} },
     
    };
    

    以第一组为例:

    {1,1,1}表示对应x,y,z对应的正方向;

    {0,1,2}分别对应的机器的x,y,z坐标轴,0:x ;1:y;2:z。

    dts中direction表示选择驱动中选第几组作为方向参数。

     /* sensor standardization */
            cust_accel@0 {
            compatible = "mediatek,bma222e_new";
            i2c_num = <2>;
            i2c_addr = <0x18 0 0 0>;
            direction = <6>; //0->6
            power_id = <0xffff>;
            power_vol = <0>;
            firlen = <0>;
            is_batch_supported = <0>;
            };
    

    这里选的是{ { 1, -1, -1}, {0, 1, 2} } 。选第几组需要根据实际来定。

    具体选择哪一个步骤:

    首先选一组参数作为参考,烧入机器中,查看x,y,z是否错位,以及值是否正确。

    若x,y,z错位,则调整{0,1,2}的位置;若x,y,z值不对,则修改对应x,y,z{1,-1,1}的正负

    然后以此为参考,选择正确的一组作为参数。以上的排列组合并不完整,若没有需要的,则自己添加。

    最后,需要G-sensor校准,实际情况下,x,y,z的值一般不会超过9.8。将机器初始位置摆正确,进入G-sensor校准即可。

    相关文章

      网友评论

          本文标题:A2. Gsensor调试

          本文链接:https://www.haomeiwen.com/subject/xwdxfktx.html