咸鱼ZTMS实例—加速传感器制作平衡仪
咸魚ZTMS實例—加速傳感器制作平衡儀
- MMA7660FC
- 加速度傳感器基本使用
- 制作水平儀
MMA7660FC
-
MMA7660FC可在六個方向定制垂直水平座向
-
集成了眾多智能的運動功能,如方向、震動和敲擊檢測集成了眾多智能的運動功能,如方向,震動和敲擊檢測
-
自動喚醒休眠功能自動喚醒休眠功能
-
包括智能電源管理功能包括智能電源管理功能
ZTMS 上集成了一款三軸加速度計芯片(MMA7660FC)(U5),可以直接通過編程使用。
MMA7660FC是一個數字輸出(I2C),超低功率,緊湊型電容式微電機加速計,它具有低通濾波器,0g偏移和增益誤差補償,6位分辨率,用戶可配置輸出速率等功能。該器件通過中斷引腳(INT)可以提供傳感器數據變化、產品方向和姿態識別等中斷。MMA7660FC采用非常小的3毫米x3毫米x0.9毫米DFN封裝。
主控板:ZTMS1.1python開發板
MMA7660FC 三軸加速度計的使用原理很簡單,就是在 x、y、z 各個方向根據
受力情況通過數據方式呈現。測量結果范圍是-32 至 31,大約為-1.5g 至 1.5g(g
為重力加速度,9.8m/s^2)。我們只需要知道以上 3 個方向的值,便可以計算出
各個方向的加速度。原理入下圖:
加速度傳感器基本使用
acc=pyb.Accel() acc.x() #讀取X軸參數上述例子返回-30到30之間的帶符號的角度值。注意其測量結果不算精準,著意味著即使保持完全靜止不動依舊會有測量數據出現。因此,x () 方法得到的數據不能當成精確值使用,而應視其為一定精度的范圍值。
傾斜開發板,通過加速度傳感器點亮LED燈的代碼如下所示:
上述代碼中我們創建了 Accel和LED兩個對象,然后直接獲得加速度傳感器在 X方向上的數值。如果x值的大小比定值SENSITIVITY大,LED燈將被點亮, 否則將被熄滅。循環中調用了 pyb.delay()函數,否額當x的值接近 SENSITIVITY時LED燈將閃爍得十分頻繁。
制作水平儀
上述例程僅只使用了 x方向上的角度值,然而我們可以通過y()函數的值和 更多的LED燈將開發板打造成一個水平儀。
開發板上有4個LED燈,板子上標注的名稱是D2、D3、D4、D5。
| D2 | LED(1) | 紅 |
| D3 | LED(2) | 綠 |
| D4 | LED(3) | 黃 |
| D5 | LED(4) | 藍 |
案例:oled獲取加速傳感器數值
# main.py -- put your code here!import pybxlights = (pyb.LED(2), pyb.LED(3)) #綠燈,黃燈 ylights = (pyb.LED(1), pyb.LED(4)) #紅燈,藍燈accel = pyb.Accel() SENSITIVITY = 1 while True:x = accel.x()if x > SENSITIVITY:xlights[0].on()xlights[1].off()elif x < -SENSITIVITY:xlights[1].on()xlights[0].off()else:xlights[0].off()xlights[1].off()y = accel.y()if y > SENSITIVITY:ylights[0].on()ylights[1].off()elif y < -SENSITIVITY:ylights[1].on()ylights[0].off()else:ylights[0].off()ylights[1].off()pyb.delay(100)創建了一個包含x和y方向上的LED對象的元組。python語言中元組是不可更改的對象,即意味著一旦創建后就不能被改變。然后我們像上個例程開始的那樣,但當x的值為正或為負時分別點亮不同的LED燈。y方向上也是同樣的原理。
平衡狀態
然后就是非平衡狀態
總結
以上是生活随笔為你收集整理的咸鱼ZTMS实例—加速传感器制作平衡仪的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DS18B20高精度温度传感器,使用介绍
- 下一篇: 英国大不列颠百科全书_也许大不列颠即将来