68
รายงานโครงการหมายเลข COE2006-05 แวนตา 3 มิติ โดย นายเชษฐา คําเหม็ง รหัส 463040518-9 นางสาวประดิภา อรรคแสง รหัส 463040532-5 รายงานนี้เปนรายงานโครงการของนักศึกษาชั้นปที4 ซึ่งเสนอเปนสวนหนึ่งใน หลักสูตรวิศวกรรมศาสตรบัณฑิต ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร มหาวิทยาลัยขอนแกน

เอกสาร Project แว่นตา 3 มิติ

Embed Size (px)

DESCRIPTION

เอกสาร Project แว่นตา 3 มิติknow2pro.com

Citation preview

Page 1: เอกสาร Project แว่นตา 3 มิติ

รายงานโครงการหมายเลข COE2006-05

แวนตา 3 มต

โดย

นายเชษฐา คาเหมง รหส 463040518-9

นางสาวประดภา อรรคแสง รหส 463040532-5

รายงานนเปนรายงานโครงการของนกศกษาชนปท 4 ซงเสนอเปนสวนหนงใน

หลกสตรวศวกรรมศาสตรบณฑต

ภาควชาวศวกรรมคอมพวเตอร

คณะวศวกรรมศาสตร มหาวทยาลยขอนแกน

Page 2: เอกสาร Project แว่นตา 3 มิติ

Project Report No. COE2006-05

3D Display Glasses

By

Mr. Chedta Khummeng I.D. 463040518-9

Miss Pradipa Akkhasaeng I.D. 463040532-5

This is the report of fourth year project assignment submitted in partial

fulfillment of the requirement for the Degree of Bachelor of Engineering

Department of Computer Engineering

Faculty of Engineering Khon Kaen University

Page 3: เอกสาร Project แว่นตา 3 มิติ

เรอง

แวนตา 3 มต

โดย นายเชษฐา คาเหมง รหส 463040518-9

นางสาวประดภา อรรคแสง รหส 463040532-5

อาจารยทปรกษาโครงการ

.......................................

(อ.ดร.วส เชาวพานนท)

อาจารยผรวมประเมนโครงการ

1. ........................................

(อ.ดร.กตต เธยรธโนปจย)

2. ........................................

(อ.รจชย องอารณยะว)

ประเมนผล ณ วนท 12 กมภาพนธ พ.ศ. 2550

Page 4: เอกสาร Project แว่นตา 3 มิติ

บทคดยอ

โครงการนเปนการสรางแวนตา 3 มต จดทาขนเพอประโยชนในการแสดงผลภาพเปนแบบ

3 มต ซงผใชสามารถนาอปกกรณดงกลาวเพอชวยในการแสดงผลของภาพ 3 มต 2 ภาพใหเปน

ภาพ 3 มต โดยการสรางภาพและแสดงผลผานทางจอภาพทมอยทงสองตว

อปกรณมองภาพชนดนใชหลกการ Stereoscopic- vision ทาใหภาพ 2 มต 2 ภาพ

กลายเปนภาพ 3 มตได โดยอปกรณแสดงผลจะมจอแสดงผลและม ATMEL Mega32-16PI เปน

ตวควบคมการทางานของจอแสดงภาพ และเมอประกอบสวนประกอบตางๆ ใหอยในลกษณะของ

แวนตาโดยมจอแสดงภาพทเปรยบเสมอนเลนส ซงกจะไดเปนแวนตา 3 มต

ในปจจบนแวนตา 3 มตในลกษณะนมราคาทคอนขางสง โครงการนจงเปนการสราง

แวนตา 3 มตเพอใชงานในราคาทตากวา และยงเปนการศกษาการเชอมตอจอแสดงผลของ

โทรศพทมอถอชนดส เพอนาไปใชในงานลกษณะตางๆ ได

Page 5: เอกสาร Project แว่นตา 3 มิติ

Abstract

This project is creating a 3D display glasses. It is provided for useful to show the

picture in 3-dimension by transforms 2 pictures in 2-dimension to 3-dimension picture.

That creates the picture and shows it on each color LCD monitor.

By using concept of Stereoscopic vision that can see 3-dimension picture from

the equipment, which interface the LCD by using ATMEL Mega32-16PI control. Then

bring LCDs and all equipment together in glasses form to be 3D display glasses.

At present, 3D-glasses are very expensive. This project will create less cost of it.

And study how to interface color LCD display for use in any purpose.

Page 6: เอกสาร Project แว่นตา 3 มิติ

สารบญ

บทคดยอ ก

Abstract ข

สารบญ ค

สารบญรปภาพ จ

สารบญตาราง ช

บทท 1 บทนา 1

1.1 หลกการและเหตผล 1

1.2 วตถประสงค 2

1.3 ขอบเขตของโครงการ 2

1.4 แนวทางการดาเนนการ 2

1.5 แผนการดาเนนการ 2

1.6 ประโยชนทคาดวาจะไดรบ 3

บทท 2 ทฤษฏทเกยวของ 4

2.1 ระบบและการดภาพ 3 มต 4

2.1.1 ระบบภาพค (Stereo Pairs) 4

2.1.2 การดแบบขนาน ดวย Stereo Viewer 6

2.1.3 Page Flipped and Shutter Glasses 7

2.2 ทฤษฎภาพแบบ Stereoscopic vision 7

2.2.1 หลกการเกดภาพ 3 มตโดยภาพ Stereo pair 7

2.2.2 เทคนคการ Stereo pair 3 มตโดยใชกลองถายภาพ 8

2.2.3 การนาสงภาพ Stereo pair เขาสดวงตา 8

2.3 ตวอยางการเชอมตอกบจอแสดงผล LCD ชนดส 9

2.4 ลกษณะการทางานของแวนตา แบบ Shutter Glasses 9

บทท 3 อปกรณและเครองมอทใช 12

3.1 จอแสดงผลแอลซดชนดส 12

3.1.1 รายละเอยดโดยทวไป 13

3.1.2 ขาการใชงาน 14

3.1.3 หลกการทางาน 15

Page 7: เอกสาร Project แว่นตา 3 มิติ

3.2 ไมโครคอนโทรลเลอร 21

3.2.1 รายละเอยดโดยทวไป 21

3.2.2 ขาการใชงาน 22

3.2.3 หลกการทางาน 23

บทท 4 การออกแบบสวนแสดงผล 26

4.1 การออกแบบวงจรควบคมการแสดงผล 26

4.2 การออกแบบโปรแกรมควบคมการแสดงผล 27

4.2.1 การกาหนดคาเรมตนการทางานของการแสดงผล 27

4.2.2 การตงคา Power supply 28

4.2.3 การตงคาการแสดงผล 28

4.2.4 การตงคาหนวยความจา 29

บทท 5 การออกแบบสวนตดตอกบคอมพวเตอร 31

5.1 การออกแบบโปรแกรมตดตอ 31

5.1.1 รายละเอยดของโปรแกรม 31

5.1.2 การทางานของโปรแกรม 32

5.2 การตดตอกบไมโครคอนโทรลเลอร 33

5.2.1 รายละเอยดของการตดตอ 33

5.2.2 การทางานของไมโครคอนโทรลเลอร 34

บทท 6 การทดลอง 35

6.1 การพฒนาอปรณ 35

6.2 การทดสอบผลการทางาน 36

บทท 7 สรปผลการดาเนนงาน 37

7.1 ผลการดาเนนงานโครงการ 37

7.2 ปญหาในการดาเนนงานและแนวทางแกไข 37

7.3 ขอเสนอแนะและแนวทางการพฒนาตอ 37

ภาคผนวก ก 38

ภาคผนวก ข 45

บรรณานกรม 58

Page 8: เอกสาร Project แว่นตา 3 มิติ

สารบญรปภาพ

รปท 2.1 ภาพ stereo pair 4

รปท 2.2 ภาพขนาน 5

รปท 2.3 Stereo Scope 5

รปท 2.4 กลองสาหรบใชด slide 3 มต 6

รปท 2.5 ตว Screen Scope 6

รปท 2.6 การสงการของสมอง 8

รปท 2.7 การวางและการดภาพ 8

รปท 2.8 แสดงการเชอมตอของ Microcontroller 9

รปท 2.9 กลอง Shutter Glasses 10

รปท 2.10 แวนตา 3 มต ของ i-glasses 11

รปท 2.11 แวนตา 3 มต ของ i-Theater 11 รปท 3.1 จอแสดงผล LCD (EpsonS1D15G10) 12

รปท 3.2 แสดงบลอกไดอะแกรมของ EpsonS1D15G10 13

รปท 3.3 แสดงตาแหนงขาการใชงาน LCD 14

รปท 3.4 แสดงการสงขอมลแบบอนกรมเมอ SI = HIGH 16

รปท 3.5 แสดงการสงคาสงแบบอนกรมเมอ SI = LOW 17

รปท 3.6 ไมโครคอนโทรลเลอร ATmega32 21

รปท 3.7 แสดง Pinouts ทง 40 ของไมโครคอนโทรลเลอร 22

รปท 3.8 แสดงการตอครสตอล 23

รปท 3.9 แสดงโครงสรางหนวยความจา ATmega32 23

รปท 3.10 แสดงการจดการหนวยความจา SRAM 24

รปท 3.11 โครงสรางของรจสเตอรใชงานทวไป 25

รปท 3.12 รจสเตอร X, Y, และ Z 25

รปท 4.1 แสดงสวนประกอบของอปกรณในการแสดงผล 26

รปท 4.2 แสดงวงจรควบคมการแสดงผลจอ LCD ดวยไมโครคอนโทรลเลอร 27

รปท 5.1 แสดงหนาตางของโปรแกรม 31

รปท 5.2 แสดงการจดเรยงของสทอานไดจากโปรแกรม 32

รปท 5.3 แสดงการ AND เพอเกบคาสของสนาเงน 32

รปท 5.4 แสดงการ shift บต และแปลงขอมลเปน byte 32

Page 9: เอกสาร Project แว่นตา 3 มิติ

รปท 5.5 แสดงการจดเรยงของสททาการแปลงเรยบรอยแลว 33

รปท 6.1 แสดงการเชอมตอของอปกรณ 35

รปท 6.2 แสดงวงจรการเชอมตอของอปกรณ 35

รปท 6.3 แสดงการแสดงผลของจอแอลซด 36

รปท ผ.1 แสดงสญลกษณของโปรแกรม AVR Studio4 38

รปท ผ.2 แสดงการเลอก project ในการเรมทางานใน AVR Studio4 39

รปท ผ.3 แสดงการเลอกภาษาในการเรมเขยน project ใหมใน AVR Studio4 39

รปท ผ.4 Project option 40

รปท ผ.5 โปรแกรม PonyProg2000 41

รปท ผ.6 I/O port setup 41

รปท ผ.7 การกาหนดอปกรณใน PonyProg2000 42

รปท ผ.8 ผลการโหลด file.hex ใน PonyProg2000 43

รปท ผ.9 การโปรแกรม file.hex ทเลอกไวลงไมโครคอนโทรลเลอร 43

Page 10: เอกสาร Project แว่นตา 3 มิติ

สารบญตาราง

ตารางท 1.1 แผนการดาเนนการ 3

ตารางท 3.1 อธบายการทางานของขา LCD ไปยงไมโครคอนโทรลเลอร 14

ตารางท 3.2 แสดงการกาหนดการเชอมตอ 15

ตารางท 3.3 แสดงคาหนวยความจาเมอใช 8 gray-scale, 8-bit mode 18

ตารางท 3.4 แสดงคาสงทใชควบคมการแสดงผล 19

ตารางท 4.1 แสดงการกาหนดคาของส RGB 29

Page 11: เอกสาร Project แว่นตา 3 มิติ

1

บทท 1 บทนา

1.1 หลกการและเหตผล ในปจจบนเทคโนโลยการแสดงผลภาพตางๆ นนกาวหนาขนเรอยๆ จากในอดต รวมไปถง

รปแบบของการแสดงผลภาพกมหลากหลายรปแบบ รปแบบการแสดงผลในลกษณะทเปน 3 มตก

