●e-DISPに線や矩形を描画してみる
 e-DISPの仕様書を読んでみると、拡張されたエスケープ・シーケンスを使って線や矩形を描画できると書いてあります。試してみましょう。

mySerial.print("\x1B@30Z"); // 背景表示用バッファを0 に設定します。
mySerial.print("\x1B@0;0;60;40;200;100;32767z");  // 白い矩形を描画する

 バッファ0に、幅60ドット、高さ40ドットの矩形を、x座標200、y座標100に、白(32767、16進数だと0x7FFF)で描画します。幅や高さ、座標、色の数値をいろいろ変えてみてください。思ったとおりの矩形を描画できましたか?
 バッファとは何か?は、ここでは説明しません。e-DISPのマニュアルを参照してください。色を表す数値について、「8.1 線や矩形の色について」を参照してください。

 矩形を描画したとの同じ要領で、こんどは線を描画してみましょう。
mySerial.print("\x1B@30Z"); // 背景表示用バッファを0 に設定する。
mySerial.print("\x1B@0;0;60;40;200;100;32767z");  // 白い矩形を描画する
mySerial.print("\x1B@2;0;0;0;319;239;31z");  // 青い線を描画する

3-1.jpg  座標(0,0)から座標(319,239)まで、つまり、画面の左上から右下まで、青い線を描画できたと思います。色を表す数値について、「8.1 線や矩形の色について」を参照してください。
 線や矩形を描画できるようになると、たとえば、センサから取得した値を使ってグラフを描くこともできます。大変便利な機能です。

 線や矩形を描画するために、次のような関数を用意しておくと便利でしょう。
// 四角形の単色データを背景に表示する。
void box(int buffer, int width, int height, int x, int y, word color) {
    mySerial.print("\x1B@0;");
    mySerial.print(buffer); mySerial.print(";");
    mySerial.print(width); mySerial.print(";");
    mySerial.print(height); mySerial.print(";");
    mySerial.print(x); mySerial.print(";");
    mySerial.print(y); mySerial.print(";");
    mySerial.print(color); mySerial.print("z");
}

// (x0,y0)-(x1,y1)間にラインを表示する。
void line(int buffer, int x0, int y0, int x1, int y1, word color) {
    mySerial.print("\x1B@2;");
    mySerial.print(buffer); mySerial.print(";");
    mySerial.print(x0); mySerial.print(";");
    mySerial.print(y0); mySerial.print(";");
    mySerial.print(x1); mySerial.print(";");
    mySerial.print(y1); mySerial.print(";");
    mySerial.print(color); mySerial.print("z");
}
線や矩形の色について
 線や矩形を描画するときに指定する色について説明します。色はRGB555と呼ばれるフォーマットで表現され、赤、緑、青を表現するために、それぞれに5ビット使用します。

3-2.jpg
#define RGB(r,g,b) (((r)<<10)| ((g)<<5)| (b))

楠川 歩

e-DISP入手先 (株)ディーディーエル




トラックバック(0)

このブログ記事を参照しているブログ一覧: Arduinoにリユース・カラーLCD「e-DISP(イーディスプ)」をつなぐ (その3)

このブログ記事に対するトラックバックURL: http://www.eleki-jack.com/mt/mt-tb.cgi/3198

コメントする

カテゴリ

このブログ記事について

このページは、yoshidaが2009年8月 5日 10:49に書いたブログ記事です。

ひとつ前のブログ記事は「Arduinoにリユース・カラーLCD「e-DISP(イーディスプ)」をつなぐ (その2)」です。

次のブログ記事は「Arduino MEGAを使ったLEDマトリクスによる漢字ティッカの製作 その1」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログのライセンスは クリエイティブ・コモンズライセンス.