国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

樹莓派擴展板 sense HAT 的相關接口

王偉廷 / 3273人閱讀

摘要:表示磁場強度的值浮動軸的。操縱桿操縱事件描述操縱桿事件的元組。在發生事件之前阻止執行,然后返回一個表示發生的事件的。相關資料博客原文原文樹莓派的一個入門項目來自官方的簡介

從官方給的 api 文檔中硬翻的...

LED 模型 set_rotation 設置翻轉角度

這個函數可以設置 led 的旋轉角度

參數 類型 可選參數 描述
r Integer 0,90,180,270 0指的是樹莓派 HDMI 接口向下的方向
redraw Boolean TRUE,FALSE 默認為 TRUE

示例:

#!/usr/bin/python
import sys
import time
from sense_hat import SenseHat

X = (255, 0, 0)
O = (255, 255, 255)

question_mark = [
    O, O, O, X, X, O, O, O,
    O, O, X, O, O, X, O, O,
    O, O, O, O, O, X, O, O,
    O, O, O, O, X, O, O, O,
    O, O, O, X, O, O, O, O,
    O, O, O, X, O, O, O, O,
    O, O, O, O, O, O, O, O,
    O, O, O, X, O, O, O, O
]

sense = SenseHat()

sense.set_pixels(question_mark)

sense.set_pixel(0, 0, 255, 0, 0)
sense.set_pixel(0, 7, 0, 255, 0)
sense.set_pixel(7, 0, 0, 0, 255)
sense.set_pixel(7, 7, 255, 0, 255)

def close_light():
    black = [ [0,0,0] ] * 64
    sense.set_pixels(black)

try:
    while True:
        for r in [0, 90, 180, 270]:
            sense.set_rotation(r)
            time.sleep(0.3)
except KeyboardInterrupt:
    close_light()
    print "Good bye"
set_pixels 批量設置像素點

改變64顆 led 的顯示顏色

參數 類型 可選參數 描述
pixel_list List [[R, G, B] * 64] 需要提供 list 長度為64的二維數組, (r,g,b)為三原色的色值

示例參考上一個示例

get_pixels 獲取當前像素點數組
返回類型 描述
List 將當前的 led 屏上顯示的圖像轉換成list

示例:

#!/usr/bin/python
from sense_hat import SenseHat


X = (255, 0, 0)
O = (0, 0, 0)
question_mark = [
    O, X, O, O, O, O, X, O,
    O, O, X, O, O, X, O, O,
    O, X, X, X, X, X, X, O,
    X, X, O, X, X, O, X, X,
    X, X, X, X, X, X, X, X,
    X, X, X, X, X, X, X, X,
    O, X, O, O, O, O, X, O,
    X, O, O, O, O, O, O, X
]

sense = SenseHat()

sense.set_pixels(question_mark)
out_list = sense.get_pixels()
print out_list

提示:之所以有這個函數是因為傳入set_pixels的像素值有時會發生變化,sense HAT 是將每個像素指定為
8 位數 (0-255) 但是如果傳入 led 的 frameBuffer 中的時候,顏色的位數會轉成 RGB565(5位紅色,6位綠色和5位藍色)
執行轉換的時候可以看到二進制轉換時發生的精度損失
get_pixels 就是顯示像素在緩沖區內結束時的值

set_pixel 設置單點像素顏色

通過 x-y 坐標系來定位像素位置,以 HDMI 接口面向的位置為

參數 類型 可選參數 描述
x Integer 0-7 0為左 7為右
y Integer 0-7 0為上 7為下
當只有三個參數的時候
pixel Tuple / List 0-255 (r, g, b) 數值
當有五個參數的時候
r Integer 0-255
g Integer 0-255
b Integer 0-255

示例:

from sense_hat import SenseHat

sense = SenseHat()

# examples using (x, y, r, g, b)
sense.set_pixel(0, 0, 255, 0, 0)
sense.set_pixel(0, 7, 0, 255, 0)
sense.set_pixel(7, 0, 0, 0, 255)
sense.set_pixel(7, 7, 255, 0, 255)

red = (255, 0, 0)
green = (0, 255, 0)
blue = (0, 0, 255)

# examples using (x, y, pixel)
sense.set_pixel(0, 0, red)
sense.set_pixel(0, 0, green)
sense.set_pixel(0, 0, blue)
get_pixel 獲取指定位置的顏色

get_pixels 不過是單體版的

