名刺サイズの超小型PC「ラズパイ」で遊ぶ(第29回)
ラズパイの拡張ボード「Sense 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に用意されている湿度・気圧センサーを使って気温や湿度、気圧を測定する方法についてご紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.
名刺サイズの超小型PC「ラズパイ」で遊ぶ
今やスマートフォンアプリで何でも完結できてしまう時代。しかし、一から自分の手でデバイスを作り上げ、試行錯誤しながらアイデアを具現化する楽しさは格別です。この連載では、テーマや用途にあわせてマイクロコンピュータ(マイコン)と呼ばれる名刺サイズの超小型PC「Raspberry Pi」(通称ラズパイ)の活用方法から具体的な工作手順までを紹介します。
この記事の著者
関連記事
こんなメディアも見られています
ITmedia NEWSに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
SpecialPR
本日の新着記事
アクセスランキング
-
1
メルカリ、梨の転売疑惑に「盗品の出品は確認されず」 誹謗中傷には利用制限も
-
2
Anthropic、「Claude Opus 5」公開 Fable 5に迫る性能を半額で――サイバー安全策は緩和、拒否時は自動フォールバックも
-
3
「iPhone高騰」はこれからも続く? 中国CXMTに近づくApple、メモリ競合へのけん制が不発に終わりそうなワケ【後編】
-
4
「ニューロマンサー」実写ドラマ、Apple TV+で2027年1月配信開始へ
-
5
「こんなのに追われたら……」急斜面もやすやす爆走、中国製の車輪付き四足ロボのデモ動画が話題 最高時速20km超
-
6
海外の新作バカゲー「電車アタック」にマンガ家が感心した理由 ブッ飛んだ内容と完成度の高さ、そして“日本”
-
7
検索結果に「詐欺ではありません」と表示させる詐欺手口、警視庁が注意喚起 AI要約も餌食に
-
8
「めっちゃカメレオン」公式Discord乗っ取り 担当者PCがマルウェア感染、管理者が全員BANに 現在は復旧
-
9
暑さ対策が熱い! 「猛暑対策展」で感じた、転んでもただでは起き上がらない日本人のエネルギー
-
10
スーパーに並んだ「ごちゃごちゃ生成AIポップ」が物議 “看板王”こと、きぬた歯科院長「これはアリ」
ITmedia NEWS SNS
インフォメーション
注目情報をチェック
ITmediaNEWSをフォロー
あなたにおすすめの記事PR