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

Thiết kế game mini trên kit STM32F746G discovery

84 235 1

Đ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 84
Dung lượng 2,9 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 NỘI DUNG 2: Dựa trên các dữ liệu thu thập được, lựa chọn giải pháp thiết kế và thi công mô hình kết nối các module với KIT điều khiển.. Tuần 5 Viết báo cáo Chương 2 Lập trình, chỉn

Trang 1

KHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH -

Trang 2

KHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

Trang 3

KHOA ĐIỆN-ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

Tp HCM, tháng 03 năm 2018

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Họ tên sinh viên: Võ Phương Duy MSSV: 14141044

Chuyên ngành: CNKT Điện Tử Truyền Thông Mã ngành: 41

Hệ đào tạo: Đại học chính quy Mã hệ: 1

Khóa: 2014 Lớp: 14141DT1A

I TÊN ĐỀ TÀI: THIẾT KẾ GAME MINI TRÊN KIT STM32F746G_DISCOVERY

II NHIỆM VỤ

1 Các số liệu ban đầu:

 Khảo sát các loại vi điều khiển, lựa chọn màn hình cảm ứng, tay cầm PS2, module âm thanh

 Tìm hiểu và thu thập các số liệu từ các trang mạng và sách về lập trình vi điều khiển ARM

 Tìm hiểu các tài liệu hướng dẫn sử dụng tay cầm PS2, module giải mã âm thanh

2 Nội dung thực hiện:

 NỘI DUNG 1: Nghiên cứu tài liệu về module VS1003, tay cầm PS2, KIT STM32F746 DISCOVERY

 NỘI DUNG 2: Dựa trên các dữ liệu thu thập được, lựa chọn giải pháp thiết kế và thi công

mô hình kết nối các module với KIT điều khiển

 NỘI DUNG 3: Thiết kế lưu đồ giải thuật và viết chương trình điều khiển cho vi điều khiển, thiết kế giao diện màn hình chơi game

 NỘI DUNG 4: Thử nghiệm và điều chỉnh phần mềm cũng như phần cứng để mô hình được tối ưu, sử dụng dễ dàng Đánh giá các thông số của mô hình so với thông số thực tế

 NỘI DUNG 5: Viết báo cáo thực hiện

III NGÀY GIAO NHIỆM VỤ: 07/03/2018

Trang 4

V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Phan Vân Hoàn

CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

Trang 5

Tên đề tài: THIẾT KẾ GAME MINI TRÊN KIT STM32F746G_DISCOVERY

Tuần/ngày Nội dung Xác nhận

Lập trình Game Cờ Caro Lập trình Game Ball Bing Ball

Trang 6

Tuần 5 Viết báo cáo Chương 2

Lập trình, chỉnh sửa game Ball Bing Bong Tìm hiểu phương pháp giao tiếp module VS1003

Tuần 6 Viết báo cáo Chương 3

Lập trình Game Flappy Bird Giao tiếp thẻ nhớ nhưng lỗi Tuần 7 Viết báo cáo Chương 3

Lập trình, chỉnh sửa Game Flappy Bird Giao tiếp được với thẻ nhớ

Tuần 8 Viết báo cáo Chương 4

Lập trình Game Stick Hero Giao tiếp thành công module VS1003 Thi công mạch kết nối

Tuần 9 Viết báo cáo Chương 4

Tạo file nhạc cho các Game Lập trình Game Ai Là Triệu Phú Tuần 10 Viết báo cáo Chương 5

Lập trình Game Ai Là Triệu Phú Tuần 11 Viết báo cáo Chương 5

Lập trình Game Vòng Quay Sát Phạt Tuần 12 Viết báo cáo Chương 6

Lập trình Game Vòng Quay Sát Phạt

Trang 7

Tuần 13 Chỉnh sửa báo cáo

Chỉnh sửa code Làm hộp cho mạch

GV HƯỚNG DẪN (Ký và ghi rõ họ và tên)

Trang 8

Tôi xin cam đoan đề tài được thực hiện dựa trên các tài liệu có trước Không sao chép từ bất kỳ nguồn tài liệu hay công trình nào khác

Tôi xin chịu trách nhiệm với lời cam đoan này

Trang 9

Tôi xin cám ơn sâu sắc đến thầy Phan Vân Hoàn đã trực tiếp hướng dẫn và tận tình giúp đỡ, tạo điều kiện để tôi hoàn thành đề tài

Tôi xin gửi lời chân thành cám ơn các thầy cô trong Khoa Điện - Điện Tử đã giúp

đỡ tôi hoàn thành đề tài Tôi cũng gửi lời đồng cám ơn đến các bạn lớp 14141DT1A đã chia sẻ trao đổi kiến thức cũng như những kinh nghiệm quý báu trong thời gian thực hiện đề tài

Xin cảm ơn đến cha mẹ

Xin chân thành cám ơn!

Người thực hiện đề tài

Võ Phương Duy

Trang 10

BÌA NGOÀI i

BÌA TRONG ii

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP iii

LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP v

CAM ĐOAN viii

LỜI CÁM ƠN ix

MỤC LỤC x

DANH SÁCH HÌNH xii

DANH SÁCH BẢNG xiii

TÓM TẮT xv

Chương 1: TỔNG QUAN 1

1.1 ĐẶT VẤN ĐỀ 1

1.2 MỤC TIÊU 1

1.3 NỘI DUNG NGHIÊN CỨU 2

1.4 GIỚI HẠN 2

1.5 BỐ CỤC 3

Chương 2: CƠ SỞ LÝ THUYẾT 4

2.1 MÔ TẢ QUÁ TRÌNH HOẠT ĐỘNG 4

2.2 TỔNG QUAN LÝ THUYẾT 4

