ラズパイの拡張ボード「Sense HAT」で遊んでみよう:名刺サイズの超小型PC「ラズパイ」で遊ぶ(第29回)
気温や湿度、気圧の他、ジャイロスコープ、磁気センサー、加速度センサーを搭載しているラズパイ向け拡張ボード「HAT」を紹介します。
ラズパイを開発しているラズベリーパイ財団が提供しているラズパイ向け拡張ボード「HAT」(Hardware Attached on Top)のラインアップに「Sense HAT」というものがあります。
Sense HATは、宇宙でのラズパイ活用を目指す「Astro Pi」プロジェクトのために作られたデバイスで、気温や湿度、気圧の他、ジャイロスコープ、磁気センサー、加速度センサーを搭載しています。表面には8×8のカラーLEDが取り付けられており、それぞれの色で点灯できる他、文字も表示できます。ラズベリーパイ財団のWebサイトには丁寧なチュートリアルがあり、サンプルプログラムも掲載しています。
そこで今回は、このサンプルプログラムを紹介しながら、Sense HATで遊んでみたいと思います。
Sense HATに文字を表示する
Sense HATを取り付けてラズパイに電源を入れると、64個のLEDがカラフルに点灯し、OSの起動完了とともにLEDが消灯します。まずはここに文字を表示させてみましょう。
文字を表示するためには「sense.show_message」コマンドを使います。以下のように入力して「mojitest.py」などのファイル名で保存しましょう。
#!/usr/bin/env python # -*- coding: utf-8 -*- from sense_hat import SenseHat sense = SenseHat() sense.show_message("Hello world") sense.clear()
ファイルを保存したら以下のコマンドを入力します。
$ python mojitest.py
プログラムを走らせると、Sense HATに「Hello world」という文字が左に流れたでしょうか。このように簡単な入力で文字を表示させることができます。
色を変えて文字を表示する
冒頭で紹介した通り、Sense HATにはカラーLEDが取り付けられているので文字の色を変えて表示できます。文字の色は下のようなパラメーターで設定します。
赤 | 緑 | 青 | カラー |
---|---|---|---|
255 | 0 | 0 | 赤 |
0 | 255 | 0 | 緑 |
0 | 0 | 255 | 青 |
255 | 255 | 0 | 黄 |
255 | 0 | 255 | マゼンタ |
0 | 255 | 255 | シアン |
プログラムでは以下のように記述します。
red = (255, 0, 0) blue = (0, 0, 255) green = (0, 255, 0) white = (255, 255, 255) yellow = (255, 255, 0)
これを踏まえて、カラーの違う文字が表示されるプログラム「colortest.py」を作ってみましょう。「while true」文を使って無限ループさせます。Ctrl+Cでプログラムを止めることができます。
#!/usr/bin/env python # -*- coding: utf-8 -*- from sense_hat import SenseHat from time import sleep sense = SenseHat() red = (255, 0, 0) blue = (0, 0, 255) green = (0, 255, 0) white = (255, 255, 255) yellow = (255, 255, 0) try: while True: sense.show_letter("L", red) sleep(1) sense.show_letter("a", blue) sleep(1) sense.show_letter("u", green) sleep(1) sense.show_letter("r", white) sleep(1) sense.show_letter("a", yellow) sleep(1) except KeyboardInterrupt: sense.clear()
プログラムを記述したら、以下のコマンドで走らせましょう。
$ python colortest.py
「Laura」という文字が、違う色で表示されればOKです。
ランダムに文字の色を変える
では応用編として、先ほどのプログラムを改造してランダムに色を表示してみましょう。「random」ライブラリを追加するとともに、関数「pick_random_colour()」を定義して色をランダムに表示するようにします。
#!/usr/bin/env python # -*- coding: utf-8 -*- from sense_hat import SenseHat from time import sleep from random import randint sense = SenseHat() # Generate a random colour def pick_random_colour(): random_red = randint(0, 255) random_green = randint(0, 255) random_blue = randint(0, 255) return (random_red, random_green, random_blue) try: while True: sense.show_letter("L", pick_random_colour()) sleep(1) sense.show_letter("a", pick_random_colour()) sleep(1) sense.show_letter("u", pick_random_colour()) sleep(1) sense.show_letter("r", pick_random_colour()) sleep(1) sense.show_letter("a", pick_random_colour()) sleep(1) except KeyboardInterrupt: sense.clear()
プログラムを記述したら「randomcolor.py」などの名前で保存し、以下のコマンドで走らせてみましょう。
$ python randomcolor.py
今度は「Laura」という文字の色がランダムに変わって表示されます。
次回はSense HATに用意されている湿度・気圧センサーを使って気温や湿度、気圧を測定する方法についてご紹介します。
関連記事
- ラズパイで気温と湿度を測定、LINEで通知を受け取る 〜前編〜
今回は温湿度センサーモジュールとラズパイを組み合わせ、LINEと連携させる方法を紹介します。 - ラズパイを無線LANルーター化する 〜アクセスポイント編〜
家庭内で無線LANルータを使っている人は多いかと思います。今回はそのルーター機能をラズパイに持たせて、ラズパイを使った無線LANルーターの構築方法についてご紹介します。 - 本格的な撮影が楽しめる公式カメラモジュール「Raspberry Pi High Quality Camera」を試す
小さなマイクロコンピュータ「Raspberry Pi」(通称ラズパイ)で作る、自分だけのガジェット。Raspberry Pi公式のカメラとして本格的な撮影が楽しめる「Raspberry Pi High Quality Camera」を紹介します。 - ラズパイで新型コロナウイルス解析に参加する 〜Ubuntu Serverの構築編〜
小さなマイクロコンピュータ「Raspberry Pi」(通称ラズパイ)で作る、自分だけのガジェット。今回はラズパイで。 - ラズパイでスマートスピーカーを作る 「アレクサ!あしたの天気は?」 〜ソフトウェア準備編〜
小さなマイクロコンピュータ「Raspberry Pi」(通称ラズパイ)で作る、自分だけのガジェット。今回は米Amazonが開発したAIアシスタント「Alexa」をラズパイで使えるようにしてみます。 - これが“らずキャン△”だ! キャンプ場で役立つ「気温・湿度・気圧センサー」の作り方
小さなマイクロコンピュータ「Raspberry Pi」(通称ラズパイ)で作る、自分だけのガジェット。まずはキャンプ場で気温、湿度、気圧を測れるデバイスを作ってみます。 - ラズパイで「YouTube」と「Amazon プライムビデオ」を見る
小さなマイクロコンピュータ「Raspberry Pi」(通称ラズパイ)で作る、自分だけのガジェット。音楽や動画のメディアサーバ化するために入れたOS「OSMC」で、YouTubeやAmazon プライムビデオなどを楽しんでみましょう。 - ラズパイで自宅ファイルサーバを作る
小さなマイクロコンピュータ「Raspberry Pi」(通称ラズパイ)で作る、自分だけのガジェット。ネット経由でアクセスできる自宅ファイルサーバをラズパイで構築してみます。 - ラズパイで動体検知対応の監視カメラを作る
小さなマイクロコンピュータ「Raspberry Pi」(通称ラズパイ)で作る、自分だけのガジェット。ラズパイで動くソフト「motion」を使うと、カメラの前で何かが動いた瞬間に静止画や動画を撮影して記録できます。今回はラズパイで監視カメラを作ってみます。
Copyright © ITmedia, Inc. All Rights Reserved.