ボクにもわかる電子工作

Raspberry Pi、IchigoJam、Wi-Fi、BLE、XBee、RN-42、ESP-WROOM-02、ESP32

全体表示

[ リスト ]

先週、IchigoJamで簡単にOLEDへ文字を表示する方法について紹介しました。今日は、そのOLED表示用ライブラリ(ソフトウェアドライバ部)の改良を行い、IchigoJamロゴを表示してみました。

イメージ 1
OLEDへIchigoJamのロゴを表示したときの様子。ロゴを32文字分のフォントへ変換して表示した。IchigoJamのロゴはCC BY ライセンス( jig.jp http://ichigojam.net/ )の範囲内で利用可能。とはいえ、IchigoJamの看板そのものであり、権利者の不利益にならないように注意して利用しよう。

ロゴは64ドット×16ドットの2値イメージファイルをIchigoJam用のフォントへ変換し、IchigoJamのフォント領域へ保存しました。ただし、正規のロゴからは若干の修正を行っています。
IchigoJamの開発者である福野さんや、Facebook の IchigoJam FANグループのAmanagiさんの意見をもとに短縮版のロゴを作成しました。「c」と、「J」、「a」「m」が本来のロゴと少し、違っていますが、違和感はあまりないでしょう。

イメージ 3

c 1マス分(フォントで2ドット分)幅を狭くした
J 0.5マス分(フォントで1ドット分)幅を狭くした
a 0.25マス分(フォントで0.5ドット分)幅を狭くした
m 0.25マス分(フォントで0.5ドット分)幅を狭くした
合計 2マス、フォント4ドット分を狭くすることが出来た

OLEDへの表示方法

ハードウェアは前回のブログ記事と同じです。下記をご覧ください。
前回の記事:
CC BY 国野亘 https://bokunimo.net
ソフトウェアについては、以下の改良を行いました。
  • OLED用データを変数領域(変数[84]以降)へ移動しました
    (これにより、フォント領域が使えるようになりました。)
  • OLED用データをPOKEではなくLET命令で変数代入するようにしました
    (これにより、20 バイトほどの節約が出来ました)
  • ライブラリ部は 288 バイトまで少量化することが出来ました
注意事項
配列変数[80]〜[96]を本ライブラリで使用します。本ライブラリを使用したプログラム中に、配列変数を使用する場合は、[0]〜[79]までしか使えません。

改良したライブラリとIchigoJamロゴデータ

以下に改良したライブラリを含むプログラムを示します。行番号700番台のPOKE文の部分がIchigoJamのロゴデータです。
new
' OLED ドライバ for IchigoJam
' CC BY Wataru KUNINO https://bokunimo.net
'
' IchigoJam オヨビ IchigoJam ロゴ ハ jig.jp (ichigojam.net jig.jp) ノ
' トウロク ショウヒョウ デス. CC BY ライセンス ニ シタガッテ シヨウ シテマス.

1 cls:?"OLED LIB":?:?"   by":?:?" Wataru":?" Kunino":?:?"   for":?
2 gsb700:forI=0to15:?chr$(#E0+I);:ifi=7?
3 next:?:?:?
4 ?"    ";chr$(255)
5 gsb800
9 end

700 'LOGO
701 poke#700,#C0,#C0,#C0,#C0,#C0,#CF,#CF,#CC,48,48,48,48,48,63,63,51
702 poke#710,48,48,0,0,0,51,51,51,0,0,0,0,0,#F3,#F3,51
703 poke#720,0,0,0,0,0,#F0,#F0,48,96,96,96,96,96,#67,#67,#66
704 poke#730,0,0,0,0,0,#E7,#E7,99,0,0,0,0,0,#FF,#FF,51
705 poke#740,#CC,#CF,#CF,0,0,0,#FF,#FF,51,51,51,0,0,0,#FF,#FF
706 poke#750,51,51,51,0,0,0,#F3,#F3,51,#F3,#F3,48,48,48,#F3,#F3
707 poke#760,48,#F3,#F3,0,0,0,#FF,#FF,#66,#E7,#E7,0,0,0,#FF,#FF
708 poke#770,99,#F3,#F3,0,0,0,#FF,#FF,51,51,51,0,0,0,#FF,#FF
709 rtn

800 'INIT
810 let[84],#4000,33,#227F,#700,#D5AE,#8D80,#2014,#DA00,#8112,#D9CF,#DBF1,#A440,#AFA6
820 forP=#8B0to#8C1:ifi2cw(60,#8A8,1,P,1)?"E
830 next
900 'OUT
910 ifi2cw(60,#8A8,1,#8AA,6)?"E
920 forX=0to7:forY=0to15:P=vpeek(7-X,Y)*8:copy#8A0,P,8:ifi2cw(60,#8A9,1,#8A0,8)?"E
930 next:next:rtn

イメージ 2
OLEDとテレビへIchigoJamロゴを表示したときの様子。

(追記)ロゴを作成する際に使用した変換ツール

BMPファイルからPOKE文に変換するツールを下記に保存しました。
gccでコンパイルし、ファイル名を引数にして実行してください。-0オプションを付与すると、白黒反転します。
OLEDモジュール購入時の注意点
□ SSD1306搭載品である
□ 128 × 64 ドット品である
□ ピンの並びが、GND、VCC、SCL、SDAの順である
□ I2Cアドレスが0x78または0x3Cである
□ 単色発光品である(表示エリアの一部だけが異なる色になっているタイプがある)
□ (なるべく)過去に購入したことのある販売店を選ぶ

以下で販売されているものは、ピン配列が異なる可能性があります。

HiLetgo


当ブログ記事への短縮リンク:

by ボクにもわかるIchigoJam用マイコンボード

IchigoJam用OLEDの全体をまとめたページはこちらです:
https://bokunimo.net/ichigojam/oled.html

この記事に

閉じる コメント(0)

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

.


みんなの更新記事