2.2.1 Tổng quan ARM 4

2.2.2 Giới thiệu về ARM-M7- STM32F746G-DISCOVERY 6

2.2.3 Module giải mã âm thanh VS1003-v2 8

2.2.4 Tay cầm game Dualshock 2 10

2.2.5 Chuẩn truyền nhận SPI 13

2.2.6 Chuẩn giao tiếp SDMMC 15

Chương 3: TÍNH TOÁN_THIẾT KẾ 18

3.1 GIỚI THIỆU 18

3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 18

3.3.1 Thiết kế sơ đồ khối 18

3.3.2 Tính toán và thiết kế mạch 19

Trang 11

c Khối âm thanh 24

d Khối nguồn 26

3.3.3 Sơ đồ nguyên lý toàn mạch 27

Chương 4: THI CÔNG HỆ THỐNG 28

4.1 GIỚI THIỆU 28

4.2 THI CÔNG HỆ THỐNG 28

4.2.1 Thi công bo mạch 28

4.2.2 Lắp ráp, hàn linh kiện và kiểm tra 30

4.2.3 Đóng gói sản phẩm 31

4.3 LẬP TRÌNH HỆ THỐNG 31

4.3.1 Lưu đồ giải thuật 31

a Game Cờ Caro 33

b Game Ball Bing Bong 35

c Game Flappy Bird: 39

d Game Stick Hero: 42

e Game Ai Là Triệu Phú: 46

f Game Vòng Quay Sát Phạt: 47

g Game Pika Pika: 50

4.3.2 Phần mềm lập trình cho vi điều khiển 52

4.4 TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC: 55

Chương 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 61

5.1 KẾT QUẢ 61

5.2 ĐÁNH GIÁ KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ 62

Chương 6: KẾT LUẬN_HƯỚNG PHÁT TRIỂN 66

6.1 KẾT LUẬN 66

6.2 HƯỚNG PHÁT TRIỂN 66

TÀI LIỆU THAM KHẢO 67

PHỤ LỤC 68

Trang 12

Hình 1-1 Một số game nổi tiếng 1

Hình 2-1 Kiến trúc của vi xử lí ARM Cotex-M7 6

Hình 2-2 KIT STM32F746 Discovery 7

Hình 2-3 Sơ đồ cấu trúc và sơ đồ chân VS1003 8

Hình 2-4 Tay cầm PS2 10

Hình 2-5 Màu và sơ đồ dây đầu cắm PS2 12

Hình 2-6 Sơ đồ kết nối chuẩn SPI Master-Slave 14

Hình 2-7 Quá trình truyền nhận SPI 15

Hình 2-8 Quá trình đọc dữ hiệu 16

Hình 2-9 Quá trình ghi dữ liệu 16

Hình 2-10 Sơ đồ khối SDMMC 17

Hình 3-1 Sơ đồ khối hệ thống 18

Hình 3-2 Mặt trên của KIT 20

Hình 3-3 Sơ đồ bố trí Arduino Connectors, SD card adapter 22

Hình 3-4 Tay cầm PS2 23

Hình 3-5 Sơ đồ khối nối STM32F746 với PS2 24

Hình 3-6 Module VS1003 25

Hình 3-7 Sơ đồ kết nối STM32F746 với VS1003 26

Hình 3-8 Sơ đồ kết nối nguồn ngoài cho STM32F746 27

Hình 3-9 Sơ đồ nguyên lý chung của hệ thống 27

Hình 4-1 Sơ đồ PCB mạch kết nối STM với PS2 và VS1003 28

Hình 4-2 Sơ đồ PCB 3D mạch kết nối STM với PS2 và VS1003 29

Hình 4-3 Sơ đồ bố trí linh kiện mạch kết nối STM với PS2 và VS1003 29

Hình 4-4 Khung của mạch 31

Hình 4-5 Lưu đồ chương trình chính 32

Hình 4-6 Lưu đồ đọc/phát nhạc 32

Hình 4-7 Lưu đồ chính game Cờ Caro 33

Hình 4-8 Lưu đồ xử lý nước đi 34

Hình 4-9 Lưu đồ vẽ nước đi 34

Hình 4-10 Lưu đồ chính của game 35

Hình 4-11 Lưu đồ chọn chế độ chơi 36

Hình 4-12 Lưu đồ xử lý 1 người chơi 37

Hình 4-13 Lưu đồ xử lý 2 người chơi 38

Hình 4-14 Lưu đồ xử lý thua 39

Hình 4-15 Lưu đồ chính game Flappy Bird 40

Hình 4-16 Lưu đồ di chuyển trụ 41

Trang 13

Hình 4-19 Lưu đồ chính game Stick Hero 43

Hình 4-20 Lưu đồ bước 1 43

Hình 4-21 Lưu đồ bước 2 44

Hình 4-22 Lưu đồ bước 3 44

Hình 4-23 Lưu đồ bước 4 45

Hình 4-24 Lưu đồ bước 5 45

Hình 4-25 Lưu đồ game Ai là triệu phú 46

Hình 4-26 Lưu đồ chính Game Vòng Quay Sát Phạt 47

Hình 4-27 Lưu đồ xử lý góc và tốc độ quay 48

Hình 4-28 Lưu đồ thông báo kết quả 49

Hình 4-29 Lưu đồ chính game Pika Pika 50

Hình 4-30 Lưu đồ xử lý pikachu nhảy lên 51

Hình 4-31.Lưu đồ di chuyển CNV 51

Hình 4-32 Lưu đồ kiểm tra pika có đụng CNV hay không 51

Hình 4-33 Giao diện phần mềm Keil C 52

Hình 4-34.Giao diện phần mềm STM32CubeMX 53

