Page 1

GLCD-XT1

GLCD-XT

 คุณสมบัติทางเทคนิค  มีโมดูลแสดงผลแบบกราฟกสี ความละเอียด 128 x 160 จุด ขนาด 1.8 นิว ้

้ (ไมรองรับไฟลรูปภาพใดๆ) 65,536 สี พรอมไฟสองหลัง  แสดงภาพกราฟกลายเสนและพืนสี  แสดงผลเปนตัวอักษรขนาดปกติ (5x7 จุด) ได 21 ตัวอักษร 16 บรรทัด (หรือ 21x16)  มีสวิตชกดติดปลอยดับพรอมใชงาน (สวิตช OK) 1 จุด โดยตอรวมกับตัวตานทานปรับคา

ได (KNOB) ทําใหอานคาสัญญาณดิจิตอลและอะนาลอกไดในขาพอรตเดียวกัน วงจรสมบูรณของบอรด GLCD-XT แสดงในรูปที่ 1 +5V IC5 LM1117-3.3V

GLCD 128x160 pixel

C14 10F 16V

21-character 16-line CS 17

+3.3V

C16 10F 16V

C15 0.1F

R11 4.7k

PB0 R13 4.7k

R12 4.7k

PB1

MISO 16

PB2

D/C 31

R15 4.7k

PE2

R17 4.7k

R14 4.7k

N/C GND CS Vcc Vcc CLK MISO D/C /RST GND LEDA LEDK GND N/C

CLK 15

R16 4.7k

YYY

R9 4.7

+3.3V

8

VR1 KNOB

PB4 SW5 OK

+3.3V

R18 4.7k

 

รูปที่ 1 วงจรของบอรด GLCD-XT

C18 0.1F

PORT

+3.3V xx

+5V R11 1k

1 2 3 4 5 6 7 8 9 10 11 12 13 14

R10 4.7k RST C17 0.1F

D1 1N4148

SW3 RESET

R11 1k


2GLCD-XT

รูปที่ 2 การจัดขาของบอรด GLCD-XT (N/C เปนขาที่ไมมีการใชงาน)

การจัดขาและการจัดการเชื่อมตอกับบอรด Union และ POP-XT ในรูปที่ 2 แสดงการจัดขาเชือมต ่ อทังหมด ้ จะมีขาทีใช ่ งานจริงเพียง 11 ขา คือ CS, CLK, MISO, D/C, PORT (OK/KNOB), RESET, +5V (2 ขา) และ GND หรือกราวด (3 ขา) เมือนํ ่ ามาตอกับบอรด Unicon และ POP-XT (ในชุดหุนยนต  POP-BOT XT) ขาทังหมดจะได ้ รับการเชือมต ่ อกับขาพอรตดังนี้ ขา GLCD-XT CS CLK MISO D/C PORT R + G

ขาพอรตตามมาตรฐาน Arduino 17 15 16 11 8 RESET +5V GND

ขาพอรตตามมาตรฐาน Atmel PB0 PB2 PB1 PB0 PB1 RESET +5V GND


GLCD-XT3

(ก) ตอใชงาน GLCD-XT กับบอรด Unicon

(ข) บอรด POP-XT ทีมี่ GLCD-XT เปนสวนประกอบ

รูปที่ 3 แสดงการตอใชงาน GLCD-XT รวมกับบอรด Unicon และเปนสวนหนึงของ ่ POP-XT บอรดควบคุม หุนยนต POP-BOT XT สําหรับบอรด POP-XT จะติดตัง้ GLCD-XT มาในตัวแลว จึงไมตองมีขันตอนในการเชื ้ อมต ่ อ ใดๆ เพิมเติ ่ ม สวนการใชงาน GLCD-XT กับบอรด Unicon ใหดําเนินการดังนี้ 1. ปดไฟเลียง ้ 2. นํา GLCD-XT มาติดตังบนคอนเน็ ้ กเตอร IDC ตัวเมียทีล่ อมรอบตัวชิปไมโครคอนโทรลเลอร ATmega32U4 โดยมีทิศทางตามรูปที่ 3 (ก) หลังจากติดตังเพื ้ ่อเชื่อมตอเสร็จแลว สวิตช RESET ของบอรเด Unicon เดิมจะถูกบัง ตองเปลียนมาใช ่ สวิตช RESET บนบอรด GLCD-XT แทน 3. ในการเชือมต ่ อกับพอรต USB จะตองเปดสวิตชเพื่อจายไฟใหแกบอรด Unicon แลวรอสัก ครู เพื่อใหตัวควบคุมพรอมทํางานเสียกอน สังเกตจาก LED สีนําเงิ ้ นจะติดกะพริบถี่ๆ อยูครูหนึ  ่ง จากนันจะติ ้ ดคาง

