micro:bitで8x8ドットNeopixelを使ったメッセージ表示
豊四季Tiny BASIC for micro:bit で 8x8ドットNeopixelによるメッセージ表示を実装しみました。
8x8ドットNeopixelは以前Aliexpressにて購入したものを使いました。
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のピクセルは次のような順番で並んでいるため、、文字の表示やスクロール処理が
ちょっと面倒です。奇数行・偶数行でピクセル点灯の処理が異なります。
プログラムでは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」カテゴリの記事
- 豊四季Tiny Basic for micro:bit のマニュアルを更新しました(2020.11.21)
- 豊四季タイニーBASIC for Arduino 機能拡張版 V0.08の更新(2020.07.27)
- Arduino IDE 1.8.13が公開されています(2020.07.24)
- SPI接続フラッシュメモリモジュールを入手しました(2020.05.13)
- 豊四季タイニーBASIC for Arduino 機能拡張版 フルスクリーンエディタ対応(2020.02.20)
「表示器制御関連」カテゴリの記事
- Raspberry Pi Pico MicroPython用のマルチフォントライブラリ(2023.02.09)
- MicroPython(Raspberry Pi pico)で8x8ドットNeoPixcel文字表示(2023.02.08)
- M5Stackで日本語表示(2)(2020.02.04)
- M5stackで日本語表示(2020.01.18)
- NeoPixel(WS2812B)の制御 その4(2020.01.09)
「micro:bit」カテゴリの記事
- 豊四季Tiny Basic for micro:bit のマニュアルを更新しました(2020.11.21)
- micro:bitで8x8ドットNeopixelを使ったメッセージ表示(2018.05.15)
- 豊四季Tiny BASIC for micro:bit をV0.08に更新しました(2018.05.14)
- micro:bitをArduino環境で使う (7) シリアル通信(2018.02.07)
- 豊四季Tiny BASIC for micro:bit をV0.07に更新しました(2018.02.04)
コメント
« 豊四季Tiny BASIC for micro:bit をV0.08に更新しました | トップページ | ゲームボーイ(旧タイプ)のパーツ その2 »
おはようございます。
電光掲示板を作成を考えています。
ブログとyoutubeを拝見しました。
micro:bitも購入し始めたところなのですが。
無理なお願いとは思いますが。
micro:bitで8x8ドットNeopixelを使ったメッセージ表示を購入もしくは
1セットお作りいただくことはできないでしょうか。
作成にあたり、必要パーツは用意致します。納期もお任せ致しますので。
お時間の空いていらっしゃるところで作成いただければで構いません。
手元に1セットあれば、時間がかかるとは思いますが
私も理解が出来るようになるのではないかと思っております。
手間のかかる事と思います。購入できれば幸いです。
ご検討のほどよろしくお願いします。
投稿: 森永一郎 | 2019年2月22日 (金) 07時19分
森永さん
不明点等の質問にはお答え出来ますが、
作成請負については、申し訳ないですが、お受け致しかねます。
パーツが揃えば、結線するだけなので難しくはないと思います。
(micro:bitをパソコンで利用する環境構築の方が面倒ですね)
この記事の内容は、
micro:bitの学習・理解用としては、あまりよろしくない内容です。
micro:bit本来のプログラミング学習環境使っていません。
改造して、別のプログラミング言語を載せって制御を行っています。
https://github.com/Tamakichi/ttbasic_microbit/
電光掲示板目的でmicro:bitを使うのはあまりお勧めしません。
IOピンの取り出しのためにアダプタ、
電流をあまり流せないために別電源を用意する等、
コストがかかります。
micro:bitではなくArduino互換機を使った方が安上がりで
製作も簡単で安定した動作が得られると思います。
関連記事
・NeoPixel(WS2812B)の制御 その3
https://nuneno.cocolog-nifty.com/blog/2018/05/neopixelws281-2.html
その1、その2の記事でNeoPixelの制御方法についても記載しています。
投稿: たま吉さん(管理者) | 2019年2月22日 (金) 09時14分
ご連絡ありがとうございます。
Arduinoでチャレンジしてみます。
ありがとうございました。
投稿: | 2019年2月22日 (金) 11時37分