Hình 4-35 Thao tác chọn game 57

Hình 4-36 Thao tác Game Cờ Caro 58

Hình 4-37 Thao tác chọn chế độ Game BBB 58

Hình 4-38 Nút nhấn điều khiển game BBB 59

Hình 4-39 Thao tác game Flappy Bird 59

Hình 4-40 Thao tác game Stick Hero 60

Hình 5-1 Kết quả phần cứng 61

Hình 5-2 Giao diện chọn Game 62

Hình 5-3 Game Cờ Caro 62

Hình 5-4 Chọn chế độ Game BBB 62

Hình 5-5 Game Ball Bing Bong 63

Hình 5-6 Game Flappy Bird 63

Hình 5-7 Game Stick Hero 64

Hình 5-8 Game Vòng Quay Sát Phạt 64

Hình 5-9 Game Ai Là Triệu Phú 65

Hình 5-10 Game Pika Pika 65

DANH SÁCH BẢNG Bảng 2.1 Mô tả sơ đồ chức năng các chân của VS1003 9

Trang 14

Bảng 3.1: Arduino Connectors 20

Bảng 3.2: Mô tả chân kết nối của PS2 với Arduino Connectors 23

Bảng 3.3 :Mô tả chân kết nối của VS1003 với Arduino Connectors 25

Bảng 4.1: Bảng linh kiện sử dụng 29

Bảng 4.2: Các bước lắp ráp linh kiện 30

Trang 15

Sau quá trình tìm hiểu, nghiên cứu lĩnh vực giải trí trong mảng game di động, tôi nhận thấy nhu cầu về nguồn game hiện tại là rất lớn cũng như nguồn nhân lực cho mảng ngành này Từ đó tôi quyết định chọn đề tài này đầu tiên là để thiết kế ra một số game đáp ứng nhu cầu giải trí của người chơi, sau đó là để tự hoàn thiện khả năng lập trình của bản thân

Đề tài này thực hiện lập trình lại những game mà đã có các tác giả viết trước Ở đây tôi chỉ mô phỏng lại sao cho giống nhất có thể Kết hợp thêm 1 số phần cứng rời để tạo sự khác biệt

Sau quá trình nghiên cứu thì tôi đã thành công trong việc mô phỏng lại 7 game mini thao tác đơn giản, đạt độ chính xác khá cao

Các game được thao tác trên màn hình kết hợp với tay cầm game có phát thêm nhạc thể hiện khá tốt nội dung game

Trang 17

Chương 1: TỔNG QUAN

Ngày nay, nhu cầu giải trí của con người bằng các thiết bị tiện lợi ngày càng cao Trong đó, thiết bị chơi game phát triển một cách nhanh chóng chỉ trong những năm gần đây đi theo đó là số lượng game được giới thiệu cũng tăng không ngừng Nổi bật có thể kể đến những loại game mini chạy trên các thiết bị di động như điện thoại, ipad, máy chơi game mini

Với nhu cầu cao như vậy thì ngành nghề thiết kế game đang là một trong số nghề đang có nhu cầu nhân lực lớn, đem lại lợi nhuận khổng lồ Có thể kể đến 1

số công ty thiết kế game lớn như Nintendo, Sony, Capcom với một số tựa game nổi tiếng như Super Mario, Resident Evil, Contra Ngoài ra còn có vô số những tựa game của những cá nhân thiết kế độc lập

Hình 1-1 Một số game nổi tiếng

Với ý tưởng muốn tiếp cận một lĩnh vực hay, còn khá mới đối với sinh viên chuyên ngành điện tử công nghiệp thì trong đề tài này tôi sẽ thực hiện thiết kế mô phỏng lại một số game mini được đại đa số người biết tới như Flappy Bird, cờ caro nhằm đáp ứng nhu cầu giải trí, phát triển tư duy cho người chơi game

- Thiết kế và thi công mô hình máy chơi game mini

- Thiết kế Game mini chạy trên mô hình

- Sử dụng cảm ứng và tay cầm Dual Shock để điều khiển

- Phát được nhạc trong chơi lúc với từng trò

Trang 18

1.3 NỘI DUNG NGHIÊN CỨU

 NỘI DUNG 1: Nghiên cứu tài liệu về module VS1003, tay cầm PS2, KIT STM32F746 DISCOVERY

 NỘI DUNG 2: Dựa trên các dữ liệu thu thập được, lựa chọn giải pháp thiết kế và thi công mô hình kết nối các module với KIT điều khiển

 NỘI DUNG 3: Thiết kế lưu đồ giải thuật và viết chương trình điều khiển cho vi điều khiển, thiết kế giao diện màn hình chơi game

 NỘI DUNG 4: Thử nghiệm và điều chỉnh phần mềm cũng như phần cứng để mô hình được tối ưu, sử dụng dễ dàng Đánh giá các thông số của mô hình so với thông số thực tế

 NỘI DUNG 5: Viết báo cáo thực hiện

Trong thời gian thực hiện đề tài là hơn 3 tháng, tôi tập trung thực hiện các công việc bên dưới:

- Thiết kế, thi công mô hình máy chơi game mini

- Sử dụng module âm thanh VS1003

- Sử dụng tay cầm Dual Shock Play Station 2(PS2)

- Sử dụng vi điều khiển ARM STM32F746

- Sử dụng màn hình LCD TFT 4.3-inch hiển thị và thao tác

Trong đề tài này sẽ thiết kế 7 game chạy trên nền vi điều khiển ARM STM32:

 BALL BING BONG

Trang 19

1.5 BỐ CỤC

 Chương 1: Tổng quan

Trình bày tổng quan về đề tài, tình hình thực tế, tính cần thiết của đề tài

 Chương 2: Cơ sở lý thuyết