ไฟลไลบรารีสําหรับ GLCD-XT ทาง inex ไดเตรียมไฟลไลบรารีสําหรับใชงานกับ GLCD-XT ไวแลว หลังจากติดตังซอฟต ้ แวร Arduino1.0x สํ าหรั บบอร ด Unicon แลว ไฟลไลบรารีนี้จะไดรับการคัดลอกลงในโฟลเดอร C:\arduino\libraries\popxt โดยประกอบดวย 3ไฟลหลักคือ glcd.h, GCLCD.h และ glcdfont.c ในการประกาศเพื่อผนวกไฟลไลบรารีนีในโปรแกรมหรื ้ อสเก็ตชของ Arduino1.0 ทําไดดังนี้ #include <glcd.h> หรือ #include <popxt.h>


4GLCD-XT

   (1.1) เปดโปรแกรม Arduino1.0 พิมพโปรแกรมที่ 1 แลวบันทึกไฟล (1.2) ติดตั้งบอรด GLCD-XT บนบอรด Unicon เปดสวิตชจายไฟแกบอรด Unicon แลว เชื่อมตอสาย USB เขา กับคอมพิวเตอร

#include <popxt.h> // ผนวกไลบรารีหลัก void setup() { glcd(1,0,"Hello World"); // แสดงขอความบนจอแสดงผล } void loop() { } คําอธิบายโปรแกรม โปรแกรมนีจะทํ ้ างานโดยสงขอความ Hello World ออกไปแสดงผลที่บรรทัด 1 คอลัมน 0 ของจอ แสดงผล จะทํางานเพียงครั้งเดียว จึงเขียนโปรแกรมไวที่ตําแหนงของ void setup() เทานัน้

โปรแกรมที่ 1 ไฟล HelloWorld.ino สําหรับทดสอบการแสดงผลของแผงวงจร POP-XT และ Unicon กับ GLCD-XT


GLCD-XT5

(1.3) เลือกชนิดหรือรุนของฮาร  ดแวรใหถูกตอง โดยเลือกทีเมนู ่ Tools > Board > Unicon หรือ POP-XT ดังรูป

(1.4) เลือกพอรตอนุกรมสําหรับติดตอกับบอรด Unicon หรือ POP-XT โดยเลือกทีเมนู ่ Tools > Serial Port ดังรูป (ตําแหนงของพอรตที่ใชเชือมต ่ ออาจแตกตางกันในคอมพิวเตอรแตละเครือง) ่

(1.5) คอมไพลและอัปโหลดไปยังบอรด Unoicon หรือ POP-XT โดยคลิกทีปุ่ ม ทีหน ่ าจอแสดงผลกราฟก LCD แสดงขอความ Hello World

หรือเลือกทีเมนู ่ File > Upload