參數 類型 可選參數 描述
x Integer 0-7 0為左 7為右
y Integer 0-7 0為上 7為下
返回類型 描述
List [R,G,B] 組成的數組

示例:

from sense_hat import SenseHat

sense = SenseHat()
top_left_pixel = sense.get_pixel(0, 0)
load_image 加載圖像到矩陣中

加載一個圖像文件,將其轉換為RGB格式,并在LED矩陣上顯示。圖像的大小必須是8×8像素。

參數 類型 可選參數 描述
file_path String ... 有效的圖片路徑
redraw Boolean TRUE/FALSE 是否重繪已加載的圖像文件在LED矩陣上。默認值為True

示例:

from sense_hat import SenseHat

sense = SenseHat()
sense.load_image("space_invader.png")
返回類型 描述
List [[R,G,B] * 64] 組成的數組
from sense_hat import SenseHat

sense = SenseHat()
invader_pixels = sense.load_image("space_invader.png", redraw=False)
clear 讓 led 屏變成純色,默認是關閉
參數 類型 可選參數 描述
當只有一個參數的時候
pixel Tuple / List 0-255 (r, g, b) 數值,默認為[0,0,0]
當有三個參數的時候
r Integer 0-255
g Integer 0-255
b Integer 0-255

示例:

from sense_hat import SenseHat
from time import sleep

sense = SenseHat()

red = (255, 0, 0)

sense.clear()  # no arguments defaults to off
sleep(1)
sense.clear(red)  # passing in an RGB tuple
sleep(1)
sense.clear(255, 255, 255)  # passing in r, g and b values of a colour
show_message 屏幕顯示單個文字

就是街頭廣告燈的那種 led 滾屏啦!

參數 類型 可選參數 描述
text_string String ... 將要滾屏的字母
scroll_speed Float 任意浮點數 滾屏速度,默認 0.1
text_colour List [R,G,B]] 文字顏色,默認[255,255,255]
back_colour List [R,G,B]] 背景顏色,默認[0,0,0]

示例:

from sense_hat import SenseHat

sense = SenseHat()
sense.show_message("One small step for Pi!", text_colour=[255, 0, 0])
show_letter 單屏顯示字母
參數 類型 可選參數 描述
s String ... 將要顯示的字母
text_colour List [R,G,B]] 文字顏色,默認[255,255,255]
back_colour List [R,G,B]] 背景顏色,默認[0,0,0]

示例:

#!/usr/bin/python
import time
from sense_hat import SenseHat

sense = SenseHat()

letters = "ABCDEFGHIJKLMNOPQRSTUVWSYZ"


for i in letters:
    sense.show_letter(str(i))
    time.sleep(1)
low_light 調低亮度

如果覺得亮度有點刺眼的話可以開低亮度模式

import time
from sense_hat import SenseHat

sense = SenseHat()
sense.clear(255, 255, 255)
sense.low_light = True
time.sleep(2)
sense.low_light = False
#!/usr/bin/python
import time
from sense_hat import SenseHat

sense = SenseHat()
sense.clear(255, 127, 0)

sense.set_pixels(question_mark)

print(sense.gamma)
time.sleep(2)

old = sense.gamma
sense.gamma = old[::-1]
print(sense.gamma)
time.sleep(2)


sense.low_light = True
print(sense.gamma)
time.sleep(2)

sense.low_light = False
gamma

For advanced users. Most users will just need the low_light Boolean property above. The Sense HAT python API uses 8 bit (0 to 255) colours for R, G, B. When these are written to the Linux frame buffer they"re bit shifted into RGB 5 6 5. The driver then converts them to RGB 5 5 5 before it passes them over to the ATTiny88 AVR for writing to the LEDs.
The gamma property allows you to specify a gamma lookup table for the final 5 bits of colour used. The lookup table is a list of 32 numbers that must be between 0 and 31. The value of the incoming 5 bit colour is used to index the lookup table and the value found at that position is then written to the LEDs.

對于高級用戶。大多數用戶只需要上面的low_light布爾屬性。這個感覺帽python API使用8位(0到255)的顏色為R,G,b。當這些被寫入Linux框架緩沖區時,它們被位轉換為RGB 5 6 5。然后,驅動程序將它們轉換為RGB 5 5 5,然后將其傳遞給ATTiny88 AVR以寫入led。
gamma屬性允許您為使用的最后5位顏色指定一個伽馬查找表。查找表是32個數字的列表,它們必須在0到31之間。傳入的5位顏色的值用于索引查找表,然后將該位置上發現的值寫入led。
---來自有道詞典,因為暫時不知道用在哪里

