1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài Tập Lớn Hệ Nhúng Đề Tài Trò Chơi Bắn Máy Bay Spaceshooter.pdf

17 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Trò Chơi Bắn Máy Bay Spaceshooter
Tác giả Trần Văn Báu, Phạm Mạnh Cường, Nguyễn Huy Toàn
Người hướng dẫn TS. Ngô Lam Trung
Trường học Đại Học Bách Khoa Hà Nội
Chuyên ngành Hệ Nhúng
Thể loại Bài Tập Lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 17
Dung lượng 1,05 MB

Nội dung

Trong bài báo cáo này, chúng em xin trình bày về quá trình phát triển và thực hiện trò chơi SpaceShooter - một trò chơi thú vị mà chúng em đã xây dựng trong môn học "Hệ Nhúng".. Sau đó,

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

BÀI TẬP LỚN HỆ NHÚNG

Đề tài: Trò chơi bắn máy bay

SpaceShooter

Nhóm: 3

Trần Văn Báu 20204813

Phạm Mạnh Cường 20204819

Nguyễn Huy Toàn 20204796

Giảng viên hướng

dẫn: TS Ngô Lam Trung

Trường: Công nghệ thông tin và truyền thông

HÀ NỘI, 10/8/2023

Ch ký c a GVHDữ ủ

Trang 2

MỤC LỤC

L I C M N Ờ Ả Ơ 4

M ĐẦẦU Ở 5

DANH M C HÌNH NH Ụ Ả 6

PHẦN CHIA CÔNG VI C Ệ 7

CH ƯƠ NG I: T NG QUAN ĐỀẦ TÀI Ổ 8

1 Mô tả đề tài 8

2 Mục tiêu 8

CH ƯƠ NG II: N I DUNG Ộ 9

1 Tìm hi u phầần c ng ể ứ 9

1.1 Chip STM32F429 9

1.2 Kit stm32f429i-discovery 9

1.3 Bảng nút bấm 10

1.4 Dây nốối 10

1.5 Cáp n p ch ạ ươ ng trình 10

2 Tìm hi u các công c l p trình ể ụ ậ 10

2.1 STM32Cube IDE 10

2.2 TouchGFX 11

3 Tìm hi u h điềầu hành FreeRTOS ể ệ 11

4 Tìm hi u c chềế trò ch i ể ơ ơ 12

5 L p trình trò ch i và ki m th ậ ơ ể ử 12

CH ƯƠ NG III: THIỀẾT KỀẾ, XẦY D NG S N PH M Ự Ả Ẩ 14

1 Ghép nôếi phầần c ng ứ 14

1.1 S đốồ khốối ơ 14

1.2 Ghép nốối hoàn ch nh ỉ 14

2 Thiềết kềế giao di n trò ch i ệ ơ 14

2.1 Màn hình bắốt đâồu trò ch i ơ 14

2.2 Màn th nhâốt ứ 14

2.3 Màn th hai ứ 14

2.4 Màn th ba ứ 14

2.5 Màn quái kh ng (Boss cuốối) ủ 15

2.6 Màn hình thua cu c ộ 15

2.7 Màn hình thắống cu c ộ 15

3 Thiềết kềế mã nguôần 15

ậ ự ệ ừ

Trang 3

TÀI LI U THAM KH O Ệ Ả 16

Trang 4

LỜI CẢM ƠN

Chúng em xin dành những dòng này để bày tỏ lòng biết ơn chân thành đến thầy TS Ngô Lam Trung - người đã vô cùng tận tâm và hướng dẫn chúng em trong suốt quá trình thực hiện bài tập lớn môn Hệ Nhúng Thầy là nguồn động viên quý báu, luôn tạo điều kiện thuận lợi cho chúng

