目次
Raspberry Pi B+ に LCDパネル を装着するでは Raspberry Pi に Adafruit 製 Raspberry Pi 用 LCD キットを装着しました。 ここではその LCD に表示する文字についてまとめました。
文字の表示方法
テキストの表示は、 Adafruit_Python_CharLCD を使って lcd.message(text)
のようにします。 特定の1文字を番号指定で表示する場合は lcd.message(chr(n))
のようにします。 この n
(数値) のとりうる範囲は 0以上255以下です。 もし n
に 256以上 の数値を入れると、 256で割った余りの数と同じ文字が表示されます。 また n
には、 0から255までの数すべてが使えるわけではありません。
表示できる文字
表示できる文字は Adafruit の対象ページにあるデータシートを見るとわかります。
一覧にすると以下のようになります。 HTML で簡単に表現できないものは言葉で表現しています。
2 | 3 | 4 | 5 | 6 | 7 | |
---|---|---|---|---|---|---|
0 | (space) | 0 | @ | P | ` | p |
1 | ! | 1 | A | Q | a | q |
2 | “ | 2 | B | R | b | r |
3 | # | 3 | C | S | c | s |
4 | $ | 4 | D | T | d | t |
5 | % | 5 | E | U | e | u |
6 | & | 6 | F | V | f | v |
7 | ‘ | 7 | G | W | g | w |
8 | ( | 8 | H | X | h | x |
9 | ) | 9 | I | Y | i | y |
A | * | : | J | Z | j | z |
B | + | ; | K | [ | k | { |
C | , | < | L | ¥ | l | | |
D | – | = | M | ] | m | } |
E | . | > | N | ^ | n | → |
F | / | ? | O | _ | o | ← |
A | B | C | D | E | F | |
---|---|---|---|---|---|---|
0 | – | タ | ミ | α | 大きい p | |
1 | 。 | ア | チ | ム | ä | 大きい q |
2 | 「 | イ | ツ | メ | β | θ |
3 | 」 | ウ | テ | モ | ε | ∞ |
4 | 、 | エ | ト | ヤ | μ | Ω |
5 | ・ | オ | ナ | ユ | σ | ü |
6 | ヲ | カ | ニ | ヨ | ρ | Σ |
7 | ァ | キ | ヌ | ラ | 大きい g | π |
8 | ィ | ク | ネ | リ | √ | x バー |
9 | ゥ | ケ | ノ | ル | -1 (指数) | 大きい y |
A | ェ | コ | ハ | レ | 大きい j | 千 |
B | ォ | サ | ヒ | ロ | 左上の 小さい x | 万 |
C | ャ | シ | フ | ワ | ¢ | 円 |
D | ユ | ス | ヘ | ン | £ (L に横棒2本) | ÷ |
E | ョ | セ | ホ | ゛ | n バー | |
F | ッ | ソ | マ | ゜ | ö | (塗りつぶし) |
この表は、行番号と列番号を16進数に見立てて使います。 たとえば数字の “2” を表示する場合は、 行が2、列が3なので lcd.message(chr(0x32))
とすると表示できます。 lcd.message('x32')
としても表示することができます。 データシートでは2進数の組み合わせになっているので、 数字 “2” なら Lower 4 bit が “0010”、 Upper 4 bit が “0011” で lcd.message(chr(int('00110010', 2)))
のようにして表示します。
独自の文字を表示する方法
Adafruit_Python_CharLCD で用意された lcd.create_char
を使います。
メソッドの引数は1番目が文字番号(0-255)、2番目が点灯ドットの配列です。
点灯ドットの表現方法
ひとつの文字は 1行につき5個、 合計8行で40個のドットで表現されます。
2番目の引数には、 1行ごとの表示ドットを数値で表して、 8行分すなわち合計8個の要素を持つ配列を渡します。
1行のドット表現
ドットは左から5個並んでいます。 これを左から順に 0または1 で表します。
例えば一番左のドットのみが点灯している場合は 10000 です。 これを2進数とみて数値にしたもの、 16 が1行のドット表現となります。
1行のドット表現を8行分並べて配列にしたものが2番目の引数になります。
たとえば、一番左のドットが全部点灯している場合は [16, 16, 16, 16, 16, 16, 16, 16]
と表現します。
文字定義の例
たとえば Adafruit のリポジトリにあるサンプルコードだと次のように文字を定義しています。
1 2 3 |
lcd.create_char(1, [2, 3, 2, 2, 14, 30, 12, 0]) lcd.message('x01') # lcd.message(chr(1)) |
この文字定義を確認できるプログラムを作りました(下記)。