8x8矩阵上的陀螺仪动画

2024-06-11 15:11:38 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我一直在尝试在每一架飞机上都能看到这个主要的飞行显示,但我的覆盆子pi Sense帽子除外。简单地说,它只是显示了机头的拍摄角度以及飞机倾斜的程度。当向前和向后投球时,我成功地使它工作(这是相当硬的编码),但我不知道如何在倾斜和投球时使它工作。除了硬编码之外,我甚至不确定这是否可行

代码如下:

from sense_hat import SenseHat
import time

sense = SenseHat()

brown = [153, 76, 0]
blue = [0, 128, 255]


def neutral():
    a = b = c = d = blue
    e = f = g = h = brown
    grid = [
    a, a, a, a, a, a, a, a,
    b, b, b, b, b, b, b, b,
    c, c, c, c, c, c, c, c,
    d, d, d, d, d, d, d, d,
    e, e, e, e, e, e, e, e,
    f, f, f, f, f, f, f, f,
    g, g, g, g, g, g, g, g,
    h, h, h, h, h, h, h, h
    ]
    sense.set_pixels(grid)

def onedegfrwrd():
    a = b = c = blue
    d = e = f = g = h = brown
    grid = [
    a, a, a, a, a, a, a, a,
    b, b, b, b, b, b, b, b,
    c, c, c, c, c, c, c, c,
    d, d, d, d, d, d, d, d,
    e, e, e, e, e, e, e, e,
    f, f, f, f, f, f, f, f,
    g, g, g, g, g, g, g, g,
    h, h, h, h, h, h, h, h
    ]
    sense.set_pixels(grid)

def twodegfrwrd():
    a = b = blue
    c = d = e = f = g = h = brown
    grid = [
    a, a, a, a, a, a, a, a,
    b, b, b, b, b, b, b, b,
    c, c, c, c, c, c, c, c,
    d, d, d, d, d, d, d, d,
    e, e, e, e, e, e, e, e,
    f, f, f, f, f, f, f, f,
    g, g, g, g, g, g, g, g,
    h, h, h, h, h, h, h, h
    ]
    sense.set_pixels(grid)

def threedegfrwrd():
    a = blue
    b = c = d = e = f = g = h = brown
    grid = [
    a, a, a, a, a, a, a, a,
    b, b, b, b, b, b, b, b,
    c, c, c, c, c, c, c, c,
    d, d, d, d, d, d, d, d,
    e, e, e, e, e, e, e, e,
    f, f, f, f, f, f, f, f,
    g, g, g, g, g, g, g, g,
    h, h, h, h, h, h, h, h
    ]
    sense.set_pixels(grid)

def mcas():
    a = b = c = d = e = f = g = h = brown
    grid = [
    a, a, a, a, a, a, a, a,
    b, b, b, b, b, b, b, b,
    c, c, c, c, c, c, c, c,
    d, d, d, d, d, d, d, d,
    e, e, e, e, e, e, e, e,
    f, f, f, f, f, f, f, f,
    g, g, g, g, g, g, g, g,
    h, h, h, h, h, h, h, h
    ]
    sense.set_pixels(grid)

def onedegback():
    a = b = c = d = e = blue
    f = g = h = brown
    grid = [
    a, a, a, a, a, a, a, a,
    b, b, b, b, b, b, b, b,
    c, c, c, c, c, c, c, c,
    d, d, d, d, d, d, d, d,
    e, e, e, e, e, e, e, e,
    f, f, f, f, f, f, f, f,
    g, g, g, g, g, g, g, g,
    h, h, h, h, h, h, h, h
    ]
    sense.set_pixels(grid)

def twodegback():
    a = b = c = d = e = f = blue
    g = h = brown
    grid = [
    a, a, a, a, a, a, a, a,
    b, b, b, b, b, b, b, b,
    c, c, c, c, c, c, c, c,
    d, d, d, d, d, d, d, d,
    e, e, e, e, e, e, e, e,
    f, f, f, f, f, f, f, f,
    g, g, g, g, g, g, g, g,
    h, h, h, h, h, h, h, h
    ]
    sense.set_pixels(grid)

def threedegback():
    a = b = c = d = e = f = g= blue
    h = brown
    grid = [
    a, a, a, a, a, a, a, a,
    b, b, b, b, b, b, b, b,
    c, c, c, c, c, c, c, c,
    d, d, d, d, d, d, d, d,
    e, e, e, e, e, e, e, e,
    f, f, f, f, f, f, f, f,
    g, g, g, g, g, g, g, g,
    h, h, h, h, h, h, h, h
    ]
    sense.set_pixels(grid)

def fullback():
    a = b = c = d = e = f = g = h = blue
    grid = [
    a, a, a, a, a, a, a, a,
    b, b, b, b, b, b, b, b,
    c, c, c, c, c, c, c, c,
    d, d, d, d, d, d, d, d,
    e, e, e, e, e, e, e, e,
    f, f, f, f, f, f, f, f,
    g, g, g, g, g, g, g, g,
    h, h, h, h, h, h, h, h
    ]
    sense.set_pixels(grid)

while True:
    orientation = sense.get_orientation_degrees()
    y = orientation['roll']
    y = round(y, 1)


    if 80 <= y <= 100:
        neutral()
        print("Stabelized")
    if 60<= y <=80:
        onedegfrwrd()
    if 40 <= y <=60:
        twodegfrwrd()
    if 20 <= y <= 40:
        threedegfrwrd()
        print("PULL UP")
    if 0 <= y <= 20:
        mcas()
        print("PULL UP")
    if 350 <= y <= 359:
        sense.clear()


    if 100 <= y <= 120:
        onedegback()
    if 120 <= y <= 140:
        twodegback()
    if 140 <= y <= 160:
        threedegback()
    if 160 <= y <= 180:
        fullback()

忽略我的wierd变量名;)


Tags: import编码ifdefbluegridprintset