2016年05月21日 | 公開。 |
2016年06月03日 | ダウンロードするMGLCDライブラリをVer. 0.40からVer. 0.41に変更した。 |
7ページから12ページにかけて、AQM1248Aに直接コマンドやデータを送って画面描画するスケッチの作り方を説明しましたが、VRAMの構成や、各種コマンド、VRAMの二重化など、知っておくべきことが色々ありました。
AQM1248A用のライブラリを使うと、この様な細かい技術はライブラリ内に隠蔽されてしまい、スケッチの作者は、描画したい図形や文字列をライブラリに指定するだけで、簡単に描画できるようになります。
今回ご紹介するのは、MGLCDライブラリという、Arduino用のモノクログラフィックLCDモジュール制御用のライブラリです。このライブラリはAQM1248A以外にもいくつかのLCDモジュールの制御ができます。LCDモジュールの種類が変わっても、ほぼ同じスケッチで制御できるのが特徴です。
MGLCDライブラリVer 0.41でAQM1248Aを使う場合、表19に示す種類のArduinoが使用できます。対応Arduinoは、今後増える可能性があります。
8ビットArduino | Arduino Uno、Arduino Leonardo、Arduino Mega 2560、Arduino Pro 328 5V 16MHz、Seeeduino V3.0(Atmega 328P) |
---|---|
32ビットArduino | Arduino M0、Arduino Due |
また、ArduinoとAQM1248Aの接続法は、ハードウェアSPI接続とソフトウェアSPI接続の両方に対応しています。
注1:ハードウェアSPI接続の場合は、対応Arduino IDEが1.6.Xと1.7.Xになります。Arduino IDE 1.0.Xは使えません。また、Arduino M0を使う場合はArduino IDE 1.7.10以降を使ってください。(Arduino IDE 1.7.9以前のArduino IDEではArduino M0のSPIライブラリに不具合があるため)
注2:ソフトウェアSPI接続の場合は、Arduino IDEの1.0.X、1.6.X、1.7.Xが利用できます。
それでは、MGLCDライブラリを使ったAQM1248Aの制御について説明します。
MGLCDライブラリは、MGLCDライブラリのページでダウンロードできます。
今回はVer. 0.41を使います。MGLCDライブラリのページの表2でMGLCD_041.zipとMGLCD_SPI_041.zipの2つのファイルをダウンロードしてください。
ダウンロードした2つのファイルをArduino IDEにインストールする方法は、MGLCDライブラリユーザーマニュアルに書いてありますので、そこに書いてある指示に従ってください。
ハードウェアSPI接続でArduinoとAQM1248Aを接続し、MGLCDライブラリを使って"Hello, World!"と表示する方法を説明します。
まず、以下の説明を読んで、ArduinoとAQM1248Aを接続してください。
Arduino Uno、Arduino Leonardoなど、I/O電圧が5VのArduinoを使う場合は、レベル変換回路が必要になります。4ページ、5ページ、および6ページを読んで、配線を行ってください。
具体的には図12(抵抗分圧を使う方法)、図32(74AHC244を使う方法)、図35(HD74LVC541などを使う方法)、図38(74HC4050を使う方法)のいずれかで、配線を行ってください。どの方法が良いかは、手持ちの部品や、部品を購入する場合は部品の入手しやすさ、半田付けのしやすさ(図35では表面実装部品を使う)などを考慮して決めてください。
これらの図を再掲します。
Arduino M0、Arduino Dueなど、I/O電圧が3.3VのArduinoの場合は、レベル変換回路が不要で、ArduinoとAQM1248Aを直結できます。3ページの説明を読んで配線を行ってください。
3ページに載っている配線図(図6)を再掲します。
次に、"Hello, World!"を表示するスケッチを入力します。Arduino IDEを起動して、リスト26を入力してください。
#include <MGLCD.h>
#include <MGLCD_SPI.h>
#include <SPI.h>
#define CS_PIN 10
#define DI_PIN 9
#define MAX_FREQ (1000*1000L)
MGLCD_AQM1248A_SPI MGLCD(MGLCD_SpiPin2(CS_PIN, DI_PIN), MAX_FREQ);
void setup() {
MGLCD.Reset();
MGLCD.print("Hello, World!");
}
void loop() {
}
このスケッチを実行すると、AQM1248Aの画面に"Hello, World!"と表示されます。その時の画面を写真33に示します。
リスト26のスケッチの動作の仕組みなどは、次のページで説明します。
ソフトウェアSPI接続でArduinoとAQM1248Aを接続し、MGLCDライブラリを使って"Hello, World!"と表示する方法を説明します。
まず、以下の説明を読んで、ArduinoとAQM1248Aを接続してください。
Arduino Uno、Arduino Leonardoなど、I/O電圧が5VのArduinoを使う場合は、レベル変換回路が必要になります。4ページ、5ページ、および6ページを読んで、配線を行ってください。
具体的には図13(抵抗分圧を使う方法)、図33(74AHC244を使う方法)、図36(HD74LVC541などを使う方法)、図39(74HC4050を使う方法)のいずれかで、配線を行ってください。どの方法が良いかは、手持ちの部品や、部品を購入する場合は部品の入手しやすさ、半田付けのしやすさ(図35では表面実装部品を使う)などを考慮して決めてください。
これらの図を再掲します。
Arduino M0、Arduino Dueなど、I/O電圧が3.3VのArduinoの場合は、レベル変換回路が不要で、ArduinoとAQM1248Aを直結できます。3ページの説明を読んで配線を行ってください。
3ページに載っている配線図(図7)を再掲します。
次に、"Hello, World!"を表示するスケッチを入力します。Arduino IDEを起動して、リスト27を入力してください。
#include <MGLCD.h>
#define SCK_PIN 13
#define MOSI_PIN 11
#define CS_PIN 10
#define DI_PIN 9
#define WAIT 0
MGLCD_AQM1248A_SoftwareSPI MGLCD(MGLCD_SpiPin4(SCK_PIN, MOSI_PIN, CS_PIN, DI_PIN),WAIT);
void setup() {
MGLCD.Reset();
MGLCD.print("Hello, World!");
}
void loop() {
}
このスケッチを実行すると、AQM1248Aの画面に"Hello, World!"と表示されます。その時の画面を写真33に示します。
リスト27のスケッチの動作の仕組みなどは、次のページで説明します。
次のページでは、MGLCDライブラリでスケッチを作るのに必ず必要になる、ヘッダファイルのインクルード、オブジェクト変数の宣言、およびAQM1248Aの初期化について説明します。
商品名 | 122X32モノクログラフィックLCDシールド | |
税抜き小売価格 | 3333円 | |
販売店 | スイッチサイエンス | |
サポートページ | 122X32モノクログラフィックLCDシールドサポートページ |
商品名 | GLCD学習シールドキット | |
税抜き小売価格 | 1410円 | |
販売店 | スイッチサイエンス | |
サポートページ | GLCD学習シールドキットサポートページ |