เปนหนงในรปแบบการแสดงผลทเกดขนในปจจบนซงไดรบความสนใจและมการใชในอปกรณ

ตางๆ เชน ระบบจอภาพโทรทศน ระบบจอภาพยนตร ซงทาใหเกดความนาสนใจในการรบชมภาพ

ยงขน ประกอบกบในปจจบนไดมการใชจอภาพสวนบคคลในลกษณะทเปนอปกรณขนาดพกพาซง

ตดอยบรเวณศรษะโดยมจอแสดงผลอยบรเวณทครอบดวงตา ซงอปกรณลกษณะนในถกสรางขน

เพอรองรบระบบมลตมเดยเพอความบนเทงเปนสวนใหญในปจจบน แตอปกรณเหลานกยง

สามารถนามาใชงานในลกษณะอนๆ ไดเชนเดยวกบจอแสดงผลชนดอนๆ ดวยคณสมบตทมขนาด

เลกกะทดรดตอการใชงาน รปแบบการใชงานทสะดวก และมความเปนสวนบคคลในการใชงาน

เมอเรานาระบบ 3 มตประกอบเขาไปกบอปกรณนกจะเกดลกษณะการแสดงผลอกรปแบบหนงซง

มความนาสนใจในการใชงาน เราจงไดนาระบบ 3 มตมาประกอบกบอปกรณลกษณะนใหเกดเปน

แวนตา 3 มต

อกประการหนงคอ ในปจจบนระบบภาพเสมอนจรงไดเขามามบทบาทกบงานดานตางๆ

ในชวตประจาวนมากขน เปนการเพมทศนะในการมองภาพและการทางานกบเครองคอมพวเตอร

และไดถกนาไปประยกตใชกบงานตางๆ อกมากมาย ไมวาจะเปนการใชในเรยนการสอนทางดาน

การแพทย เชน การผาตด ใชในงานดานฝกหดบน และใชในการสรางบนเทง ไมวาจะเปนเกมสท

รนบนเครองชนดตางๆ และทมมานานแลวกคอ ภาพยนตร 3 มต

เนองจากสนคาทตอบสนองความตองการตามทองตลาดนนอยในรปของแวนตา 3 มต ซง

สวนมากมราคาแพง จงไมเปนทแพรหลายนก ทางคณะผจดทาจงตงใจออกแบบแวนตาทม

ความสามารถในการสรางภาพ 3 มตใหมตนทนทตาลง เพอใหบคคลทวไปทสนใจสามารถนาไปใช

งานได เราจงมแนวคดทจะสรางแวนตา 3 มตทตนทนตา ซงอาจทาใหประสทธภาพการทางาน

ลดลงแตกสามารถใชงานไดในระดบดบทแสดงภาพไดโดยใชจอ LCDทสามารถหาไดตาม

ทองตลาดมาประยกตเปนแวนตา 3 มต รวมกบทฤษฎ stereoscopic vision ทาใหการมองเหน

เปนภาพ 3 มต

อกทงโครงการนไดเลงเหนถงความสามารถในการแสดงผลของจอแสดงผลของ

โทรศพทเคลอนททวไปๆ ทมคณสมบตเปนจอ LCD ชนดส ทสามารถนามาใชแสดงผลในลกษณะ

อนไดนอกเหนอจากทใชงานเปนจอแสดงภาพใหกบโทรศพทเคลอนท ซงหากเราทราบถงวธการใน

Page 12: เอกสาร Project แว่นตา 3 มิติ

2

การนาเอาจอแสดงผลดงกลาวเหลานนมาประยกตใชกจะเกดประโยชน สาหรบในโครงการนได

นาเอาจอแสดงผลของโทรศพทเคลอนท LCD ชนดแสดงผลเปนสจากโทรศพทเคลอนทยหอ Nokia

รน 6100 มาใชเปนจอแสดงผลใหกบแวนตา 3 มตของโครงการ

แนวคดในการทโดยใชจอแสดงผล LCD ชนดสทสามารถหาไดตามทองตลาดมาประยกต

เปนแวนตา 3 มต รวมกบทฤษฎ stereoscopic vision ทาใหเกดการมองเหนเปนภาพ 3 มต ซง

เกดเปนโครงการแวนตา 3 มตนขนมา

1.2 วตถประสงค 1. เพอสรางการเชอมตอสงขอมลภาพจากเครองคอมพวเตอรไปยงจอแสดงผลของ

โทรศพทเคลอนทรน Nokia 6100 ทเปนจอภาพชนดสได

2. เพอสรางแวนตา 3 มต ในการแสดงผลภาพในลกษณะ 3 มตทมราคาประหยดและม

ประสทธภาพ

1.3 ขอบเขตของโครงการ 1. สามารถแสดงผลภาพบนจอ LCD ชนดสได

2. สรางแวนตา 3 มตทสามารถแสดงผลภาพนงได

1.4 แนวทางการดาเนนการ ใชไมโครคอนโทรลเลอร และจอแสดงผล LCD แบบส 2 จอ ในการพฒนาอปกรณ

1.5 แผนการดาเนนการ โครงการนมระยะเวลาในการจดทา รวมทงสน 9 เดอน โดยเรมตงแตเดอนมถนายน พ.ศ.

2549 ถงเดอนกมภาพนธ พ.ศ. 2550 ซงมขนตอนดาเนนงานดงน

1. ศกษาและรวบรวมขอมลเกยวกบการสรางภาพ 3 มต และการสราง interface

2. จดหาอปกรณและสรางตวแวนตา 3 มต

3. ออกแบบสวน interface

4. เชอมตอตว interface เขากบแวนตา 3 มต

5. พฒนา interface

6. ทดสอบ ปรบปรง interface และอปกรณ

7. ทารายงานสรปผลและคมอการใชงาน

Page 13: เอกสาร Project แว่นตา 3 มิติ

3

จากแผนการดาเนนการขางตน สามารถแสดงระยะเวลาดาเนนงานไดดงตาราง

ตารางท 1.1 แผนการดาเนนการ

1.6 ประโยชนทคาดวาจะไดรบ 1. สามารถสรางแวนตา 3 มตทสามารถแสดงผลภาพ 3 มตได

2. สามารถสราง interface ททาหนาทสงขอมลภาพจากคอมพวเตอรไปยงจอแสดงภาพ

Nokia 6100 ชนดสทใชเปนจอแสดงภาพในตวแวนตา 3 มตได

3. ไดอปกรณแสดงภาพ 3 มตทมราคาถก

ป 2549 ป 2550 ลาดบ

แผนการดาเนนการ

ม.ย. ก.ค. ส.ค. ก.ย. ต.ค. พ.ค. ธ.ค. ม.ค. ก.พ.

1.

ศกษาและรวบรวมขอมล

เกยวกบการสรางภาพ 3 มต

และการสราง interface

2. จดหาอปกรณและสรางตว

แวนตา 3 มต

3. ออกแบบสวน interface

4. เชอมตอตว interface เขากบ

แวนตา 3 มต

5. พฒนา interface

6. ทดสอบ และปรบปรง

interface และอปกรณ

7. ทารายงานสรปผลและคมอ

การใชงาน

Page 14: เอกสาร Project แว่นตา 3 มิติ

4

บทท 2

ทฤษฏทเกยวของ

2.1 ระบบและการดภาพ 3 มต ภาพ 3 มตมการสรางและดภาพหลายระบบแตละระบบกมกระบวนการทแตกตางกน

จากหลกการนาไปสวธการของการบนทก/ดภาพทแตกตางกน ทาใหคาใชจายในแตละระบบม

ความแตกตางกนอยางมาก บางระบบระบบมคาใชจายทถกอาจไมตองมการลงทนอะไรมากมาย

แคกลองถายรปทมอย เทคนคการถายภาพ 3 มตทถกตอง รวมกบเทคนคการมองภาพ 3 มตก

สามารถใชเปนระบบภาพ 3 มตไดแลว ในขณะทระบบทมความทนสมยทตองใชอปกรณทม

คณภาพสงและเทคโนโลยสมยใหมทมคาใชจายสง ระบบกจะมราคาทสงตามไปดวย ซงระบบการ

ดภาพ 3 มตมดงน

2.1.1 ระบบภาพค (Stereo Pairs) Stereo Pairs คอการถายภาพ 2 ภาพ ทมความหางทพอเหมาะหลงจากการไดมาของ

ภาพทง 2 ภาพ เราสามารถดภาพ 3 มตไดโดยการนาภาพทง 2 ภาพเขาสดวงตาของมนษยดวย

วธการทเหมาะสมไดหลายวธตวอยางเชนดงน

2.1.1.1 การดแบบสลบตาดวยตาเปลา (Cross-Eye View)

การดภาพ Stereo pair นนสามารถดไดโดยไมตองอาศยเครองมอชวย โดยการวางภาพ

ขวาไวดานซายและวางภาพซายไวดานขวา จากนนใชตาขวาดภาพดานซาย และใชตาซายดภาพ

ดานขวา เมอเรมดภาพภาพทงสองจะคอยๆ เคลอนเขาหากน จนเกดการ 'รวม (fused)' ของภาพ

และเกดเปนภาพ 3 มต เนองจากการดภาพดวยตาเปลานน อาจทาใหเกดการลาของกลามเนอตา

และอาจเกดการเวยนหรอปวดศรษะไดจงควรคอยๆ ฝกไปจนชานาญ คนบางคนมความสามารถ

ในการมองภาพ 3 มต ไดเรวกวาคนอน ลกษณะของภาพแบบ stereo pair แสดงในรปท 2.1

รปท 2.1 ภาพ stereo pair

Page 15: เอกสาร Project แว่นตา 3 มิติ

5

เพอชวยการมองงายขน ใหมองภาพนโดยใหดงจมกอยตรงกลางระหวางวงกลม และใช

นวชชไปทกงกลางภาพ ใชตาทงสองจองมองปลายนว แลวคอยๆเลอนนวชเขามาหาดงจมกอยาง

ชาๆ โดยทตาทงสองยงจองมองปลายนวอย ภาพของวงกลมทงสองนนจะคอยๆเลอนเขาหากน

จนกระทงรวมเปนหนง เราจะสามารถมองเหนดาวสเหลองลอยขนมาอยเหนอวงกลมสนาเงน

2.1.1.2 การดแบบขนานดวยตาเปลา (Parallel View)

การดแบบขนานนเปนการดภาพในลกษณะปกต กลาวคอภาพดานซายจะอยทางซาย

และดดวยตาซาย สวนภาพดานขวาจะอยทางขวาและดดวยตาขวา

เทคนคการดภาพแบบขนาน มดงน

1. เลอนหนาเขาไปจองภาพใกลๆ

2. คอยๆ เลอนศรษะถอยออกจากภาพอยางชาๆ

3. ขณะเลอนศรษะถอยหลง ใหใชตาทงสองขาง มอง 'ทะล' ภาพไป เหมอนกบวา

มจดโฟกสอยดานหลงของภาพ

4. เมอเรมเหนภาพ 3 ภาพ ใหพยายามจองไปยงภาพทอยตรงกลาง จนกระทงตา

สามารถปรบได และมองเหนภาพ 3 มต

ตวอยางของภาพขนาน แสดงดงรปท 2.2

รปท 2.2 ภาพขนาน

ถายงมปญหาในการดภาพชนดน เราสามารถใชเครองมอชวยในการมองภาพแบบขนาน

ไดเครองมอดงกลาวเรยกวา Stereo Scope ดงรปท 2.3

รปท 2.3 Stereo Scope

Page 16: เอกสาร Project แว่นตา 3 มิติ

6

Stereo Scope แบบนใชดภาพ 3 มตทพมพออกมาแลว และใชในการแปลภาพถายทาง

อากาศทเปนภาพ 3 มต

2.1.2 การดแบบขนาน ดวย Stereo Viewer

Viewer ในทองตลาดมหลายแบบและหลายราคา บางแบบใชดภาพขนาดเลก ในขณะท

บางแบบสามารถใชดภาพ 3 มตขนาดใหญได

หลกการของ Viewer หรออปกรณดภาพ 3 มต กคอการแยกการมองของตาแตละขางให