6GLCD-XT

    จอแสดงผลของ GLCD-XT มีขนาด 128 x 160 พิกเซล แสดงตัวอักษรความละเอียด 5 x 7 จุด จํานวน 21 ตัวอักษร 16 บรรทัด ผูใชงานสามารถระบุตําแหนงบรรทัดและตําแหนงคอลัมนทีต่ องการแสดงผลได โดยกําหนด ผานคําสั่ง glcd ซึ่งมีอยูในไฟลไลบรารี glcd.h หรือ popxt.h นอกจากนันคํ ้ าสัง่ glcd ยังมีอักขระพิเศษเพือระบุ ่ ตําแหนงแทนการใชคาตัวเลข ดังในโปรแกรมที่ 2 #include <popxt.h> // ผนวกไฟลไลบรารีหลัก int i,j; void setup() { glcdFillScreen(GLCD_WHITE); // กําหนดใหสีของพืนหลั ้ งของจอแสดงผลเปนสีขาว setTextColor(GLCD_BLACK); // กําหนดสีตัวอักษรเปนสีดํา setTextBackgroundColor(GLCD_WHITE); // กําหนดสีพืนหลั ้ งของตัวอักษรเปนสีขาว for (i=0;i<16;i++) // วนลูป 16 รอบเพื่อแสดงขอความ { glcd(i,i,"Row %d ",i); // แสดงขอความที่จอแสดงผล } } void loop() {} คําอธิบายโปรแกรม ในโปรแกรมนีเพิ ้ ่มเติมคําสังสํ ่ าหรับการใชงานจอแสดงผลอีก 3 คําสังคื ่ อ 1. glcdFillScreen เปนคําสังกํ ่ าหนดสีพื้นหลังของจอแสดงผล 2. setTextColor สําหรับกําหนดสีใหแกตัวอักษร 3. setTextBackground สําหรับกําหนดสีพื้นหลังของตัวอักษร เมือตั ่ งค ้ าของจอแสดงผลแลว จึงทําการสงขอความ Row ตามดวยหมายเลขบรรทัดซึ่งมาจากการ เพิมค ่ าของตัวแปร i และมีการเลือนตํ ่ าแหนงตามคาของ i ดวย ดังนันที ้ บรรทั ่ ดแรก ขอความ Row0 ถูกแสดง ที่คอลัมน 0 ที่บรรทัด 2 แสดงขอความ Row 1 ที่คอลัมน 1 ไลไปตามลําดับจนถึงบรรทัด 15 (บรรทัดที่ 16) จะแสดงเปน Row 15 ที่คอลัมน 15

โปรแกรมที่ 2 ไฟล MultipleTextline.ino สําหรับทดสอบการแสดงผลอักษรหลายบรรทัดของ GLCD-XT


GLCD-XT7

(A1.2.1) เปดโปรแกรม Arduino1.0 พิมพโปรแกรมที่ A1-2 แลวบันทึกไฟล (A1.2.2) เปดสวิตชจายไฟแกบอรด Unicon ที่ติดตั้ง GLCD-XT แลวหรือบอรด POP-XT เชื่อมตอสาย USB เขา กับคอมพิวเตอร (A1.2.3) คอมไพลและอัปโหลดโปรแกรม โดยคลิกทีปุ่ ม

หรือเลือกทีเมนู ่ File > Upload

ทีหน ่ าจอแสดงผลกราฟก LCD แสดงขอความ Row 0 ถึง Row 15 เรียงไปบรรทัดละขอความ


8GLCD-XT

    ขนาดตัวอักษรปกติทีแสดงบนจอแสดงผลของ ่ GLCD-XT เมือเริ ่ มต ่ นทํางานเปนขนาดเล็กสุด ใชจํานวน จุดตอตัวอักษรคือ 6 x 10 จุด (อักษรจริงมีขนาด 5 x 7 จุด) ถาตองการปรับขนาดตัวอักษรใหใหญขึน้ จะมีคําสั่ง setTextSize ไวสําหรับปรับขนาด โดยคาที่กําหนดจะเปนจํานวนเทาของตัวอักษรปกติ เชน setTextSize(2) หมายถึงขนาดตัวอักษรใหญขึนเป ้ น 2 เทา ใช 12 x 20 พิกเซลตอ 1 ตัวอักษร setTextSize(3) หมายถึงขนาดตัวอักษรใหญขึนเป ้ น 3 เทา ใช 18 x 30 พิกเซลตอ 1 ตัวอักษร เมือปรั ่ บขนาดตัวอักษรมีขนาดใหญขึน้ จํานวนตัวอักษรตอบรรทัดก็ตองลดลง จากเดิม 21 ตัวอักษร 16 บรรทัด เมือขนาดของตั ่ วอักษรเพิมขึ ่ นเป ้ นสองเทา ก็จะทําใหแสดงได 10 ตัวอักษร 8 บรรทัดแทน ดังนันเมื ้ อเขี ่ ยน โปรแกรมจะตองคํานึงถึงคาเหลานีด้ วย นอกจากขนาดตัวอักษรแลว ยังกําหนดทิศทางการแสดงผลของจอแสดงผลได โดยใชคําสัง่ glcdMode() โดยมีคาตั้งตนคือ โหมด 0 (glcdMode(0)) นั่นคือ แสดงผลในแนวตั้ง สําหรับอีก 3 โหมดคือ โหมด 1, 2 และ 3 ใชปรับใหการแสดงผลหมถนไปโหมดละ 90 องศา นันคื ่ อ โหมด 1 หมุนไป 90 องศา, โหมด 2 หมุนไป 180 องศา และโหมด 3 หมุนไป 270 องศา #include <popxt.h> int x,m; void setup() { setTextColor(GLCD_RED); } void loop() { for (x=1;x<6;x++) { setTextSize(x); for(m=0;m<4;m++) { glcdClear(); glcdMode(m); glcd(0,0,"%dX",x); glcd(1,0,"M=%d",m); sleep(500); } } }

// กําหนดสีตัวอักษรเปนสีแดง

// กําหนดขนาดตัวอักษร // เคลียรหนาจอ // กําหนดทิศทาง // แสดงขนาดตัวอักษร // แสดงโหมดทิศทาง

โปรแกรมที่ 3 ไฟล SetText_FlipDisplay.ino สําหรับทดสอบการเพิมขนาดตั ่ วอักษรในการแสดงผล และการเปลียนทิ ่ ศทางของการแสดงผลของ GLCD-XT


GLCD-XT9

(.3.1) เปดโปรแกรม Arduino1.0 พิมพโปรแกรมที่ 3 แลวบันทึกไฟล (3.2) เปดสวิตชจายไฟแกบอรด Unicon ทีติ่ ดตั้ง GLCD-XT แลวหรือบอรด POP-XT เชื่อมตอสาย USB เขากับ คอมพิวเตอร (3.3) คอมไพลและอัปโหลดโปรแกรม โดยคลิกทีปุ่ ม

หรือเลือกทีเมนู ่ File > Upload

ทีหน ่ าจอแสดงผลกราฟก LCD แสดงขอความแจงขนาดของตัวอักษรและโหมดของการแสดงผลในทิศ ทางทีต่ างกัน เริมจากมุ ่ มบนซาย, มุมบนขวา, มุมลางขวา และมุมลางซาย โดยรอบการแสดงผลจะเริมจากขนาด ่ 1X, 2X, 3X , 4X และ 5X แตละรอบจะมีการแสดงผล 4 ทิศทาง โดยดูจากคา M M = 0 จอแสดงขอความแนวตั้ง ตัวอักษรขนาด 3 เทา

M = 1 หมุนการแสดงผลไป 90 องศาทางขวา ตัวอักษรขนาด 4 เทา

M = 2 หมุนการการแสดงผลไป 180 องศา M = 3 หมุนการแสดงผลไป 270 องศา จะไดภาพทีกลั ่ บหัวเมือเที ่ ยบกับ M = 0 ตัวอักษรขนาด 5 เทา ตัวอักษรขนาด 4 เทา


10GLCD-XT

    ฟงกชั่น glcd เปนฟงกชั่นหลักในการติดตอกับจอแสดงผลกราฟก LCD นอกจากมีคําสั่งแสดงขอความ แลว ยังมีคําสังในการวาดลายเส ่ นกราฟกอีกหลายคําสั่ง ประกอบดวย glcdRect(int x1,int y1,int width,int height,uint color) เปนคําสั่งสรางรูปสี่ เหลี่ยม glcdFillRect(int x1,int y1,int width,int height,uint color) เปนคําสั่งสราง พืนสี ้ เหลี ่ ่ยม glcdLine(int x1, int y1, int x2, int y2,uint color) เปนคําสั่งลากเสน glcdCircle(int x, int y, int radius,uint color) เปนคําสั่งวาดเสนวงกลม ่ างพืนที ้ วงกลม ่ glcdFillCircle(int x, int y, int radius,uint color) เปนคําสังสร glcdClear(uint color) เปนการเคลียรหนาจอแสดงผล โดยทดสอบเขียนโปรแกรมไดดังโปรแกรมที่ 4 แลวอัปโหลดเพื่อทดสอบการทํางานไปยังแผงวงจร POPXT หรือ Unicon จะไดผลดังรูป

#include <popxt.h> int i,j; void setup() {} void loop() { glcdClear; sleep(300); for (i=0;i<160;i+=4) { glcdLine(0,0,128,i,GLCD_WHITE); }

// ผนวกไฟลไลบรารีหลัก

// เคลียรหนาจอและพื้นหลังเปนสีดํา

// วาดเสนสีขาวจากพิกัด 0,0 ไปยังจุดทีกํ่ าหนด


GLCD-XT11