em để tiếp cận kiến thức một cách sâu sắc hơn và hiểu rõ hơn về lý thuyết cũng như thực tiễn của hệ nhúng Sự chia sẻ từ thầy đã giúp chúng em vượt qua những khó khăn, đồng thời khám phá ra nhiều hướng đi mới mẻ Chúng em xin bày tỏ lòng biết ơn sâu sắc và chân thành về tất cả những kiến thức mà thầy đã truyền đạt Những bài học và lời khuyên của thầy giúp chúng em không chỉ hiểu sâu về môn học mà còn xây dựng cho chúng em một nền tảng lý thuyết và thực hành vững chắc cho tương lai Một lần nữa, chúng em xin gửi lời cảm ơn chân thành đến thầy Ngô Lam Trung vì tất cả những gì thầy đã làm cho chúng em Chúng em xin kính chúc thầy dồi dào sức khỏe và thành công trong công việc

Trang 5

MỞ ĐẦU

Trong thời đại công nghệ hiện đại, trò chơi điện tử không chỉ là một hình thức giải trí, mà còn là một nền văn hoá, nơi con người có thể tương tác, khám phá và thách thức bản thân thông qua những trải nghiệm ảo đầy sáng tạo Trong bối cảnh đó, việc phát triển trò chơi không chỉ đòi hỏi kiến thức về lập trình và thiết kế, mà còn yêu cầu sự hiểu biết về hệ nhúng - một lĩnh vực quan trọng để tạo ra những trải nghiệm trò chơi tương tác và mượt mà

Trong bài báo cáo này, chúng em xin trình bày về quá trình phát triển và thực hiện trò chơi SpaceShooter - một trò chơi thú vị mà chúng

em đã xây dựng trong môn học "Hệ Nhúng" Trò chơi SpaceShooter không chỉ là sản phẩm của sự sáng tạo và đam mê của chúng em, mà còn là kết quả của những kiến thức và kỹ thuật mà chúng em đã học được từ môn học này Chúng em sẽ bắt đầu bằng việc giới thiệu tổng quan về trò chơi SpaceShooter và mục tiêu của dự án Sau đó, chúng em sẽ trình bày về quá trình thiết kế và phát triển trò chơi, bao gồm việc áp dụng các nguyên tắc hệ nhúng vào việc tạo ra trải nghiệm chơi game mượt mà và thú vị Chúng em cũng sẽ trình bày về các thử nghiệm và kiểm tra hiệu năng của trò chơi Cuối cùng, chúng em sẽ tổng kết những kết quả đạt được và những học thức đã học được trong quá trình phát triển trò chơi này Bài báo cáo hy vọng sẽ là một cái nhìn tổng quan về quá trình phát triển trò chơi SpaceShooter và cách chúng em đã ứng dụng kiến thức về

hệ nhúng vào dự án này Chúng em mong rằng thông qua bài báo cáo này, chúng em sẽ truyền tải được đầy đủ kiến thức mà chúng em đã học được ở kì vừa rồi

Trang 6

DANH MỤC HÌNH ẢNH

Figure 1: Kit STM32F429 10

dfdsfsdf dfdfds

Trang 7

PHÂN CHIA CÔNG VIỆC

Trang 8

CHƯƠNG I: TỔNG QUAN ĐỀ TÀI

1 Mô tả đề tài

Đề tài tập trung vào việc phát triển trò chơi SpaceShooter trên kit STM32F429i

Thể loại game: PvE (Người với máy)

Mô tả trò chơi: Người chơi có thể điều khiển máy bay lên, xuống, trái, phải, đồng thời máy bay bắn ra những tia đạn tiêu diệt địch Sau khi tiêu diệt địch, người chơi sẽ được thưởng điểm để nâng độ khó trò chơi sau mỗi 5 điểm Độ khó đạt tối đa là 3, sau đó người chơi sẽ chiến đấu với Boss cuối để dành chiến thắng chung cuộc Trong quá trình chiến đấu, người chơi sẽ có 3 mạng, và mất một với mỗi lần trúng đạn của

kẻ địch Nếu người chơi đã hết 3 mạng mà chưa thể hạ gục Boss cuối, người chơi sẽ thất bại, người chơi có thể bấm màn hình để chơi lại

