フォト
2018年5月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
無料ブログはココログ

« 豊四季Tiny BASIC for micro:bit をV0.08に更新しました | トップページ | ゲームボーイ(旧タイプ)のパーツ その2 »

2018年5月15日 (火)

micro:bitで8x8ドットNeopixelを使ったメッセージ表示

豊四季Tiny BASIC for micro:bit で 8x8ドットNeopixelによるメッセージ表示を実装しみました。

01

8x8ドットNeopixelは以前Aliexpressにて購入したものを使いました。

02

64個のNeopixelを駆動させるので、電源は電池から供給しています。

動いている様子



プログラムソース

10 'Neopixelで文字のスクロール表示
20 NPBEGIN 12,64
30 GOSUB "@CLSM"
40 S="こんにちは さいたま":N=RGB8(0,1,1) B=0:W=70:GOSUB "@MSG"
50 WAIT 500:NPCLS
60 S="これはNeoPixelによるメッセージ出力サンプルです"
70 N=RGB8(2,1,0):B=0:W=70:GOSUB "@MSG"
80 WAIT 500:GOTO 30
90 "@SCRL":'左スクロール
100 FOR Y0=0 TO 7
110 IF Y0&1 GOTO 170
120 FOR X0=6 TO 0 STEP -1
130 POKE MEM+Y0*8+X0+1,PEEK(MEM+Y0*8+X0)
140 NEXT X0
150 POKE MEM+Y0*8,0
160 GOTO 210
170 FOR X0=1 TO 7
180 POKE MEM+Y0*8+X0-1,PEEK(MEM+Y0*8+X0)
190 NEXT X0
200 POKE MEM+Y0*8+7,0
210 NEXT Y0
220 RETURN
230 "@INSC":'1文字分挿入スクロール
240 A=WADR(C)
250 FOR X1=0 TO 7
260 GOSUB "@SCRL"
270 FOR Y1=0 TO 7
280 IF PEEK(A+Y1)&($80>>X1) N0=N ELSE N0=B
290 IF Y1&1 POKE MEM+Y1*8+7,N0 ELSE POKE MEM+Y1*8,N0
300 NEXT Y1
310 NPPUT 0,MEM,64,1,1
320 WAIT W
330 NEXT X1
340 RETURN
350 "@MSG":'メッセージのスクロール表示
360 FOR I2=1 TO WLEN(S)
370 C=WASC(S,I2)
380 GOSUB "@INSC"
390 NEXT I2
400 RETURN
410 "@CLSM":'表示のクリア
420 FOR I3=0 TO 63:POKE MEM+I3,0:NEXT I3
430 NPPUT 0,MEM,64,1,1
440 RETURN

表示するメッセージは日本語に対応しています。
フォントは美咲フォントを利用しています。

8x8のピクセルは次のような順番で並んでいるため、、文字の表示やスクロール処理が
ちょっと面倒です。奇数行・偶数行でピクセル点灯の処理が異なります。

03

プログラムでは20行から80行で指定したメッセージを表示しています。
20行のNPBEGIN 12,64 は制御するピンとして12ピン、ピクセル数として64を指定、
30行のGOSUB "@CLSM" は表示用バッファの消去
40行、60行は次の変数にメッセージ等を設定し、GOSUB "@MSG"にてメッセージを
表示しています。

  変数
    S: メッセージ文字列
    N: 表示する文字色(RGB8関数で各R・G・Bの値を指定)
    B: 表示する文字の背景色(ここでは0:黒を指定)
    W: スクロール速度

50行、80行は消去及び時間待ちを行っています。
サブルーチンについては、説明を省略します。

« 豊四季Tiny BASIC for micro:bit をV0.08に更新しました | トップページ | ゲームボーイ(旧タイプ)のパーツ その2 »

arduino」カテゴリの記事

micro:bit」カテゴリの記事

表示器制御関連」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/571408/66724008

この記事へのトラックバック一覧です: micro:bitで8x8ドットNeopixelを使ったメッセージ表示:

« 豊四季Tiny BASIC for micro:bit をV0.08に更新しました | トップページ | ゲームボーイ(旧タイプ)のパーツ その2 »