BS21 Lab の製品 - Arduino 用 漢字 LCD シールド(製品番号:BS21LAB-002)

6/nov/2012 新規
7/aug/2014 更新

2014年8月7日追記:
こちらは、Version.1 基板です。 後継版として「Arduino 用 漢字 LCD シールドv2(製品番号:BS21LAB-014)」を出しました(若干仕様が違っています)。 今後は、そちらを御検討ください。

Arduino 用 漢字 LCD シールドです。TWI (I2C) 方式専用です。
全角8文字×2行で、日本語を表示する事ができます。

  1. 概要
  2. ギャラリー
  3. ご購入方法
  4. 注意事項
  5. 免責事項
  6. 仕様
  7. Arduino Due での動作
  8. 表示できる文字
  9. 組立て方法
  10. 使用方法
  11. ソフトウェア
  12. 3.3V について

・概要

従来のキャラ LCD で使用できた半角 157 字に加えて、JIS 漢字規格の第一水準+α全角 3737 字 (一覧表) が使用できます。
第二水準漢字はサポートしていませんので、難しい漢字は表示できませんが、Arduino で使うならば十分でしょう。
符号化方式は UTF-8 が選べますので、Arduino のスケッチにそのまま日本語を入力してコンパイルするだけで OK です。

本製品は組み立て式キットとなっています。組み立て方は組立て方法を御覧下さい。


・ギャラリー

全体写真:クリックすると拡大します。
View

表示例:この様な使い方を想定しています。
Example1 Example2

最小スケッチ例:これだけで日本語表示できます。
最小スケッチ例 最小スケッチ例の表示写真

しょぼいけれど、絵も出せます。小生の手の写真を加工して、128×32 のモノクロ・ビットマップデータを作りました。
ビットマップ表示

Arduino 用ピンソケットを付けてみたケースです(この例では未使用端子 JPPWR にもピンヘッダーを付けてます)。
Arduino用ピンソケットを付けてみた


【番外】Arduino ではなく、8ピンの PIC12F1822 の MSSP 機能を使用して、テスト表示させてみました。当たり前ですが、ジャンパー線4本だけで制御できています。
PIC12F1822表示テスト
・ご購入方法

本製品は、以下のサイトで取り扱って頂いております。

(株)スイッチサイエンス様 ※ 完売
(株)ガリレオセブン様 ※「キット製作サービス」有り。要製作料。


・注意事項

本製品は、基本的には、電源を OFF にした状態で DIP SW の切り替えを行ってください。通電中に DIP SW を切り替えますと、もしかすると IC 等が静電破壊される恐れがあります。
電源を OFF にした状態でも、DIP SW を切り替える時は、静電気を逃がしてから行ってください。

また、本製品は端子等が露出しており、ショートなどで容易に故障しやすくなっておりますので、取り扱いには十分に注意してください。

鋭利な部分も多数有りますので、怪我等に十分に注意してください。


・免責事項

本製品は人命等に関わる装置への利用につきまして、考慮されておりません
また、本製品を使用した事によって発生しました如何なる事象につきまして、弊社は責任を負いかねますので御了承下さい。


・仕様

寸法幅約53.3mm×長さ約72mm ※いわゆる "C基板" (47×72) の幅を、若干延ばした寸法
高さ約28mm ※ジャンパーピン頭から Arduino 用ピン先まで(ジャンパーピンをつまみ無しタイプに交換すれば、もうちょっと低くなります)
固定穴φ3.2×4ヶ ※穴位置は "C基板" 互換なので、スタックできます

Arduino UNO R3 ピン互換シールド ※Arduino Mega2560 R3 以前の Mega シリーズで動作させるには、TWI 接続に何らかの工夫が必要と思われます。

駆動電圧 :直流 +5V ※ Arduino UNO R3, Arduino Leonardo, Uno1284P 基板 で動作確認済み
直流 +3.3V ※ Arduino Due のみ動作確認済み。(ただし、別途 +5V も必要。詳細は 3.3V について を参照)