Chương này trình bày lý thuyết liên quan đến các phần cứng, các chuẩn truyền nhận

 Chương 3: Tính toán và thiết kế

Chương này tính toán các thông số mạch để lựa chọn các linh kiện phù hợp với hệ thống

 Chương 4: Thi công hệ thống

Trình bày quá trình thi công mạch kết nối giữa các phần cứng với nhau Thiết kế lưu đồ cho từng nội dung code sẽ làm

Viết code dựa theo lưu đồ đã thiết kế trên

 Chương 5: Kết quả, nhận xét và đánh giá

Trình bày kết quả thu được của toàn bộ hệ thống, nêu rõ những mặt đã làm được và chưa làm được so với mục tiêu ban đầu cũng như ưu điểm, hạn chế Đánh giá tính ổn định của hệ thống

 Chương 6: Kết luận và hướng phát triển

Đưa ra kết luận chung cho hệ thống So sánh với các hệ thống khác ngoài thực tế để định được hướng phát triển của đề tài

Trang 20

Chương 2: CƠ SỞ LÝ THUYẾT

Khi cấp nguồn hệ thống thì màn hình sẽ hiện lên tên các tựa game Người chơi chọn game bằng cách nhấn nút trên tay cầm Dual Shock Vào từng game tùy vào hướng dẫn sử dụng sẽ có các thao tác riêng bằng PS2 hoặc cảm ứng Trong quá trình hoạt động sẽ có phát nhạc phù hợp với từng game

Việc thiết kế ARM được bắt đầu từ năm 1983 trong một dự án phát triển của công ty máy tính Acorn Nhóm thiết kế hoàn thành việc phát triển mẫu gọi là ARM1 vào năm 1985, và vào năm sau, nhóm hoàn thành sản phẩm “thực’’ gọi là ARM2 với thiết kế đơn giản chỉ gồm 30.000 transistor ARM2 có tuyến dữ liệu 32 bit, không gian địa chỉ 26 bit tức cho phép quản lý đến 64 Mbyte địa chỉ và 16 thanh ghi 32 bit Thế hệ sau, ARM3, được tạo ra với 4KB cache và có chức năng được cải thiện tốt hơn nữa

Trải qua nhiều thế hệ nhưng lõi ARM gần như không thay đổi kích thước ARM2 có 30.000 transistors trong khi ARM6 chỉ tăng lên đến 35.000 Ý tưởng của nhà sản xuất lõi ARM là sao cho người sử dụng có thể ghép lõi ARM với một

số bộ phận tùy chọn nào đó để tạo ra một CPU hoàn chỉnh, một loại CPU mà có thể tạo ra trên những nhà máy sản xuất bán dẫn cũ và vẫn tiếp tục tạo ra được sản phẩm với nhiều tính năng mà giá thành vẫn thấp

Trang 21

Ngày nay ARM được ứng dụng rộng rãi trên mọi lĩnh vực của đời sống: Robot, máy tính, điện thoại, xe hơi, máy giặt…

ARM Cortex được chia làm 3 dòng:

 Cortex-A: Bộ xử lý dành cho hệ điều hành và các ứng dụng phức tạp

Hỗ trợ tập lệnh ARM, thumb, và thumb-2

 Cortex-R: Bộ xử lý dành cho hệ thống đòi hỏi khắc khe về đáp ứng thời gian thực Hỗ trợ tập lệnh ARM, thumb và thumb-2

 Cortex-M: Bộ xử lý dành cho dòng vi điều khiển, được thiết kế để tối

ưu về giá thành Hỗ trợ tập lệnh Thumb-2

Giá trị số nằm cuối tên của 1 dòng ARM cho biết về mức độ hiệu suất tương đối của dòng đó Theo đó dòng ARM mang số 0 sẽ có hiệu suất thấp nhất

Tập đoàn ST Microelectronic đã cho ra mắt dòng STM32, vi điều khiển đầu tiên dựa trên nền lõi ARM Cortex-M3 thế hệ mới do hãng ARM thiết kế, lõi ARM Cortex-M3 là sự cải tiến của lõi ARMv7-M 32bit truyền thống, từng mang lại sự thành công vang dội cho công ty ARM Dòng STM32 thiết lập các tiêu chuẩn mới

về hiệu suất, chi phí, cũng như khả năng đáp ứng các ứng dụng tiêu thụ năng lượng thấp và tính điều khiển thời gian thực khắt khe

Chip ARM Cortex-M7 là một vi điều khiển 32-bit cao cấp nhất trong series Cortex-M của ARM cho đến hiện nay Theo ARM, Cortex-M7 có DSP (Digital Signal Processing: Xử lý tín hiệu số) cao gấp đôi so với Cortex-M4 do đó có thể

xử lý cùng lúc 2 tập lệnh, giúp cho M7 có thể hoạt động ở mức xung nhịp cao hơn Đây là dòng chip MCU 32-bit giúp tăng tốc thông dịch dữ liệu từ các cảm biến thành thông tin số Nó tăng gấp đôi hiệu năng tính toán và DSP trong khi giảm thiểu mức tiêu thụ điện năng nhờ vào công nghệ sản xuất 28nm Chip M7 hỗ trợ các thiết bị nhúng điều khiển giọng nói hoặc giao diện rich OS và còn được sử dụng trong các smartphone hoặc trên xe hơi để điều khiển các chức năng màn hình chạm và âm thanh phức tạp hơn

Trang 22

Hình 2-1 Kiến trúc của vi xử lí ARM Cotex-M7

2.2.2 Giới thiệu về ARM-M7- STM32F746G-DISCOVERY

