您好,登錄后才能下訂單哦!
這篇文章主要介紹“MicroPython怎么實現加速度傳感器”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“MicroPython怎么實現加速度傳感器”文章能幫助大家解決問題。
1、加速度傳感器的使用
開發板上有一個能夠檢測角度和運動狀態的加速度傳感器(小封裝小模塊?)。X ,Y, Z 軸上各有不同的傳感器。通過創建一個 pyb.Accel( ) 對象和調用 x( ) 方法可以獲取加速度傳感器的數值。蘿卜教育tpyboard。com
>>> accel = pyb.Accel()
>>> accel.x()
上述例子返回-30 到 30 之間的帶符號的角度值。注意其測量結果不算精準,著意味著即使保持 tpyboard 的完全靜止不動依舊會有測量數據出現。因此,x( ) 方法得到的數據不能當成精確值使用,而應視其為一定精度的范圍值。
傾斜開發板,通過加速度傳感器點亮 LED 燈的 代碼如下所示:
accel = pyb.Accel() light = pyb.LED(3) SENSITIVITY = 3 while True: x = accel.x() if abs(x) > SENSITIVITY: light.on() else: light.off()
上述代碼中我們創建了 Accel 和 LED 兩個對象,然后直接獲得加速度傳感器在 X 方向上的數值。如果 x 值的大小比定值 SENSITIVITY 大,LED 燈將被點亮,否則將被熄滅。循環中調用了 pyb.delay( ) 函數,否額當 x 的值接近 SENSITIVITY 時LED燈將閃爍得十分頻繁。嘗試在 tpyboard 開發板上運行該程序,直到左右傾斜開發板使 LED 燈亮或滅。
練習:改變上述腳本使得傾斜的角度越大藍色的LED燈更加亮。
提示: 你需要重新調整數值,其大小在 0 到 255 之間
2、制作水平儀
上述例程僅只使用了 x 方向上的角度值,然而我們可以通過 y( ) 函數的值和更多的LED燈將 tpyboard 開發板打造成一個水平儀。
xlights = (pyb.LED(2), pyb.LED(3)) ylights = (pyb.LED(1), pyb.LED(4)) accel = pyb.Accel() SENSITIVITY = 3 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 方向上也是同樣的原理。這看起來不算很牛 B 但確實實現了水平儀的功能。在你的 tpyboard 板上運行這個程序,現象為向不同方向傾斜開發板點亮不同的 LED 燈。
關于“MicroPython怎么實現加速度傳感器”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。