สามารถเหนและโฟกสรปซาย-ขวาทเหมาะสม ตวอยางเชนภาพถายทางอากาศทเปน 3 มตทได

จากการถายภาพในลกษณะตงฉากกบพนโลกในลกษณะตอเนองในแนวบน ภาพทอยลาดบ

ตดกนจะมพนททซอนทบกนได เมอนาภาพ 2 ภาพนมาวางเรยงกนในแนวซาย-ขวา และปรบ

ระยะหางใหพอเหมาะกจะสามารถใชแวน 3 มต (แบบทมขา แสดงในรปท 2.3) ดออกมาเปน 3

มตได

กลองดสไลด 3 มต (รปท 2.4) เปนกลองทมความสะดวกในการดภาพมากทสดแบบหนง

เนองจากผดไมตองกงวลกบระยะหางระหวางภาพเหมอนกบการดภาพถายทางอากาศแคใสภาพ

ซาย-ขวาใหถกตองกเพยงพอแลว

รปท 2.4 กลองสาหรบใชด slide 3 มต

ในการดภาพจากจอคอมพวเตอรนนกเปนอกวธการหนง ซงกลองสองจอคอมพวเตอร 3

มต จะยงยากกวากลองดภาพถายทางอากาศ เนองจากตองตดตงกบจอคอมพวเตอรแลวปรบให

แนวการดใหตงฉากกบพนจอ การดภาพจากจอคอมพวเตอร เปนเวลานานๆ อาจทาใหปวดตาได

โดยเฉพาะจอทม refresh rate ทตา ดงนนจงตองจาเปนตองมตว Screen Scope สาหรบไวดภาพ

3 มต บนจอ monitor ลกษณะของตว Screen Scope แสดงดงรป 2.5

รปท 2.5 ตว Screen Scope

Page 17: เอกสาร Project แว่นตา 3 มิติ

7

2.1.3 Page Flipped and Shutter Glasses การใช Shutter Glasses ในการดภาพ 3 มตไดรบความนยมเพมขน แวนตาดงกลาวม

Electronic Shutter ทจะทาหนาท 'เปด' และ 'ปด' ในความถเดยวกนกบ ภาพทแสดงบนจอ

Monitor การ เปด/ปด นจะใชสญญาณไฟฟาในการทาให Liquid Crystalsเปลยนคณสมบตจาก

'โปรงแสง' เปน 'ทบแสง' เพออนญาตใหตาเพยงขางเดยว มองเหนภาพทถกตอง บนจอ Monitor

Shutter ดานซายของแวนจะเปดในเวลาเดยวกนกบทภาพดานซายแสดงบนจอภาพ

จากนน Shutter ดานขวาของแวนจะเปดในเวลาเดยวกนกบทภาพดานขวา แสดงบนจอภาพ โดย

ในขณะท Shutter ขวาเปดนน Shutter ดานซายจะปด เปนการเปดปดสลบกนไปตามความถของ

การสลบภาพ ความถนตองสงพอทจะหลอกประสาทตาใหมองเหนภาพทงสองในเวลาเดยวกน

และเหนเปนภาพ 3 มต ในกรณทความถตาเกนไป จะทาใหเหนเปนการกะพรบของภาพแทน

2.2 ทฤษฎภาพแบบ Stereoscopic vision Stereoscopic vision นนเปนลกษณะเกดภาพ 3 มตโดยมหลกการคอการมองวตถชน

เดยวในมมทแตกตางกนจาก 2 มมของดวงตามนษย ซงตาซายและตาขวาจะมองเหนภาพใน

ลกษณะทตางกนเลกนอย ซงจะทาใหสมองประมวลผลภาพทเหนของมามสวนของความลก

เกดขนกลายเปนภาพ 3 มตขนมา

Stereoscopic vision นนจะเปนหลกการเกดภาพ 3 มต ทวาดวยภาพ 2 ภาพ ซงการ

ไดมาของภาพนนสวนใหญกจะเปนภาพถายทถายจากกลอง 2 ตวทวางหางกนเปนระยะเทากบ

ระยะหางของลกตาซายและขวาของคนทวไปคอประมาณ 6.5 เซนตเมตร (หรอตามสตรคานวณ)

ทาใหไดภาพ 2 ภาพจาก 2 มมกลอง แลวจงนาภาพทง 2 นนนาสงเขาสตาทงสองดวยวธตางๆ

2.2.1 หลกการเกดภาพ 3 มตโดยภาพ Stereo pair หลกการอยางงายของการมองภาพใหเกดภาพเปน 3 มตนน คอ การทมนษยม 2 ตา การ

ทสามารถมองเหนภาพตางๆ เปน 3 มตไดนนเกดจากมมมองของสายตาทเหนภาพของวตถ เมอ

มองวตถดวยตาขางใดขางหนงเพยงขางเดยว จะไมสามารถมองใหเปน 3 มตไดเพราะจะขาดสวน

ลกของภาพอกดานหนงไป

ดงรปท 2.1 จะเหนวาตาแตละขางจะมมมมองตางกน ถาหากปดตาทละขาง คอ เมอปด

ตาขางขวาและมองวตถดวยตาซายจะมองเหนดานขาง (สวนลก) ดานซายของวตถ และหากปด

ตาซายใชตาขางขวามองวตถจะมองเหนดานขาง (สวนลก) ดานขวา จากนนเมอลมตา 2 ขาง

พรอมกน ตาแตละขางจะมองเหนวตถทง 2 ดานคอดานซายและขวาพรอมกน ภาพทมองเหนจาก

ตาทงสองขางนจะผานไปสกระบวนการของสมองทจะรวมและประมวลผลภาพทงสองใหเปนรป

Page 18: เอกสาร Project แว่นตา 3 มิติ

8

เดยวกน ทาใหภาพของวตถทมองเหนมตของวตถนนๆ โดยอาศยหลกการมองเหนของตามนษยน

เองจงสามารถจาลองการมองภาพทวไปใหเปนภาพ 3 มตได

รปท 2.6 การสงการของสมอง

2.2.2 เทคนคการ Stereo pair 3 มตโดยใชกลองถายภาพ การถายภาพ 3 มตมหลกการคอ ถายภาพจานวน 2 ภาพของวตถเดยวกนในเวลาเดยวกน

ในมมทตางกนเลกนอย หลงจากนนจงใชเทคนคของการดภาพ 3 มตวธใดวธหนง เชน เทคนคการ

ดดวยตาเปลา การใชอปกรณ Stereo Scope (อปกรณชวยในการดภาพ Stereo pair) และภาพท

ตามองเหนนจะถกสงไปยงสมองเพอใหประมวลผลภาพทมองเหนเปนภาพในลกษณะทเปน 3 มต

2.2.3 การนาสงภาพ Stereo pair เขาสดวงตา เมอไดภาพ Stereo pair มาแลว การทจะสามารถมองเหนภาพใหเปนลกษณะของ 3 มต

นน ดงรปท 2.7 เปนการแสดงการนาภาพเขาสดวงตาทงสอง

รปท 2.7 การวางและการดภาพ

Page 19: เอกสาร Project แว่นตา 3 มิติ

9

2.3 ตวอยางการเชอมตอกบจอแสดงผล LCD ชนดส การเชอมตอสามารถใช Microcontroller มาชวยในการควบคม โดยการสงขอมลไปยง

MCU แลว MCU จดการกบขอมลภาพทไดรบมานนสงไปยง chip control เพอสงภาพไปแสดงผล

บนจอ LCD ตอไป

หนาจอของโทรศพทเคลอนท Nokia 6100 LCD ทใช Epson S1D15G10 Chipset และม

ตวควบคม ATMEL AVR ATmega32 เปน Microcontroller (ผทดลองทาคอ Refik)

[http://www.e-dsp.com/controlling-a-color-graphic-lcd-epson-s1d15g10-controller-with-

an-atmel-avr-ATmega32l]

ดงรปท 2.8 แสดงการสงสญญาณจาก Microcontroller ไปยงจอ LCD ผานทาง

สายสญญาณ 4 สาย

รปท 2.8 แสดงการเชอมตอของ Microcontroller

Page 20: เอกสาร Project แว่นตา 3 มิติ

10

2.4 ลกษณะการทางานของแวนตา แบบ Shutter Glasses

การใช Shutter Glasses ในการดภาพ 3 มตไดรบความนยมเพมขน แวนตาดงกลาวม

Electronic Shutter ทจะเปดและปดในความถเดยวกนกบภาพทแสดงบนจอ Monitor การเปดปด

นจะใชสญญาณไฟฟาในการทาให Liquid Crystals เปลยนคณสมบตจากโปรงแสงเปนทบแสง

เพออนญาตใหตาเพยงขางเดยวมองเหนภาพทถกตองบนจอภาพ

รปท 2.9 กลอง Shutter Glasses

Shutter ดานซายของแวนจะเปดในเวลาเดยวกนทภาพดานซายแสดงบนจอภาพ จากนน

Shutter ดานขวาของแวนจะเปดในเวลาเดยวกนทภาพดานขวาแสดงบนจอภาพ (Shutter

ดานซายจะปด) ความถของการสลบภาพตองสงพอทจะหลอกประสาทตาใหมองเหนภาพทงสอง

ในเวลาเดยวกนและเหนเปนภาพ 3 มต ในกรณทความถตาเกนไปจะเหนการกะพรบ (flickering)

ของภาพแทน

ซงในปจจบนแวนตาประเภทนกไดถกผลตออกมาจาหนายในทองตลาดทวไป แตจะม

ราคาทคอนขางสง(หลกหมนบาทขนไป) ซงแวนตาเหลานนกจะมฟงกชนการใชงานในรปแบบ

ตางๆ เชน บางรนทามาเพอรองรบเกม 3 มต บางรนทามาเพอรองรบระบบมลตมเดยเพอความ

บนเทง เปนตน

Page 21: เอกสาร Project แว่นตา 3 มิติ

11

ตวอยางแวนตา 3 มตทมจาหนาย

3D HMD ของบรษท i-glasses video 3D pro เปนแวน

สาหรบใชในการด video มความละเอยด 1.44 ลาน pixel ตอ

หนาจอ

คณสมบตทวไปของ 3D HMD

• Resolution: 800 x 600

• Color Depth: 256 Levels per Color (True 24 Bit)

• Focus: 13' TBR

• Eye Relief: 25mm

• Contrast Ratio: 75 to 1

• Audio: Full Stereo

• Weight: < 8 Ounces

• Audio Cable: Red and White RCA connectors

• PAL/NTSC/SECAM: Composite or S-video Input

• Input Frequency: 50 or 60 Hz (25 or 30 Hz

Interlaced)

รปท 2.10 แวนตา 3 มต ของ i-glasses

i – Theater

คณสมบตทวไปของ i - Theater

• Display Resolution: 230,000 Pixels per LCD (320 X

240)

• Field of View: 25 Degrees Diagonal

• Weight: 3.5 oz. (without cable)

• Video Signal: NTSC / PAL / SECAM

• Virtual Image Size: 50 inches as seen from 8.5 feet

• Power Consumption: Less than 450mW

• Battery Life: 6-8 hours

รปท 2.11 แวนตา 3 มต ของ i-Theater

Page 22: เอกสาร Project แว่นตา 3 มิติ

12

บทท 3 อปกรณและเครองมอทใช

3.1 จอแสดงผลแอลซดชนดส จอแสดงผลแอลซดชนดสนเปนของบรษท Epson มคณสมบตทวไปคอไดทาการตดตงชพ

EpsonS1D15G10 เขากบสวนของตวหนาจอ และมสวนเชอมตอ 2 ชดสาหรบตอเขากบสวน

ควบคมตดตอกบภายนอก มเอาทพตขนาด 132 แถว และ 132 คอลมน ใน 1 พกเซล ของจอ LCD

ตองการพนทในหนวยความจา 4 bits ทาใหมหนวยความจาในการแสดงผลขอมลเทากบ 396 ×

132 × 4 = 209,088 bits สามารถแสดงผลของสได 256 สจาก 4096 ส หรอแสดงผลของสทงหมด

4096 ส กาลงไฟทตองการภายในวงจรอยระหวาง 2.6V ถง 3.3V (VDD–GND=2.6V to 3.3V) ดง

รปท 3.1

รปท 3.1 จอแสดงผล LCD (EpsonS1D15G10)

เปนอปกรณของโทรศพทเคลอนท (Nokia6100) ซงหาซอไดทวไปและสามารถแสดงผลใน

ลกษณะทมความละเอยดเพยงพอในการใชงาน

Page 23: เอกสาร Project แว่นตา 3 มิติ

13

3.1.1 รายละเอยดโดยทวไป EpsonS1D15G10 เปนชพทออกแบบมาเพอควบคมการแสดงผลขอมลบนจอ LCD

Display ขนาด 132 แถว x 132 คอลมน สามารถตอไดโดยตรงกบ 8/16-bit parallel 80 และ 68

series

บลอกไดอะแกรมแสดงการเชอมตอของสวนตางๆ ของหนวยความจา สวน Pinouts ททา

การสงสญญาณการทางาน และสวน MPU ดงแสดงในรปท 3.2

รปท 3.2 แสดงบลอกไดอะแกรมของ EpsonS1D15G10

Page 24: เอกสาร Project แว่นตา 3 มิติ

14

3.1.2 ขาการใชงาน สวนควบคมตดตอกบภายนอกชดแรกมลกษณะเปน socket สาหรบตอเขากบบอรดของ

โทรศพทเคลอนทเพอใชงานได จดนมขาอย 10 ขา สวนอกชดหนงมลกษณะขาเปนแผนทองแดง

ในจดนมจดเชอมตออย 9 จดซงตดขาทไมไดใช (ขา 7) ออกไป ตาแหนงการใชงานของขาท

เชอมตอออกมาจากชพซงจะทาการเชอมตอกบไมโครคอนโทรลเลอรมการแสดงไวดงรปท 3.3

รปท 3.3 แสดงตาแหนงขาการใชงาน LCD

ตารางท 3.1 อธบายการทางานของขา LCD ไปยงไมโครคอนโทรลเลอร

ตาแหนงขา รายละเอยด

1 VDD 3.3V ขาขบแรงดน 2.6-3.3V

2 /Reset ขารเซต

3 SDATA ขารบขอมล

4 SCLK ขาขบสญญาณนาฬกา

5 /CS ขา Chip Select

6 VLCD 3.3V ขาขบแรงดน 2.6-3.3V

7 NC -

8 GND กราวน

9 LED- กราวน

10 LED+ (6V) ขาขบแรงดน Black Light 6V

Page 25: เอกสาร Project แว่นตา 3 มิติ

15

3.1.3 หลกการทางาน 3.1.3.1 การเลอกการเชอมตอกบ MCU

Epson S1D15G10 สงขอมลผานทาง 8/16-bit bi-direction data bus หรอ serial data

input ซงสามารถเลอกไดโดยการกาหนดคาของ IF1, IF2 และ IF3 ดงแสดงในตารางท 3.2

ตารางท 3.2 แสดงการกาหนดการเชอมตอ

ความสมพนธระหวาง Data bus กบ Gradation Data

S1D15G10 สามารถแสดง 256 ส (8 gray-scale) จาก 4096 ส หรอจะใช 4096 ส (16

gray-scale) โดยเมอแสดง 256 ส จะใชการผสมสของ R, G และ B แตถาแสดง 4096 ส ซงมอย 2

โหมดคอ A และ B จะขนอยกบ data bus และ RGB ซงใชคาสงควบคม data control ในการ

เลอกโหมดเพอสบเปลยนระหวางแตละโหมด

3.1.3.1.1 แสดง 256 ส จาก 4096 ส

- แบบ 8-bit

D7, D6, D5, D4, D3, D2, D1, D0: RRRGGGBB (8 bits) ขอมลจะแปลงเปน

RRRRGGGGBBBB (12 bits)

- แบบ 16-bit

D15, D14, D13, D12, D11, D10, D9, D8: RRRGGGBB (8 bits)

D7, D6, D5, D4, D3, D2, D1, D0: RRRGGGBB (8 bits)

ขอมล 2 พกเซล จะแปลงเปน RRRRGGGGBBBB (12 bits)

Page 26: เอกสาร Project แว่นตา 3 มิติ

16

3.1.3.1.2 แสดง 4096 ส Type A - แบบ 8-bit

D7, D6, D5, D4, D3, D2, D1, D0: RRRRGGGG (8 bits) 1st write

D7, D6, D5, D4, D3, D2, D1, D0: BBBBRRRR (8 bits) 2nd write

D7, D6, D5, D4, D3, D2, D1, D0: GGGGBBBB (8 bits) 3rd write

- แบบ 16-bit

D15, D14, D13, D12, D11, D10, D9, D8, D7, D6, D5, D4, D3, D2, D1, D0:

RRRRGGGGBBBBXXXX (12 bits) Type B - แบบ 8-bit

D7, D6, D5, D4, D3, D2, D1, D0: XXXXRRRR (4 bits) 1st write

D7, D6, D5, D4, D3, D2, D1, D0: GGGGBBBB (8 bits) 2nd write

- แบบ 16-bit

D15, D14, D13, D12, D11, D10, D9, D8, D7, D6, D5, D4, D3, D2, D1, D0:

XXXXRRRRGGGGBBBB (12 bits)

3.1.3.2 9-bit Serial Interface

จะมการสงขอมลทละ 9 bits โดยรปแบบของคาสงจะถกแบงเปน 2 โหมด คอ ถา D/C

เปน ‘0’ ไบตปจจบนจะถกแปลโดยมองวาเปนไบตคาสง แตถา D/C เปน ‘1’ ไบตนจะถกเกบใน

หนวยความจาสาหรบแสดงผล ตวนบตาแหนงจะมการเพมคาทกๆ ไบตทเพมขน

ระดบสญญาณจะถกอาน ณ ตาแหนงบตสดทายของไบตขอมล ซงคาสงแตละคาสง

สามารถสงดวยลาดบใดกได โดยท MSB จะถกสงไปกอน

เมอมการเขามาของขอมล (parameters) : SI = HIGH ทขอบขาขนแรกของ SCL

รปท 3.4 แสดงการสงขอมลแบบอนกรมเมอ SI = HIGH

Page 27: เอกสาร Project แว่นตา 3 มิติ

17

เมอมการเขามาของคาสง (parameters) : SI = LOW ทขอบขาขนแรกของ SCL

รปท 3.5 แสดงการสงคาสงแบบอนกรมเมอ SI = LOW

3.1.3.3 หนวยความจาขอมล (Display Data RAM : DDRAM)

หนวยความจามความสามารถในการจดเกบขอมล (dot data) ขนาด 396x132x4 bits ซง

จะเขาถง bit ทตองการโดยการระบ page address และ column address

หนวยความจาของ S1D15G10 จะถกแบงออกเปนบลอก แตละบลอกม 4 line โดยการ

read และ write ไปยงหนวยความจาและจากหนวยความจาจะทาผานทาง I/O buffer circuit

Page 28: เอกสาร Project แว่นตา 3 มิติ

18

ตารางท 3.3 แสดงคาหนวยความจาเมอใช 8 gray-scale, 8-bit mode

แตขอมลส RGB ทถกเกบไวใน D7 ถง D0 จะถกแปลงเปน 4 bits กอนทจะ write ลงไป

บนหนวยความจา ซงสามารถเปลยนตาแหนงของ R และ B ดวยคาสง DATCTR

Page 29: เอกสาร Project แว่นตา 3 มิติ

19

3.1.3.8 คาสงควบคมการทางาน

ตามตารางนจะเปนคาสงในการควบคมการสงสญญาณโดยใชการเชอมตอแบบ 80

series

ตารางท 3.4 แสดงคาสงทใชควบคมการแสดงผล

Page 30: เอกสาร Project แว่นตา 3 มิติ

20

3.1.3.4 การควบคม Page Address

เปนการควบคม Address ทศทางของ Page เมอ MPU เขาถง DDRAM หรอเมออาน

ขอมลจาก DDRAM เพอแสดงภาพบน LCD

การระบขอบเขตของ Page Address (start และ end page) จะใชคาสง PASET (page

address set) เมอทศทางของ page ทตองการทาการ scan ถกระบดวยคาสง DATCTR (data

control) โดย address จะเพมขนจาก start ไปจนถง end ของ page ซง column address จะ

เพมขนทละ 1 และ page address จะกลบมาท start page

หนวยความจาสนบสนน 132 lines จงทาให page ทงหมดเปน 132

3.1.3.5 การควบคม Column Address

เปนการควบคม Address ทศทางของ column เมอ MPU เขาถง DDRAM สามารถระบ

ขอบเขตของ Column Address (start และ end column) จะใชคาสง CASET (column address

set) เมอทศทางของ column ทตองการทาการ scan ถกระบดวยคาสง DATCTR (data control)

โดย address จะเพมขนจาก start ไปจนถง end ของ column ซง page address จะเพมขนทละ

1 และ column address จะกลบมาท start page

3.1.3.6 I/O Buffer Circuit

เปน bi-directional คอม 2 ทศทาง เมอ MPU ทาการ read และ write จาก DDRAM

3.1.3.7 Block Address Circuit

ในสวนนมความสมพนธกบ page บน DDRAM ซง process ของสญญาณสาหรบ liquid

crystal display เปน 4-page (block)

Page 31: เอกสาร Project แว่นตา 3 มิติ

21

3.2 ไมโครคอนโทรลเลอร ไมโครคอนโทรลเลอร AVR ATmega32-16PI

รปท 3.6 ไมโครคอนโทรลเลอร ATmega32

ไมโครคอนโทรลเลอร ATmega32 เปนสวนททาหนาทรบเอาทพดทเปนรปภาพจาก

คอมพวเตอรเพอนาไปแสดงผลยงจอแสดงผล

3.2.1 รายละเอยดโดยทวไป - สถาปตยกรรมภายในถกออกแบบใหใชสถาปตยกรรมแบบ RISE (Reduce Instruction

Set Computer ) คอ ทาใหการประมวลผลมความเรว 1 คาสง / 1 Clock หรอ CPU สามารถ

ประมวลผลคาสงได 1 MIPS / MHz

- หนวยความจาแบบ FLASH สาหรบบนทก Program memory ขนาด 32 Kbytes

- หนวยความจาแบบ EEPROM สาหรบบนทก Data memory ขนาด 1024 Byte

- หนวยความจาแบบ RAM ขนาด 2 KBytes

- ตวเปรยบเทยบสญญาณอะนาลอก

- TIMER / COUNTER ขนาด 16 บต 1 CHANNEL

- TIMER / COUNTER ขนาด 8 บต 2 CHANNEL

- มระบบการตรวจจบการทางานผดพลาดของหนวยประมวลผล (Watchdog Timer with

On Chip Oscillator)

– ระบบการสอสารแบบซงโครนส (SPI) 1 ชองสญญาณ

– ระบบการสอสารแบบอะซงโครนส (USART)

- Operating Voltages : 4.5 - 5.5V

– Clock : 0 - 16 MHz

Page 32: เอกสาร Project แว่นตา 3 มิติ

22

3.2.2 ขาการใชงาน

รปท 3.7 แสดง Pinouts ทง 40 ของไมโครคอนโทรลเลอร

VCC ขาจายกระแส

GND ขากราวน

Port A (PA7..PA0) พอรต A เปนอนพตสญญาณอะนาลอกไปยง A/D Converter

Port B (PB7..PB0) พอรต 2 ทศทางขนาด 8 บต คอ แตละบตของพอรตเปนอนพต

หรอเอาทพทกได

Port C (PC7..PC0) พอรต 2 ทศทางขนาด 8 บต คอ แตละบตของพอรตเปนอนพต

หรอเอาทพทกได

Port D (PD7..PD0) พอรท 2 ทศทางขนาด 8 บต คอ แตละบตของพอรทเปนอนพต

หรอเอาทพทกได

RESET ขารเซต

XTAL1 ขาอนพตของออสซลเลเตอรและอนพตของสญญาณคลอก

