1. Trang chủ
  2. » Tất cả

(Đồ án hcmute) thiết kế và thi công hệ thống trò chơi bắn vịt trời

51 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 51
Dung lượng 5,11 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CƠNG NGHỆ KỸ THUẬT MÁY TÍNH THIẾT KẾ VÀ THI CƠNG HỆ THỐNG TRỊ CHƠI BẮN VỊT TRỜI GVHD: HUỲNH HOÀNG HÀ SVTH : LÂM TRỌNG NHÂN MSSV: 14119162 SKL 0 Tp Hồ Chí Minh, tháng 07/2018 an o TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƢỢNG CAO ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ VÀ THI CƠNG HỆ THỐNG TRỊ CHƠI BẮN VỊT TRỜI SVTH: LÂM TRỌNG NHÂN MSSV: 14119162 Khoá: 14 Ngành: Cơng nghệ kỹ thuật Máy tính GVHD: HUỲNH HỒNG HÀ Tp Hồ Chí Minh, tháng năm 2018 an CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – T – Hạnh phúc *** -Tp Hồ Chí Minh, ngày….tháng….năm 2018 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: LÂM TRỌNG NHÂN Ngành: CƠNG NGHỆ KỸ THUẬT MÁY TÍNH Giảng viên hƣớng dẫn: HUỲNH HOÀNG HÀ Ngày nhận ề tài: MSSV: 14119162 Lớp: 14119CL2 ĐT: Ngày nộp ề tài: Tên ề tài : Các số liệu, tài liệu ban ầu: Nội dung th c ề tài: Sản phẩm: GIẢNG VIÊN HƢỚNG DẪN I an CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN Họ tên Sinh viên: MSSV: Ngành: Tên ề tài: Họ tên Giáo viên hƣớng dẫn: NHẬN XÉT Về nội dung ề tài & khối lƣợng th c hiện: Ƣu iểm: Khuyết iểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm:……………….(Bằng chữ: ) Tp Hồ Chí Minh, ngày …… tháng……năm 2018 Giáo viên hƣớng dẫn (Ký & ghi rõ họ tên) II an CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên Sinh viên: MSSV: Ngành: Tên ề tài: Họ tên Giáo viên hƣớng dẫn: NHẬN XÉT Về nội dung ề tài & khối lƣợng th c hiện: Ƣu iểm: Khuyết iểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm:……………….(Bằng chữ: ) Tp Hồ Chí Minh, ngày …… tháng……năm 2018 Giáo viên hƣớng dẫn (Ký & ghi rõ họ tên) III an LỜI MỞ ĐẦU Hiện nay, với s phát triển vƣợt bậc ngành kỹ thuật iện tử công nghệ thông tin Chúng ang ngày phát triển ƣợc ứng dụng tất mặt ời sống Các thiết bị iện tử dùng vi iều khiển ƣợc sử dụng rộng rãi khắp ứng dụng t ộng Nó giúp ngƣời cơng việc nhƣ giải trí Các vi iều khiển ngày ại, tốc ộ xử lý nhanh có ứng dụng rộng Đặc biệt lĩnh v c giải trí máy chơi game không ƣợc nhắc tới, mong muốn th c ƣợc máy chơi game ơn giản nên ngƣời th c ịnh thiết kế thi công “Trị chơi bắn vịt trời” Vì kiến thức cịn hạn chế nên mong nhận ƣợc s dẫn góp ý tận tình tất q thầy bạn IV an LỜI CÁM ƠN Trƣớc hết, em xin gửi lời cảm ơn chân thành tới giảng viên Huỳnh Hoàng Hà ã hƣớng dẫn giúp nhóm có kiến thức nhƣ kinh nghiệm quý báu Xin cảm ơn bạn, ngƣời ã bên cạnh ộng viên, khích lệ giúp ỡ nhóm thời gian qua Mặc dù có nhiều cố gắng, song thời gian th c án có hạn, vốn kiến thức nắm ƣợc chƣa nhiều nên án cịn nhiều hạn chế Nhóm mong nhận ƣợc nhiều s góp ý, bảo thầy,cơ ể hồn thiện viết Xin chân thành cảm ơn! V an MỤC LỤC NHIỆM VỤ ĐỒ N M N HỌC I PHI U NHẬN XÉT CỦA GI O VIÊN HƢỚNG DẪN II PHI U NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN III LỜI MỞ ĐẦU IV LỜI C M ƠN V MỤC LỤC VI DANH MỤC CÁC TỪ VI T TẮT VIII DANH MỤC BẢNG BIỂU IX DANH MỤC HÌNH ẢNH X Chƣơng 1: TỔNG QUAN 12 1.1 Lịch sử máy chơi game 12 1.2 Lý chọn ề tài 12 1.3 Mục tiêu ề tài 12 1.4 Đối tƣợng phạm vi nghiên cứu 12 1.5 Bố cục án 12 Chƣơng 2: CƠ SỞ LÝ THUY T .13 2.1 Ngơn ngữ lập trình Python 13 2.1.1 Giới thiệu ngơn ngữ lập trình Python 13 2.1.2 Lý chọn Python 13 2.1.3 Lập trình hƣớng ối tƣợng Python 13 2.1.3.1 Lập trình hƣớng ối tƣợng gì? 13 2.1.3.2 S khác biệt lập trình hƣớng thủ tục hƣớng ối tƣợng 13 2.1.3.3 Khái niệm cách khai báo Class Python 14 2.1.3.4 Tạo instance 15 2.1.3.5 Kế thừa 16 2.1.3.6 Đa hình 17 2.2 Board mạch nhúng Arduino Uno R3 18 2.2.1 Giới thiệu 18 2.2.2 Phần cứng Arduino UNO R3 19 2.2.3 Các ngõ vào Arduino UNO R3 20 2.3 Cảm biến MPU6050 21 VI an 2.3.1 Giới thiệu 21 2.3.2 Thông số kỹ thuật 21 2.4 Chuẩn giao tiếp I2C 22 2.4.1 Giới thiệu 22 2.4.2 Cấu tạo nguyên lý hoạt ộng 22 2.4.3 Trình t truyền bit 23 Chƣơng 3: PHẦN CỨNG 25 3.1 Sơ khối 25 3.2 Sơ nguyên lý chức 25 3.2.1 Sơ nguyên lý 25 3.2.2 Chức 26 Chƣơng 4: PHẦN MỀM 29 4.1 Lập trình GUI với Tkinter Python 29 4.2 Giới thiệu giao diện game 29 4.3 Luật chơi 30 4.4 Giao tiếp ngƣời dùng với “Menu Game” “Play Game” 31 4.5 Xây d ng Class Diagram ể quản lý game 32 4.6 Luồng xử lý tạo ối tƣợng Bird 35 4.7 Luồng xử lý Frame Game Frame Menu 37 4.8 Thêm ối tƣợng 39 Chƣơng 5: K T QUẢ .42 5.1 Kết thi công 42 5.2 Đánh giá kết 44 5.2.1 Ƣu iểm 44 5.2.2 Khuyết iểm 44 Chƣơng 6: K T LUẬN VÀ HƢỚNG PHÁT TRIỂN 46 6.1 Kết Luận 46 6.2 Hƣớng phát triển 46 6.2.1 10 Thêm ngƣời chơi 46 TÀI LIỆU THAM KHẢO 48 VII an DANH MỤC CÁC TỪ VIẾT TẮT GPIO General Purpose Input Output ADC Analog to Digital Converter PWM Pulse Width Modulation UART Universal Asynchronous Receiver – Transmitter I2C Inter-Integrated Circuit SPI Serial Peripheral Interface CAN Controller Area Network USB Universal Serial Bus RTC Real-time Clock VIII an iều nên ối tƣợng muốn ƣợc vẽ lên Canvas ều phải kế thừa lớp lớp dẫn xuất lớp Ở class “CBaseBird” chứa thông tin ối tƣợng “Bird”, cụ thể nhƣ sau: Bảng 4.3 Thuộc tính class “CBaseBird” Thuộc tính m_arrPicBirdFlying m_nSpeedFlying m_nSpeedMove m_arrDirection Chức Mảng hình ối tƣợng Tốc ộ ổi hình ối tƣợng Tốc ộ di chuyển ối tƣợng Hƣớng di chuyển ối tƣợng Các ối tƣợng “Main Bird”, “Gun Bird”, hay “Bullet Bird” ều kế thừa class “CBaseBird”và ịnh nghĩa lại phƣơng thức Move() tùy theo ối tƣợng cụ thể phƣơng thức Move() khác Ví dụ: “Main Bird” không di chuyển khỏi hình cịn “Gun Bird” “Bullet Bird” ngƣợc lại Tiếp theo ngƣời nghiêm cứu class “CPlayer”, nhƣ hình 4.7 ngƣời thấy class “CMyGame” khác “CMyTrailerGame” có thêm class “CPlayer” làm thuộc tính thành viên.Ở class “CPlayer” có thuộc tính nhƣ sau: Bảng 4.4 Thuộc tính class “CPlayer” Thuộc tính Chức m_nBullet Số ạn ngƣời chơi m_nMainBird Số Main Bird mà ngƣời chơi bắn hạ Để ngƣời chơi bắn hạ ƣợc ối tƣợng “Bird” class “CPlayer” có thêm thuộc tính thành viên cho o class “CGun” Ở class “CGun” ó thuộc tính sau: Bảng 4.5 Thuộc tính class “CGun” Thuộc tính Chức m_nDiameter Đƣờng kính súng m_nLenOfLine Đƣờng chữ thập súng m_strColor Màu súng Class “CGun” ối tƣợng ƣợc vẽ lên hình nên kế thừa class “CBaseObject” 4.6 Luồng xử lý tạo đối tƣợng Bird Nhìn chung luồng xử lý tạo ối “Bird” nhƣ ối với “Main Bird”, “Gun Bird” “Bullet Bird” , nên ngƣời cần nghiêm cứu luồng xử lý ối tƣợng, cụ thể “Gun Bird” 35 an Hình 4.9 Luồng xử lý tạo GunBird Đối tƣợng “Gun Bird” ƣợc tạo class “CFactoryBird” phƣơng thức CreateGunBird có yêu cầu Để ƣợc “Gun Bird” trƣớc hết ngƣời cần phải Load Bitmap, Bitmap ã ƣợc Load lên class “CFactoryBird” trƣớc ó Mỗi ối tƣợng có ba Bitmap tƣơng ứng với ba trạng thái bay Cụ thể ảnh sau: Hình 4.10 Trạng thái bay đối tƣợng Bird Sau Load Bitmap hoàn tất thì, phƣơng thức Fly() ƣợc gọi Ở phƣơng thức thuộc tính ImgOri ln ƣợc ln phiên thay ổi sau lần ƣợc gọi lại timeout Việc thuộc tính ImgOri thay ổi liên tƣợng tạo nên trạng thái bay ối tƣợng Bird 36 an m_nDirectionX: -1 m_nDirectionY: m_nDirectionX: m_nDirectionY: m_nDirectionX: -1 m_nDirectionY: -1 m_nDirectionX: m_nDirectionY: -1 Hình 4.11 Trạng thái di chuyển đối tƣợng Bird Sau phƣơng thức Fly() ƣợc th c phƣơng thức Move(), ối tƣợng di chuyển nhƣ hình 4.11, tọa ộ ƣợc tính tọa ộ cũ cộng với tích hƣớng di chuyển tốc ộ ộ di chuyển Ở phƣơng thức DrawObject() lấy ImageOri tọa ộ tính ƣợc phƣơng thức ể vẽ ối tƣợng lên hình Các phƣơng thức Fly(), Move() hay DrawObject() ều ƣợc ặt thời gian ể gọi lại Cuối ối tƣợng ƣợc tạo phải ƣợc thêm vào List ể quản lý 4.7 Luồng xử lý Frame Game Frame Menu Ở phần ngƣời tìm hiểu cách thức hoạt ộng Frame Menu Frame Game Frame Menu sau tải ảnh nền, nhạc tạo nút nhần xong yêu cầu class “CFactoryBird” tạo ối tƣợng “Bird” Các ối tƣợng “Bird” ƣợc tạo liên tục hết thời gian “timer” ã ƣợc ặt trƣớc, riêng “Main Bird” ƣợc tạo lần có ba ối tƣợng 37 an Hình 4.12 Luồng xử lý Frame Menu Ở luồng Frame Game có class “CFactoryBird” ể tạo tƣợng “Bird” nhƣ Frame Menu, nhƣng có thêm số xử lý khác Để tìm ƣợc số lƣợng “Main Bird” bị bắn hạ ngƣời chơi ể xét thắng thua “CMyGame” có phƣơng thức ƣợc th c liên tục ể kiểm tra iều Ở Frame Game hồng tâm súng liên tục di chuyển theo cảm biến nên có luồng xử lý liên tục ọc liệu từ cảm biến class “CMyGame” vẽ hồng tâm theo liệu Khi ã tạo ƣợc ối tƣợng “Bird” hồng tâm phải có thêm phƣơng thức kiểm tra tọa ộ ối tƣợng “Bird” hồng tâm có trùng ngƣời chơi nhấn nút bắn súng hay không ? Nếu trúng kết luận ƣợc ã bắn trúng ối tƣợng ngƣợc lại Hình 4.13 Luồng xử lý Frame Game Hình 4.14 38 an 4.8 Thêm đối tƣợng Ở phần ngƣời ã tìm hiểu luồng xử lý hệ thống, thêm ối tƣợng cần làm ? Khi muốn tạo thêm ối tƣợng ngƣời cần tìm ƣợc ảnh tƣơng ứng trạng thái ối tƣợng cần tạo (ví dụ nhƣ hình 4.15) Hình 4.15 Trạng thái đối tƣợng 39 an Sau tìm ƣợc cho ảnh ƣng ý ngƣời bắt ầu i tạo class cho ối tƣợng mới, class ối tƣợng phải ƣợc kế thừa từ class “CBaseBird” ây class chứa thông tin ối tƣợng “Bird”, class “CFactoryBird” tiến hành tải ảnh ối tƣợng lên Sau ó tùy vào mục ích ngƣời sử dụng mà ta ịnh nghĩa lại hàm ã có lớp “Base” cần Hình 4.16 Class diagram thêm đối tƣợng Sau tạo class cho ối tƣợng xong cần thêm “case” phƣơng thức “check shot”, tức thêm ịnh nghĩa ngƣời chơi bắn hạ ƣợc ối tƣợng ngƣời chơi ƣợc 40 an Hình 4.17 Xử lý thêm đối tƣợng Nhƣ ngƣời ã tìm hiểu ƣợc cách thêm ối tƣợng vào game 41 an Chƣơng 5: K T QUẢ 5.1 Kết thi công Game PC viết Python3.6 hoạt ộng ổn ịnh Đọc liệu từ cảm biến vẽ hồng tâm ều khơng có tƣợng giật Nguồn ƣợc lấy tr c tiếp từ cổng USB ể cung cấp cho hệ thống Hình 5.1 Chƣơng trình game Khi ngƣời chơi xoay cảm biến ƣợc gắn liền với board Arduino Uno R3 hồng tâm hình di chuyển theo 42 an Hình 5.2 Hồng tâm di chuyển theo di chuyển ngƣời chơi Các thao tác ngƣời dùng ƣợc cảm biến thu thập liệu trả PC ể vẽ hồng tâm, trở “Menu Game” hồng tâm khơng cịn di chuyển theo ngƣời dùng Hình 5.3 Hồng tâm di chuyển theo di chuyển ngƣời chơi 43 an 5.2 Đánh giá kết 5.2.1 Ƣu điểm Sản phẩm hoạt ộng ổn ịnh ạt ƣợc mục ích ban ầu ặt 5.2.2 Khuyết điểm 5.2.2.1 Thay đổi giá trị constant cịn khó khăn Sau biên dịch chƣơng trình thành file exe việc thay ổi giá trị constant mã nguồn khó khăn, nhƣng ngƣời dùng có nhu cầu thay ổi giá trị constant Ví dụ : Hình 5.4 Xác xuất tạo “GunBird” Nhƣ ã tìm hiểu phần ngƣời ã biết ối tƣợng “GunBird” ƣợc tạo ối tƣợng nhiều ối tƣợng “time out” lệnh IF hình 5.18 lệnh tính xác xuất ể ịnh tạo nhiều ối tƣợng Sau biên dịch thành file exe mà ngƣời sử dụng (không phải ngƣời phát triển sản phẩm) muốn thay ổi giá trị òi hỏi ngƣời sử dụng phải có mã nguồn, am hiểu hệ thống phải có mơi trƣờng biên dịch úng iều chỉnh lại thơng số Điều gây nhiều khó khăn cho ngƣời dùng ể khắc phục iều ? Hình 5.5 Template setting game 44 an Để khắc phục ƣợc nhƣợc iểm ngƣời cần tạo cho “template” quản lý, iều ƣợc Excel hỗ trợ hiểu Sau ó chúng cần sử dụng ngôn ngữ “VisualBasic” ể tạo “file xml” ây loại ngơn ngữ mơ tả nhiều loại liệu cách hiệu Hình 5.6 Sử dụng Visual Basic Excel Ngƣời th c sử dụng ngôn ngữ “Visual Basic” ể ọc liệu từ “template”, sau ó ghi “file xml” “Visual Basic” ƣợc hỗ trợ thƣ viện “Microsoft XML” giúp cho việc ọc ghi “file xml” dễ dàng Hình 5.7 Template XML setting game Ở mã nguồn trị chơi ngƣời cần thêm phƣơng thức ọc liệu “file xml” sau ó gán giá trị khởi tạo vào úng biến Nhƣ muốn thay ổi giá trị constant mã nguồn ngƣời dùng cần mở file Excel, thay ổi giá trị “template Excel”, tạo “file xml” “VisualBasic” cần khởi ộng lại chƣơng trình giá trị constant ã ƣợc thay ổi 45 an Chƣơng 6: K T LUẬN VÀ HƢỚNG PHÁT TRIỂN 6.1 Kết Luận Sau hoành thành án ngƣời th c ã ạt ƣợc số kết nhƣ: hiểu ƣợc cách lập trình game theo hƣớng ối tƣợng, thiết kế phần cứng nhƣ cách trình bày báo cáo án Đề tài hội ể sinh viên vận dụng ã học vào th c tế Bên cạnh ó sản phẩm cịn nhiều mặt hạn chế so với sản phẩm tƣơng t thị trƣờng cần ƣợc khắc phục ể áp dụng vào th c tiễn cách hiệu 6.2 Hƣớng phát triển 6.2.1 Thêm ngƣời chơi Thêm ngƣời chơi hƣớng phát triển hợp lý hầu hết trị chơi tƣợng t thị trƣờng nhà sản xuất ln thiết kế có nhiều ngƣời chơi lúc Vậy thêm ngƣời chơi thiết kế phần cứng phần mềm cần phải thay ổi ể áp ứng ƣợc nhu cầu Ở phần cứng nều muốn thay ổi ể có ngƣời chơi cần phải có thêm cảm biến MPU6050 phím nhấn ể lấy liệu từ ngƣời chơi Hình 6.1 Thiết kế phần cứng ngƣời chơi Ở cảm biến MPU6050 thứ cần ý tới chân AD0 ây chân cấu hình bit ịa cảm biến (nếu bỏ trống chân ịa cảm biến 0x68, mắc lên nguồn ịa 0x69) Với thiết kế phần cứng nhƣ hình 6.1 bên ngƣời ã có MPU6050 với ịa khác nhau, nhƣ việc lấy liệu từ cảm 46 an biến th c nhƣ mục 3.2.2 cho cảm biến Ở phím nhấn ngƣời cần mắc thêm cổng AND mục ích ngƣời dùng nhấn phím phím chƣơng trình ngắt ều ƣợc gọi chƣơng trình ngắt th c nhƣ lƣu hình 3.12 chƣơng Nhƣng có vấn ề xảy ó ngƣời dùng muốn có ến ngƣời chơi thiết kế nhƣ hình 6.1 có áp ứng ƣợc khơng ? Câu trả lời không Nếu số ngƣời chơi tăng lên nhiều phải thiết kế lại phần cứng theo hình bên dƣới Hình 6.2 Thiết kế phần cứng cho ngƣời chơi trở lên Ở chân AD0 cảm biến MPU6050 cần nối vào chân I/O Arduino Uno R3 mục ích ể thay ổi ịa cảm biến.Ví dụ: Ở thiết kế nhƣ hình 6.2 muốn lấy liệu cảm biến thứ (từ xuống) ngƣời cần kéo chân I/O xuống mức thấp, chân lại lên mức cao Lúc cảm biến thứ có ịa 0x68 cảm biến cịn lại 0x69, chƣơng trình Uno R3 giao tiếp với cảm biến có ịa 0x68 nhƣ cảm biến có ịa 0x68 ƣợc ọc liệu Tƣơng t muốn lấy liệu từ cảm biến thứ ngƣời cần gán I/O 1,2,3 0x02 tiến hành ọc liệu 47 an 10 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Nguyễn Đình Phú (2/2014) Giáo trình th c hành Vi Điều Khiển PIC Nhà xuất Trƣờng Đại Học Sƣ Phạm Kỹ Thuật Tp.HCM [2] Nguyễn Đình Phú (2014) Giáo trình vi xử lý Vi Điều Khiển PIC Nhà xuất Trƣờng Đại Học Sƣ Phạm Kỹ Thuật Tp.HCM 48 an S an K L 0 ... ĐỒ ÁN TỐT NGHIỆP THI? ??T KẾ VÀ THI CÔNG HỆ THỐNG TRÒ CHƠI BẮN VỊT TRỜI SVTH: LÂM TRỌNG NHÂN MSSV: 14119162 Khố: 14 Ngành: Cơng nghệ kỹ thuật Máy tính GVHD: HUỲNH HỒNG HÀ Tp Hồ Chí Minh, tháng... hoạt ộng game nên ngƣời th c ịnh chọn ề tài ? ?Thi? ??t kế thi cơng hệ thống trị chơi trị chơi bắn vịt trời? ?? 1.3 Mục tiêu đề tài Xây d ng ƣợc hệ thống trị chơi giải trí hồn chỉnh, gồm game ƣợc lập trình... ngƣời chơi thi? ??t kế nhƣ hình 6.1 có áp ứng ƣợc khơng ? Câu trả lời không Nếu số ngƣời chơi tăng lên nhiều phải thi? ??t kế lại phần cứng theo hình bên dƣới Hình 6.2 Thi? ??t kế phần cứng cho ngƣời chơi

Ngày đăng: 02/02/2023, 09:32

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN