DesignSpark Electrical Logolinkedin
菜单 搜寻
提问问题

把Raspberry Pi Sense Hat 变成一个水平仪

树莓派 Sense HAT,是专门用于 Astro Pi而设计的配件,拥有多个基于集成电路的传感器, 可用于多个不同类型的实验, 应用和游戏。

title

它有一个超亮8×8 RGB LED矩阵,操纵杆和各种传感器:温度,,气压,湿度,指南针和陀螺仪传感器。通过树莓派基金会提供的库,这真的很容易在Python编程。
它的陀螺仪引起了我的注意,当我将它设置好时,我开始了我的第一个真正的项目---水平仪。它亮起红灯时,它不是水平的,绿色时为水平的,蓝色时为垂直的,当你把它放平后,它会显示为白色,并且在中间有一个“气泡”。如果当你转动它时“气泡”也随之运动,这是一个项目的极好的扩展延伸

title
它也可以通过USB接口用移动电池供电,所以你可以随时随地的使用它。

title

不水平时为红色title

水平时为绿色title

竖直时为蓝色title

平放时为白色,中间有一个“气泡”

下面就是用到的Python代码,利用它就可以把Sense Hat 变成水平仪啦!

from sense_hat import SenseHat

sense = SenseHat()

r = [255, 0, 0]
g = [0, 255, 0]
b = [0, 0, 255]
w = [255,255,255]
z = [0, 0, 0]

redimage = [
r,r,r,r,r,r,r,r,
r,r,r,r,r,r,r,r,
r,r,r,r,r,r,r,r,
r,r,r,r,r,r,r,r,
r,r,r,r,r,r,r,r,
r,r,r,r,r,r,r,r,
r,r,r,r,r,r,r,r,
r,r,r,r,r,r,r,r,
]

greenimage = [
w,w,w,w,w,w,w,w,
g,g,g,g,g,g,g,g,
g,g,g,g,g,g,g,g,
g,g,g,g,g,g,g,g,
g,g,g,g,g,g,g,g,
g,g,g,g,g,g,g,g,
g,g,g,g,g,g,g,g,
g,g,g,g,g,g,g,g,
]

blueimage = [
w,w,w,w,w,w,w,w,
b,b,b,b,b,b,b,b,
b,b,b,b,b,b,b,b,
b,b,b,b,b,b,b,b,
b,b,b,b,b,b,b,b,
b,b,b,b,b,b,b,b,
b,b,b,b,b,b,b,b,
b,b,b,b,b,b,b,b,
]

whiteimage = [
w,w,w,w,w,w,w,w,
w,w,w,w,w,w,w,w,
w,w,w,w,w,w,w,w,
w,w,w,z,z,w,w,w,
w,w,w,z,z,w,w,w,
w,w,w,w,w,w,w,w,
w,w,w,w,w,w,w,w,
w,w,w,w,w,w,w,w,
]

sense.set_pixels(redimage)

while True:
    raw = sense.accel_raw
    x = raw["x"]
    y = raw["y"]
    z = raw["z"]
    print (x,y,z)

    if (-0.02 < x < 0.02) and (-0.02 < y < 0.02) and (0.98 < z < 1.02):
        sense.set_pixels(whiteimage)
    elif (-0.02 < x < 0.02) and (-0.90 > y > -1.1):
        sense.set_pixels(greenimage)
    elif (-0.02 < y < 0.02) and (-0.90 > x > -1.1):
        sense.set_pixels(blueimage)
    else:
        sense.set_pixels(redimage)

none

7 Mar 2016, 9:36