for (i=0;i<128;i+=4) { glcdLine(0,0,i,160,GLCD_RED); } sleep(2000); glcdRect(32,40,64,80,GLCD_BLUE); sleep(300); glcdFillCircle(32,40,31,GLCD_GREEN); glcdFillCircle(96,40,31,GLCD_YELLOW); glcdFillCircle(32,120,31,GLCD_MAGENTA); glcdFillCircle(96,120,31,GLCD_SKY); sleep(1000); glcdCircle(64,40,31,GLCD_GREEN); glcdCircle(32,80,31,GLCD_BLUE); glcdCircle(64,120,31,GLCD_YELLOW); glcdCircle(96,80,31,GLCD_SKY); sleep(1000); glcdFillRect(0,0,128,160,GLCD_YELLOW); sleep(1000);

// วาดเสนสีแดงจากพิกัด 0,0 ไปยังจุดทีกํ่ าหนด // วาดเสนกรอบสี่เหลียมสี ่ นํ้าเงิน // สรางวงกลมพืนสี ้ เขียว // สรางวงกลมพืนสี ้ เหลือง // สรางวงกลมพืนสี ้ บานเย็น // สรางวงกลมพืนสี ้ ฟา // วาดเสนรอบวงกลมสีเขียว // วาดเสนรอบวงกลมสีนํ้าเงิน // วาดเสนรอบวงกลมสีเหลือง // วาดเสนรอบวงกลมเสนสีฟา // สรางรูปสี่เหลียมสี ่ เหลือง

}

โปรแกรมที่ 4 ไฟล Simplegraphic.ino สําหรับทดสอบการแสดงผลภาพลายเสนของ GLCD-XT

    นอกจากวงกลมและสีเหลี ่ ่ยมแลว เสนโคงก็เปนสวนประกอบสําคัญในการสรางภาพกราฟก ในชุดคําสัง่ เกี่ยวกับการแสดงผลจอภาพแบบกราฟกสีของ GLCD-XT ยังมีคําสั่ง glcdArc() สําหรับสรางเสนโคง โดยมี พารามิเตอรหรือตัวแปรทีต่ องกําหนดอยูพอสมควร  ดูรายละเอียดเพิมเติ ่ มในเอกสารไฟลไลบรารี glcd (ดาวนโหลด ไดที่ www.inex.co.th หรือ www.uniconboard.com) ซึ่งบรรจุคําสั่งพิเศษเหลานี้ไว (5.1) เปดโปรแกรม Arduino1.0 พิมพโปรแกรมที่ 5 แลวบันทึกไฟล (5.2) เปดสวิตชจายไฟแกบอรด Unicon ทีติ่ ดตั้ง GLCD-XT แลวหรือบอรด POP-XT เชื่อมตอสาย USB เขากับ คอมพิวเตอร


12GLCD-XT

#include <popxt.h> int i; void face() { glcdFillCircle(64,70,50,GLCD_WHITE); glcdArc(48,60,16,30,150,GLCD_RED); glcdCircle(48,55,5,GLCD_BLUE); glcdCircle(80,55,5,GLCD_BLUE); glcdArc(80,60,16,30,150,GLCD_RED); glcdFillCircle(64,70,7,GLCD_YELLOW); glcdArc(64,80,30,220,320,GLCD_RED); glcdArc(64,80,29,220,320,GLCD_RED); } void setup() {} void loop() { for(i=0;i<4;i++) { glcdClear(); glcdMode(i); // สังหมุ ่ นการแสดงผล face(); sleep(1000); } }

โปรแกรมที่ A1-5 ไฟล SmileFace_ArcTest.ino สําหรับทดสอบการวาดเสนโคงของแผงวงจร POP-XT (5.3) คอมไพลและอัปโหลดโปรแกรม โดยคลิกทีปุ่ ม

หรือเลือกทีเมนู ่ File > Upload

(5.4) รันโปรแกรม ดูผลการทํางานทีจอแสดงผลของ ่ GLCD-XT ทีจอแสดงผลแสดงเป ่ นรูปการตูนหนายิ้มนาน 1 วินาที แลวหมุนไปครังละ ้ 90 องศา แลววนกลับมาที่ หนาเริ่มตน จะวนแสดงผลไปตลอดเวลา

glcd-xt  

The color Graphic LCD top-board for Unicon microcontroller board technical manual