使用倾斜传感器为视障人士设计水平仪

描述

本文描述了视障人士水平仪的完整设计。它使用ADXL312加速度计测量水平和垂直平面上的重力,并在加速度计完全水平或垂直时发出蜂鸣器。

它还可以用作倾斜传感器,以调平汽车应用中的拖车,其中水平仪可能位于远离骑师轮的地方。它还用作汽车稳定系统或无人机的子电路。

介绍

Amar Latif在出现在名人大厨之后在英国烹饪界引起了轰动。然而,阿马尔不仅是一位好厨师,他还经营着自己的旅游公司,是一位励志演说家,曾徒步穿越南美洲大部分地区,同时也是一名电视名人。这个人的超能力是没有尽头的吗?

可悲的是,有。阿玛尔95%是盲人。随着技术的进步,世界努力跟上它的步伐,对于视障人士来说,战斗更加艰难。大多数技术进步都要求我们在屏幕前花费更多时间。对于视障人士来说,过多的屏幕时间仍然是一个“如果”。

如果技术可以用来丰富视力障碍者的生活,这只能是一件好事。由于只有18%的登记盲人是完全失明(或“黑盲”),这使得绝大多数人即使无法分辨细节,也至少有一些视力。因此,盲人精神水平的想法诞生了。

设计大纲

倾斜传感器设计基于ADXL312,ADXL312是一款低电流加速度计,可在x、y和z轴上测量高达±1.5 g,并通过SPI总线读取数据。该器件采用5 mm×5 mm封装,待机模式下功耗为0.1 μA。它的测量分辨率为10位,因此ADXL312可以检测每个轴上低至±2.9 mg的变化。ADXL312将每个轴的引力数据存储为高达±511的二进制补码值,微控制器读取这些数据并将其显示在单行16个字符的LCD显示屏上。图1显示了ADXL312的检测轴。

存储器

图1.ADXL312的检测轴。

该部件的满量程读数为 1.5 g,因此 1 g 的重力读数为该读数的 2/3。因此,如果ADXL312正好处于电平,则z轴寄存器应读取2/3满量程,而x和y轴应读取零。同样,当ADXL312完全垂直时,x轴读数应为2/3满量程,而y轴和z轴读数应为零。如果ADXL312开始远离任何轴倾斜,则根据倾斜角度的正弦,最大读数开始减少,而其他轴上的读数开始增加。

ADXL312内部

ADXL312是一款微机电系统(MEMS),由构建在硅晶圆顶部的多晶硅表面微加工结构组成。多晶硅弹簧将结构悬挂在晶圆表面上,并提供对加速力的抵抗力。

固定硅手指与手指交错在移动的防撞质量上,以创建可测量特性的差分电容器。加速度使光束偏转并使差分电容器不平衡,导致传感器输出的幅度与加速度成正比。结构如图2所示。

存储器

图2.ADXL312的内部工作原理。

ADXL312可以使用I2C 或 SPI,x、y 和 z 数据存储在六个内部 8 位寄存器中。它还具有许多其他功能,包括 32 级 FIFO、两个多功能中断、偏移寄存器、机械自检和自动休眠模式。

灵性关卡设计

倾斜传感器的完整电路图如图3所示。

存储器

图3.视障人士水平仪的完整示意图。

ADXL312的最大电源电压为3.6 V,而LCD显示屏和蜂鸣器需要5 V,因此电路的主输入为5 V,使用3.3 V、150 mA线性稳压器(ADP121)为ADXL312、微控制器和E2存储器供电。

微控制器上的端口B引脚2(CAL引脚)由10 kΩ电阻拉高。它还具有跳线,使其能够接地。启动时,微控制器询问CAL引脚的状态,如果该引脚被跳线拉低,则读取x、y和z寄存器,从零中减去这些读数,然后将结果加载到ADXL312内部的失调寄存器中,并将其存储在外部E2存储器25AA040中。ADXL312会自动将失调寄存器的读数添加到任何未来的测量中,无需处理器交互,从而消除校准的失调。

如果移除跳线,则CAL引脚被拉高,并绕过校准程序。失调读数直接从E2存储器读取,并加载到ADXL312的失调寄存器中。因此,在制造过程中,可以将水平仪安装在校准夹具中,CAL引脚保持低电平,可以校准器件,并将偏移值存储在E2存储器中。校准后,移除跳线,在随后上电时,询问E2存储器,并将校准后的失调读数加载到ADXL312的失调寄存器中。