接続方式TWI (I2C) 方式 ※ジャンパーにて、アナログピン A4〜A5 ピンを使用して接続する方法と、UNO/Mega2560 R3 より増設された SCL/SDA ピンを使用して接続する方法の、どちらかを選択できます
TWI アドレス7bit表記: 0x38 〜 0x3F
8bit表記: 0x70+R/W 〜 0x7E+R/W
 ※ DIP SW にて8つの中から選択可能

LCD 表示領域幅47.32mm×高さ12.12mm 
LCD 表示文字数全角8文字(半角16文字)×2行 ※なお、全角文字は偶数桁(つまり、0,2,4,6,8,10,12,14 桁目)にのみ表示可能です。半角文字は偶数桁・奇数桁に関係なく表示できます
LCD 表示グラフィック画素数横128画素×縦32画素 ※白黒2色のみ
LCD バックライト常時点灯、もしくは、ソフトウェア制御 ※ DIP SW より、常時点灯と、ソフトウェア点灯/消灯機能のどちらかが選べます。なお、点灯させると、バックライトだけで最大 120mA 消費するようになります


グラフィック表示機能:低速・低機能な簡易グラフィック表示機能もあります。
サポートしているコマンド:pset, line, rect, bitmap, flip

line 表示の例
簡易グラフィック機能
グラフィックと文字は同時表示は出来ますが、重ねる事はできません。なので、例えば、画面の左半分を文字領域、右半分をグラフィック領域、という風に分割させて表示させる様にします。


回路図:
KanjiLCD の回路図


<動作確認>
以下の時での動作を確認しています。

・Arduino UNO R3 (Atmel ATmega328P:CLK=16MHz)
・Arduino Leonardo (Atmel ATmega32U4:CLK=16MHz)
Uno1284P 基板 (Atmel ATmega1284P:CLK=16MHz)
・Vcc = 5V, Vdd = 5V
・Arduino IDE 1.0.5
・Windows 7 Home Premium SP1 (64 bit)

・Arduino Due (Atmel SAM3X8E:CLK=84MHz)
・Vio = 3.3V, Vdd = 5V
・Arduino IDE 1.5.7 beta
・Windows 7 Home Premium SP1 (64 bit)


・Arduino Due での動作

別ページにしました。Arduino Due での動作 をクリックしてください。


・表示できる文字

「漢字 LCD シールド」がサポートする文字集合 ※ 以下「漢字 LCD シールド用文字集合」と呼称します
半角文字ASCII94字計157字
JIS X 0201:1976 片仮名 (いわゆる半角カナ)63字
全角文字
一覧表
JIS X 0208:1997 非漢字524字計3737字
JIS X 0208:1997 第一水準漢字2965字
NEC 特殊文字 (※これもJIS X 0213 の一部ですが)73字
JIS X 0213:2000 非漢字 (極一部のみ)175字

※ 0x21〜0x7E 部分は「JIS X 0201 ローマ字」ではなく「ASCII」文字集合です。ゆえに 0x5C は逆スラッシュ記号です。円記号(\)ではありません。円記号を使いたい時は全角の円記号(¥)を使用してください。
※ JIS X 0208:1997 第二水準漢字は非サポートです。よって「漢字 LCD シールド用文字集合」は JIS X 0208 準拠ですらありません。また、1981年版の常用漢字表には対応していますが、2010年版の改定常用漢字表には(第一水準外の漢字が有る為)対応していません。
※ JIS X 0213:2000 は全 4344字の内の、利用度が高そうな記号系 248字のみのサポートです。事実上、規格をサポートしていない事と同じです。おまけと思ってください。
※ そのおまけに含まれる拡張カタカナは全てサポートしていますので、アイヌ語カタカナが表示できます。一方、拡張ひらがなは非サポートです。
第三水準の非漢字 アイヌ語カタカナ

「漢字 LCD シールド」がサポートする符号化方式
Unicode 系UTF-8 方式
UTF-16 方式 (BOM 自動判別)
UTF-16 方式 (Big Endian 固定)
UTF-16 方式 (Little Endian 固定)
JIS 系シフトJIS 方式
EUC-JP 方式