類型 可選參數 描述
List 長度為32的元組或列表,包含0到31之間的整數 最后的5位顏色的查找表

示例:

import time
from sense_hat import SenseHat

sense = SenseHat()
sense.clear(255, 127, 0)

print(sense.gamma)
time.sleep(2)

sense.gamma = sense.gamma[::-1]
print(sense.gamma)
time.sleep(2)

sense.low_light = True
print(sense.gamma)
time.sleep(2)

sense.low_light = False
gamma_reset

一個函數將gamma查找表重置為默認值,理想情況下,如果您已經對它進行了處理,并希望將它恢復到默認狀態。
示例:

import time
from sense_hat import SenseHat

sense = SenseHat()
sense.clear(255, 127, 0)
time.sleep(2)
sense.gamma = [0] * 32  # Will turn the LED matrix off
time.sleep(2)
sense.gamma_reset()
環境感應器 get_humidity 濕度
返回類型 描述
Float 濕度的百分數

示例:

#!/usr/bin/python
from sense_hat import SenseHat

sense = SenseHat()
humidity = sense.get_humidity()
print("Humidity: %s %%rH" % humidity)  #Humidity: 13.8048038483 %rH

# 同樣效果
print(sense.humidity)   #14.9011135101
get_temperature 溫度

返回值也是浮點數
示例:

#!/usr/bin/python
from sense_hat import SenseHat

sense = SenseHat()
temp = sense.get_temperature()
print("Temperature: %s C" % temp)   # Temperature: 33.0 C

# alternatives
print(sense.temp)       # 33.0
print(sense.temperature)    # 33.0
get_temperature_from_humidity 溫度

從濕度傳感器獲取當前溫度(攝氏度)。
示例:

from sense_hat import SenseHat

sense = SenseHat()
temp = sense.get_temperature_from_humidity()
print("Temperature: %s C" % temp)
get_temperature_from_pressure 溫度

從壓力傳感器獲取溫度

from sense_hat import SenseHat

sense = SenseHat()
temp = sense.get_temperature_from_pressure()
print("Temperature: %s C" % temp)
get_pressure 壓力

獲取壓力參數

ps: 1Bar=0.1MPa=1000mba=1000hpa=100*7.5mmhg=75mmhg=1個大氣壓

返回類型 描述
Float 單位為Millibars

示例:

from sense_hat import SenseHat

sense = SenseHat()
pressure = sense.get_pressure()
print("Pressure: %s Millibars" % pressure)  #Pressure: 1024.56738281 Millibars

# 同理
print(sense.pressure)   # 1024.56738281
IMU Sensor 慣性測量單元

IMU(inertial measurement unit)傳感器是三個傳感器的組合,每個傳感器分別有x、y和z軸。由于這個原因,它被認為是一個9自由度的傳感器。

陀螺儀(Gyroscope)

加速度計(Accelerometer)

指南針(Magnetometer)

這個API允許你在任何組合中使用這些傳感器來測量方向或多帶帶的傳感器。

set_imu_config

支持或禁用陀螺儀、加速度計和/或磁強計

參數 類型 可選參數 描述
compass_enabled Boolean TRUE,FALSE 是否啟用指南針
gyro_enabled Boolean TRUE,FALSE 是否啟用陀螺儀
accel_enabled Boolean TRUE,FALSE 是否啟用加速度計

示例:

from sense_hat import SenseHat

sense = SenseHat()
sense.set_imu_config(False, True, False)  # 只開啟陀螺儀
get_orientation_radians

獲取當前方向弧度,依據飛行器軸參數的 pitch, roll 和 yaw.
理解傳說中的roll、yaw、pitch
歐拉角

返回類型 描述
Dictionary 由俯仰角pitch,偏航角yaw,翻滾角roll組成的字典key 值,value 為軸弧度

示例:

from sense_hat import SenseHat

sense = SenseHat()
orientation_rad = sense.get_orientation_radians()
print("p: {pitch}, r: {roll}, y: {yaw}".format(**orientation_rad)) # p: 0.0906969159842, r: -0.218863099813, y: 2.87161874771

# alternatives
print(sense.orientation_radians) # {"yaw": 2.933598041534424, "roll": -0.20759552717208862, "pitch": 0.09733205288648605}
get_orientation_degrees