2 Mục tiêu

Nhóm chúng em tập trung vào việc phát triển trò chơi "SpaceShooter" trên kit STM32F429 với những mục tiêu cụ thể sau:

Mục tiêu chính là phát triển một trò chơi SpaceShooter với giao diện tương tác phù hợp với màn hình và các nút điều khiển của kit

STM32F429i

Làm quen với các công cụ lập trình mới như STM32Cube IDE,

TouchGFX, …

Sử dụng các tính năng của hệ điều hành FreeRTOS áp dụng vào lập trình trò chơi

Sử dụng kiến thức về lập trình hệ nhúng để tối ưu hóa mã nguồn trò chơi, bao gồm việc quản lý tài nguyên hệ thống như bộ nhớ và xử lý,

để đảm bảo trò chơi hoạt động mượt mà và không gây tốn nhiều nguồn tài nguyên

Làm quen với các công cụ lập trình mới như STM32CubeIDE, TouchGFX,

Với những mục tiêu trên, chúng em mong muốn tạo ra một trò chơi SpaceShooter hoàn chỉnh và thú vị, đồng thời áp dụng kiến thức hệ nhúng vào việc phát triển trò chơi trên kit STM32F429i

Trang 9

CHƯƠNG II: NỘI DUNG

1 Tìm hiểu phần cứng

1.1 Chip STM32F429

Chip STM32F429 thuộc dòng STM32 của STMicroelectronics, là một dòng

vi xử lý nhúng phổ biến dựa trên kiến trúc ARM Cortex-M4 STM32F429 là một trong các mẫu chip điều khiển STM32 mạnh và phù hợp với nhiều chương trình

Một số đặc điểm nổi bật của STM32F429:

Bộ nhớ và Flash lớn: STM32F429 đi kèm với bộ nhớ Flash lên đến vài trăm KB và RAM lên đến vài chục KB, cho phép lưu trữ mã chương trình

và dữ liệu một cách dễ dàng

Giao tiếp đa dạng: STM32F429 hỗ trợ nhiều giao tiếp như SPI, I2C, UART, USB và nhiều giao tiếp khác, làm cho nó phù hợp cho nhiều ứng dụng

Màn hình cảm ứng: Một số phiên bản của STM32F429 có khả năng điều khiển màn hình cảm ứng, cho phép xây dựng các ứng dụng giao diện người dùng tương tác

Hỗ trợ peripherial phong phú: Chip điều khiển này đi kèm với nhiều peripherial như GPIO, ADC, DAC, PWM và nhiều tính năng khác

1.2 Kit stm32f429i-discovery

Kit STM32F429I-DISCO là một bộ phát triển (development board) dành cho

vi điều khiển STM32F429 của STMicroelectronics Bộ kit này được thiết kế

để giúp các nhà phát triển dễ dàng thử nghiệm và phát triển ứng dụng nhúng trên nền tảng vi điều khiển STM32F429

Một số đặc điểm và tính năng của kit STM32F429I-DISCO:

Vi điều khiển STM32F429: Kit được trang bị vi điều khiển STM32F429IGT6, với lõi xử lý Cortex-M4 tốc độ cao, bộ nhớ Flash lên đến 1MB và RAM lên đến 256KB

Màn hình cảm ứng TFT LCD: Kit đi kèm với một màn hình TFT LCD màu 2.4 inch, có khả năng cảm ứng, giúp bạn xây dựng các ứng dụng giao diện người dùng đa dạng

Giao tiếp đa dạng: Kit hỗ trợ nhiều giao tiếp như USB OTG, UART, SPI, I2C, CAN và nhiều giao tiếp khác, giúp bạn kết nối với các thiết bị và module khác

Trang 10

Phím bấm và LED: Kit có các phím bấm và LED để thử nghiệm và kiểm tra các chức năng cơ bản của vi điều khiển

Nút nhấn Reset và User: Có các nút nhấn để thực hiện việc khởi động lại vi điều khiển (Reset) hoặc thao tác theo dõi từ người dùng (User) Nguồn cung cấp: Kit có thể được cấp nguồn từ USB hoặc nguồn ngoài, cho phép bạn lựa chọn nguồn cung cấp phù hợp với ứng dụng của mình

Figure 1: Kit STM32F429

1.3 Bảng nút bấm

Bao gồm 4 nút bấm: trái, phải, lên, xuống được hàn sao cho các chân nốt đất nối với nhau, các chân còn lại sẽ được kết nốt với các chân khác nhau của kit

1.4 Dây nối

Sử dụng các dây nối cái-cái để kết nối kit với bảng nút bấm Các dây nối này có thể có đầu đực ở một đầu và đầu cái ở đầu còn lại để dễ dàng kết nối với chân cắm của bảng nút bấm và bộ kit

1.5 Cáp nạp chương trình

Cáp nạp chương trình là một phụ kiện quan trọng khi làm việc với vi điều khiển STM32F429I-DISCO hoặc bất kỳ vi điều khiển STM32 nào Nó cho phép nạp chương trình vào vi điều khiển từ máy tính của bạn thông qua cổng USB Cáp nạp chương trình thường đi kèm với một đầu USB và một đầu micro USB, giúp kết nối vi điều khiển với máy tính để nạp mã chương trình hoặc thực hiện các thao tác khác như gỡ lỗi và theo dõi hoạt động của chip

Trang 11

2 Tìm hiểu các công cụ lập trình

2.1 STM32Cube IDE

STM32Cube IDE là một môi trường phát triển tích hợp (IDE) được cung cấp bởi STMicroelectronics cho việc lập trình và phát triển ứng dụng trên các vi điều khiển STM32 Nó cung cấp một loạt các công cụ và tích hợp giúp dễ dàng viết mã, nạp chương trình và gỡ lỗi trên các vi điều khiển STM32 Các đặc điểm và tính năng chính của STM32Cube IDE:

Dựa trên Eclipse: STM32Cube IDE được xây dựng trên nền tảng Eclipse, cung cấp môi trường lập trình quen thuộc và linh hoạt

Tích hợp STM32CubeMX: STM32Cube IDE tích hợp sẵn công cụ STM32CubeMX, giúp dễ dàng cấu hình vi điều khiển và tạo mã mẫu Nạp chương trình và gỡ lỗi dễ dàng: IDE hỗ trợ nạp chương trình và gỡ lỗi trực tiếp từ giao diện người dùng, giúp tiết kiệm thời gian và tối ưu hóa quy trình phát triển

Hỗ trợ lập trình nhiều ngôn ngữ: STM32Cube IDE hỗ trợ nhiều ngôn ngữ lập trình như C và C++, cho phép viết mã theo phong cách ưa thích

Hỗ trợ thư viện HAL và LL: IDE tích hợp các thư viện phần cứng HAL (Hardware Abstraction Layer) và LL (Low-Level) giúp quản lý phần cứng dễ dàng hơn

2.2 TouchGFX

TouchGFX là một nền tảng giao diện người dùng (UI) dựa trên đồ họa được cung cấp bởi STMicroelectronics Nó cho phép xây dựng các giao diện người dùng đẹp và tương tác cho các ứng dụng nhúng trên vi điều khiển STM32

Các đặc điểm và tính năng chính của TouchGFX:

Giao diện người dùng đồ họa: TouchGFX cho phép tạo giao diện người dùng đẹp, với các chức năng tương tác như cảm ứng và điều khiển Thư viện đồ họa: TouchGFX cung cấp nhiều thư viện đồ họa sẵn có, giúp người dùng tạo ra các hiệu ứng và đối tượng đa dạng trong giao diện người dùng

Tùy chỉnh linh hoạt: Người dùng có thể tùy chỉnh giao diện người dùng

dễ dàng thông qua việc chỉnh sửa mã và sử dụng công cụ thiết kế

Trang 12

