TFTタッチシールドで遊ぶ−その1


Arduinoの楽しみの一つに、組み立て済みモジュール=シールドをつないで遊ぶことがある。
ディスプレイエンジニアとしては、是非カラー液晶を使って遊んでみたいものだ。
ということで、Seeed Studioの2.8" TFTタッチシールドを購入してつないでみた。
なお筆者はRadio Shackで購入して、versionは2.1と記されていた。


つなぐのは簡単で、もうこの方向しかないという方向にピンを合わせてArduinoに差し込むだけだ。
次にライブラリーを導入する。
ライブラリーの情報は、http://www.seeedstudio.com/wiki/2.8%27%27_TFT_Touch_Shield_V2.0にあり、

からそれぞれ入手できる。
それぞれGitHubからzipファイルで入手して、(Arduinoのルートフォルダー)/librariesにフォルダごと放り込めばよい。
ありがたいことにexamplesも一緒に入っている。
例えばTFT2ライブラリーの下のdrawCircleを使えば、簡単に動作確認ができる。


動作確認だけでは面白くないので、ちょっとしたお絵かきも作ってみた。


#include
#include
#include
#include

#define COLOR_PALLET_SIZE 30
#define NUM_OF_PALLET_COLORS 8
#define BAU_RATE 115200
#define DISPLAY_SIZE_X 240
#define DISPLAY_SIZE_Y 320
#define PEN_SIZE 2

unsigned int palletColors[ NUM_OF_PALLET_COLORS ] = { BLACK, RED, GREEN, BLUE, CYAN, YELLOW, WHITE, GRAY1 };
int color;

TouchScreen touchScreen = TouchScreen(XP, YP, XM, YM); //init TouchScreen port pins

void setup()
{
color = WHITE;
Tft.TFTinit(); //init TFT library
Serial.begin( BAU_RATE );
for( int count = 0; count < NUM_OF_PALLET_COLORS; count++)
{
Tft.fillRectangle( count * COLOR_PALLET_SIZE, 0, COLOR_PALLET_SIZE, COLOR_PALLET_SIZE, palletColors[ count ] );
}
}

void loop()
{
Point pointTouch = touchScreen.getPoint();
pointTouch.x = map( pointTouch.x, TS_MINX, TS_MAXX, 0, DISPLAY_SIZE_X );
pointTouch.y = map( pointTouch.y, TS_MINY, TS_MAXY, 0, DISPLAY_SIZE_Y );
//
if (pointTouch.z > __PRESURE)
{
if( pointTouch.y < COLOR_PALLET_SIZE + PEN_SIZE )
{
color = palletColors[ pointTouch.x / COLOR_PALLET_SIZE ];
}
else
{
Tft.fillCircle( pointTouch.x, pointTouch.y, PEN_SIZE , color );
}
}
}

Arduino Uno Rev3

Arduino Uno Rev3