以俯仰、翻滾和偏航的飛機主軸得到當前的方向。

返回類型 描述
Dictionary 由俯仰角pitch,偏航角yaw,翻滾角roll組成的字典key 值,value 為軸角度

示例:

from sense_hat import SenseHat

sense = SenseHat()
orientation = sense.get_orientation_degrees()
print("p: {pitch}, r: {roll}, y: {yaw}".format(**orientation)) # p: 359.368855623, r: 359.958133745, y: 24.4292643968
get_orientation

作用同get_orientation_degrees

from sense_hat import SenseHat

sense = SenseHat()
orientation = sense.get_orientation()

print(sense.orientation) # {"yaw": 20.334569404489745, "roll": 0.02406978340326997, "pitch": 359.2895215347403}
get_compass

調用羅盤時會預先調用set_imu_config禁止掉重力計和加速度計的功能

from sense_hat import SenseHat

sense = SenseHat()
north = sense.get_compass()
print("North: %s" % north) # North: 351.031626941

# alternatives
print(sense.compass) # 351.031626941
get_compass_raw

獲取原始x、y和z軸的磁強計數據。

返回類型 描述
Dictionary 字典對象索引的字符串x,y和z。表示磁場強度的值浮動軸的microteslas(μT)。
from sense_hat import SenseHat

sense = SenseHat()
raw = sense.get_compass_raw()
print("x: {x}, y: {y}, z: {z}".format(**raw)) # x: 3.14855718613, y: 0.269534498453, z: -0.743863344193

# alternatives
print(sense.compass_raw) # {"y": 0.4851621091365814, "x": 5.667402744293213, "z": -1.338953971862793}
get_gyroscope

調用set_imu_config來禁用磁強計和加速計,然后只從陀螺儀獲取當前方向。

返回類型 描述
Dictionary 由俯仰角pitch,偏航角yaw,翻滾角roll組成的字典key 值,value 為軸角度
from sense_hat import SenseHat

sense = SenseHat()
gyro_only = sense.get_gyroscope()
print("p: {pitch}, r: {roll}, y: {yaw}".format(**gyro_only))

# alternatives
print(sense.gyro) # {"yaw": 0.0604013305118731, "roll": 359.9494321175156, "pitch": 359.9567423509234}
print(sense.gyroscope) # {"yaw": 0.0604013305118731, "roll": 359.9494321175156, "pitch": 359.9567423509234}
get_gyroscope_raw

獲取原始x、y和z軸的陀螺儀數據。

返回類型 描述
Dictionary 一個由字符串x、y和z索引的字典對象。這些值是按每秒弧度表示軸的旋轉強度的浮點數。
from sense_hat import SenseHat

sense = SenseHat()
raw = sense.get_gyroscope_raw()
print("x: {x}, y: {y}, z: {z}".format(**raw))

# alternatives
print(sense.gyro_raw)
print(sense.gyroscope_raw)

# x: 1.03765261173, y: 2.46352291107, z: 0.185390725732
# {"y": 1.5728815793991089, "x": 0.34309887886047363, "z": 0.2984008193016052}
# {"y": 0.8343454599380493, "x": 0.163504496216774, "z": 0.4767734408378601}
get_accelerometer

調用set_imu_config來禁用磁力儀和陀螺儀,然后從加速度計得到當前的方向。

返回類型 描述
Dictionary 由俯仰角pitch,偏航角yaw,翻滾角roll組成的字典key 值,value 為軸角度
from sense_hat import SenseHat

sense = SenseHat()
accel_only = sense.get_accelerometer()
print("p: {pitch}, r: {roll}, y: {yaw}".format(**accel_only))

# alternatives
print(sense.accel)
print(sense.accelerometer)

# p: 3.76471788135, r: 10.0814548376, y: 0.0
# {"yaw": 4.5454772552392335e-07, "roll": 10.082596332952239, "pitch": 3.7639588765826475}
# {"yaw": 4.5454772552392335e-07, "roll": 10.082596332952239, "pitch": 3.7639588765826475}
get_accelerometer_raw

獲取原始x、y和z軸加速度計數據。

返回類型 描述
Dictionary 一個由字符串x、y和z索引的字典對象。這些值代表了在Gs中軸的加速度強度。
from sense_hat import SenseHat

sense = SenseHat()
raw = sense.get_accelerometer_raw()
print("x: {x}, y: {y}, z: {z}".format(**raw))

