Đăng ký Đăng nhập
Trang chủ Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn...

Tài liệu Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn

.PDF
88
498
99

Mô tả:

TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ BỘ MÔN ĐIỆN TỬ - VIỄN THÔNG LUẬN VĂN TỐT NGHIỆP THỰC HIỆN HỆ THỐNG NHÚNG MÔ PHỎNG TRÒ CHƠI BÓNG BÀN Sinh viên thực hiện Cán bộ hướng dẫn Trần Thanh Sang MSSV: 1101041 ThS. Trương Phong Tuyên Trần Trung Hiếu MSSV: 1100996 Lớp Kỹ thuật máy tính K36 Cần Thơ, Tháng 05 năm 2014 TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ BỘ MÔN ĐIỆN TỬ - VIỄN THÔNG LUẬN VĂN TỐT NGHIỆP THỰC HIỆN HỆ THỐNG NHÚNG MÔ PHỎNG TRÒ CHƠI BÓNG BÀN Sinh viên thực hiện Cán bộ hướng dẫn Trần Thanh Sang MSSV: 1101041 ThS. Trương Phong Tuyên Trần Trung Hiếu MSSV: 1100996 Lớp Kỹ thuật máy tính K36 Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ BỘ MÔN ĐIỆN – TỬ VIỄN THÔNG Luận văn được thực hiện bởi: 1. Họ tên: Trần Thanh Sang, MSSV: 1101041, Lớp: Kỹ thuật máy tính 2. Họ tên: Trần Trung Hiếu, MSSV: 1100996, Lớp: Kỹ thuật máy tính Tựa đề Luận văn (Hay tên đề tài): Thiết kế hệ thống nhúng mô phỏng trò chơi bóng bàn Luận văn đã nộp và báo cáo tại Hội đồng chấm bảo vệ Luận văn tốt nghiệp Đại học ngành Điện tử Truyền thông/Kỹ thuật Máy tính, Bộ môn Điện tử-Viễn thông vào ngày 19 tháng 05 năm 2014. (Quyết định thành lập Hội đồng số: 118/QĐ-CN ngày 23 tháng 04 năm 2013 của Trưởng Khoa Công Nghệ) Kết quả đánh giá: ___________ Chữ ký của các thành viên Hội đồng: Thành viên 1: ThS.Trương Phong Tuyên ..................................... Thành viên 2: ThS. Nguyễn Tăng Khả Duy ................................. Thành viên 3: ThS. Nguyễn Hứa Duy Khang ............................... i Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn LỜI CAM ĐOAN Đề tài “Thiết kế hệ thống nhúng mô phỏng trò chơi bóng bàn” thực hiện việc tạo một hệ thống nhúng trên board DE2-115 Development and Education do hãng Terasic sản xuất, nhằm hướng đến việc nghiên cứu, thiết kế một hệ thống nhúng có khả năng thực hiện việc điều khiển thông qua một camera. Sở dĩ chúng em chọn đề tài này để thực hiện Luận văn tốt nghiệp vì nhận thấy sự mới mẻ, tiến bộ của phương pháp điều khiển này cũng như tầm quan trọng của hệ thống nhúng trong thời đại ngày nay. Trong quá trình thực hiện, đề tài không tránh khỏi những thiếu sót và do kiến thức còn hạn chế nhưng những nội dung trình bày trong quyển báo cáo này là những hiểu biết và thành quả của chúng em đạt được dưới sự giúp đỡ của cán bộ hướng dẫn là Thạc sĩ Trương Phong Tuyên. Chúng em xin cam đoan rằng những nội dung trình bày trong quyển báo cáo Luận văn tốt nghiệp này không phải là bản sao chép từ bất kỳ công trình đã có trước nào. Nếu không đúng sự thật, em xin chịu mọi trách nhiệm trước nhà trường. Cần Thơ, ngày … tháng 05 năm 2014 Nhóm sinh viên thực hiện Trần Thanh Sang Trần Trung Hiếu ii Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn LỜI CẢM ƠN Với những kết quả đạt được, chúng em không bao giờ quên gửi lời cảm ơn chân thành và sâu sắc nhất đến cha mẹ và gia đình chúng em, những người đã hỗ trợ chúng em về mặt kinh tế để chúng em có điều kiện tốt nhất thực hiện đề tài của mình. Không chỉ vậy, gia đình còn luôn giúp đỡ và động viên, giúp chúng em có thêm nghị lực hoàn thành tốt nhiệm vụ học tập và rèn luyện của mình. Xin gửi lời cảm ơn đến đội ngũ cán bộ giảng dạy tại trường Đại học Cần Thơ nói chung và hai bộ môn Điện tử Viễn thông và Tự động hóa trực thuộc Khoa Công nghệ nói riêng đã tận tình giảng dạy, chỉ bảo cũng như tạo mọi điều kiện vật chất cho chúng tôi trong suốt thời gian chúng tôi tham gia học tập tại trường. Đặc biệt xin chân thành cám ơn ThS. Trương Phong Tuyên, người đã tận tình hướng dẫn chúng em thực hiện đề tài luận văn này. Xin cảm ơn thầy vì những tài liệu thầy đã cung cấp, cùng với những chỉ dẫn, định hướng kịp thời giúp chúng em thực hiện đúng hướng và đúng tiến độ đối với đề tài được giao. Trong suốt quá trình thực hiện đề tài chúng em cũng xin cám ơn sự giúp đỡ nhiệt tình của các anh khóa trước, cũng như sự hợp tác của các nhóm làm luận văn dưới sự hướng dẫn của thầy Trương Phong Tuyên, cùng toàn thể bạn bè đã nhiệt tình động viên và ủng hộ, cổ vũ tinh thần cho chúng em. Xin chân thành cám ơn ! Cần Thơ, ngày … tháng 05 năm 2014 Nhóm sinh viên thực hiện Trần Thanh Sang Trần Trung Hiếu iii Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn MỤC LỤC KÝ HIỆU VÀ VIẾT TẮT .........................................................................................1 MỤC LỤC BẢNG .....................................................................................................2 MỤC LỤC HÌNH ......................................................................................................3 TÓM TẮT ..................................................................................................................6 ABSTRACT ...............................................................................................................6 CHƯƠNG 1 TỔNG QUAN .................................................................................7 1.1 ĐẶT VẤN ĐỀ ...............................................................................................7 1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ ...............................................................7 1.3 PHẠM VI ĐỀ TÀI ........................................................................................8 1.4 PHƯƠNG PHÁP NGHIÊN CỨU .................................................................8 CHƯƠNG 2 CƠ SỞ LÝ THUYẾT .....................................................................9 2.1 TỔNG QUAN VỀ ĐỒ HỌA MÁY TÍNH VÀ XỬ LÝ ẢNH ......................9 2.1.1 Tổng quan đồ họa máy tính [11].............................................................9 2.1.2 Xử lý ảnh ..............................................................................................10 2.2 KIẾN THỨC VỀ CHUẨN VGA [13].........................................................15 2.3 GIỚI THIỆU VỀ BOARD DE2-115 [7] .....................................................18 2.3.1 Cấu hình chip FPGA Cyclone IV 4CE115 ...........................................21 2.3.2 Nút ấn và công tắc ................................................................................21 2.3.3 LED đơn................................................................................................22 2.3.4 LED 7 đoạn ...........................................................................................23 2.3.5 Các bộ nhớ ngoại vi SRAM/SDRAM/FLASH/EEPROM ...................23 2.3.6 Các cổng kết nối ...................................................................................24 2.4 Giới thiệu camera 5MP TRÊN KIT TRDB_D5M [8][9] ............................26 CHƯƠNG 3 XÂY DỰNG HỆ THỐNG ...........................................................29 3.1 PHÂN TÍCH HỆ THỐNG VÀ THIẾT KẾ LUỒNG DỮ LIỆU .................29 3.1.1 Phân tích hệ thống.................................................................................29 3.1.2 Thiết kế luồng dữ liệu ...........................................................................29 3.2 SƠ ĐỒ KHỐI HỆ THỐNG .........................................................................30 3.3 NIOS II PROCESSOR ................................................................................31 3.4 CẤU TRÚC LIÊN KẾT HỆ THỐNG (SYSTEM INTERCONNECT FABRIC) [4] .........................................................................................................33 3.5 HỆ THỐNG NHÚNG GIAO TIẾP VỚI CAMERA...................................34 3.5.1 D5M Configuration ..............................................................................34 3.5.2 D5M Decoder .......................................................................................35 3.5.3 Khối xử lý dữ liệu TRDB_D5M ...........................................................36 3.6 PIXEL BUFFER ..........................................................................................44 3.7 HỆ THỐNG NHÚNG GIAO TIẾP VỚI VGA ...........................................45 3.7.1 Khối xử lý dữ liệu xuất ra VGA ...........................................................45 3.7.2 VGA Controller ....................................................................................49 3.8 HỆ THỐNG NHÚNG XUẤT ÂM THANH ...............................................50 3.8.1 Audio Configuration .............................................................................50 3.8.2 Audio ....................................................................................................51 3.8.3 Flash ......................................................................................................52 3.9 EXTERNAL CLOCKS ...............................................................................53 iv Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn 3.10 CẤU HÌNH HỆ THỐNG NHÚNG TRONG SOPC BUILDER .............55 3.10.1 Avalon Memory Mapped Interface ...................................................56 3.10.2 Avalon Streaming Interface...............................................................57 CHƯƠNG 4 PHẦN MỀM VÀ GIẢI THUẬT .................................................59 4.1 GIẢI THUẬT CHƯƠNG TRÌNH CHÍNH .................................................59 4.2 CÁC GIẢI THUẬT LƯU TRỮ DỮ LIỆU VÀ XỬ LÝ ẢNH ...................61 4.2.1 Đọc dữ liệu từ camera ...........................................................................61 4.2.2 Giải thuật lọc frame ảnh nhận được từ camera .....................................61 4.2.3 Giải thuật phát hiện bàn tay ..................................................................62 4.2.4 Giải thuật theo dõi bàn tay ....................................................................64 4.3 CÁC GIẢI THUẬT LIÊN QUAN ĐẾN HIỂN THỊ VÀ ĐIỀU KHIỂN TRÒ CHƠI BÓNG BÀN ......................................................................................66 4.3.1 Thiết kế giao diện chương trình ............................................................66 4.3.2 Giải thuật vẽ các thành phần giao diện của trò chơi .............................68 4.3.3 Giải thuật điều khiển quá trình di chuyển của quả bóng ......................70 4.3.4 Giải thuật điều khiển quá trình di chuyển của thanh trượt ...................72 KẾT LUẬN VÀ ĐỀ NGHỊ .....................................................................................74 TÀI LIỆU THAM KHẢO ......................................................................................77 PHỤ LỤC .................................................................................................................78 v Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn KÝ HIỆU VÀ VIẾT TẮT ALU AS CMY CODEC CPU CRT DMA FIFO FPGA GPIO HDL HSL HSV I2C ID IP JTAG LCD LED Pixel PLL RGB SDRAM SOPC SRAM USB VGA Arithmetic Logic Unit Active Serial Cyan-Magenta-Yellow enCOder/DECoder Central Processing Unit Cathode Ray Tube Direct memory access Fist-in, First-out Field-Programmable Gate Array General Purpose Input Output Hardware Description Language Hue-Saturation, lightness Hue-Saturation-Value Inter-Intergrated Circuit Identification Intellectual Property Joint Test Action Group Liquid crystal display Light Emitting Diode Picture Element Phase-Locked Loop Red-Green-Blue Synchronous Dynamic Random Access Memory System On Programmable Chip Static Random Access Memory Universal Serial Bus Video Graphic Array 1 Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn MỤC LỤC BẢNG Bảng 2.1 Sơ đồ chân của VGA .................................................................................17 Bảng 2.2 Tín hiệu đồng bộ ngang .............................................................................18 Bảng 2.3 Tín hiệu đồng bộ dọc .................................................................................18 Bảng 2.4 Thông số kỹ thuật của kit TRDB_D5M ....................................................27 Bảng 2.5 Chức năng các chân của kit TRDB_D5M .................................................28 2 Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn MỤC LỤC HÌNH Hình 2.1 Ví dụ minh họa về các ảnh .........................................................................11 Hình 2.2 Không gian màu RGB ................................................................................12 Hình 2.3 Ảnh mức xám và ảnh sau khi phân ngưỡng (ảnh nhị phân) ......................15 Hình 2.4 Cổng VGA và sơ đồ chân ..........................................................................16 Hình 2.5 Tín hiệu định thời VGA .............................................................................17 Hình 2.6 Mặt trên của board DE2-115 ......................................................................19 Hình 2.7 Sơ đồ khối hệ thống của board DE2-115 ...................................................19 Hình 2.8 Cấu hình hệ thống ở chế độ JTAG .............................................................21 Hình 2.9 Cấu hình hệ thống ở chế độ AS .................................................................21 Hình 2.10 Kết nối giữa nút ấn và chip Cyclone IV 4CE115 ....................................22 Hình 2.11 Kết nối giữa công tắc và chip FPGA Cyclone IV 4CE115 ......................22 Hình 2.12 Kết nối giữa module LED đơn và chip FPGA Cyclone IV 4CE115 .......22 Hình 2.13 Kết nối giữa module LED 7 đoạn và chip FPGA Cylone IV 4CE115 ....23 Hình 2.14 Kết nối giữa SRAM và chip FPGA Cylone IV 4CE115 .........................23 Hình 2.15 Kết nối giữa SDRAM và chip FPGA Cylone IV 4CE115.......................23 Hình 2.16 Kết nối giữa bộ nhớ Flash và chip FPGA Cylone IV 4CE115 ................24 Hình 2.17 Kết nối giữa EEPROM và chip FPGA Cylone IV 4CE115 .....................24 Hình 2.18 Kết nối giữa chip FPGA Cylone IV 4CE115 và cổng VGA ...................25 Hình 2.19 Kết nối giữa chip FPGA Cylone IV 4CE115 và cổng GPIO ...................25 Hình 2.20 Kết nối giữa board DE2-115 và kit TRDB_D5M qua cổng GPIO ..........26 Hình 2.21 Camera 5MP TRDB_D5M của hãng Terasic ..........................................26 Hình 2.22 Sơ đồ chân của TRDB_D5M (40 chân) ...................................................27 Hình 3.1 Kiến trúc hệ thống ......................................................................................29 Hình 3.2 Luồng dữ liệu và quá trình xử lý dữ liệu ...................................................30 Hình 3.3 Sơ đồ khối hệ thống nhúng mô phỏng trò chơi bóng bàn ..........................31 Hình 3.4 Sơ đồ khối của bộ vi xử lý Nios II .............................................................32 Hình 3.5 Cấu hình khối Nios II Processor ................................................................33 Hình 3.6 Cấu trúc của System Interconnect Fabric ..................................................34 Hình 3.7 Cấu trúc System Interconnect Fabric trong một hệ thống đơn giản ..........34 Hình 3.8 Sơ đồ khối của IP core Audio/Video Configuration ..................................35 Hình 3.9 Cấu hình khối D5M Configuration trong SOPC Builder...........................35 Hình 3.10 Sơ đồ khối của IP core Video-In Decoder ...............................................36 Hình 3.11 Cấu hình khối D5M Decoder ...................................................................36 Hình 3.12 Phương pháp chuyển đổi của IP core Bayer Pattern Resampler..............37 Hình 3.13 Sơ đồ khối của IP core Bayer Pattern Resampler ....................................37 Hình 3.14 Cấu hình khối D5M Bayer Pattern ...........................................................38 Hình 3.15 Sơ đồ khối của IP core Clipper ................................................................38 Hình 3.16 Cấu hình khối D5M Clipper.....................................................................39 Hình 3.17 Sơ đồ khối của IP core Scaler ..................................................................40 Hình 3.18 Cấu hình khối D5M Scaler 1....................................................................40 Hình 3.19 Cấu hình khối D5M Scaler 2....................................................................41 Hình 3.20 Sơ đồ khối IP core RGB Resampler ........................................................41 Hình 3.21 Cấu hình khối D5M Scaler 2....................................................................42 Hình 3.22 Sơ đồ khối của IP core DMA Controller .................................................42 3 Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn Hình 3.23 Cấu hình khối D5M DMA Controller ......................................................43 Hình 3.24 Cấu hình khối Pixel Buffer ......................................................................45 Hình 3.25 Sơ đồ khối Pixel Buffer DMA controller .................................................46 Hình 3.26 Cấu hình khối VGA Pixel Buffer .............................................................46 Hình 3.27 Cấu hình khối VGA RGB Resampler ......................................................47 Hình 3.28 Cấu hình khối VGA Scaler ......................................................................48 Hình 3.29 Sơ đồ khối của IP core Dual-Clock FIFO ................................................49 Hình 3.30 Cấu hình khối Dual-Clock FIFO ..............................................................49 Hình 3.31 Sơ đồ khối của IP core Dual-Clock FIFO ................................................49 Hình 3.32 Cấu hình khối VGA Controller ................................................................50 Hình 3.33 Cấu hình khối Audio Configuration.........................................................51 Hình 3.34 Sơ đồ khối core Audio .............................................................................52 Hình 3.35 Cấu hình khối Audio trong SOPC Builder...............................................52 Hình 3.36 Cấu hình khối Flash trong SOPC Builder ................................................53 Hình 3.37 Sơ đồ khối của IP core Avalon ALTPLL.................................................53 Hình 3.38 Cấu hình cpu_clk từ core Avalon ALTPLL .......................................54 Hình 3.39 Hệ thống nhúng mô phỏng trò chơi bóng bàn trong SOPC Builder ........55 Hình 3.40 Hệ thống bus của hệ thống nhúng trong SOPC Builder ..........................56 Hình 3.41 Cấu trúc Avalon Streaming Interface ở dòng dữ liệu ghi vào bộ nhớ .....58 Hình 3.42 Cấu trúc bus Avalon Streaming Interface ở dòng dữ liệu xuất ra VGA ..58 Hình 4.1 Quartus II (trái) và Nios II Software Build Tools for Eclipse (phải) .........59 Hình 4.2 Giải thuật chương trình chính ....................................................................60 Hình 4.3 Giải thuật đọc dữ liệu từ camera ................................................................61 Hình 4.4 Mặt nạ chập được sử dụng trong đề tài ......................................................62 Hình 4.5 Giải thuật lọc frame ảnh nhận được từ camera ..........................................62 Hình 4.6 Giải thuật nhận dạng bàn tay người ...........................................................63 Hình 4.7 Giải thuật “cắt” bỏ phần cơ thể người (trừ hai bàn tay) .............................64 Hình 4.8 Frame ảnh nhận được sau quá trình nhận dạng bàn tay .............................64 Hình 4.9 Vị trí cửa sổ 3x3 pixel (trái) và hình ảnh theo dõi bàn tay thực tế (phải) ..65 Hình 4.10 Giải thuật theo dõi bàn tay .......................................................................65 Hình 4.11 Giao diện chính của trò chơi bóng bàn ....................................................66 Hình 4.12 Giao diện lời chào ....................................................................................67 Hình 4.13 Giao diện bắt đầu .....................................................................................67 Hình 4.14 Một trong các giao diện kết thúc ..............................................................67 Hình 4.15 Giải thuật VGA_Box................................................................................68 Hình 4.16 Giải thuật hiển thị số trên VGA ...............................................................69 Hình 4.17 Giải thuật hiển thị giao diện phụ ..............................................................70 Hình 4.18 Các trường hợp di chuyển của quả bóng..................................................71 Hình 4.19 Giải thuật điều khiển quá trình di chuyển của quả bóng ..........................71 Hình 4.20 Giải thuật vẽ quả bóng di chuyển trên VGA ............................................72 Hình 4.21 Giải thuật điều khiển thanh trượt .............................................................73 Hình 5.1 Kiến trúc hệ thống trong thực tế ................................................................74 Hình 5.2 Tài nguyên trên chip FPGA được sử dụng trong đề tài .............................74 Hình 6.1 Giao diện lời chào ......................................................................................78 Hình 6.2 Các vị trí và khoảng cách người chơi cần đảm bảo ...................................79 Hình 6.3 Giao diện sẵn sàng bắt đầu trò chơi ...........................................................79 4 Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn Hình 6.4 Giao diện chính của trò chơi ......................................................................80 Hình 6.5 Giao diện kết quả player 2 thắng (tỉ số 6-7) ...............................................81 Hình 6.6 Giao diện kết quả hòa (tỉ số 2 đều) ............................................................81 5 Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn TÓM TẮT Hiện nay hệ thống nhúng được ứng dụng rộng rãi trong nhiều lĩnh vực như giáo dục, quân sự, y tế, giải trí,…Đặc biệt trong lĩnh vực giải trí, các trò chơi ứng dụng hệ thống nhúng xuất hiện càng phổ biến và đang trở thành xu thế mới. Vì thế, nhóm đã chọn đề tài “Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn” với mong muốn xây dựng một hệ thống nhúng trên nền tảng FPGA có khả năng theo dõi sự di chuyển của bàn tay người và ứng dụng điều này để điều khiển hai thanh trượt trong trò chơi bóng bàn. Đề tài sử dụng phần mềm Quartus II để xây dựng hệ thống trên board DE2-115 và phần mềm Nios II Software Build Tools để lập trình bằng ngôn ngữ C. Kết quả dự kiến của đề tài là tạo một giao diện trò chơi bóng bàn đơn giản, dễ sử dụng, góp phần vào nguồn tài liệu cho các nghiên cứu sau này. Từ khóa: FPGA, DE2-115, TRDB_D5M, trò chơi bóng bàn, theo dõi bàn tay ABSTRACT Today, the embedded systems are applied in many fields such as education, military, medicine, entertainment, etc. Especially in the field of entertainment, there are many games which are applied embedded system appear increasingly popular. Because of this new trend, we chose project “Design an embedded system that simulates a ping-pong game” with the aim of building an embedded system on FPGA platform, which can track the movement of the hands and use them to control two paddles in ping-pong game. We use Quartus II software to design embedded system and Nios II Software Build Tools software to program for this system by C language. We expect to create a ping-pong game with a simple interface and easy using. We hope that our project can contribute to the source for researchs later. Keywords: FPGA, DE2-115, TRDB_D5M, ping-pong game, hand tracking 6 Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn CHƯƠNG 1 TỔNG QUAN Nội dung: - Giới thiệu đề tài, yêu cầu và mục đích lựa chọn đề tài. - Quá trình hình thành và lịch sử giải quyết đề tài. - Phạm vi về không gian, thời gian và các gói công cụ hỗ trợ thực hiện đề tài. - Cách thức và phương thức tiến hành thực hiện đề tài. 1.1 ĐẶT VẤN ĐỀ Trong thời đại ngày nay, hệ thống nhúng đang ngày càng phát triển và chiếm một vai trò quan trọng trong cuộc sống. Ứng dụng của hệ thống nhúng có thể bắt gặp ở mọi nơi, từ những thiết bị quen thuộc như điện thoại, máy giặt, máy điều hòa...cho đến các thiết bị công nghệ cao như máy bay, tên lửa, vệ tinh...Các thiết bị nhúng ngày nay đang phát triển theo hướng “thông minh”, một xu hướng tất yếu của thời đại. Trong số đó, các máy móc, thiết bị điều khiển thông minh ứng dụng hệ thống nhúng đang ngày càng chiếm lĩnh thị trường công nghệ cao trên thế giới. Như đã biết, hệ thống nhúng có nhiều tính năng nổi trội như thông minh, nhỏ gọn, giá thành thấp, ít tiêu hao năng lượng, hoạt động ổn định và có tính năng tự động hóa cao...Từ đó, nhóm đã chọn nghiên cứu phát triển và ứng dụng của hệ thống nhúng với đề tài “Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn”. Trò chơi đánh bóng bàn là một trò chơi đơn giản và quen thuộc, nhưng việc tạo dựng một trò chơi bằng một hệ thống nhúng với phương thức điều khiển bằng bàn tay người còn là một vấn đề khá mới mẻ. Điều này đã tạo ra một phương thức giao tiếp mới giữa người và các thiết bị. Ngoài ra, nghiên cứu thực hiện đề tài này còn có ý nghĩa ứng dụng vào thực tiễn cuộc sống cũng như làm tư liệu cho các nghiên cứu cao hơn. 1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ Việc nghiên cứu và phát triển hệ thống nhúng đã không còn quá mới mẻ, xa lạ với nhiều quốc gia trên thế giới. Một số công ty đã có nhiều thành tựu trong lĩnh vực này, như Altera và Terasic là hai hãng lớn đi đầu trong việc sản xuất các dòng sản phẩm hỗ trợ công tác nghiên cứu và ứng dụng hệ thống nhúng. Một số trường đại học trên thế giới cũng đã có nhiều thành công trong lĩnh vực này như MIT, Conell,...Ở Việt Nam nhiều trường đại học và phòng thí nghiệm cũng đã đi vào nghiên cứu và giảng dạy, riêng Đại học Cần Thơ chỉ mới đưa vào giảng dạy ở những năm gần đây. Do đó các tài liệu và công trình nghiên cứu hệ thống nhúng tại trường vẫn còn khá ít, việc nghiên cứu và phát triển lĩnh vực này vẫn còn gặp khó khăn. Đề tài đã được thực hiện ở Đại học Cornell (Hoa Kỳ) bởi hai sinh viên Hanting Lu và Kedari Elety trên board Altera DE2 với tên đề tài cụ thể là “Hand tracking pong” [17] (trò chơi bóng bàn dựa vào theo dõi bàn tay). Trong đề tài này, họ tiến hành sử dụng ngôn ngữ Verilog HDL để tạo hệ thống phần cứng đồng thời lập trình phần mềm. Hệ thống phần cứng bao gồm các khối giải mã video từ nguồn analog do camera quay lại và truyền vào board DE2 thông qua cổng Video-In. Sau đó dữ liệu này được xử lí để phục vụ cho các quá trình xử lí sau. Đề tài này cũng có 7 Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn tích hợp thêm module tạo âm thanh cho hệ thống. Về phần mềm, “Hand tracking pong” sử dụng giải pháp nhận dạng màu da để nhận dạng và theo dõi bàn tay. Khác với đề tài “Hand tracking pong”, nhóm đã chọn thiết kế hệ thống nhúng bằng các IP core và lập trình cho hệ thống bằng ngôn ngữ C, một ngôn ngữ quen thuộc. Hơn thế nữa, giữa hai đề tài còn có sự khác biệt về phần cứng và cả giải thuật phần mềm. Về phần cứng, nhóm sử dụng công cụ SOPC Builder để tạo hệ thống dựa trên các core được nhà sản xuất cung cấp sẵn. Hệ thống bao gồm các core video, audio và bộ nhớ để thu nhận và xử lí dữ liệu, đồng thời xuất giao diện trò chơi ra màn hình. Ưu điểm của phương pháp này đó là giúp cho việc quản lí các thành phần, các module được dễ dàng hơn. Hơn nữa, các IP core đã được thiết kế sẵn để tối ưu hoạt động cho phần cứng mà nó hỗ trợ. Thiết kế hệ thống sử dụng IP core trên SOPC Builder không những là phương pháp đơn giản nhất mà còn mang lại cái nhìn trực quan về hệ thống được tạo. Về phần mềm, đề tài sử dụng giải thuật trừ ảnh để cải tiến về độ chính xác của giải thuật theo dõi bàn tay. Nhìn chung, đề tài đã kế thừa và cải tiến được một số hạn chế của đề tài trước (màu sắc giao diện, âm thanh, độ tin cậy, độ chính xác,...) cũng như tạo một số khác biệt trong phong cách điều khiển trò chơi (vị trí người chơi, số người chơi,...). 1.3 PHẠM VI ĐỀ TÀI Đề tài được nghiên cứu dựa trên nền tảng kiến thức hệ thống nhúng, lập trình nhúng trên FPGA, kỹ thuật đồ họa và xử lý ảnh. Hệ thống được thực hiện dựa trên phần cứng là board Altera DE2-115 Development and Education và camera 5MP TRDB_D5M do Terasic sản xuất, kết hợp với các phần mềm như Quartus II, Nios II Software Build Tools for Eclipse,...để lập trình cho hệ thống thông qua ngôn ngữ C. Do giới hạn về kiến thức của từng thành viên (2 thành viên) và khuôn khổ thời gian thực hiện 4 tháng nên mục tiêu hướng đến của đề tài là tạo được một trò chơi bóng bàn với giao diện đơn giản được hiển thị lên một màn hình theo chuẩn VGA, trong đó người chơi có thể điều khiển thanh trượt trong trò chơi bằng cách di chuyển bàn tay lên/xuống trong một khoảng cách cố định. 1.4 PHƯƠNG PHÁP NGHIÊN CỨU Quá trình thực hiện đề tài được tiến hành tuần tự theo các bước sau: ● Tìm hiểu các thành phần trên board DE2-115 và camera kỹ thuật số 5MP trên kit TRDB_D5M. ● Tìm hiểu về các lý thuyết đồ họa, xử lý ảnh, chuẩn giao tiếp VGA... ● Thiết kế và xây dựng hệ thống phần cứng trên SOPC Builder. ● Thiết kế và xây dựng giải thuật trên Nios II Software Build Tools for Eclipse. ● Khảo sát kết quả thực tế và hoàn thiện hệ thống. ● Kết quả và đánh giá. 8 Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn CHƯƠNG 2 CƠ SỞ LÝ THUYẾT Nội dung: - Tổng quan về đồ họa máy tính. - Kiến thức về xử lý ảnh. - Sơ lược chuẩn VGA. - Giới thiệu board Altera DE2-115 và kit TRDB_D5M 2.1 TỔNG QUAN VỀ ĐỒ HỌA MÁY TÍNH VÀ XỬ LÝ ẢNH 2.1.1 Tổng quan đồ họa máy tính [11] 2.1.1.1 Khái niệm Thuật ngữ đồ họa máy tính (Computer Graphics) được đề xuất bởi nhà khoa học người Mỹ tên là William Fetter vào năm 1960 khi ông đang nghiên cứu xây dựng mô hình buồng lái máy bay cho hãng Boeing. Đồ họa máy tính là một lĩnh vực của khoa học máy tính nghiên cứu về cơ sở toán học, các thuật toán cũng như các kỹ thuật để cho phép tạo, hiển thị và điều khiển hình ảnh trên màn hình máy tính. Đồ họa máy tính có liên quan ít nhiều đến một số lĩnh vực như đại số, hình học giải tích, hình học họa hình, quang học,... và kỹ thuật máy tính, đặc biệt là chế tạo phần cứng (các loại màn hình, các thiết bị xuất, nhập, các vi mạch đồ họa...). Theo nghĩa rộng hơn, đồ họa máy tính là phương pháp và công nghệ dùng trong việc chuyển đổi qua lại giữa dữ liệu và hình ảnh trên màn hình bằng máy tính. Đồ họa máy tính hay kỹ thuật đồ họa máy tính còn được hiểu dưới dạng phương pháp và kỹ thuật tạo hình ảnh từ các mô hình toán học mô tả các đối tượng hay dữ liệu lấy được từ các đối tượng trong thực tế. Các chương trình đồ họa ứng dụng cho phép chúng ta làm việc với máy tính một cách thoải mái, tự nhiên. 2.1.1.2 Phân loại Dựa vào các phương pháp xử lý dữ liệu trong hệ thống, ta phân ra làm hai kỹ thuật đồ họa: ● Kỹ thuật đồ họa điểm Nguyên lý như sau: các hình ảnh được hiển thị thông qua từng pixel (từng mẫu rời rạc). Các hình ảnh được hiển thị như một lưới điểm rời rạc (grid), từng điểm đều có vị trí xác định được hiển thị với một giá trị nguyên, biểu thị màu sắc hoặc độ sáng của điểm đó. Tập hợp tất cả các pixel của grid tạo nên hình ảnh của đối tượng mà ta muốn biểu diễn. Với kỹ thuật này, chúng ta có thể tạo ra, xóa hoặc thay đổi thuộc tính của từng pixel của các đối tượng. ● Kỹ thuật đồ họa vector Nguyên lý của kỹ thuật này là xây dựng mô hình hình học (geometrical model) cho hình ảnh đối tượng, xác định các thuộc tính của mô hình hình học, sau đó dựa trên mô hình này để thực hiện quá trình tô trát (rendering) để hiển thị từng điểm của mô hình, hình ảnh của đối tượng. Ở kỹ thuật này, chúng ta chỉ lưu trữ mô hình toán học của các thành phần trong mô hình hình học cùng với các thuộc tính tương ứng mà không cần lưu lại toàn bộ tất cả các pixel của hình ảnh đối tượng. 9 Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn 2.1.1.3 Các thành phần cơ sở Về bản chất: đó là một quá trình xây dựng và phát triển các công cụ trên cả hai lĩnh vực phần cứng và phần mềm hỗ trợ cho các lập trình viên thiết kế các chương trình có khả năng đồ họa cao. Phần cứng bao gồm các thiết bị thu nhận (bàn phím, chuột, camera...), thiết bị hiển thị (màn hình) và thiết bị tương tác (găng tay, kính 3D…). Phần mềm bao gồm các công cụ lập trình và các trình ứng dụng đồ họa. Một trong những thành phần quan trọng nhất của hệ đồ họa là thiết bị hiển thị-màn hình, biến đổi tín hiệu thành hình ảnh. Có 2 loại màn hình: màn hình ống tia âm cực truyền thống (CRT: cathode ray tube) và màn hình tinh thể lỏng (LCD: liquid crystal display) tương tự như màn hình plasma, LED. LCD có ưu điểm là được thiết kế nhỏ gọn, nhẹ, chiếm ít không gian, chất lượng hình ảnh tốt, tiêu thụ ít năng lượng nên được sử dụng phổ biến hơn màn hình CRT truyền thống. 2.1.2 Xử lý ảnh Ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối, dung lượng điểm ảnh, tỉ lệ màu sắc, môi trường thu ảnh phong phú kéo theo nhiễu. Do đó cần có các phương pháp xử lý để nâng cao chất lượng của ảnh. Xử lý ảnh là một trong các lĩnh vực của kỹ thuật đồ họa. 2.1.2.1 Khái niệm về ảnh – điểm ảnh Gốc của ảnh (ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng. Để xử lý bằng máy tính (số), ảnh cần phải được số hoá. Số hoá ảnh là sự biến đổi gần đúng một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và độ sáng (mức xám). Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người không phân biệt được ranh giới giữa chúng. Mỗi một điểm như vậy gọi là điểm ảnh (PEL: Picture Element) hay gọi tắt là Pixel. Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với cặp tọa độ (x,y). Ảnh số là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật. Số điểm ảnh xác định độ phân giải của ảnh. Ảnh có độ phân giải càng cao thì càng thể hiện rõ nét các đặt điểm của tấm hình càng làm cho tấm ảnh trở nên thực và sắc nét hơn. Điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x,y) với độ xám hoặc màu nhất định. Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như ảnh thật. Mỗi phần tử trong ma trận được gọi là một phần tử ảnh. 2.1.2.2 Độ phân giải của ảnh Định nghĩa: Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn định trên một ảnh số được hiển thị. Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh. Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục x và y trong không gian hai chiều. Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color Graphic Adaptor) là một lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc*200 điểm ảnh (320*200). Rõ ràng, cùng màn hình CGA 12” ta nhận thấy mịn hơn màn hình CGA 17” độ phân giải 320*200. Lý do: cùng một mật độ (độ phân giải) nhưng diện tích màn hình rộng hơn thì độ mịn (sự liên tục của các điểm) kém hơn. 10 Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn 2.1.2.3 Mức xám của ảnh Một điểm ảnh (pixel) có hai đặc trưng cơ bản là vị trí (x,y) của điểm ảnh và độ xám của nó. Dưới đây chúng ta xem xét một số khái niệm và thuật ngữ thường dùng trong xử lý ảnh. ● Định nghĩa: Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số tại điểm đó. ● Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 (Mức 256 là mức phổ dụng. Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám: Mức xám dùng 1 byte biểu diễn: 28=256 mức, tức là từ 0 đến 255). ● Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt, tức dùng 1 bit mô tả 21 mức khác nhau. Nói cách khác: mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1. ● Ảnh đen trắng (ảnh mức xám): là ảnh chỉ có hai màu đen, trắng với mức xám ở các điểm ảnh có thể khác nhau (có nhiều giá trị mức xám, khác với ảnh nhị phân). ● Ảnh màu: trong khuôn khổ lý thuyết ba màu chính (Red, Blue, Green) để tạo nên thế giới màu, người ta thường dùng 3 byte để mô tả mức màu, khi đó các giá trị màu: 28*3=224≈16,7 triệu màu. Hình 2.1 Ví dụ minh họa về các ảnh 2.1.2.4 Không gian màu Không gian màu (color space) đựợc đưa ra để định các màu hiển thị trên máy tính, bởi vì chúng làm đơn giản hóa các thao tác tính toán cần thiết cho việc chuyển đổi màu sắc (color transformation). Không gian màu có thể được thiết kế hoặc là dựa trên cơ sở của bộ phát sinh màu của phần cứng (ví dụ như không gian RGB) hoặc là dựa trên sự cảm nhận màu sắc của mắt (như không gian HSL). Với một ứng dụng, việc chọn không gian màu nào để sử dụng tùy thuộc vào một số nhân tố sau: độ chính xác mà các nhà thiết kế cần kiểm soát màu sắc (color control); yêu cầu về sự tương tác giữa các màu sắc và tốc độ các tính toán cho ứng dụng đó. Có nhiều loại không gian màu như: RGB, CMY, CMYK, HSV, HSL, YcrCb... Trong đó, không gian màu RGB là chuẩn công nghiệp cho các thao tác đồ họa máy tính. Các thao tác màu sắc có thể được tính toán trên các không gian màu khác nhưng cuối cùng cần phải chuyển về không gian RGB để có thể hiển thị trên màn hình (do thiết kế của phần cứng dựa trên mô hình RGB). Không gian màu RGB: Mô tả màu sắc hình ảnh bằng 3 màu chính là Red, Green và Blue. Không gian này được xem như một khối lập phương 3 chiều với màu Red là trục x, màu Green là trục y và màu Blue là trục z. 11 Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn Hình 2.2 Không gian màu RGB Cơ chế phối màu của không gian màu RGB là cộng màu, mỗi màu sắc trong không gian này sẽ được diễn tả bằng một tổ hợp tương ứng từ 3 màu chính R,G,B. Riêng các màu ở các góc chéo đối diện nhau cộng lại sẽ cho ra màu trắng (bù nhau), ví dụ: Red và Cyan, Green và Magena, Blue và Yellow. Đường chéo nối 2 đỉnh Black (0,0,0) và White (1,1,1) diễn tả mức độ xám (Grayscale) của màu sắc. Không gian màu Red-Green-Blue (RGB) chứa các giá trị cường độ độc lập cho mỗi màu cơ bản bao gồm màu đỏ, màu lục và màu lam. Phạm vi của các cường độ cho mỗi màu phụ thuộc vào số lượng các bit liên quan. ● 8-bit RGB: kiểu định dạng này xác định 8 bit cho cường độ từng màu. Sử dụng 3 bit mức cao nhất cho màu đỏ (R), 3 bit kế cho màu lục (G) và 2 bit thấp nhất cho màu lam (B) như hình bên dưới. ● 9-bit RGB: định dạng này sử dụng 3 bit cho mỗi màu. 16-bit RGB: định dạng này sử dụng 5 bit cho màu đỏ, 6 bit cho màu lục và 5 bit còn lại cho màu lam. ● ● 24-bit RGB: định dạng này sử dụng 8 bit cho mỗi màu.  30-bit RGB: định dạng này sử dụng 10 bit cho mỗi màu. 12 Thực hiện hệ thống nhúng mô phỏng trò chơi bóng bàn 16-bit RGBA: kiểu định dạng này sử dụng 4 bit cho mỗi màu, có bổ sung thêm alpha (xác định độ trong suốt). ● ● 32-bit RGBA: dạng này sử dụng 8 bit cho mỗi màu. ● 40-bit RGBA: sử dụng 10 bit cho mỗi màu. 8-bit Grayscale: Là một dạng đặc biệt của không gian màu RGB. Trạng thái xám được tạo ra khi ba màu (R,G,B) có cường độ như nhau. ● Bayer Pattern: Đây cũng là một trường hợp đặc biệt khác của không gian màu RGB, tương tự như RGB 24-bit. Nhưng ba màu (R,G,B) được xếp theo một mô hình 2x2, trong đó màu lục chiếm 50%, màu đỏ chiếm 25% và màu lam chiếm 25%. Mỗi điểm ảnh chỉ cho giá trị một trong 3 màu sắc (R,G,B), sử dụng 8 bit cho mỗi màu sắc. ● 2.1.2.5 Quy trình xử lý ảnh: ● Phần thu nhận ảnh (Image Acquisition) Ảnh có thể nhận qua camera màu hoặc đen trắng. Thường ảnh nhận qua camera là ảnh tương tự (loại camera ống chuẩn CCIR với tần số1/25, mỗi ảnh 25 dòng), cũng có loại camera đã số hoá (như loại CCD – Change Coupled Device) là loại photodiot tạo cường độ sáng tại mỗi điểm ảnh. Camera thường dùng là loại quét dòng; ảnh tạo ra có dạng hai chiều. Chất lượng một ảnh thu nhận được phụ thuộc vào thiết bị thu, vào môi trường (ánh sáng, phong cảnh) ● Tiền xử lý (Image Processing) Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền xửlý để nâng cao chất lượng. Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn. ● Phân đoạn (Segmentation) hay phân vùng ảnh Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn phân tích, nhận dạng ảnh. Ví dụ: để nhận dạng chữ (hoặc mã vạch) trên phong 13
- Xem thêm -

Tài liệu liên quan