Hỗ trợ phần cứng tùy chỉnh: TouchGFX hỗ trợ việc tùy chỉnh giao diện cho các màn hình có độ phân giải và kích thước khác nhau

3 Tìm hiểu hệ điều hành FreeRTOS

FreeRTOS (Free Real-Time Operating System) là một hệ điều hành thời gian thực mã nguồn mở phát triển dựa trên mô hình tuần tự và hoạt động trên các vi điều khiển nhúng và hệ thống nhúng Nó cung cấp một giải pháp hệ điều hành nhẹ và hiệu quả cho các ứng dụng yêu cầu độ tin cậy

và thời gian thực

Một số điểm quan trọng về FreeRTOS:

Tuần tự hóa: FreeRTOS hoạt động trên mô hình tuần tự, nghĩa là nhiều nhiệm vụ (tasks) có thể chạy song song nhau, tạo ra sự đa nhiệm nhẹ

Quản lý nguồn tài nguyên: FreeRTOS quản lý nguồn tài nguyên như

bộ nhớ và xử lý của vi điều khiển, giúp tối ưu hóa hiệu suất hệ thống

Thời gian thực: FreeRTOS thiết kế để hỗ trợ thời gian thực và các ứng dụng yêu cầu đáp ứng nhanh chóng trong môi trường nhúng Task và Scheduler: Các nhiệm vụ được thực hiện trong FreeRTOS được gọi là tasks FreeRTOS có một bộ lập lịch (scheduler) quản lý thứ tự thực hiện các tasks theo thời gian và ưu tiên cài đặt

Sự kiện và Semaphore: FreeRTOS cung cấp cơ chế sự kiện và

semaphore để đồng bộ và chia sẻ dữ liệu giữa các tasks

Kiến trúc đa nền tảng: FreeRTOS hỗ trợ nhiều kiến trúc vi điều khiển và

hệ thống khác nhau, giúp dễ dàng sử dụng trong nhiều dự án

4 Tìm hiểu cơ chế trò chơi

Cơ chế trò chơi là phần quan trọng trong việc hiểu cách trò chơi Space Shooter hoạt động Space Shooter là một thể loại trò chơi mà người chơi thường đóng vai trò của một máy bay chiến đấu và chiến đấu chống lại đợt tấn công của các kẻ thù không gian Nhóm em tìm hiểu được một số

cơ chế quan trọng của trò chơi:

Di chuyển và Điều khiển: Trong trò chơi Space Shooter, người chơi có khả năng di chuyển máy bay hoặc tàu vũ trụ theo các hướng: lên, xuống, trái và phải Điều này thường được thực hiện bằng cách sử dụng các phím bấm trong bảng nút bấm Việc điều khiển tàu vũ trụ

Trang 13

một cách linh hoạt để tránh đạn và tấn công địch là quan trọng để sống sót

Bắn và Tấn công: Một phần quan trọng của cơ chế trò chơi Space Shooter là khả năng bắn hạ kẻ thù Người chơi có một loạt đạn để tấn công Việc định vị và tấn công kẻ thù để tránh bị tấn công ngược lại là điểm mấu chốt để chiến thắng

Kẻ địch: Trò chơi Space Shooter thường có nhiều loại kẻ địch với độ khó

và cách tấn công khác nhau Một số kẻ địch có sức sát thương và chống chịu cao hơn, trong khi các kẻ thù khác có chiến thuật tấn công

đa dạng Điều này tạo ra sự thách thức và đa dạng trong trò chơi Nâng cấp: Trong trò chơi Space Shooter, người chơi thường có cơ hội thu thập các vật phẩm power-up để cải thiện vũ khí hoặc khả năng tấn công của họ Những power-up này có thể cung cấp vũ khí mạnh hơn, tốc độ tấn công nhanh hơn, bảo vệ thêm và các tính năng khác giúp người chơi dễ dàng hơn trong việc đối phó với kẻ thù