※ あくまで符号化方式です。Unicode 系を選んだからといって、Unicode にある文字が全部使えるようになる訳ではありません。
※ Unicode の文字合成にちょこっとだけ対応しています。半濁点付き拡張カタカナが、きちんと表示できます。半濁点付き拡張カタカナ以外の文字合成には対応していません。
拡張カタカナ


・組立て方法

巨大なので、別ページにしました。「漢字 LCD シールド」の組立て方法 をクリックしてください。


・使用方法

DIP SW ですが、以下の写真の様に、左側の SW から1〜4の番号が刻印されています。
DIPSWの解説

以下の様に機能が割り振られています。
DIP SW の設定SW1SW2SW3SW4コメント
TWI アドレス = 0x38OFFOFFOFF---電源 ON 直後に SW のチェックをして、TWI アドレスを決定します。決定後は SW1〜3 を変更しても、Reset されるまで TWI アドレスは変わりません。
TWI アドレス = 0x39OFFOFFO N---
TWI アドレス = 0x3AOFFO NOFF---
TWI アドレス = 0x3BOFFO NO N---
TWI アドレス = 0x3CO NOFFOFF---
TWI アドレス = 0x3DO NOFFO N---
TWI アドレス = 0x3EO NO NOFF---
TWI アドレス = 0x3FO NO NO N---
LCD の Backlight = ソフト制御---------OFFbacklight/noBacklight 関数でソフト的に ON/OFF する。電源 ON 直後はソフト OFF されている。
LCD の Backlight = 強制 ON---------O Nソフト ON/OFF 状態に関係無く、Backlight が強制 ON される。(最大 120mA 消費する様になるので注意)

L スイッチと R スイッチは、Arduino のスケッチで、getLeftSW 関数、getRightSW 関数を呼び出すと、押されているか離されているかが検出できます。 漢字 LCD シールドは、チャタリング対策の為、スイッチの状態を約10ミリ秒間隔でスキャンしていますので、これよりも短い時間で L/R スイッチの状態を検出させる事はできません。

Reset スイッチは、Arduino 本体の Reset スイッチと同様に、Arduino 本体と漢字 LCD シールドをリセットします。

VR101 は、Backlight の輝度調整用です。一方、VR103 は LCD 画面のコントラスト調整用です。双方とも、小型のプラスドライバ等で、ちょうど良いポジションに調整してください。


・ソフトウェア

Arduino 用ライブラリを用意しています。
以下の圧縮ファイルをダウンロードし、arduino フォルダーの中の libraries フォルダーの中に解凍するだけで OK です。(注意:カナ LCD シールド用ライブラリも同梱されています。)

BS21Lab-ArduinoLib-KanjiLCD-v1.10_and_KanaLCD-v1.01.zip 2014年8月1日版

※ Arduino IDE 1.0.5 と Arduino IDE 1.5.7β で動作確認しています。

アンインストールも、BS21LabLib, KanaLCD, KanjiLCD フォルダーごと削除するだけで OK です。


以下は旧版(v1.01)です。特に理由が無い場合は上記の v1.10 を御使用ください。こちらの方も、とりあえず残しておきます。

BS21Lab-ArduinoLib-KanjiLCD-v1.01.zip 2012年11月7日版

※ Arduino IDE 1.0.3 で動作確認しています。
※ こちらは Arduino Due について対応できていません。詳細は Arduino Due での動作 を御覧下さい。

アンインストールも、KanjiLCD フォルダーごと削除するだけで OK です。


ライブラリの使い方ですが、巨大なので、別ページにしました。「漢字 LCD ライブラリ」の解説 をクリックしてください。


【御注意】
Windows 用の Arduino IDE でしか動作確認していません。もしかすると、Mac 用や Linux 用の Arduino IDE では、問題が発生するかもしれません。その際は、御連絡下さい。可能な限り対応してみます。(頑張ったが無理だった、という結果になる可能性もあります…)


・3.3V について

別ページにしました。3.3V について をクリックしてください。


製品リストに戻る

Copyright (C) 2012-2014 BS21 Lab, All rights reserved.