本文描述了視障人士水平儀的完整設計。它使用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提供低成本電子傾斜測量系統,易于與低端微控制器接口。前面描述的設計已經證明,它可以與傳統氣泡液級的精度相媲美,但具有電子接口。這使其能夠用作需要測量傾斜度的大型設計的子系統,例如拖車調平系統、穩定性控制系統和無人機。
更重要的是,它可以用來提高視障人士的獨立性,本文展示了一個完整的系統級設計,包括硬件、軟件和非易失性存儲器,以及音頻和視頻輸出。
審核編輯:郭婷
-
存儲器
+關注
關注
38文章
7492瀏覽量
163842 -
SPI總線
+關注
關注
4文章
103瀏覽量
27589 -
加速度計
+關注
關注
6文章
702瀏覽量
45897
發布評論請先 登錄
相關推薦
評論