Lập Trình Game Flappy Bird

87 2.3K 13
Lập Trình Game Flappy Bird

Đ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

Đây là một trong số công trình nghiên cứu về Game Flappy Bird và nó được thực hiện bằng cách lập trình. Mình đã dùng ngôn ngữ FPGA để thực hiện. Kết quả chạy hoàn toàn ok. Các bạn có thể dùng nó làm một trong số những ứng dụng trong thực tế hoặc đồ án, luận văn tốt nghiệp. Các bạn có thể tham khảo toàn bộ code mình viết trong file đính kèm (Full Code).

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN MÔN HỌC LẬP TRÌNH GAME FLAPPY BIRD TRÊN KIT FPGA SPARTAN-3E Ngành Công Nghệ Kỹ Thuật Điện Tử Truyền Thông Sinh viên: GVHD: TP HỒ CHÍ MINH – 12/2016 Th.S NGUYỄN ĐÌNH PHÚ LỜI CẢM ƠN Lời đầu tiên, em muốn gửi lời cảm ơn chân thành đến giáo viên, ThS.Nguyễn Đình Phú, thời gian qua, hướng dẫn giúp đỡ em trình thực đồ án Những lời nhận xét, góp ý hướng dẫn thầy giúp em có định hướng trình thực đề tài, giúp em thấy ưu, khuyết điểm đề tài bước khắc phục để ngày tốt hơn, giúp em hoàn thành đồ án Đồng thời em muốn gửi lời cảm ơn sâu sắc đến gia đình bạn bè động viên, cổ vũ tinh thần suốt trình học tập thực đồ án Bên cạnh đó, em muốn nói lời cảm ơn đến giáo viên đứng bục giảng truyền đạt kinh nghiệm, kiến thức suốt năm học qua Một lần nữa, em xin gửi lời cảm ơn sâu sắc đến bố mẹ, thầy cô bạn bè, người cạnh động viên, giúp đỡ cổ vũ tinh thần cho em Tp Hồ Chí Minh, ngày 20 tháng 12 năm 2016 Sinh viên MỤC LỤC CHƯƠNG GIỚI THIỆU 1.1 ĐẶT VẤN ĐỀ FPGA viết tắt thuật ngữ tiếng anh “Field programmable Gate Array”, nghĩa Mảng cổng lập trình dạng trường FPGA thuộc họ ASIC lập trình ASIC lập trình xuất từ lâu dạng PLD (Programmable Logic Device), vai trò dạng ASIC không nhiều số lượng cổng Chip dẫn tới chức PLD nghèo nàn thường sử dụng với nhiệm vụ hạn chế toàn hệ thống Kể từ năm 1980,Các công ty sản xuất PLD hàng đầu đẩy mạnh trình nghiên cứu FPGA nhanh chóng cho hệ FPGA với số lượng cổng tốc độ ngày cao Các FPGA có số lượng cổng đủ lớn để thay hệ thống bao gồm lõi CPU, Bộ điều khiển nhớ (Memory Controller), ngoại vi SPI,Timer, I2C, GPIO, PWM, Video/Audio Controller… (nghĩa tương đương với SoC đại) Trước đây, muốn chế tạo Chip Vi Xử Lý Người ta phải thiết kế Chip mức logic sử dụng ngôn ngữ mô tả phần cứng, Để kiểm tra công đoạn người ta sử dụng phần mềm mô Sau thiết kế phải tổng hợp dựa thư viện cấp thấp hãng mà bạn sản xuất Chip bạn sau này, sau trình kiểm tra timing (định thời) cho toàn thiết kế để đảm bảo thiết kế bạn hoạt động tần số yêu cầu.Tất công đoạn kiểm tra phần mềm mô (Điều dẫn tới nguy xảy sai xót lớn chuyển thiết kế sang môi trường Chip thực ) Sau bạn gởi thiết kế tới công ty sản xuất Chip phó mặc cho số phận, chip mẫu giá vài triệu đô la chuyển cho bạn, sau bạn bắt đầu trình test chip môi trường thực, thất bại, khả lớn bạn phải thực lại hoàn toàn qui trình thiết kế nói trên, lần vậy, phải bỏ sọt rác nhiều triệu đô la khoảng thời gian nghiên cứu lớn, quy trình làm cho đất nước nghèo việt nam tham gia vào chơi đất nước giàu có giới ASIC Nhưng với FPGA,bạn rút ngắn thới gian thực ASIC mà giảm chi phí nghiên cứu tối đa trình kiểm tra thiết kế kiểm tra phần mềm mô mà chạy Chip thực mội trường nói gần với môi trường ASIC thực Khả tái cấu hình cho phép bạn sửa sửa lại thiết kế đạt yêu cầu mà không tốn xu 1.2 LÝ DO CHỌN ĐỀ TÀI Flappy Bird (tạm dịch "chú chim vỗ cánh") trò chơi điện tử Android iOS Nguyễn Hà Đông, Hà Nội,Việt Nam, phát triển vào tháng năm 2013, GEARS Studios, studio phát triển game quy mô nhỏ, hoạt động độc lập có trụ sở Việt Nam, phát hành Ban đầu trò chơi phát hành vào tháng 5, 2013 iPhone 5, sau nâng cấp cho hệ máy iOS6 vào tháng 9, 2013 Vào tháng 1, 2014, trò chơi đứng đầu bảng thể loạt miễn phí iTunes App Store Mỹ Trung Quốc sau UK App Store mệnh danh "trò Angry Birds mới" Vào cuối tháng 1, Flappy Bird ứng dụng tải nhiều App Store Google Play Đây trò chơi điện tử thú vị không khó để lập trình định thực đề tài viết game “Flappy Bird“ kit FPGA SPARTAN3E Đề tài nhằm mục đích giúp hiểu rõ cách thức hoạt động quy trình để tạo chip điều khiển hình VGA cách độc lập kit FPGA, đề tài mang tính giải trí cao, giúp giải tỏa căng thẳng kích thích niềm đam mê lập trình 1.3 TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC 1.3.1 Tình hình nước Bộ nhớ tĩnh dựa FPGA (thường gọi SRAM FPGA) đề xuất Wahlstrom vào năm 1967 Sau thương mại FPGA Xilinx giới thiệu vào năm 1984 Lúc gồm có mảng khối logic tái cấu hình – Configurable Logic Blocks (CLBs) đầu vào – I/O (input/output) Chip FPGA chứa 64 CLBs 58 I/Os Ngày nay, FPGA chứa khoảng 330,000 CLBs khoảng 1100 I/Os Phần lớn sản phẩm FPGA thị trường dựa công nghệ SRAM với hãng sản xuất lớn Xilinx Altera Ngoài có hãng khác sản xuất FPGA với mục đích chuyên dụng (Atmel, Actel, Lattice, SiliconBlue, ) Từ lâu nước tiên tiến FPGA nghiên cứu phát triển nhanh chóng, công nghệ góp phần quan trọng ứng dụng nhúng mà công nghệ khác thay Ứng dụng FPGA bao gồm: xử lý tín hiệu số DSP, hệ thống hàng không, vũ trụ, quốc phòng, tiền thiết kế mẫu ASIC (ASIC prototyping), hệ thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mật mã học, mô hình phần cứng máy tính, máy đánh cờ (Máy đánh cờ Hydra có 32 vi xử lý cộng thêm FPGA chiến thắng kiện tướng quốc tế Michael Adams năm 2005 1.3.2 Tình hình nước So với nước tiên tiến giới, nước ta bắt đầu tiếp cận ứng dụng công nghệ FPGA sau khoảng thời gian dài Tuy nhiên năm gần đây, nhờ mở của kinh tế thị trường đầu tư mạnh mẽ nhà nước, công nghệ FPGA dần trở lên lớn mạnh.Hiện có nhiều công ty chuyên thiết kế vi mạch phát triển hệ thống nhúng dựa công nghệ FPGA đặt nước ta : Renesas, Marvell, Uniquify, AppliedMicro (AMCC), Intel, ESilicon (SDS), Synapsys, TMA Solutions, ATVN(Arrive Technology), AWAH, Grey Stones, Splendid, … hứa hẹn hội đầy triển vọng giúp nước ta bắt kịp nước lĩnh vực thiết kế vi mạch 1.4 NHIỆM VỤ ĐỒ ÁN Các nhiệm vụ đồ án: Để thực đề tài Lập trình game flappy bird hiển thị hình WXGA 1360 X 768 sử dụng board mạch FPGA spartan-3E, đồ án chia thành nội dung sau đây: Nội dung 1: Khảo sát phần cứng phần mềm • Tìm hiểu loại hình hiển thị hình WXGA 1360 X 768 • Tìm hiểu chip Xilinx FPGA SPARTAN XC3S250E Spartan-3EStarterBoard • Sơ lược ngôn ngữ mô tả phần cứng VHDL • Phần mềm sử dụng, cách sử dụng Nội dung 2: Lập trình • • • • Xây dựng lưu đồ giải thuật Giải thích lưu đồ Lập trình Chạy thực tế Nội dung 3: Kết quả, mặt đạt chưa đạt được, hướng phát triển đề tài CHƯƠNG KHẢO SÁT PHẦN CỨNG VÀ PHẦN MỀM Để thực thử nghiệm, đề tài sử dụng : Phần cứng:  Màn hình WXGA 1360 X 768  Spartan-3E-StarterBoard  Laptop cá nhân dùng để viết chương trình, biên dịch, tổng hợp… Phần mềm :  Phần mềm ISE 13.2 hãng Xilinx  Phần mềm tính toán thông số DCM 2.1 TÌM HIỂU VỀ CÁC LOẠI MÀN HÌNH HIỂN THỊ VÀ MÀN HÌNH WXGA 1360 X 768 2.1.1 Nhiệm vụ : Là thiết bị xuất ( nhập ) chuẩn, tạo môi trường giao tiếp người thiết bị điều khiển 2.1.2 Phân loại :  Theo công nghệ  Màn hình ống phóng tia âm cực CRT (Cathode Ray Tube)  Màn hình tinh thể lỏng LCD (Liquid crystal display)  Màn hình Plasma  Màn hình cảm biến  Màn hình OLED  Theo kích thước: đo đơn vị inches (theo đường chéo) Hiện có loại hình 14 inches, 15 inches,17 inches, 21 inches …  Theo Màu sắc - Màn hình MonoColor (đơn sắc: đen trắng) - Các hình màu theo chuẩn phổ biến ngày nay: VGA (Video Graphics Array): 640x480 pixels SVGA (Super VGA): 800x600 pixels XGA (Extended Graphics Array): 1024x768 pixels SXGA (Super XGA): 1280x1024 pixels UXGA (Ultra XGA): 1600x1200 pixels QXGA (Quad XGA): 2048x1536 pixels QSXGA (Quad SXGA): 2560x2048 pixels QUXGA (Quad UXGA): 3200x2400 pixels WXGA (Wide XGA): hình rộng 1366x768 pixels WSXGA+ (Wide SXGA+): hình rộng 1680x1050 pixels WUXGA (Wide UXGA): hình rộng 1920x1200 pixels WQUXGA (Wide QUXGA): hình rộng 3840x2400 pixels Hình 2.1 : Phân loại hình màu theo độ phân giải 2.1.3 Các yếu tố ảnh hưởng đến hình  Độ phân giải : Là số điểm anh ( pixel ) hiển thị hình Tính số điểm ảnh theo chiều ngang X số điểm ảnh theo chiều dọc  Dot pitch : Là khoảng cách tâm điểm ảnh Dot pitch nhỏ hình ảnh cằng sắc nét Các hình VGA thường có Dot pitch 0.28 mm Hình 2.2 : Các loại Dot pitch 2.1.4 Màn hình WXGA 1360 X 768 a Giới thiệu chung Hình 2.3 Màn hình WXGA 1360 X 768 Bảng 2.1 : Một số thông số kỹ thuật hình vi tính LG 19M35A Kích thước hình Tỉ lệ khung hình Độ phân giải Thời gian đáp ứng Tần số quét 18.5" 16:9 1366x768 5ms 30~61kHz/56~75Hz b Các thông số điều khiển Để điều khiển hiển thị hình ta cần biết : Cách thức hoạt động, đồng bộ, thông số tần số xung đồng ngang, tần số xung đồng dọc, thời gian refresh hình thông số cần thiết để thực : Bảng 2.2 : Các thông số điều khiển hình vi tính LG 19M35A Định dạng pixel Tốc độ làm Tần số đồng ngang Tần số Pixel 1360 x 768 60 Hz 47.7 kHz 85.500 MHz Hor Pixels 1360 Pixels 10 BEGIN IF FALLING_EDGE(CK85_5MHZ) THEN QFF 1400 THEN CHU_KY2 := 400; Y_COT2:=Y_TAM2; DIEM_DV := DIEM_DV+1; IF(DIEM_DV=10) THEN DIEM_DV:=0; DIEM_CHUC:=DIEM_CHUC+1; IF(DIEM_CHUC=10) THEN DIEM_CHUC:=0; END IF; END IF; END IF; IF CHU_KY3 > 1400 THEN CHU_KY3 := 400; Y_COT3:=Y_TAM3; DIEM_DV := DIEM_DV+1; IF(DIEM_DV=10) THEN DIEM_DV:=0; DIEM_CHUC:=DIEM_CHUC+1; IF(DIEM_CHUC=10) THEN DIEM_CHUC:=0; END IF; END IF; END IF; END IF; END IF; -Khoi dieu khien hien thi man hinh bird ) IF FALLING_EDGE(CK85_5MHZ) THEN DEM1 := DEM1+1; IF FLY ='1' THEN Y_FLY 2) THEN TT_DOUBLE_CLICK := 2; END IF; END IF; IF DEM1 = 1800000 THEN DEM_TG_DOUBLE_CLICK := DEM_TG_DOUBLE_CLICK +1; IF DEM_TG_DOUBLE_CLICK > 29 THEN 75 ( flappy TT_DOUBLE_CLICK := TT_DOUBLE_CLICK -1; IF(TT_DOUBLE_CLICK

Ngày đăng: 30/05/2017, 22:04

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1

    • 1.1 ĐẶT VẤN ĐỀ

    • 1.2 LÝ DO CHỌN ĐỀ TÀI

    • 1.3 TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC

      • 1.3.1 Tình hình ngoài nước

      • 1.3.2 Tình hình trong nước

      • 1.4 NHIỆM VỤ ĐỒ ÁN

      • CHƯƠNG 2

        • 2.1 TÌM HIỂU VỀ CÁC LOẠI MÀN HÌNH HIỂN THỊ VÀ MÀN HÌNH WXGA 1360 X 768

          • 2.1.1 Nhiệm vụ :

          • 2.1.2 Phân loại :

          • 2.1.3 Các yếu tố ảnh hưởng đến màn hình

          • 2.1.4 Màn hình WXGA 1360 X 768

          • 2.2 TÌM HIỂU VỀ CHIP XILINX FPGA SPARTAN XC3S250E VÀ SPARTAN-3E-STARTER BOARD

            • 2.2.1 Khái niệm

            • 2.2.2 Lịch sử phát triển

            • 2.2.3 Kiến trúc

            • 2.2.4 Ứng dụng

            • 2.2.5 FPGA của XILINX

            • 2.2.6 Spartan-3E-StarterBoard

            • 2.3 SƠ LƯỢC VỀ NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL

              • 2.3.1 Giới thiệu

              • 2.3.2 Cấu trúc ngôn ngữ của VHDL

              • 2.3.3 Cấu trúc một mô hình hệ thống mô tả bằng VHDL

              • 2.3.4 Cấu trúc chung của một chương trình

              • 2.4 PHẦN MỀM VÀ CÁCH SỬ DỤNG.

Tài liệu cùng người dùng

Tài liệu liên quan