フォト
2019年4月
  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        
無料ブログはココログ

« 豊四季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」カテゴリの記事

コメント

おはようございます。
電光掲示板を作成を考えています。
ブログとyoutubeを拝見しました。
micro:bitも購入し始めたところなのですが。
無理なお願いとは思いますが。
micro:bitで8x8ドットNeopixelを使ったメッセージ表示を購入もしくは
1セットお作りいただくことはできないでしょうか。
作成にあたり、必要パーツは用意致します。納期もお任せ致しますので。
お時間の空いていらっしゃるところで作成いただければで構いません。
手元に1セットあれば、時間がかかるとは思いますが
私も理解が出来るようになるのではないかと思っております。
手間のかかる事と思います。購入できれば幸いです。
ご検討のほどよろしくお願いします。

森永さん

不明点等の質問にはお答え出来ますが、
作成請負については、申し訳ないですが、お受け致しかねます。
パーツが揃えば、結線するだけなので難しくはないと思います。
(micro:bitをパソコンで利用する環境構築の方が面倒ですね)

この記事の内容は、
micro:bitの学習・理解用としては、あまりよろしくない内容です。
micro:bit本来のプログラミング学習環境使っていません。
改造して、別のプログラミング言語を載せって制御を行っています。
https://github.com/Tamakichi/ttbasic_microbit/


電光掲示板目的でmicro:bitを使うのはあまりお勧めしません。
IOピンの取り出しのためにアダプタ、
電流をあまり流せないために別電源を用意する等、
コストがかかります。

micro:bitではなくArduino互換機を使った方が安上がりで
製作も簡単で安定した動作が得られると思います。

関連記事
・NeoPixel(WS2812B)の制御 その3
http://nuneno.cocolog-nifty.com/blog/2018/05/neopixelws281-2.html
その1、その2の記事でNeoPixelの制御方法についても記載しています。

ご連絡ありがとうございます。
Arduinoでチャレンジしてみます。
ありがとうございました。

コメントを書く

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

トラックバック


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

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