Dòng STM32 tiêu thụ năng lượng cực thấp trong khi đó hiệu suất cực cao và việc lập trình cũng rất dễ dàng Với sự đồ sộ về ngoại vi (GPIO, I2C, SPI, ADC, USB, Ethernet, CAN ) ST cung cấp cho chúng ta các thư viện trực tiếp cho mỗi dòng ARM (gọi là CMSIS - Cortex Microcontroller Software Interface Standard) KIT Discovery STM32F7 sử dụng dòng ARM-M7 với vi điều khiển chính STM32F746NGHx cho phép người dùng phát triển mở rộng các ứng dụng về âm thanh, đồ họa, cảm biến và các tính năng kết nối tốc độ cao với các ngoại vi khác Đây là 1 KIT thực tế cung cấp rất nhiều ngoại vi cũng như có sẵn các jack cắm để kết nối với các module khác Các tính năng có sẵn trên KIT như:

 Vi điều khiển STM32F746NGH6 có 1MB bộ nhớ Flash và 340KB RAM với chuẩn đóng gói BGA216

 On-board ST-LINK/V2-1 hỗ trợ khả năng đếm lại USB

 Các chức năng USB: cổng COM ảo, lưu trữ khối, cổng debug

 Màn hình TFT-LCD 4.3-inch 480x272 màu với cảm ứng điện dung

 Ngõ vào âm thanh line in và line out

Trang 23

 Ngõ ra loa stereo

 2 ST MEMS microphones

 Đầu nối SPDIF RCA

 2 nút nhấn (user and reset)

 128-Mbit Quad-SPI Flash memory

 128-Mbit SDRAM

 Có khe cắm microSD card

 Đầu nối RF-EEPROM

 USB OTG HS với đầu cắm Micro-AB

 USB OTG FS với đầu cắm Micro-AB

 Đầu nối Ethernet IEEE-802.3-2002

o Đầu nối 5v ngoại

 Nguồn cấp cho các ứng dụng bên ngoài: 3.3 V or 5 V

 Đầu nối Arduino Uno V3

 Phần mềm miễn phí với các ví dụ đa dạng

Hình 2-2 KIT STM32F746 Discovery

Trang 24

2.2.3 Module giải mã âm thanh VS1003-v2

IC VS1003 là IC chuyên dụng giải mã âm thanh của hãng VLSI Solution với các tập tin âm thanh định dạng MP3/MIDI/WMA/WAV Nó các đặc tính:

 Giải mã MPEG 1 & 2 audio lớp III (CBR +VBR +ABR); WMA 4.0/4.1/7/8/9 all profiles (5-384kbit/s); WAV (PCM + IMA ADPCM); General MIDI / SP-MIDI files

 Mã hóa IMA ADPCM từ microphone hoặc ngõ vào

 Hỗ trợ truyền trực tuyến cho MP3 và WAV

 Điều khiển Bass và treble

 Hoạt động với tần số xung lock 12.13Mhz

 Có bộ nhân tần số nội

 Hoạt động chế độ tiết kiệm năng lượng

 Có khả năng sử dụng với tai nghe với bộ tải 30Ω

 Chia điện áp hoạt động cho tín hiệu analog, tín hiệu số và I/O

 Có bộ nhớ RAM 5.5Kb dùng cho code/data

 Giao diện điều khiển và dữ liệu nối tiếp

 Có thẻ được dùng như 1 thiết bị slave

 Có chế độ boot flash SPI cho các ứng dụng đặc biệt

 Có giao tiếp UART cho chế độ debugging

 Các chức năng mới được thêm vào phần mềm với 4 chân GPIO

Hình 2-3 Sơ đồ cấu trúc và sơ đồ chân VS1003

Trang 25

Module giải mã âm thanh VS1003 có IC chính VS1003, 2 jack audio 3.5mm,

1 microphone, IC ổn áp Chuyên sử dụng cho việc giải mã các loại âm thanh định dạng MP3/WMA/MIDI/WAV Khi giao tiếp với các MCU thông qua chuẩn SPI

nó đóng vai trò là 1 slave Module bao gồm 9 chân bao gồm điều khiển, dữ liệu và cấp nguồn: 5V, GND, XRST, MISO, MOSI, SCLK, DREQ, XCS, XDCS Chức năng của từng chân:

Bảng 2.1 Mô tả sơ đồ chức năng các chân của VS1003

1 VCC Nguồn cung cấp dương

2 GND Nguồn cung cấp âm

3 XRST Chân tín hiệu yêu cầu Reset

4 MISO Chân trả dữ liệu từ VS1003 về thiết bị master

5 MOSI Chân gửi mã lệnh/dữ liệu từ master tới VS1003

6 SCLK Chân tạo xung clock đồng bộ quá trình truyền nhận

7 DREQ Chân yêu cầu ngắt của VS1003, chân này sẽ ở mức cao

khi sẵn sàng nhận dữ liệu từ master

8 XCS Chân chip select mã lệnh

9 XDCS Chân chip select dữ liệu

Để gửi dữ liệu từ MCU đến VS1003 thông qua SPI thì đầu tiên cần xem xét chân yêu cầu ngắt DREQ đã sẵn sàng chưa, nếu DREQ đang ở mức cao thì kéo chân XDCS xuống mức thấp sau đó gửi 1 byte dữ liệu đến chân MOSI Kết thúc quá trình gửi sẽ kéo chân XCS và XDCS lên mức cao để sẵn sàng cho lần gửi tiếp theo

Trước khi bắt đầu quá trình hoạt động cần reset các giá trị trong các thanh ghi của VS1003, quá trình này sẽ gửi các mã lệnh đến VS1003 để đặt lại các giá trị Để gửi mã lệnh thì trước khi truyền ta kéo chân XCS về mức thấp sau đó bắt