# alternatives
print(sense.accel_raw)
print(sense.accelerometer_raw)

# x: -0.0634367614985, y: 0.172625526786, z: 0.974787354469
# {"y": 0.1738394945859909, "x": -0.06516461074352264, "z": 0.9757621884346008}
# {"y": 0.17286831140518188, "x": -0.06565827876329422, "z": 0.9735689163208008}
Joystick 操縱桿 操縱事件

描述操縱桿事件的元組。包含三個命名參數:

時間戳—事件發生的時間,作為秒數(與內置時間函數相同的格式)

方向-操縱桿移動的方向,作為一個字符串(“向上”,“向下”,“左”,“右”,“中間”)

動作—發生的動作,作為一個字符串(“按壓”,“釋放”,“持有”)

這個tuple類型被一些joystick方法使用,要么作為返回類型,要么是參數的類型。

wait_for_event

在發生joystick事件之前阻止執行,然后返回一個表示發生的事件的InputEvent

from sense_hat import SenseHat
from time import sleep

sense = SenseHat()
event = sense.stick.wait_for_event()
print("The joystick was {} {}".format(event.action, event.direction))
sleep(0.1)
event = sense.stick.wait_for_event()
print("The joystick was {} {}".format(event.action, event.direction))

在上面的例子中,如果你將操縱桿簡單地推到一個單一的方向,你就會看到兩個事件輸出:一個被壓的動作和一個釋放的動作。可選的emptybuffer可以用于在等待新事件之前刷新任何未決事件。試試下面的腳本,看看有什么不同:

from sense_hat import SenseHat
from time import sleep

sense = SenseHat()
event = sense.stick.wait_for_event()
print("The joystick was {} {}".format(event.action, event.direction))
sleep(0.1)
event = sense.stick.wait_for_event(emptybuffer=True)
print("The joystick was {} {}".format(event.action, event.direction))
get_events

返回自最后一次調用get_eventswait_for_event之后發生的所有事件的InputEvent tuple的列表。

from sense_hat import SenseHat

sense = SenseHat()
while True:
    for event in sense.stick.get_events():
        print("The joystick was {} {}".format(event.action, event.direction))
direction_up, direction_left, direction_right, direction_down, direction_middle, direction_any

這些屬性可以被分配一個函數,當操縱桿按在相關的方向(或者在direction_any的任何方向上)時,它就會被調用。分配的函數要么不接受參數,要么必須接受一個參數,該參數將傳遞給相關的InputEvent

from sense_hat import SenseHat, ACTION_PRESSED, ACTION_HELD, ACTION_RELEASED
from signal import pause

x = 3
y = 3
sense = SenseHat()

def clamp(value, min_value=0, max_value=7):
    return min(max_value, max(min_value, value))

def pushed_up(event):
    global y
    if event.action != ACTION_RELEASED:
        y = clamp(y - 1)

def pushed_down(event):
    global y
    if event.action != ACTION_RELEASED:
        y = clamp(y + 1)

def pushed_left(event):
    global x
    if event.action != ACTION_RELEASED:
        x = clamp(x - 1)

def pushed_right(event):
    global x
    if event.action != ACTION_RELEASED:
        x = clamp(x + 1)

def refresh():
    sense.clear()
    sense.set_pixel(x, y, 255, 255, 255)

sense.stick.direction_up = pushed_up
sense.stick.direction_down = pushed_down
sense.stick.direction_left = pushed_left
sense.stick.direction_right = pushed_right
sense.stick.direction_any = refresh
refresh()
pause()
相關資料

博客原文
api 原文
樹莓派+senseHAT 的一個入門項目
來自官方的 astro-pi 簡介

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44509.html

相關文章

  • 三極管打造樹莓溫控風扇

    摘要:本文將以一個硬件小白的程序員視角詳細講述如何用三極管擴展普通的樹莓派散熱風扇從而實現溫控功能。 為了防止樹莓派長時間開機運轉溫度過高導致觸發過熱關機,很多人都給裝了散熱風扇,但某寶買的風扇插上之后是隨著開機一直運轉的,不能隨溫度變化而自動開閉,很多時候做無用功浪費電且產生噪音。本文將以一個硬件小白的程序員視角詳細講述如何用三極管擴展普通的樹莓派散熱風扇從而實現溫控功能。 在制作自己的溫...

    tigerZH 評論0 收藏0

發表評論

0條評論

王偉廷

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<