然后,软件对每个轴执行八个读数,并将结果平均,然后显示在 16 个字符的 LCD 显示屏上。显示每 100 毫秒更新一次。

图4显示,当每个传感器接近其零读数时,可实现最大灵敏度。这是正弦波斜率最陡峭的地方,因此对于倾斜的任何变化,重力读数的最大变化。

存储器

图4.显示g力随角度的正弦变化。

幸运的是,当每个传感器完全水平且传感器读数接近于零时,水平仪只需要测量倾斜度。

该软件旨在同时校准 x 轴和 z 轴。很容易将零件放置在水平平台上并校准倾斜传感器的 x 轴。但是,此时z轴将承受1 g的力,因此需要获取z读数,与1 g的满量程计数进行比较,并将任何误差加载到偏移寄存器中。通过在水平和垂直平面上进行校准,可以实现对倾斜传感器每个轴的更精确校准,但这需要两阶段校准和软件修改。

表1显示了二进制补码数据的示例。正数遵循传统的二进制表示法。负数使用最高有效位 (MSB) 作为符号位;因此,正数的 MSB 等于零,负数的 MSB 等于 1。

 

十进制 二元的
+511 01 1111 1111
+1 00 0000 0001
0 00 0000 0000
-1 11 1111 1111
-511 10 0000 0001

 

两者的正数补码可以通过反转所有位,然后加 1 来找到。因此,当从计数 0 转换为计数 –1 时,代码从 00 0000 0000 更改为 11 1111 1111。

软件读取 x 和 z 寄存器,如果任一寄存器的值为 0 或 1023 (11 1111 1111),它将端口 B 的位 5 设置为高电平,这将打开晶体管 Q1 并发出 5 V 蜂鸣器的声音。当倾斜传感器完全水平时,x 轴的读数为 0 或 1023,当完全垂直时,z 轴的读数为 0 或 1023。只有当两个寄存器都不等于 0 或 1023 时,蜂鸣器才会停止响起。

准确性和进一步发展

仅考虑一个轴,当重力作用于该轴时,最大读数为1 g,当零件倾斜90°时,该读数降至0 g,如图5所示。

存储器

图5.使用重力读数计算倾斜角度。

因此,施加的引力由方程决定

存储器

其中 Ø 是相对于水平方向测量的倾斜角度。如果零件可以测量到2.9 mg的分辨率,则可以解析为0.17°的角度。很难确定标准气泡液位的精度数字,因为很难确定气泡的确切位置。然而,从实验中,1.2米水平仪的末端可以移动约3.2毫米(两个未填充的PCB的宽度!),然后气泡看起来偏离中心。这相当于大约 0.15° 的角度,表明我们可以用电子倾斜传感器代替气泡液位,分辨率损失很小。

如果需要更高的精度,ADXL313在1 g范围内提供11位分辨率。接口和寄存器集与ADXL312非常相似,因此软件不需要太多修改。ADXL355具有更低的噪声和更高的分辨率。

ADXL312的噪声密度为340 μg/√Hz,带宽越低噪声越好。该器件的带宽可编程(从3.125 Hz到1600 Hz,默认设置为50 Hz)。虽然降低带宽可以改善噪声,但这也会降低显示器的更新速率。对于此设计,带宽设置为6.25 Hz,这意味着均方根噪声为850 μg。还可以通过获取更多读数并对其进行平均来降低噪声。

进一步的改进是让LCD读数显示度数。但是,如果要将正弦和余弦包含在软件中,这需要使用 C 库中的数学函数。这些功能对于低端微控制器来说占用了太多的代码空间。使用泰勒级数展开可以实现与正弦函数的近似,这应该占用更少的代码空间。

结论

ADXL312提供低成本电子倾斜测量系统,易于与低端微控制器接口。前面描述的设计已经证明,它可以与传统气泡液级的精度相媲美,但具有电子接口。这使其能够用作需要测量倾斜度的大型设计的子系统,例如拖车调平系统、稳定性控制系统和无人机。

更重要的是,它可以用来提高视障人士的独立性,本文展示了一个完整的系统级设计,包括硬件、软件和非易失性存储器,以及音频和视频输出。

审核编辑:郭婷

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分