樹莓派擴充套件板 sense HAT 的相關介面

NO IMAGE

從官方給的 api 文件中硬翻的…

LED 模型

set_rotation 設定翻轉角度

這個函式可以設定 led 的旋轉角度

引數型別可選引數描述
rInteger 0

set_pixels 批量設定畫素點

改變64顆 led 的顯示顏色

引數型別可選引數描述
pixel_list

提示:之所以有這個函式是因為傳入set_pixels

get_pixel 獲取指定位置的顏色

get_pixels

load_image 載入影象到矩陣中

載入一個影象檔案,將其轉換為RGB格式,並在LED矩陣上顯示。影象的大小必須是8×8畫素。

引數型別可選引數描述
file_path

返回型別描述
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

show_message 螢幕顯示單個文字

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

引數型別可選引數描述
text_string

show_letter 單屏顯示字母

引數型別可選引數描述
s

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

get_orientation_radians

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

返回型別描述
Dictionary由俯仰角pitch

get_orientation_degrees

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

返回型別描述
Dictionary由俯仰角pitch

get_orientation

作用同get_orientation_degrees

get_compass

呼叫羅盤時會預先呼叫set_imu_config

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

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

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

在上面的例子中,如果你將操縱桿簡單地推到一個單一的方向,你就會看到兩個事件輸出:一個被壓的動作和一個釋放的動作。可選的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_events

direction_up, direction_left, direction_right, direction_down, direction_middle, direction_any

這些屬性可以被分配一個函式,當操縱桿按在相關的方向(或者在direction_any

相關資料

部落格原文
api 原文
樹莓派 senseHAT 的一個入門專案
來自官方的 astro-pi 簡介