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

Nội dung

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

Nhóm: 3

Trần Văn Báu 20204813Phạm Mạnh Cường 20204819Nguyễ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 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ếtcũ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ộthì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ươngtá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ỏikiế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ơitươ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áttriển và thực hiện trò chơi SpaceShooter - một trò chơi thú vị mà chúngem đã xây dựng trong môn học "Hệ Nhúng" Trò chơi SpaceShooter khôngchỉ 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ếtquả của những kiến thức và kỹ thuật mà chúng em đã học được từ mônhọc này Chúng em sẽ bắt đầu bằng việc giới thiệu tổng quan về trò chơiSpaceShooter 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êntắ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ủatrò 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áttriể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áonà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

dfdsfsdfdfdfds

Trang 7

PHÂN CHIA CÔNG VIỆC

Trang 8

CHƯƠNG I: TỔNG QUAN ĐỀ TÀI1 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

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 DUNG1 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ìnhvà 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ềukhiể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 chovi đ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ụngnhú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ểnSTM32F429IGT6, 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àu2.4 inch, có khả năng cảm ứng, giúp bạn xây dựng các ứng dụng giaodiệ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ểmtra 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 độnglạ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ồnngoài, cho phép bạn lựa chọn nguồn cung cấp phù hợp với ứng dụngcủ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ấpbở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 ứngdụ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ấncô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ẨM1 Ghép nối phần cứng

Trang 16

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 đủ 15 điểm sẽ chuyển sang màn quái khủng.

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

Sử dụng sức mạnh của tàu bay, tiêu diệt quái khủng và dành chiến thắng.

3.2

Trang 17

TÀI LIỆU THAM KHẢO

[1] Tài liệu 1[2] Tài liệu 2[3].

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