Màn chơi và Cấp độ: Trò chơi Space Shooter thường chia thành các màn chơi và cấp độ khác nhau Mỗi cấp độ thường có độ khó tăng dần, với số lượng và tốc độ của kẻ thù tăng lên Điều này tạo ra sự tiến bộ

và thách thức liên tục cho người chơi

5 Lập trình trò chơi và kiểm thử

Xác định yêu cầu: Trước hết, nhóm xác định các yêu cầu cơ bản cho trò chơi Điều này bao gồm quyết định về cơ chế trò chơi, đồ họa, và các tính năng chính khác

Chọn công cụ lập trình: Nhóm sử dụng công cụ lập trình STM32Cube IDE kết hợp với TouchGFX

Thiết kế cấu trúc trò chơi: Thiết kế cấu trúc và logic của trò chơi, bao gồm các chức năng, lớp, và quản lý trạng thái trò chơi

Xây dựng đồ họa: Tạo các hình ảnh nhân vật, hoạt cảnh và cho trò chơi

Lập trình gameplay: Bắt đầu viết mã cho các cơ chế gameplay như di chuyển, tấn công, xử lý va chạm, và các tính năng đặc biệt khác Kiểm thử liên tục: Trong quá trình lập trình, thường xuyên kiểm thử để đảm bảo các tính năng hoạt động đúng và không có lỗi

Kiểm thử trò chơi:

Trang 14

Kiểm tra chức năng: Thử nghiệm các chức năng trò chơi như di chuyển, tấn công, va chạm và tính năng đặc biệt để đảm bảo chúng hoạt động đúng theo thiết kế

Kiểm tra độ khó: Đảm bảo độ khó của trò chơi tăng dần theo cấp độ và tạo ra sự thách thức thích hợp cho người chơi

Kiểm tra hiệu năng: Đảm bảo trò chơi chạy mượt mà và không có sự trễ hẹn không mong muốn trên các thiết bị khác nhau

Trang 15

CHƯƠNG III: THIẾT KẾ, XÂY DỰNG SẢN PHẨM

1 Ghép nối phần cứng

1.1 Sơ đồ khối

Điều khiển Cấp điện

Bảng nút bấm -> KIT < - PIN

1.2 Ghép nối hoàn chỉnh

2 Thiết kế giao diện trò chơi

2.1 Màn hình bắt đầu trò chơi

Khi ấn vào màn hình cảm ứng, tự độ bắt đầu trò chơi

2.2 Màn thứ nhất

Các máy bay địch cấp độ đầu tiên sẽ lần lượt bay từ trên xuống rồi sang phải cuối cùng bay ngược lên

Sau mỗi khoảng thời gian cố định ngẫu nhiên 1 máy bay sẽ bắn đạn từ từ rơi xuống vị trí máy bay của người chơi

Mỗi khi người chơi bắn trúng 1 chiếc máy bay 3 lần chúng sẽ biến mất và cộng cho người chơi một điểm

Khi người chơi đủ 5 điểm sẽ chuyển sang màn thứ 2

2.3 Màn thứ hai

Các máy bay địch cấp độ 2 sẽ lần lượt bay từ trên xuống rồi sang phải cuối cùng bay ngược lên

Sau mỗi khoảng thời gian cố định ngẫu nhiên 1 máy bay sẽ bắn đạn từ từ rơi xuống vị trí máy bay của người chơi

Mỗi khi người chơi bắn trúng 1 chiếc máy bay 3 lần chúng sẽ biến mất và cộng cho người chơi một điểm

Khi người chơi đủ 10 điểm sẽ chuyển sang màn thứ 3

2.4 Màn thứ ba

Các máy bay địch cấp độ 3 sẽ lần lượt bay từ trên xuống rồi sang phải cuối cùng bay ngược lên

Sau mỗi khoảng thời gian cố định ngẫu nhiên 1 máy bay sẽ bắn đạn từ từ rơi xuống vị trí máy bay của người chơi

Ngày đăng: 25/05/2024, 10:07

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

TÀI LIỆU LIÊN QUAN