ภายในตวชพ

XTAL2 ขาเอาทพทของออสซลเลเตอร

AVCC ขาจายกระแสสาหรบพอรท A และ A/D Converter

AREF ขาอางองสญญาณอะนาลอกสาหรบ A/D Converter

Page 33: เอกสาร Project แว่นตา 3 มิติ

23

3.2.3 หลกการทางาน 3.2.3.1 ครสตอล ออสซลเลเตอร

การกาหนดคลอกในการประมวลสญญาณของไมโครคอนโทรลเลอร สามารถกาหนดได

โดยการตอครสตอลเขากบออสซลเลเตอรทางขา XTAL1 และ XTAL2 ดงรปท 3.8 ซงจะเปนการให

ความถทเทากบตวครสตอลททาการตอเพมเตมเขาไป

รปท 3.8 แสดงการตอครสตอล

3.2.3.2 หนวยความจา flash

หนวยความจาของ ATmega32 ไดแบงพนทเปน Data Memory และ Program Memory

ในการบนทกโปรแกรมจะใชหนวยความจาแบบ flash ซงจะแบงออกอกเปน 2 สวน คอ สวน Boot

Program และ สวนApplication Program

รปท 3.9 แสดงโครงสรางหนวยความจา ATmega32

Page 34: เอกสาร Project แว่นตา 3 มิติ

24

3.2.3.3 หนวยความจา SRAM

หนวยความจา Data Memory ถกจดไว 2144 โดยถกแบงเปนพนทของรจสเตอรใชงาน

ทวไปและรจสเตอร I/O 96 ตาแหนง สวนทเหลอ 2048 ตาแหนงเปนหนวยความจาภายใน SRAM

การเขาถงขอมลถกแบงออกเปน 5 สวน คอ Direct, Indirect with Displacement Indirect,

Indirect with Pre-decrement, และ Indirect with Post-increment

รปท 3.10 แสดงการจดการหนวยความจา SRAM

3.2.3.4 รจสเตอรใชงานทวไป

รจสเตอรทงหมดสามารถใชชดคาสงเพอเขาถงไดโดยตรงและใชเวลาในการเขาถงเพยง 1

cycle โครงสรางของรจสเตอรใชงานทวไปจะมรจสเตอรทสามารถใชงานเปนรจสเตอรคเพอทา

หนาทเปนตวชขอมลทอยในหนวยความจา ซงรจสเตอรกลมนคอ X, Y, และ Z การประมวลผลของ

ALU สามารถสอสารขอมลโดยตรงกบรจสเตอรใชงานทวไป โดย ALU ไดจดแบงระบบการจดการ

ขอมลไว 3 สวน คอ สวนของการจดการทางคณตศาสตร สวนของการกระทาทางลอจก และสวน

ของการกระทากบบต

Page 35: เอกสาร Project แว่นตา 3 มิติ

25

รปท 3.11 โครงสรางของรจสเตอรใชงานทวไป

รจสเตอร R26 – R31 สามารถนามาตอกนเพอเปนรจสเตอรคเพอทาเปนตวชขอมลทอย

ในหนวยความจา ซงรจสเตอรกลมนใชชอวา

รปท 3.12 รจสเตอร X, Y, และ Z

3.2.3.5 หนวยความจา I/O

ตาแหนงของรจสเตอร I/O สามารเขาถงโดยคาสง IN และ OUT มการถายโอนขอมล

ระหวางรจสเตอรใชงานทวไป 32 ตวและรจสเตอร I/O ซงรจสเตอร I/O ม address อยในชวง $00

- $1F สามารถเขาถงไดโดยตรงโดยใชคาสง SBI และ CBI

Page 36: เอกสาร Project แว่นตา 3 มิติ

26

บทท 4 การออกแบบสวนแสดงผล

4.1 การออกแบบวงจรควบคมการแสดงผล อปกรณทใชในการแสดงผลประกอบดวยอปกรณหลก 2 สวน ไดแก ไมโครคอนโทรลเลอร

และจอ LCD ชนดส 2 จอ ATmega32 LCD Nokia 6100

รปท 4.1 แสดงสวนประกอบของอปกรณในการแสดงผล

สวนของการออกแบบวงจรสาหรบแสดงผลในสวนของการตดตอระหวาง

ไมโครคอนโทรลเลอรกบจอ LCD นนแสดงไวดงรปท 4.2

Page 37: เอกสาร Project แว่นตา 3 มิติ

27

รปท 4.2 แสดงวงจรควบคมการแสดงผลจอ LCD ดวยไมโครคอนโทรลเลอร

การรบสญญาณจากไมโครคอนโทรลเลอรเพอทาหนาทในการควบคมการแสดงผลของจอ

LCD ทงสอง โดยมสญญาณทใชอย 4 สญญาณดวยกน คอ RESET, SDATA, SCLK และ CS

สงออกจากพอรท C ซงไมโครคอนโทรลเลอรนนใช Vcc = 5V ดงนนจงใช voltage divider ในการ

ลดแรงดนของสญญาณกอนทจะสงไปยงจอ LCD

4.2 การออกแบบโปรแกรมควบคมการแสดงผล เมอจายกระแสไปยงจอแอลซดจะตองทาการรเซตหนาจอ ซงตองสงลอจก 0 ไปยงขา

RES ของจอแอลซด (RES = LOW)

4.2.1 การกาหนดคาเรมตนการทางานของการแสดงผล 4.2.1.1 คาสง Display control

การแสดงผลจะตองทาการสงคาสง DISCTL เพอเปนการกาหนด timing-relate ซงตองสง

คาพารามเตอร 3 ตว พารามเตอรแรก (P1) จะเปนการกาหนดอตราสวนของ CLK พารามเตอรตว

ทสอง (P2) จะกาหนดคา Drive duty และพารามเตอรตวสดทาย (P3) จะเปนการกาหนดจานวน

reverse rotation ของ line ซงจะตองทาการกาหนดกอนทจะเขาส SLPOUT โดยจะตองไมมการ

เปลยนแปลงคาสงในขณะททาการแสดงผล

Page 38: เอกสาร Project แว่นตา 3 มิติ

28

4.2.1.2 คาสง Common scan

การใชคาสง COMSCAN เพอเปนการระบทศทางการ scan เอาทพต ซงตองสง

คาพารามเตอรในการระบทศทาง 1 พารามเตอร

4.2.1.3 คาสง Sleep-out

ใชคาสง SLPOUT เพอเปนการสงใหสงลอจก HIGH ไปยงขา LSP

4.2.2 การตงคา Power supply 4.2.2.1 คาสง Electronic volume control

ใชคาสง VOLCTR เพอระบคาของวงจร voltage regulator โดยตองสงคาพารามเตอร 2

ตว พารามเตอรแรกใชกาหนด volume value α พารามเตอรตวทสองใชกาหนดอตราสวนของ

ความตานทานใน voltage regulating

4.2.2.2 คาสง Power control

คาสง PWRCTR เปนคาสงทใชการกาหนดการ เปด-ปด จอแสดงผล การ booster/step-

down ของวงจร และวงจร voltage follower ตองสงคาพารามเตอร 1 ตวเพอระบสถานะการ

ทางาน

4.2.3 การตงคาการแสดงผล 4.2.3.1 คาสง Inverse of display

ใชคาสง DISINV เพอกลบพนทในการแสดงผลใหเปนตรงกนขามโดยไมตองเปลยนแปลง

คาของ DDRAM

4.2.3.2 คาสง Data control

คาสง DATCTL เปนการตงคาเมอมการทางานของการจดเกบขอมลจาก

ไมโครคอนโทรลเลอรบนหนวยความจา ตองมการสงคาพารามเตอร 3 ตว พารามเตอรแรกใช

กาหนดทศทางการ scan ของ page address พารามเตอรตวทสองใชกาหนดการจดเรยงของส

RGB และพารามเตอรตวสดทายใชตงคา Gray-scale

Page 39: เอกสาร Project แว่นตา 3 มิติ

29

4.2.3.4 คาสง 256-color position set

คาสง RGBSET8 เปนคาสงทใชเพอเลอกคาทใชแทนส โดยแตละส สแดง สเขยว และสนา

เงนจากส 4096 ส ดงแสดงในตารางท 4.1

ตารางท 4.1 แสดงการกาหนดคาของส RGB

ขอมล (สแดงและสเขยวใชสละ 3 บต สนาเงน 2 บต) ทถก write จาก MPU ลงใน

หนวยความจา DDRAM จะถกแปลงเปน 4 บตกอนทจะเขยน เมอทาการ read ขอมลจาก

DDRAM ขอมลสแดงและสเขยวจะถกแปลงเปนสละ 3 บต สนาเงนจะถกแปลงเปน 2 บตกอนทจะ

สงออกเอาทพต

4.2.4 การตงคาหนวยความจา 4.2.4.1 คาสง Page address set

เมอ MPU สรางการเขาถง DDRAM จะใชคาสง PASET เพอระบพนทของ page

address ตาแหนง address จะเพมขนจากเรมจนจบตามทศทางของ page-direction scan โดย

ตองสงคาพารามเตอรไป 2 คาเพอกาหนดจดเรมตนและจดสดทายของ page

4.2.4.2 คาสง Column address set

เมอ MPU สรางการเขาถง DDRAM จะใชคาสง CASET เพอระบพนทของ column

address ตาแหนง address จะเพมขนจากเรมจนจบตามทศทางของ column-direction scan

โดยตองสงคาพารามเตอรไป 2 คาเพอกาหนดจดเรมตนและจดสดทายของ column

Page 40: เอกสาร Project แว่นตา 3 มิติ

30

4.2.4.3 คาสง Memory write command

เมอ MPU ทาการ write ขอมลไปยง display memory คาสง RAMWR จะตงคา page

และ column ในตาแหนงเรมตนและสามารถ rewrite ลงไปบน DDRAM ขณะเดยวกนการทางาน

นกจะเพมคาตาแหนงของ page หรอ column โดยตองมการสงคาพารามเตอรไป 1 คา

4.2.4.4 คาสง Display on

ใชคาสง DISON เพอเรมการทางานของจอแสดงผล เมอจอเรมทางานเอาทพตจะถกสงไป

เปน display data และ display timing โดยจะไมสามารถเปดจอไดถายงอยใน Sleep mode

Page 41: เอกสาร Project แว่นตา 3 มิติ

31

บทท 5 การออกแบบสวนตดตอกบคอมพวเตอร

5.1 การออกแบบโปรแกรมตดตอ ในสวนของการตดตอเพอสงขอมลจากคอมพวเตอรไปยงไมโครคอนโทรลเลอรนนใช

โปรแกรม Visual studio6 ในการสราง GUI เพอทาการสงขอมลสของรปภาพทตองการแสดงบน

จอแสดงผลสงผานทาง serial port ไปยงไมโครคอนโทรลเลอร

5.1.1 รายละเอยดของโปรแกรม โปรแกรมทออกแบบขนมาใชในการสงขอมล 8 บตผานทาง serial port ไปยง

ไมโครคอนโทรลเลอร มหนาตางแสดงรปภาพทตองการนามาแสดงบนจอแอลซดและรปภาพท

ไดรบการแปลงคาสเพอทจะนาไปแสดงบนจอแอลซด โดยจะม button ทใชในการคนหารปภาพ

และ button ทใชในการสงขอมล ซงเมอนาเมาสไปชยงตาแหนงใดๆ ของภาพจะมคาสแสดงอยใต

ภาพนน ดงรปท 5.1 แสดงหนาตางการทางานของโปรแกรม

รปท 5.1 แสดงหนาตางของโปรแกรม

Page 42: เอกสาร Project แว่นตา 3 มิติ

32

5.1.2 การทางานของโปรแกรม การทางานของโปรแกรมแบงออกเปนออกเปน 4 ขนตอน คอ

5.1.2.1 การคนหาภาพ

ในขนตอนแรกของการทางานจาเปนจะตองเลอกรปภาพทตองการนามาแสดง ซงการ