Trang 26

đầu truyền Lưu ý VS1003 giao tiếp chuẩn SPI với chế độ MSB tức là truyền bit

có trọng số cao đi trước

2.2.4 Tay cầm game Dualshock 2

Tay cầm game Dualshock 2 hay có tên gọi khác là tay cầm PS2, là một thiết

bị điều khiển đa chức năng được sản xuất bởi hãng SONY với mục đích ban đầu

là giao tiếp với hệ máy Play Station của chính hãng này sản xuất So với tay cầm PS1 với các phím điều hướng bao gồm lên, xuống, trái, phải, các phím chức năng như X, O, Vuông, Tam giác, R1, R2, L1, L2, Select và Start thì PS2 được bổ sung thêm 1 nút Analog, 2 Joytick đa hướng, R3, L3 và chế độ run

Từ thế hệ PS1 đến hiện tại là PS4 đều sử dụng 1 chung loại đầu jack cắm với

9 đường dây cùng 1 chuẩn truyền SPI Ta tìm hiểu màu và chức năng của từng dây:

Bảng 2.2 Mô tả sơ đồ chức năng các chân của PS2

1 Data Dây này dùng để nhận dữ

liệu từ PS2 gửi về Đây là 1 ngõ ra cực thu để hở, vì vậy yêu cầu phải

có 1 điện trở kéo lên nguồn trong lúc hoạt động

Nâu

Hình 2-4 Tay cầm PS2

Trang 27

2 Command Dùng để gửi mã lệnh từ thiết

Xám

5 Vcc Cấp nguồn dương cho PS2

PS2 hoạt động ở điện áp 3v3 vì thế đối với các thiết bị nguồn 5v cần giảm áp xuống 3v3 để tránh hư hỏng tay cầm

Đỏ

6 Attention Chip select hoặc slave select,

chân này phải được kéo xuống mass trước khi nhận/gửi dữ liệu

Khi hoàn thành 1 quá tình nhận/gửi chân này phải được kéo lên VCC

Vàng

7 Clock Chân cấp xung clock từ

Master tới Slave, đồng bộ quá trình truyền nhận Tay cầm ps2 hoạt động với tần số clock từ 100k-500kHz

Xanh dương

9 Acknowledge Dây này sẽ kéo từ mức 1 về 0

trong 12us sau mỗi byte truyền xong

Xanh lá

Trang 28

Hình 2-5 Màu và sơ đồ dây đầu cắm PS2

Để giao tiếp thành công với PS2 thì cần tối thiếu là 6 dây (Clock, Data, Comman, Attention, Vcc, Gnd) Khi giao tiếp với các thiết bị thì tay cầm PS2 đóng vai trò slave, dữ liệu sẽ truyền theo kiểu LSB tức là bit có trọng số thấp được truyền trước

Giao tiếp được với tay cầm PS2 thông qua chuẩn SPI, ta phải thực gửi các

mã lệnh theo đúng trình từ thì tay cầm mới trả dữ liệu đúng về Một gói dữ liệu bao gồm 3 byte header và thêm 2 byte command bổ sung hoặc dữ liệu điều khiển Đầu tiên Master sẽ lần lượt gửi 3 byte Header đến PS2 tương ứng sẽ nhận về

Trang 29

Byte thứ 4 và 5 là 0x00, 2 byte này sau khi gửi lên thì slave sẽ gửi trả về dữ liệu trạng thái các nút nhấn Byte thứ 4 là xác định 4 nút điều hướng (lên, xuống, trái, phải, L3, R3), byte thứ 5 là các nút chức năng Nếu như không có nút được nhấn thì dữ liệu trả về sẽ là 0xFF Nếu như có nhấn nút thì bit tương ứng trong byte đó sẽ = 0

Vị trí giá trị các nút nhấn trong byte 4, 5 được thể hiện ở bảng dưới:

2.2.5 Chuẩn truyền nhận SPI

SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp tốc độ cao do hãng Motorola đề xuất Đây là kiểu truyền thông Master-Slave, trong đó 1 chip Master điều phối quá trình truyền thông và các chip Slaves được điều khiển bởi Master vì thế truyền thông chỉ xảy ra giữa Master và Slave SPI là một cách truyền song công nghĩa là tại cùng một thời điểm quá trình truyền và nhận có thể xảy ra đồng thời SPI đôi khi được gọi là chuẩn truyền thông “4 dây” vì có 4 đường dây trong chuẩn này đó là SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Output Slave Input) và SS (Slave Select)

Trong đó SCK: Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền đồng

bộ nên cần 1 đường giữ nhịp, mỗi nhịp trên SCK báo hiệu 1 bit dữ liệu đến hoặc

đi Đây là điểm khác biệt với truyền thông không đồng bộ của chuẩn UART Sự tồn tại của SCK giúp quá trình truyền ít bị lỗi và vì thế tốc độ truyền của SPI có thể đạt rất cao Xung nhịp chỉ được tạo ra bởi Master

MISO: Nếu là chip Master thì đây là đường Input còn nếu là chip Slave thì

là Output MISO của Master và Slave được nối trực tiếp với nhau

Trang 30

MOSI: Nếu là chip Master thì đây là đường Output còn nếu là chip Slave thì

là Input MOSI của Master và Slave được nối trực tiếp với nhau

SS: SS là đường chọn Slave cần giao tiếp, trên các chip Slave đường SS sẽ ở mức cao khi không làm việc Nếu chip Master kéo đường SS của một Slave nào

đó xuống mức thấp thì việc giao tiếp sẽ xảy ra giữa Master và Slave đó Chỉ có 1 đường SS trên mỗi Slave nhưng có thể có nhiều đường điều khiển trên Master, tùy vào thiết kế của người dùng

