WRX micro:bitを車両で使う その18 LEDのフォントとスクロールスピードを変える

micro:bit, 社外部品・DIY

micro:bitではLEDにアイコンや文字(半角アルファベット、半角数字など)の表示が可能ですが、特に文字の場合は表示のスクロール速度が一定なので、ある程度の文字数になると内容の確認に煩わしさを感じてしまいます。また日本語では「半角カタカナ」を表示させる事も出来るので、今回はこれらの機能を試してみます。

スポンサーリンク

デフォルトで扱える文字

micro:bitがデフォルトで表示出来る文字は「ASCII文字コード32〜126」となっています。ASCII文字コードとは文字等を固有の識別番号で表した物ですが、micro:bitの場合は10進数で「32~126」の範囲の文字等が表示出来ます。

拡張機能で利用できるフォント

Prop.Font

Prop.Fontはmicro:bitのデフォルトフォントよりも横幅が狭くなっていて、より効率的に表示出来るフォントになっています。またスクロール速度(LED1列分の移動速度)の設定や、表示したい文字や数値の全体長さ(LEDの列数)を計算出来るので、スクロールに掛かる時間も細かく調整出来ます。

Microsot MakeCodeの拡張機能から検索欄に「Font」と入力して検索すると、「proportional-font」が表示されるのでこれを選択します。

選択するとブロックのメニューに「Prop.Font」が追加されます。このブロックで「show number」と「show string」の使用方法自体はmicro:bitの「数」と「文字列」を表示させるブロックと同じです。スピードに関してはスクロール時にLEDを「1列」移動するのに掛かる時間です。スピードを「1000(1秒)」にすると1秒ごとに文字がLEDの1列分スクロールします。

「show space cols」は指定する数だけLEDの列数としてスペースを作ります。ただし「show number」や「show string」内で指定されている文字や数の間には1列分のスペースがあり、「show space cols」は繰り返しの表示や「show number」や「show string」を繋いで表示する場合のスペースです。「show space cols」を使用しないと例えば数「123」と文字列「ABC」を繋いで表示させると、「1 2 3A B C」の様に3とAが付いてしまいます。

上記の様に数と文字列の後にそれぞれ「show space cols」でスペースを入れると、指定した分のスペースが出来ます。

「get Width of」のそれぞれ数と文字列は入力した数、文字列全てを表示させる為に必要なLEDの列数(ピクセル数)を計算します。この列数にスピード(時間)を掛ける事で数、文字列全体の表示に掛かる時間が算出出来ます。上記では文字「ABC」の表示に必要なLEDの列数を表示しています。文字A、B、Cとも3列で表示され、AとB、BとCの間に1列のスペースがあるので、3×3+2で11となります。

WhaleySans Font

WhaleySans Fontは「00~99」までの数値をmicro:bitのLEDに同時に表示出来るフォントです。2桁までの数値をスクロールせずに表示する事が可能ですが「0」は「00」です。また1桁をLED2列分で表現しているので、初めて見る場合は戸惑うかもしれません。

「Prop.Font」と同様に拡張機能から「Font」で検索すると「WhaleySans Font」も表示されます。

メニューに「WhaleySans Font」が追加されますが、ブロックは1つしかありません。

数値は0~99までの指定になっています。

上記の様なプログラムで9.9~0.0秒のカウントダウンになります。「0.0(表示は00ですが)」で0.5秒間停止します。くり返しの中のタイマーを「1000」にすれば99~00秒のカウントダウンにもなりますが、実際はmicro:bitの処理速度もあるので正確ではないと思います。

katakana(カタカナ)

katakanaはその名の通りmicro:bitにカタカナを表示します。拡張機能から「カタカナ」で検索すると表示されるので選択して追加します。

メニューに「カタカナ」が追加され、「文字列を表示」と「スクロール時間を設定」のブロックがあります。

注意点としてkatakanaでは「半角」のカタカナや数字、記号などが表示出来ますが、アルファベットについては大文字のみになっています。半角でも小文字のアルファベットは表示出来ません。表示出来る文字については拡張機能の詳細ページで確認出来ます。

ブロックへの入力も「半角」で行います。「スクロール時間を設定」ブロックは先の「Prop.Font」と同様で、スクロール時にLEDを「1列」移動するのに掛かる時間を設定します。特に指定しない(ブロックを使用しない)場合のデフォルト値は500msとなっています。

その他

ただし表示したい内容が僅かな場合は、「LED画面に表示」や高度なブロック内にある「画像」を利用して自分で作ってしまった方が早い場合もあります。「画像」のブロックでも表示速度の設定も可能です。

「micro:bit」関連記事

以下は「micro:bit」タグの記事一覧です(投稿順)。現在の記事とこれ以降に投稿した記事も含みます。

その他

FA用PLCとELM327を使用した「OBD2」関連の記事は以下の記事から始まります。

注記

    • このブログ内で書いている内容はあくまで私の利用する製品(アプリ含む)や機器での場合です。他メーカーの製品や機器をはじめ、同じメーカーの製品・機器であってもバージョン違い等の場合もあるので、記事内容の保証や責任を負う事は出来ません。
    • 記事内で紹介している製品や、その他の類似製品を購入・利用する場合はそのメーカーや購入先で仕様等を確認し、自己判断と自己責任の下で利用して下さい。
    • 記事内で公開しているmicro:bit用プログラムは自由に利用・改変して頂いて構いません。ただし不具合やバグもありますので、プログラムを利用した際の故障や事故等についての保証や責任を負う事は出来ません。自己判断と自己責任の下で利用して下さい。
    • micro:bit製品やプログラミング、その他記事内容について個別の問合せや依頼を頂いても回答する事は出来ませんので、予め御了承下さい。
    • BBC micro:bitは、micro:bit教育財団の登録商標です。その他のブランド名または製品名は各所有者の商標です。