ทางานในการเลอกรปภาพนนใชคอนโทรลของ Visual studio6 (Microsoft common dialog

control 6.0) เพอใชในการคนหาไฟลภาพภายในเครองคอมพวเตอร โดยรปทเลอกตองมขนาด

128 x 128 พกเซล เนองจากจอแอลซดสามารถแสดงผลภาพได 128 x 128 พกเซล

5.1.2.2 การแปลงคาส

เรมจากการอานคาส RGB โดยจะไดคาสตอนแรกจะเปน code ฐานสบเชน 255255255

ซงเกบคาในรปแบบ long จงมขนาด 32 บต ดงรปท 5.2

รปท 5.2 แสดงการจดเรยงของสทอานไดจากโปรแกรม

เนองจากคาสทจะแสดงบนจอแอลซดนนใช 8 บต จงตองทาการแปลงคาสจาก 32 บตให

เปน 8 บตโดยทาการ AND เพอใหไดสดงแสดงตวอยางการ AND เพอเกบคาสนาเงนดงรปท 5.3 AND

=

รปท 5.3 แสดงการ AND เพอเกบคาสของสนาเงน

จากนนนาคาสทไดทงสแดง สเขยว และสนาเงนมาทาการ shift บตเพอเกบคาเปน byte

ดงรปท 5.4 จะแสดงการ shift บตสนาเงนและแปลงคาใหเปน byte

>> 16

=

รปท 5.4 แสดงการ shift บต และแปลงขอมลเปน byte

Page 43: เอกสาร Project แว่นตา 3 มิติ

33

จากหลกการดงกลาวเพอทจะแปลงขอมลสทอานมาจากรปใหเปนคาสทจอแอลซด

สามารถแสดงไดจะตองแปลงชวงของคาสจาก 0-255 ระดบ ใหเปน 0-7 ระดบ จากนนกเอาคาท

ไดมา shift บตใหกลบไปอยในตาแหนงตามทจอแอลซดกาหนด คอ RGB นนแสดงวาจะตองทา

การ shift บตของสแดงไป 5 บต และ shift บตของสเขยวไป 2 บต จากนนเอาคามา OR กนเพอให

ไดตาแหนงของคาสเปน RRRGGGBB ดงแสดงในรปท 5.5

รปท 5.5 แสดงการจดเรยงของสททาการแปลงเรยบรอยแลว

5.1.2.3 การแสดงคาส

เมอทาการแปลงคาสแลวโปรแกรมจะสงไปแสดงยง picture box ในหนาตางของ

โปรแกรมเพอแสดงรปทไดรบการแปลงคาสแลว และโปรแกรมยงสามารถแสดงคาสของรปใน

ตาแหนงของพกเซลทนาเมาสไปชเปนเลขฐาน 10 อกดวย

5.1.2.4 การสงขอมล

เมอทาการสงขอมลโปรแกรมจะสงเอาทพตของคาสออกไปยงไมโครคอนโทรลเลอรผาน

ทาง serial port เพอควบคมการแสดงแสดงผลของจอแอลซด

5.2 การตดตอกบไมโครคอนโทรลเลอร ไมโครคอนโทรลเลอรเปนสวนททาการควบคมการแสดงผลของจอแอลซด โดยจะรอรบ

ขอมลจาก RS232 ทเปน interrupt เพอนาขอมลมาใชในการแสดงผล

5.2.1 รายละเอยดของการตดตอ โปรแกรมจะสงขอมลสทอานไดจากภาพมายงไมโครคอนโทรลเลอรทละจดพกเซลโดย

เชอมตอผาน RS232 ซงเปนการสอสารแบบอนกรม (serial)

การสอสารแบบอะซงโครนส (Asynchronous) จะใชสายขอมลเพยงตวเดยว แตจะใชการ

สงขอมล หรอ Bit Pattern เปนตวกาหนดวาสวนไหนเปนสวนเรมตนขอมล สวนไหนเปนเปนตว

ขอมล สวนไหนเปนสวนตรวจสอบความถกตองขอมล และสวนไหนเปนสวนปดทายของขอมล

โดยตองกาหนดใหสญญาณนาฬกาเทากนทงภาคสงและภาครบ ซงจะมอปกรณพเศษทชอวา

UART หรอ Universal Asynchronous Receiver/Transmitter คอยควบคมการรบและสง

Page 44: เอกสาร Project แว่นตา 3 มิติ

34

5.2.2 การทางานของไมโครคอนโทรลเลอร การทางานของไมโครคอนโทรลเลอรในการสอสารกบคอมพวเตอรนนแบงการทางานออก

ไดเปน 2 สวนคอ

5.2.2.1 การรบขอมล

ไมโครคอนโทรลเลอรทาหนาทในการควบคมการแสดงผลของจอแอลซด โดยจะรบคาของ

สทไดจากการแปลงคาจากโปรแกรมมาเกบใน buffer เพอรอการนาไปแสดงผล โดยเมอมขอมล

ของสสงมา ไมโครคอนโทรลเลอรจะรบคามาและเกบตามตาแหนงทตรงกบตาแหนงของสทอาน

มาจากภาพจนครบทง 128 x 128 พกเซล

5.2.2.2 การอนเตอรรพ

การอนเตอรรพจะเกดขนเมอมการสงขอมลมาจากคอมพวเตอร กลาวคอ ในการทางาน

หลกของไมโครคอนโทรลเลอรจะมการกาหนดคาตางๆ ใหกบพอรต และกาหนดคาเรมตนการ

ทางานใหแกจอแอลซด เมอเกดการอนเตอรรพขนจะหยดการทางานในสวนการทางานหลกและ

ขามไปทางานในสวนอนเตอรรพ

การทางานในสวนอนเตอรรพจะเปนการรบขอมลมาเกบไวใน buffer เพอเกบคาขอมลลง

ตามตาแหนงทใชในการแสดงผล และมการตรวจสอบวาขอมลทรบมาครบทกตาแหนงจงใหออก

จากอนเตอรรพเพอกลบสการทางานหลกและใหทาการแสดงผลของขอมลทไดรบมาตอไป

Page 45: เอกสาร Project แว่นตา 3 มิติ

35

บทท 6 การทดลอง

6.1 การพฒนาอปรณ หลงจากการออกแบบอปกรณการแสดงผลในสวนของวงจร และออกแบบโปรแกรมการสง

ขอมลภาพแลวจงทาการประกอบเขาดวยกน ดงรปท 6.1

รปท 6.1 แสดงการเชอมตอของอปกรณ

และสามารถออกแบบวงจรการทางานของการสงขอมลไดดงรปท 6.2

รปท 6.2 แสดงวงจรการเชอมตอของอปกรณ

Page 46: เอกสาร Project แว่นตา 3 มิติ

36

6.2 การทดสอบผลการทางาน สามารถแสดงผลรปบนจอแอลซดจากการควบคมการทางานของไมโครคอนโทรลเลอรให

เกดรปบนจอแอลซดทง 2 จอไดดงรปท 6.3

รปท 6.3 แสดงการแสดงผลของจอแอลซด

การแสดงผลภาพของจอแอลซดสามารถแสดงผลภาพสทงหมด 256 ส จากการผสมกน

ระหวางสแดง สเขยว และสนาเงน

Page 47: เอกสาร Project แว่นตา 3 มิติ

37

บทท 7 สรปผลการดาเนนงาน

7.1 ผลการดาเนนงานโครงการ อปกรณทจดทาขนสามารถแสดงผลภาพส 8 บต (256 ส) บนหนาจอแอลซด โดยสามารถ

แสดงภาพทตองการไดโดยการเขยนโปรแกรมลงบนไมโครคอนโทรลเลอรและกาหนดใหสง

เอาทพตออกไปยงพอรตทตองการ ซงสามารถแสดงผลภาพได 2 ภาพพรอมๆ กน โดยทเปนภาพท

เหมอนกนและแตกตางกนตามความตองการของผใช

อปกรณดงกลาวสามารถแสดงภาพสไดตามตองการ โดยอปกรณทงหมดใชงบประมาณ

ไมเกน 2,000 บาท

7.2 ปญหาในการดาเนนงานและแนวทางแกไข 1. ไมสามารถปรบ contrast ของจอแอลซดได เมอทาการแสดงผลของภาพทตองการทา

ใหสทปรากฎผดเพยนจากความเปนจรง

2. การสงขอมลจากไมโครคอนโทรลเลอรเพอทาการแสดงภาพสามารถสงไดไมเกน 32K

ซงเปนหนวยความจา Flash ของไมโครคอนโทรลเลอร

7.3 ขอเสนอแนะและแนวทางการพฒนาตอ 1. ทาการพฒนาใหไมโครคอนโทรลเลอรสามารถตดตอกบคอมพวเตอรในการรบขอมลภาพเพอนาไปแสดงยงจอแอลซดโดยไมตองใชไมโครคอนโทรลเลอรในการเกบขอมลภาพท

จะนาไปแสดง

2. ทาการพฒนาเพอใหจอแอลซดสามารถแสดงภาพเคลอนไหวได

Page 48: เอกสาร Project แว่นตา 3 มิติ

38

ภาคผนวก ก

โปรแกรมในการพฒนาโครงการ

ในการใชงานไมโครคอนโทรลเลอรสาหรบทาการควบคมการทางานของอปกรณตางๆ ไม

วาจะเปนการใชสาหรบดกจบสญญาณ การคานวณทางคณตศาสตร การควบคมสถานะในการ

จายสญญาณ การตงเวลาการทางานอปกรณหรอการทางานอนๆ เราจาเปนตองเขยนโปรแกรม

การทางานใหกบไมโครคอนโทรลเลอรเพอสงงานใหไมโครคอนโทรลเลอรทางานตามทเราตองการ

ได โดยขอมลททาการโปรแกรมลงบนไมโครคอนโทรลเลอรตองเปนภาษาเครองท

ไมโครคอนโทรลเลอรเขาใจ ซงมเครองมอในการแปลงภาษาชนสงใหกลายเปนภาษาเครอง

สาหรบไมโครคอนโทรลเลอรอยหลายชนดสาหรบชวยในการพฒนา เมอเรามภาษาเครองสาหรบ

ไมโครคอนโทรลเลอรแลว ตอมาเราจะตองมวธทจะนาเกบลงในหนวยความจาของ

ไมโครคอนโทรลเลอรซงกจะมเครองมอในการโปรแกรมใหคาสงทถกทาเปนภาษาเครองแลว(ใน

ทนfileทโปรแกรมจะเปน file.hex) ไปเกบไวในหนวยความจาชนด flash ของไมโครคอนโทรลเลอร

เพอควบคมการทางานของไมโครคอนโทรลเลอรตอไป

สาหรบในโรงการนใชไมโครคอนโทรลเลอร ATMELMega32 โดยอาศยบอรดทสรางขน

เพอใชในการสงขอมลระหวางคอมพวเตอรกบไมโครคอนโทรลเลอรในการโปรแกรมคาสง โดยผาน

ทาง parallel port ของคอมพวเตอร และใช AVR Studio4 เครองมอในการเขยนโปรแกรมและใช

โปรแกรม PonyProg2000 ในการโปรแกรม file.hex ลงบนไมโครคอนโทรลเลอร ซงรายละเอยด

และวธการใชงานโปรแกรมดงกลาวมดงน

1. AVR Studio4

เปนเครองมอในการเขยนโปรแกรมทใชงานบนไมโครคอนโทรลเลอรโดยจะมฟงกชนใน

การตดตอกบไมโครคอนโทรลเลอรและการกาหนดคาตางๆทจาเปนสาหรบไมโครคอนโทรลเลอร

ทาใหสะดวกในการเขยนคาสงควบคมการทางานของไมโครคอนโทรลเลอร ภาษาทใชเขยนบน

AVR Studio4 นสามารถเลอกเขยนไดเปนภาษา assembly (.asm) หรอ ภาษาซ (.c) ซงสาหรบ

AVR Studio4 นจะใชไดกบไมโครคอนโทรลเลอรของ ATMEL

รปท ผ.1 แสดงสญลกษณของโปรแกรม AVR Studio4

Page 49: เอกสาร Project แว่นตา 3 มิติ

39