Hình dưới thể hiện một kết nối SPI giữa một chip Master và 3 chip Slave thông qua 4 đường

Hoạt động: Mỗi chip Slave hay Master có một thanh ghi dữ liệu 8 bit Cứ mỗi xung nhịp do Master tạo ra trên đường giữ nhịp SCK, một bit trong thanh ghi

dữ liệu của Master được truyền qua Slave trên đường MOSI, đồng thời một bit trong thanh ghi dữ liệu của Slave cũng được truyền qua Master trên đường MISO

Do 2 gói dữ liệu được truyền qua lại đồng thời nên được gọi là truyền “song công” Hình dưới mô tả quá trình truyền nhận 1 gói dữ liệu của chuẩn SPI

Hình 2-6 Sơ đồ kết nối chuẩn SPI Master-Slave

Trang 31

Thanh ghi dịch 8 bit

Thanh ghi dịch 8 bit

BỘ TẠO XUNG CLOCK SPI

MISO

MOSI

SCK

SS

Cho phép dịch

Hình 2-7 Quá trình truyền nhận SPI

Ta thấy bit MSB của Master sẽ được truyền đi đầu tiên sau đó dữ liệu sẽ được dịch trái 1 bit để đẩy bit dữ liệu kế tiếp làm MSB Đồng thời vị trí bit LSB sẽ nhận bit dữ liệu từ Slave truyền tới Quá trình truyền nhận của Slave tương tự Master Sau mỗi 8 xung nhịp trên SCK thì quá trình truyền 8 bit hoàn thành ta đọc dữ liệu

từ 2 thanh ghi này

2.2.6 Chuẩn giao tiếp SDMMC

SDMMC là chuẩn giao tiếp giữa bus APB2 với các loại thẻ nhớ như MMCs,

SD memory, SDIO cards Các đặc tính cơ bản của chuẩn SDMMD:

 Đối với thẻ MMCs: hỗ trợ 3 chế độ databus: 1 bit, 4 bit và 8 bit

 Đối với thẻ SD và SDIO: hỗ trợ 2 chế độ databus: 1 bit và 4 bit

 Truyền data lên tới 50Mhz đối với chế độ 8 bit của MMC

 Ngõ ra Data và comman cho phép tín hiệu điều khiển các quá trình 2 chiều bên ngoài

 SDMMC không tương thích với chuẩn SPI

Tiếp theo ta tìm hiểu quá trình hoạt động để đọc 1 block data diễn ra như thế nào:

Trang 32

Hình 2-8 Quá trình đọc dữ liệu

Để bắt đầu quá trình đọc thì Host sẽ gửi 1 frame lệnh yêu cầu đọc đến card

sau đó card sẽ gửi tín hiệu phản hồi, quá trình này diễn ra trên đường

SDMMC_CMD Sau đó Card sẽ gửi data cho Host thông qua SDMMC_D, kết

thúc frame data sẽ kèm thêm 1 mã kiểm tra lỗi CRC Khi muốn dừng đọc thì Host

lại gửi 1 lệnh yêu cầu dừng và Card sau khi gửi tín hiệu phản hồi sẽ kết thúc quá

Trang 33

 Giao diện APB2 truy cập tới thanh ghi của nguồn SDMMC, bộ tạo ngắt và tín hiệu yêu cầu DMA

Hình 2-10 Sơ đồ khối SDMMC

SDMMC_D[7:0] là các chân truyền data SDMMC_CMD có 2 chế độ là Open-drain và Push_pull DSMMC_CK là chân giữ xung clock 1 bit được truyền trên cả 2 dây command và data trong mỗi chu kỳ xung clock

Bảng 2.4 :Chức năng các chân của SDMMC

SDMMC_CK Ngõ ra Chân xung clock cho MMC/SD/SDIO Xung

clock được truyền từ host tới card

SDMMC_CMD Vào/Ra Chân mã lệnh cho MMC/SD/SDIO

SDMMC[7:0] Vào/Ra Chân dữ liệu cho MMC/SD/SDIO

Trang 34

Chương 3: TÍNH TOÁN_THIẾT KẾ

Yêu cầu của đề tài là máy chơi game mini hiển thị trên màn hình có cảm ứng để thao tác đồng thời có thêm tay cầm PS2 để tạo tín hiệu điều khiển Có bộ phận phát âm thanh tăng tính hấp dẫn cho trò chơi

Chương này sẽ tập trung phân tích, lựa chọn linh kiện cho phù hợp với yêu cầu của đề tài Trình bày sơ đồ kết nối, mạch nguyên lý của các module lại với nhau

3.3.1 Thiết kế sơ đồ khối

Với những yêu cầu của hệ thống, tôi thiết kế sơ đồ khối tổng quát cho hệ thống như sau:

KHỐI ĐIỀU KHIỂN

KHỐI NÚT NHẤN

KHỐI CẢM ỨNG

KHỐI HIỂN THỊ

KHỐI NGUỒN

KHỐI

ÂM THANH

Hình 3-1 Sơ đồ khối hệ thống

Trang 35

Trong sơ đồ bao gồm các khối:

 Khối nguồn: Cung cấp nguồn hoạt động cho các phần cứng trong hệ thống

 Khối hiển thị: Màn hình hiển thị giao diện Game

 Khối âm thanh: Nhận lệnh và dữ liệu từ khối điều khiển phát tín hiệu

