電子ペーパーモジュールクリックボード(CLICK-EINK)は、SSD1606コントローラー互換の電子ペーパーEPA-20を採用したボードです。
電子ペーパーの最大の特徴は電源を切断しても表示内容を保持できることにあります。よって使用しないときは電源を切断し、表示更新時のみ電源を与えればよいので超低消費電力のアプリケーションが作れます。また表示更新時も約40mW程度です。
採用している電子ペーパーEPA-20は、172×72ドット、2インチで高コントラスト、広視野角、白黒4スケールで使いやすさに定評があります。
制御はSSD1606に準拠した4線式SPI通信で、マイコン等のホスト機器から制御します。
mikroBUSはマイコンボード共通のクリックボード装着用コネクタの規格でPICマイコンを初めARMマイコン用ボードなど様々な開発ボードで採用されている共通規格です。mikroBUS規格に対応したクリックボードを装着すれば様々な機能をマイコンボードに付加することができます。
■ピンアサイン
ピンアサインはmikroBUSに準拠しています。
信号線はSPI通信のMOSIとクロック線、チップセレクト、その他にD/C線、Busy線を使います。ホスト機器はArduinoやPICマイコン、ARMの各種マイコン等SPIホストになる機器でれば何でも使用できます。
電源は3.3Vです。
■SPI通信例
SPI通信のサンプル例、初期化例はEPA-20のデータシート2ページ~3ページにかけて記載されています。
当方で販売しているCコンパイラ、mikroCシリーズをお使いの場合にはSPI通信のコマンド内容を意識せずにも使えるライブラリーが配布されています。Libstockからダウンロードできます。このライブラリを使えば電子ペーパーの初期化ができる他、文字や画像の表示が簡単に行えます。プログラム例は下記の通りです。
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 |
01 <span style="color: #0000ff;">void</span> main() 02 { 03 sysinit(); 04 <span style="color: #0000ff;">eink_init</span>(); 05 <span style="color: #0000ff;">Delay_ms</span>( 1000 ); 06 07 <span style="color: #0000ff;">while</span>( 1 ) 08 { 09 <span style="color: #008000;">// Display black letters on white background</span> 10 <span style="color: #0000ff;">eink_fill_screen</span>( EINK_COLOR_WHITE ); 11 <span style="color: #0000ff;">eink_set_font</span>( guiFont_Exo_2_Condensed21x32_Regular, EINK_COLOR_BLACK, FO_HORIZONTAL ); 12 <span style="color: #0000ff;">eink_text</span>( "EINK", 14, 50 ); 13 <span style="color: #0000ff;">delay_ms</span>( 3000 ); 14 15 <span style="color: #008000;">// Display white letters on black background</span> 16 <span style="color: #0000ff;">eink_fill_screen</span>( EINK_COLOR_BLACK ); 17 <span style="color: #0000ff;">eink_set_font</span>( guiFont_Exo_2_Condensed21x32_Regular, EINK_COLOR_WHITE, FO_HORIZONTAL ); 18 <span style="color: #0000ff;">eink_text</span>( "EINK", 14, 50 ); 19 <span style="color: #0000ff;">Delay_ms</span>( 3000 ); 20 21 <span style="color: #008000;">// Display external image</span> 22 <span style="color: #0000ff;">eink_image_bmp</span>( _mikroe_bmp ); 23 <span style="color: #0000ff;">Delay_ms</span>( 3000 ); 24 } 25 } |
mikroC以外の環境でSPIホストを作る場合には、それぞれ環境に応じてプログラミングをします。例はデータシートにありますので参考にしてください。なお、SSD1606自体は有名なコントローラーなので、ネットで “SSD1606 Library”や”SSD1606 Arduino”等で検索すると、ライブラリ例が多数表示されますので、検索してお使いになると簡単です。
当方で実際のSPI通信を観察したデータを下記に示します。図の波形は最初の初期化部分の最初の4バイトを表示しています。各信号線の状態を参考にしてください。
※本デバイスにMISO線はありません。(スレーブデバイス側からの出力はないため)そのため表示ではすべて00になっていますので無視してください。
なお、下図の様に画面に”1234″という数字画像の表示を行った場合のMOSI全通信データをCSV形式でこちらからダウンロードできます。初期化から画像データの転送まですべてのデータを確認して頂けます。
■画像データ・フォントデータの作成.
電子ペーパー本体にはフォントデータは内蔵されていません。よって、数字やローマ字、日本語等の文字はすべて文字ではなく画像データとして本体にSPIで送信する必要があります。
その他の画像データも同様です。画像データは172×72ドットの座標データとして本体に送ります。本体にはディスプレイRAMがありそこにイメージデータを格納します。RAMのサイズは各RAMあたり128×180×2ビットです。RAMのマップアドレスはSSD1606のデータシート19ページを参照してください。
表示させたい画像は、座標データとしてコンパイラで使います。ビットマップ画像から座標データを出力するツールは色々とリリースされていますが、当方では実績のあるフリーソフト、Resources Creatorをおすすめしています。
このソフトでは172×72ドットの24ビットビットマップ形式で作成されたビットマップデータを座標データとして配列データとして出力します。コンパイラでヘッダファイル等にコピー&ペーストして使うことでマイコンから画像データを表示させるのに便利です。また、Windowsのフォントデータを座標データに変換する機能もあります。
Windows標準のペイントを使って画像データを作る場合には次の手順で操作してください。
1.Windowsのペイントでビットマップ画像データを作成する場合にはサイズを水平方向72ピクセル、垂直方向172ピクセルとして縦長の画像ファイルを作ります。
2.ペイントで画像ファイルを作ったら、24ビットビットマップ形式で保存します。「ファイル」→「名前を付けて保存」をクリックし、「ファイルの種類」を「24ビット ビットマップ」として保存してください。
3.Resources Creatorを起動します。ウインドウ下にある「Bitmap」タブを選択します。
4.メニューバーの「File」→「Import Bitmap Image」をクリックして手順2で保存したビットマップファイルを開いてください。
5.画面下に”Width 72″ “Height 172” “Bitmap Format 24bit”と表示されていることを確認します。
6.メニューバーの「File」→「Create File .c Bitmap」をクリックして拡張子.cのファイルを生成します。
7.ファイルを開くと座標データがありますので、お使いのSPIホストを作成しているコンパイラのソースプログラムに貼り付けてお使いください。
なお、mikroCをお使いの場合には配列の型を 「const uint8_t」としてください。また、配列の要素数は24768としてください。さらにResources Creatorで作った配列データの先頭にある下記の6バイトは削除してください。
const uint8_t image_bmp[24768] = { ….. }