การใชงาน AVR Studio4 เบองตนมดงน

เรมจากเปดโปรแกรม AVR Studio4 ขนมา โปรแกรมจะถามใหเราสราง project หรอเปด

project ท save ไวเพอมาทางานตอ

รปท ผ.2 แสดงการเลอก project ในการเรมทางานใน AVR Studio4

ในการเรมโปรเจคใหมเราจะตองเลอกภาษาทจะในการเขยนวาเราจะเขยนเปน .asm หรอ .c ถา

เลอก Atmel AVR Assembler สาหรบการเขยนเปน .asm หรอเลอก AVR GCC สาหรบการเขยน

เปน .c และตงชอ project เราจะได file.asm หรอ file.c หลกมชอเหมอนชอของ project ทเราตง

สาหรบโครงการนใช AVR GCC (ใชภาษา C เขยน)

รปท ผ.3 แสดงการเลอกภาษาในการเรมเขยน project ใหมใน AVR Studio4

Page 50: เอกสาร Project แว่นตา 3 มิติ

40

เราสามารถ set คาตางๆ ได โดย Project > Configuration Option จะไดดงรปทผ.4 ใน

สวนนเราจะสามารถเลอกชนดของไมโครคอนโทรลเลอรทเราจะใชงาน และคาตางๆทจาเปน

สาหรบการทางานของไมโครคอนโทรลเลอรตามทเราตองการได เราสามารถเลอกใช make file

จากภายนอกแทนการตงคาภายใน project option ไดอกทางหนงในการ กาหนดคาตางๆทจาเปน

สาหรบในโครงการน set คา Device : atmega32 , Frequency : 8000000

รปท ผ.4 Project option

Page 51: เอกสาร Project แว่นตา 3 มิติ

41

2. การใชงาน PonyProg2000 PonyProg2000 เปนโปรแกรมทใชสาหรบการอดโปรแกรมลงบนบนไมโครคอนโทรลเลอร

เมอเปดโปรแกรม PonyProg2000 โปรแกรมกจะปรากฎขนดงรปท ผ.5

รปท ผ.5 โปรแกรม PonyProg2000

ในการทเราจะสงโปรแกรม (.hex) ไปยงไมครคอนโทลเลอรเราตองกาหนด port ทใชใน

การสงกอน โดยการกาหนด port สามารถทาไดโดยเลอกท setup >> interface setup… จะได

หนาตาง I/O port setup รปท ผ.6 ขนมาเราสามารถเลอกไดวาจะใหสงออกทาง serial port หรอ

parallel port

รปท ผ.6 I/O port setup

Page 52: เอกสาร Project แว่นตา 3 มิติ

42

สาหรบรปทผ.6 นนเปนการ set คาทใชสงในโครงการนโดยหมายความวาจะสงโดยอาศย

parallel port โดยใช port ท1 ของ parallel port

หลงจากนนเราตองกาหนดชนดของไมโครคอนโทรลเลอรทเราจะทาการโปรแกรมโดย

เลอกท Device จะปรากฎประเภทของไมโครคอนโทรลเลอรชนดตางๆ สาหรบเลอกใหตรงกบ

ไมโครคอนโทรลเลอรทเราจะใช

รปท ผ.7 การกาหนดอปกรณใน PonyProg2000

หลงจากทเรากาหนดคาตางๆพรอมแลวโปรกรมกจะอยในสถานะพรอมทจะใชงานสง

โปรแกรมไปยงไมโครคอลโทลเลอรทเรากาหนดโดย port ทกาหนด ตอมาคอขนตอนการสง

โปรแกรม(.hex) เรมแรกใหเราเลอกเปด file.hex ทเราเตรยมไวโดย File > Open Device File…

แลวเลอก file.hex ทเราตองการ PonyProg2000 จะแสดงโปรแกรมในรปของเลขฐาน16 ดง

รปท ผ.8

Page 53: เอกสาร Project แว่นตา 3 มิติ

43

รปท ผ.8 ผลการโหลด file.hex ใน PonyProg2000

เราจะทาการโปรแกรม file.hex แลว เราจะเรมการทาการโปรแกรมลงบน

ไมโครคอนโทรลเลอร โดย Command > Write Program(FLASH) หรอกดทปม icon

รปท ผ.9 การโปรแกรม file.hex ทเลอกไวลงไมโครคอนโทรลเลอร

Page 54: เอกสาร Project แว่นตา 3 มิติ

44

เมอทาการโปรแกรมลงบนไมครคอนโทลเลอรเสรจเรยบรอยแลวกจะมขอความเปน

Dialog box ขนมากเปนอนเสรจสน

ในการโปรแกรมลงบนไมโครคอนโทรลเลอรตวหนงหลงจากทมการโปรแกรมลงไปแลวนน

กอนการโปรแกรมครงตอไปควรทจะทาการลบโปรแกรมเดมออกจากไมโครคอนโทรลเลอรกอน

สาหรบ PonyProg2000 นทาไดโดย Command > Erase หรอกดทปม icon เพอลบ

โปรแกรมทมอยในไมโครคอนโทรลเลอรออก

Page 55: เอกสาร Project แว่นตา 3 มิติ

45

ภาคผนวก ข Source Code

สาหรบโครงการนมการเขยน source code อย 2 สวน คอ สวนสาหรบ

ไมโครคอนโทรลเลอร (เปนภาษา C ใช AVR Studio 4) และสวนโปรแกรมแปลงคาสของภาพ

( Visual Basic 6 ) ซง Source Code ทจะกลาวถงดงตอไปนเปนสวนหนงทนาสนใจในการนามา

พฒนาโครงการ

1. สวนสาหรบไมโครคอนโทรลเลอร 1.1 Source code สาหรบไมโครคอนโทรลเลอร

Code ในสวนนเปนการสงงานใหจอแสดงผลทง 2 แสดงแถบส 3 ส (แดง เขยว นาเงน)

//#### CONFIG #### #define F_CPU 8000000UL #define SPIPORT PORTA #define SPIDDR DDRA #define SPIPORTC PORTC #define SPIDDRC DDRC #define CS 2 #define SDA 3 #define RESET 4 #define CLK 5 //################# #include <avr/io.h> #include <util/delay.h> #define cbi(reg, bit) (reg&=~(1<<bit)) #define sbi(reg, bit) (reg|= (1<<bit)) #define CS0 cbi(SPIPORT,CS); #define CS1 sbi(SPIPORT,CS); #define CLK0 cbi(SPIPORT,CLK); #define CLK1 sbi(SPIPORT,CLK); #define SDA0 cbi(SPIPORT,SDA); #define SDA1 sbi(SPIPORT,SDA); #define RESET0 cbi(SPIPORT,RESET); #define RESET1 sbi(SPIPORT,RESET);

Page 56: เอกสาร Project แว่นตา 3 มิติ

46

#define CSC0 cbi(SPIPORTC,CS); #define CSC1 sbi(SPIPORTC,CS); #define CLKC0 cbi(SPIPORTC,CLK); #define CLKC1 sbi(SPIPORTC,CLK); #define SDAC0 cbi(SPIPORTC,SDA); #define SDAC1 sbi(SPIPORTC,SDA); #define RESETC0 cbi(SPIPORTC,RESET); #define RESETC1 sbi(SPIPORTC,RESET); #define byte unsigned char byte n=0; byte s1,s2; byte r,g,b; void sendCMD(byte cmd); void sendData(byte cmd); void shiftBits(byte b); void sendCMDC(byte cmd); void sendDataC(byte cmd); void shiftBitsC(byte b); void LCD_put_pixel(unsigned char color, unsigned char x, unsigned char y); void LCD_put_pixelC(unsigned char color, unsigned char x, unsigned char y); void waitms(int ms) { int i; for (i=0;i<ms;i++) _delay_ms(1); } int main (void) { int i = 0; int j = 0 ; SPIDDR=(1<<SDA)|(1<<CLK)|(1<<CS)|(1<<RESET); //PortB-Direction Setup SPIDDRC=(1<<SDA)|(1<<CLK)|(1<<CS)|(1<<RESET); //PortC-Direction Setup CS0 SDA0 CLK1 CSC0 SDAC0 CLKC1 RESET1 RESET0 RESET1 RESETC1 RESETC0 RESETC1

Page 57: เอกสาร Project แว่นตา 3 มิติ

47

CLK1 SDA1 CLK1 CLK1 SDA1 CLK1 CLKC1 SDAC1 CLKC1 CLKC1 SDAC1 CLKC1 waitms(10); //Software Reset sendCMD(0xca); //added sendData(0x03); sendData(32); sendData(12); sendCMDC(0xca); sendDataC(0x03); sendDataC(32); sendDataC(12); // sendData(0x00); sendCMD(0xbb); // comscn sendData(0x01); sendCMDC(0xbb); sendDataC(0x01); sendCMD(0xd1); // oscon sendCMDC(0xd1); sendCMD(0x94); // sleep out sendCMDC(0x94); sendCMD(0x81); // electronic volume, this is kinda contrast/brightness sendData(5);//ff); // this might be different for individual LCDs sendData(0x01);//01); // sendCMDC(0x81); sendDataC(5); sendDataC(0x01); sendCMD(0x20); // power ctrl sendData(0x0f); //everything on, no external reference resistors sendCMDC(0x20); sendDataC(0x0f); waitms(100); sendCMD(0xa7); // display mode sendCMDC(0xa7); sendCMD(0xbc); // datctl sendData(0x00); sendData(0);

Page 58: เอกสาร Project แว่นตา 3 มิติ

48

sendData(0x01); sendData(0x00); sendCMDC(0xbc); sendDataC(0x00); sendDataC(0); sendDataC(0x01); sendDataC(0x00); sendCMD(0xce); // setup color lookup table // color table //RED sendData(0); sendData(2); sendData(4); sendData(6); sendData(8); sendData(10); sendData(12); sendData(15); // GREEN sendData(0); sendData(2); sendData(4); sendData(6); sendData(8); sendData(10); sendData(12); sendData(15); //BLUE sendData(0); sendData(4); sendData(9); sendData(15); sendCMDC(0xce); // setup color lookup table // color table //RED sendDataC(0); sendDataC(2); sendDataC(4); sendDataC(6); sendDataC(8); sendDataC(10); sendDataC(12); sendDataC(15); // GREEN sendDataC(0); sendDataC(2); sendDataC(4); sendDataC(6); sendDataC(8); sendDataC(10); sendDataC(12); sendDataC(15); //BLUE sendDataC(0); sendDataC(4); sendDataC(9); sendDataC(15);

Page 59: เอกสาร Project แว่นตา 3 มิติ

49

sendCMD(0x25); // nop sendCMDC(0x25); sendCMD(0x75); // page start/end ram sendData(2); // for some reason starts at 2 sendData(131); sendCMDC(0x75); sendDataC(2); sendDataC(131); sendCMD(0x15); // column start/end ram sendData(0); sendData(131); sendCMDC(0x15); sendDataC(0); sendDataC(131); sendCMD(0x5c); // write some stuff (background) sendCMDC(0x5c); for (i = 0; i < 18000; i++){ sendData(28); // 28 is green sendDataC(28); } sendCMD(0xaf); // display on sendCMDC(0xaf); waitms(200); for (i = 0; i < 160; i++){ // this loop adjusts the contrast, change the number of iterations to get sendCMD(0xd6); sendCMDC(0xd6); // desired contrast. This might be different for individual LCDs waitms(2); } // draw color squre on each LCD for(i = 10;i < 50;i++){ for( j = 3;j < 120;j++){ LCD_put_pixelC(224,i,j); } } for(i = 50;i < 95;i++){ for( j = 4;j < 125;j++){ LCD_put_pixelC(100,i,j); } }

Page 60: เอกสาร Project แว่นตา 3 มิติ

50