âm thanh ra loa

 Khối cảm ứng: Đọc trạng thái nhấn/thả, trả về tọa độ trên màn hình

 Khối tay cầm: Các nút nhấn điều khiển và chức năng

 Khối điều khiển: Điều khiển các quá trình giao tiếp, truyền nhận giữa các module Nhận tín hiệu điều khiển từ tay cầm, đọc dữ liệu từ thẻ nhớ, xuất hình ảnh ra khối hiển thị, xuất tín hiệu âm thanh

3.3.2 Tính toán và thiết kế mạch

a Khối điều khiển, cảm ứng và hiển thị

Khối hiển thị: Yêu cầu là màn hình LCD kích thướt từ 4-5inch để phù hợp với các game mini, hiện đa màu sắc giúp trò chơi thêm bắt mắt

Khối cảm ứng: Phải là một màn cảm ứng dán chồng lên màn hình LCD để người chơi có thể tác động trực tiếp lên màn hình khi sử dụng

Khối điều khiển chức năng chính: xử lý dữ liệu nhận từ tay cầm và cảm ứng đồng thời xuất dữ liệu ra màn hình hiển thị và module giải mã âm thanh

Để thực hiện những yêu cầu trên thì cần một KIT với vi điều khiển hoạt động tốc độ cao để xử lý hình ảnh với tần số cao được mượt, ít hiện tượng giật Có các chuẩn giao tiếp truyền thông để giao tiếp với các module ngoại vi, có kết nối sẵn với màn hình TFT-LCD hoặc có ra chân để kết nối với LCD rời Đáp ứng được như vậy thì có các loại KIT của dòng vi điều khiển STM32, FRKL46Z qua quá trình tìm hiểu và đã có sử dụng từ trước cũng như sự hướng dẫn của GVHD, tôi quyết định chọn vi điều khiển STM32 mà cụ thể là KIT DISCOVERY STM32F746NGHx với những thông số cơ bản như sau:

 Vi điều khiển STM32F746G với 1Mbytes bộ nhớ Flash và 340 Kbytes RAM

Trang 36

 Màn hình TFT LCD kích thướt 4.2” với độ phân giải 480x272 pixel tích hợp cảm ứng điện dung

 Arduino Connectors với ARDUINO UNO R3, các pin ra còn là các pin của các chuẩn giao tiếp cơ bản như SPI, UART, I2C, nguồn

 Hỗ trợ khe cắm thẻ thẻ SD card

 Nguồn vào 5v có thể cấp từ nhiều nơi trên KIT

 Hỗ trợ lập trình bằng phần mềm STM32Cube và gói thư viện của STmicroelectronics

Hình 3-2 Mặt trên của KIT

Với Arduino Connectors[5] bao gồm có 4 cụm CN4, CN5, CN6, CN7 với thông tin như sau:

Chức năng

Chức năng

Chân STM32 Tên Số

Trang 37

1 NC - - I2C1_SDA PB9 D14 9

3.3V input /output

PB15 D11 4

Power input

PI0 D5 6

Trang 38

4 A3 PF8 ADC3_IN6 TIM3_CH1 PB4 D3 4

5 A4

PF7

or PB9

ADC3_IN5 (PF7)

or I2C1_SDA (PB9)

6 A5

PF6

or PB8

ADC3_IN4 (PC0)

or I2C1_SCL (PB8)

USART6_TX PC6 D1 2

USART6_RX PC7 D0 1

Hình 3-3 Sơ đồ bố trí Arduino Connectors, SD card adapter

Như vậy, với KIT này ta đã có khối điều khiển, khối hiển thị và khối cảm ứng vừa tinh gọn vừa đáp ứng yếu tố thẩm mỹ, kỹ thuật đối với 1 máy chơi game

Trang 39

b Khối tay cầm

Ngoài việc người chơi có thể thao tác trên màn hình cảm ứng thì một số game cần có tay cầm để dễ dàng thao tác khi sử dụng Qua tìm hiểu thì tay cầm PS2, Xbox đáp ứng đầy đủ yêu cầu này nhưng Xbox giá khá cao nên tôi quyết định chọn PS2: Giá thành hợp lí, dễ dàng giao tiếp, kết nối, cầm nắm dễ dàng thuận tiện cho người sử dụng

Hình 3-4 Tay cầm PS2

Như đã trình bày ở Chương 2 thì tay cầm này giao tiếp theo chuẩn SPI vì vậy

ta kết nối tay cầm với KIT thông qua Arduino Connectors

KIT STM32F746NGHx ra chân với 4 cụm mở rộng bao gồm CN4, CN5, CN6, CN7

Từ bảng 3.1 ta thấy để kết nối SPI cho PS2 ta sử dụng 3 chân SPI2_MOSI, SPI2_MISO, SP2_SCK với thứ tự tên D11, D12, D13 của cụm CN7 Ngoài ra còn

Trang 40

c Khối âm thanh

Âm thanh đối với 1 máy chơi game là không thể thiếu, nó làm trò chơi thêm sinh động, tạo được hiệu ứng cho người sử dụng Khối này với nhiệm vụ chính là phát âm thanh định dạng MP3 được lưu trong thẻ nhớ ra trong suốt quá trình chơi game Các Module như MP3-LT108, TF-GM4563 hay VS1003 đều chạy tốt yêu cầu trên, tuy nhiên do có nghiên cứu từ trước nên tôi quyết định chọn module VS1003 Module này với chip VS1003 có thể phát được file nhạc định dạng MP3 như yêu cầu, có jack cắm tay nghe 3.5mm để kết nối với loa ngoài, ngoài ra module này giao tiếp theo chuẩn SPI nên ta có thể sử dụng chung với tay cầm PS2 thông qua các chân CS khác nhau

Hình 3-5 Sơ đồ khối nối STM32F746 với PS2

Ngày đăng: 21/05/2019, 15:17

TỪ KHÓA LIÊN QUAN

w