Raspberry Pi Sense HAT
Raspberry Pi Sense HAT
デバイスを開く
DeviceOpen["SenseHAT"]
Sense HATデバイスへのI2C接続を開く.
DeviceOpen["SenseHAT"]はセンサからデータを読み取る必要はないが,DeviceWrite[]を使って文字列を表示するのに使われなければならない.
データの読取り
-
Sense HATには,読取りが行えるさまざまなセンサが搭載されている.
-
"Temperature" 温度を読み取る(単位:摂氏) "Humidity" 湿度を読み取る(単位:%rH) "Pressure" 気圧を読み取る(単位:ミリバール) "Rotation" 1秒ごとのジャイロスコープの回転運動を読み取る "Acceleration" Reads地球の表面上の重力による標準加速度について加速度を読み取る "Orientation" 磁北に対する方向を読み取る(単位:度) "Magnetic Field" センサ周囲の磁場の強度と方向を読み取る(単位:マイクロテスラ) -
ジャイロスコープ,加速度計,磁力計のセンサは,{roll,pitch,yaw}(ロール軸,ピッチ軸,ヨー軸)に対応する3つの値のリストを返す.それぞれは,以下の画像のように方向付けられる.
DeviceRead["SenseHat", sensor]
sensor で指定されたセンサからデータを読み取る.
DeviceRead[dev,sensor]
sensor で指定されたセンサからデータを読み取る.
データの書込み
-
使用可能なオプション:
-
"ScrollSpeed" 枠間の時間量 "Color" {r,g,b} で表されるテキストの色.値は0-255の範囲とする -
DeviceWriteを使ってLED行列に書かれたテキストは,行列上でテキストをスクロールして表示される.
-
RGBの3つの値を使ってLEDスクリーンに書かれた画像は,64個の3つ1組の値のリストとして,あるいはそれぞれが8個の3つ1組の値を持つ8行のリストとして,DeviceWriteに渡される.
DeviceWrite[dev,"str"]
LED行列上に文字列 str を表示する.
DeviceWrite[dev,list]
それぞれのRGBの3つの値をボード上の1つのLEDに書き,RGB値のリスト list を表示する.
リソースの終了と解放
DeviceClose[dev]
デバイスへの接続を閉じる.
DeviceClose[dev]は,センサからデータを読み取る前に,あるいはLED行列に文字列を書き込む前に,DeviceOpen["SenseHat"]が呼び出された場合にのみ必要である.
例題
すべて開く すべて閉じる例 (3)
DeviceOpenを使ってセンサのデータを読み取る:
sensehat = DeviceOpen["SenseHAT"]DeviceRead[sensehat, "Temperature"]DeviceClose[sensehat]sensehat = DeviceOpen["SenseHAT"];DeviceWrite[sensehat, "Hello world!"];DeviceWrite[sensehat, {"Testing 1 2 3...", "ScrollSpeed" -> 0.08, "Color" -> {255, 0, 255}}]sensehat = DeviceOpen["SenseHAT"];list2 = {
{ {100, 0, 0}, {100, 0, 0}, {100, 0, 0}, {100, 0, 0}, {100, 0, 0}, {100, 0, 0}, {100, 0, 0}, {100, 0, 0} },
{ {0, 45, 0}, {0, 90, 0}, {0, 135, 0}, {0, 180, 0}, {0, 180, 0}, {0, 135, 0}, {0, 90, 0}, {0, 45, 0} },
{ {0, 0, 100}, {0, 0, 175}, {0, 0, 255}, {0, 0, 0}, {0, 0, 255}, {0, 0, 175}, {0, 0, 100}, {0, 0, 100} },
{ {250, 100, 0}, {200, 100, 0}, {150, 100, 0}, {100, 100, 0}, {100, 100, 0}, {150, 100, 0}, {200, 100, 0}, {250, 100, 0} },
{ {100, 0, 100}, {100, 0, 100}, {100, 0, 100}, {100, 0, 100}, {100, 0, 100}, {100, 0, 100}, {100, 0, 100}, {100, 0, 100} },
{ {0, 255, 255}, {0, 100, 100}, {0, 255, 255}, {0, 100, 100}, {0, 255, 255}, {0, 100, 100}, {0, 255, 255}, {0, 100, 100} },
{ {100, 100, 100}, {100, 100, 100}, {100, 100, 100}, {100, 100, 100}, {100, 100, 100}, {100, 100, 100}, {100, 100, 100}, {100, 100, 100} },
{ {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0} }
};DeviceWrite[sensehat, list2];スコープ (1)
StockTickerPi[] := (Module[{price, sh, str, stock, stockList},
stockList = FinancialData["NYSE:*", "Lookup"];
sh = DeviceOpen["SenseHAT"];
While[True,
stock = RandomChoice[stockList];
price = FinancialData[stock];
If[Head[price] =!= Missing, str = StringDrop[ToString[stock], 5] <> ":" <> ToString[price];
DeviceWrite[sh, {str, "ScrollSpeed" -> 0.05, "Color" -> {200, 0, 0}}]]
]
]);履歴
2015 で導入 (10.3.1)