for(i = 95;i < 130;i++){ for( j = 5;j < 130;j++){ LCD_put_pixelC(3,i,j); } } for(i = 10;i < 50;i++){ for( j = 3;j < 120;j++){ LCD_put_pixel(224,i,j); } } for(i = 50;i < 95;i++){ for( j = 4;j < 125;j++){ LCD_put_pixel(100,i,j); } } for(i = 95;i < 130;i++){ for( j = 5;j < 130;j++){ LCD_put_pixel(3,i,j); } } while(1==1) { //add code } } //************************************************************** // Funtion portA //************************************************************** void shiftBits(byte b) { int x; CLK0 if ((b&128)!=0) SDA1 else SDA0 CLK1 x = 1; CLK0 if ((b&64)!=0) SDA1 else SDA0 CLK1 x = 1; CLK0 if ((b&32)!=0) SDA1 else SDA0 CLK1 x = 1;

Page 61: เอกสาร Project แว่นตา 3 มิติ

51

CLK0 if ((b&16)!=0) SDA1 else SDA0 CLK1 x = 1; CLK0 if ((b&8)!=0) SDA1 else SDA0 CLK1 x = 1; CLK0 if ((b&4)!=0) SDA1 else SDA0 CLK1 x = 1; CLK0 if ((b&2)!=0) SDA1 else SDA0 CLK1 x = 1; CLK0 if ((b&1)!=0) SDA1 else SDA0 CLK1 x = 1; } void LCD_put_pixel(unsigned char color, unsigned char x, unsigned char y){ x += 2; // for some reason starts at 2 sendCMD(0x75); // page start/end ram sendData(x); sendData(132); sendCMD(0x15); // column start/end ram sendData(y); // for some reason starts at 2 sendData(131); sendCMD(0x5C); // write some shit sendData(color); } //send data void sendData(byte data) { CS0 CLK0 SDA1 //1 for param CLK1 shiftBits(data); CS1 } //send cmd void sendCMD(byte data) { CS0 CLK0 SDA0 //1 for cmd CLK1

Page 62: เอกสาร Project แว่นตา 3 มิติ

52

shiftBits(data); CS1 } //************************************************************** // Function for portC //************************************************************** void shiftBitsC(byte b) { int x; CLKC0 if ((b&128)!=0) SDAC1 else SDAC0 CLKC1 x = 1; CLKC0 if ((b&64)!=0) SDAC1 else SDAC0 CLKC1 x = 1; CLKC0 if ((b&32)!=0) SDAC1 else SDAC0 CLKC1 x = 1; CLKC0 if ((b&16)!=0) SDAC1 else SDAC0 CLKC1 x = 1; CLKC0 if ((b&8)!=0) SDAC1 else SDAC0 CLKC1 x = 1; CLKC0 if ((b&4)!=0) SDAC1 else SDAC0 CLKC1 x = 1; CLKC0 if ((b&2)!=0) SDAC1 else SDAC0 CLKC1 x = 1; CLKC0 if ((b&1)!=0) SDAC1 else SDAC0 CLKC1 x = 1; } void LCD_put_pixelC(unsigned char color, unsigned char x, unsigned char y){ x += 2; // for some reason starts at 2 sendCMDC(0x75); // page start/end ram sendDataC(x); sendDataC(132); sendCMDC(0x15); // column start/end ram sendDataC(y); // for some reason starts at 2 sendDataC(131);

Page 63: เอกสาร Project แว่นตา 3 มิติ

53

sendCMDC(0x5C); // write some shit sendDataC(color); } //send data void sendDataC(byte data) { CSC0 CLKC0 SDAC1 //1 for param CLKC1 shiftBitsC(data); CSC1 } //send cmd void sendCMDC(byte data) { CSC0 CLKC0 SDAC0 //1 for cmd CLKC1 shiftBitsC(data); CSC1 }

1.2 Source code ในสวนการใชงาน interrupt ในสวนนเปนสวนในการใชงานการรบคาจาก serial port ของคอมพวเตอร โดยเมอม

ขอมลถกสงเขามา ไมโครคอนโทรลเลอรจะรบรในลกษณะเหมอนวาม สญญาณ interrupt เขามา

และการทางานจะถกกระโดดไปทางานในฟงกชน SIGNAL(SIG_UART_RECV) ในลกษณะท

เหมอนกบ interrupt Routine โดยคาทสงมานนจะถกเกบไวท UDR ซงสามารถนาออกมาใชได

ใน code นจะเปนการทดสอบโดยรบคาจากโปรแกรม Hyper terminal และนาคามาแสดงทไฟ

ของ Port C บนบอรดทดลอง

#include <avr/interrupt.h> #include <avr/io.h> #include <util/delay.h> #define F_OSC 8000000 #define UART_BAUD_RATE 9600 #define UART_BAUD_CALC(UART_BAUD_RATE,F_OSC) ((F_OSC)/((UART_BAUD_RATE)*16l)-1) //#define port PORTB //#define DDR DDRB

Page 64: เอกสาร Project แว่นตา 3 มิติ

54

void usart_putc(unsigned char c) { // wait until UDR ready while(!(UCSRA & (1 << UDRE))); UDR = c; // send character } unsigned char data; SIGNAL (SIG_UART_RECV) { // USART RX interrupt // UCSRB = (0 << RXCIE); PORTB = 0x00; _delay_ms(0); //delay for waiting delay work **by ajarn warin PORTC = (unsigned char)UDR; // UCSRB = (1 << RXEN) | (1 << TXEN) | (1 << RXCIE); } void USART_Init(){ // set baud rate UBRRH = (uint8_t)(UART_BAUD_CALC(UART_BAUD_RATE,F_OSC)>>8); UBRRL = (uint8_t)UART_BAUD_CALC(UART_BAUD_RATE,F_OSC); // Enable receiver and transmitter; enable RX interrupt UCSRB = (1 << RXEN) | (1 << TXEN) | (1 << RXCIE); //asynchronous 8N1 UCSRC = (1 << URSEL) | (3 << UCSZ0); } int main(void){ DDRB = 0xff; DDRC = 0xff; PORTC = 0xff; USART_Init(); //init Usart sei(); // enable interrupts while (1) { PORTB = 0xff; } return 0; }

Page 65: เอกสาร Project แว่นตา 3 มิติ

55

2. สวนทใชในการเชอมตอระหวางคอมพวเตอรกบไมโครคอนโทรลเลอร 2.1 Source code การแปลงคาส

ในสวนนทาการอานคาสจากภาพทละพกเซลเปน RGB และทาการแปลงคาสจาก 32 bit

ใหเหลอเพยง 8 bit เพอทจะสงขอมลไปใหกบไมโครคอนโทรลเลอร

Private Sub Command2_Click() Dim x As Long, y As Long Dim P(127, 0 To 127) As Long Dim R(127, 0 To 127) As Byte Dim B(127, 0 To 127) As Byte Dim G(127, 0 To 127) As Byte Dim Color(127, 0 To 127) As Byte Dim sData(128 * 128) As Byte For y = 0 To 127 Step 1 For x = 0 To 127 Step 1 P(x, y) = Picture1.Point(x, y) ‘Read color RGB of each pixel B(x, y) = CByte((P(x, y) And &HFF0000) / 65536) ‘Separated B from RGB and

‘shift bit G(x, y) = CByte((P(x, y) And 65280) / 256) ‘Separated G from RGB and

‘shift bit R(x, y) = CByte(P(x, y) And 255) ‘Separated R from RGB and

‘shift bit ‘*********************************************************** ‘Set color R in range 0-8 ‘*********************************************************** If (0 <= R(x, y)) And (R(x, y) <= 31) Then R(x, y) = 0 ElseIf (32 <= R(x, y)) And (R(x, y) <= 63) Then R(x, y) = 1 ElseIf (64 <= R(x, y)) And (R(x, y) <= 95) Then R(x, y) = 2 ElseIf (96 <= R(x, y)) And (R(x, y) <= 127) Then R(x, y) = 3 ElseIf (128 <= R(x, y)) And (R(x, y) <= 159) Then R(x, y) = 4 ElseIf (160 <= R(x, y)) And (R(x, y) <= 191) Then R(x, y) = 5 ElseIf (192 <= R(x, y)) And (R(x, y) <= 223) Then R(x, y) = 6 Else R(x, y) = 7 End If

Page 66: เอกสาร Project แว่นตา 3 มิติ

56

‘*********************************************************** ‘Set color G in range 0-8 ‘*********************************************************** If (0 <= G(x, y)) And (G(x, y) <= 31) Then G(x, y) = 0 ElseIf (32 <= G(x, y)) And (G(x, y) <= 63) Then G(x, y) = 1 ElseIf (64 <= G(x, y)) And (G(x, y) <= 95) Then G(x, y) = 2 ElseIf (96 <= G(x, y)) And (G(x, y) <= 127) Then G(x, y) = 3 ElseIf (128 <= G(x, y)) And (G(x, y) <= 159) Then G(x, y) = 4 ElseIf (160 <= G(x, y)) And (G(x, y) <= 191) Then G(x, y) = 5 ElseIf (192 <= G(x, y)) And (G(x, y) <= 223) Then G(x, y) = 6 Else G(x, y) = 7 End If ‘*********************************************************** ‘Set color B in range 0-3 ‘*********************************************************** If (0 <= B(x, y)) And (B(x, y) <= 63) Then B(x, y) = 0 ElseIf (64 <= B(x, y)) And (B(x, y) <= 127) Then B(x, y) = 1 ElseIf (128 <= B(x, y)) And (B(x, y) <= 191) Then B(x, y) = 2 Else B(x, y) = 3 End If R(x, y) = R(x, y) * 32 ‘shift bit G(x, y) = G(x, y) * 4 ‘shift bit Color(x, y) = R(x, y) Or G(x, y) Or B(x, y) ‘converted RGB into 8

‘bit(RRRGGGBB) sData(x * 128 + y) = Color(x, y) ‘converted color in array

‘1-dimention as sData Picture2.PSet (x, y), Color(x, y) ‘show picture Next x Label6.Caption = "sData = " & sData mscSender.Output = sData ‘Send data of sData Next y mscSender.EOFEnable = True End Sub

Page 67: เอกสาร Project แว่นตา 3 มิติ

57

2.2 Source Code การสงขอมล ในสวนนเปนการสงขอมลผาน RS-232 โดยการกาหนดพอรตและตงคาตางๆ

Private Sub Form_Load() mscSender.CommPort = 1 mscSender.Settings = "9600,n,8,1" ‘Set values of baud rate,

‘Parity, Data bits, Stop bits mscSender.PortOpen = True If (mscSender.PortOpen) Then Label5.Caption = "Hello" Else: Label5.Caption = "Yeah" End If End Sub ‘*********************************************************** Private Sub Form_Unload(Cancel As Integer) mscSender.PortOpen = False End Sub

Page 68: เอกสาร Project แว่นตา 3 มิติ

58

บรรณานกรม

1. กตต แตรผองแผว,ชาญณรงค รตนะ . (2547) . การผลตภาพถาย 3 มต เพอใชเปนสอการเรยน

การสอน.[http://www.ipst.ac.th/design/document/toy-sci/td3d-stereo.pdf]

2. Berezin Stereo Photography Products.[http://www.berezin.com/3d/3d_hmd.htm] .12

กรกฎาคม 2549

3. io-display system.(2002-2006).The i-theater.[http://www.i-glassesstore.com/i-

theater.html] .15 กรกฎาคม 2549

4. Page Flipped and Shutter Glasses.[http://www.shortcourses.com/how/stereo

/stereoimages.htm]11 กรกฎาคม 2549

5. Refik.(2006).Controlling a color graphic LCD,Epson S1D15G10 controller,with an

ATMEL AVRMega32L. [http://www.e-dsp.com/controlling-a-color-graphic-lcd-epson-

s1d15g10-controller-with-an-atmel-avr-atmega32l]. 24 สงหาคม 2549

6. Seiko Epson Corporation.(2002). S1D15G10D08B00.[http://www.alldatasheet.com].25

สงหาคม 2459

7. Sparkfun.(2005).LCDs.[http://www.Sparkfun.com/commerce/product_info.php?

products_id=569]. 24 สงหาคม 2549

8. Thomas Pfeifer.(2006).Controlling a Nokia 6100 Display with Atmel-AVR.

[http://thomaspfeifer.net/Nokia_6100_display_en.htm].24 สงหาคม 2549