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

Đồ án môn học 2 Thiết kế KEYBOARD GAME

65 14 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 65
Dung lượng 2,06 MB

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

Nội dung

Trên thị trường có nhiều tay cầm kết nối khơng dây chơi game, chúng thiết kế nhỏ gọn phù hợp với người chơi Tuy nhiên thường tay cầm có giá thành cao, kèm theo chơi số game định, game thường người chơi hay cấu hình game theo ý tay cầm khơng có tính thay đởi cấu hình để phù hợp cấu hình game mà người chơi cấu hình trước điều phần dẫn đến cảm giác khó chịu chơi game Vì lý này, nhóm thực chọn đề tài “ THIẾT KẾ KEY BOARD GAME"

Trang 1

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

BỘ MÔN KỸ THUẬT MÁY TÍNH – VIỄN THÔNG

===== ● =====

ĐỒ ÁN MÔN HỌC 2 THIẾT KẾ KEYBOARD GAME

GVHD : PGS.TS Phan Văn Ca

SVTH : Đào Minh Thuấn 15119138

Nguyễn Văn Phú 15119118 Ngành : Công nghệ kỹ thuật máy tính

Tp Hồ Chí Minh, tháng 5 năm 2019

Trang 2

PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN

Họ và tên Sinh viên: Đào Minh Thuấn MSSV: 15119138

Nguyễn Văn Phú MSSV: 15119118

Ngành: Công nghệ kỹ thuật máy tính

Tên đề tài: Thiết kế KeyBoard Game

Họ và tên Giáo viên phản biện:

NHẬN XÉT

1 Về nội dung đề tài & khối lượng thực hiện:

2 Ưu điểm:

3 Khuyết điểm:

4 Đề nghị cho bảo vệ hay không?

5 Đánh giá loại:

6 Điểm:………….(Bằng chữ: )

Tp Hồ Chí Minh, ngày tháng năm 2019

Giảng viên phản biện

Trang 3

MỤC LỤC

DANH MỤC HÌNH -i

DANH MỤC B ẢNG - ii

LỜI MỞ ĐẦU - iii

LỜI CẢM ƠN - iv

DANH SÁCH CÁC TỪ VIẾT TẮT - v

CHƯƠNG 1 : TỔNG QUAN - 1

1.1 Tình hình nghiên cứu hiện nay - 1

1.2 Lý do chọn đề tài - 1

1.3 Mục tiêu c ủa đề tài - 1

1.4 Đối tượng nghiên cứu - 2

1.5 Phương pháp nghiên cứu - 2

1.6 Bố cục đồ án - 2

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT - 4

2.1 Tổng quan về chuẩn truyền I2C - 4

2.2 Tổng quan về chuẩn truyền UART - 5

2.3 Tổng quan về RTOS - 6

2.4 Ngôn ngữ P YTHON - 7

2.5 Tương tác với cơ sở dữ liệu - 9

2.6 Chip ST32F103C8T6 - 10

2.7 Module Joystick - 11

2.8 Module MPU6050 - 12

2.9 Mạch sạc TP4056 - 13

2.10 Module Bluetooth HC05 - 14

2.11 IC nguồn LM1117T 3v3 - 16

CHƯƠNG 3 : THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG - 17

3.1 Giới thiệu và tóm tắt - 17

3.1.1 Yêu cầu chung c ủa hệ thống - 17

3.1.2 Đặc tả hệ thống - 17

Trang 4

3.2 Sơ đồ khối - 17

3.3 Thiết kế phần cứng - 21

3.3.1 Khối cảm biến - 21

3.3.2 Khối giao tiếp - 21

3.3.3 Khối nguồn - 22

3.3.4 Khối xử lý trung tâm - 22

3.4 Thiết kế phần mềm - 23

3.4.1 Các thành phần - 23

3.4.2 Lưu đồ giải thuật phần mềm - 24

CHƯƠNG 4: KẾT QUẢ THỰC HIỆN - 27

4.1 Phần cứng - 27

4.1.1 Các công c ụ sử dụng - 27

4.1.2 Schematic - 27

4.1.3 Mạch PCB - 28

4.2 Giao diện phần mềm trên máy tính - 28

4.3 Database - 29

CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN - 30

5.1 Kết luận - 30

5.2 Hướng phát triển - 30

TÀI LIỆU THAM KHẢO - 31

PHỤ LỤC - 32

Trang 5

DANH MỤC HÌNH

Hình 2.1 Giao tiếp I2C. - 4

Hình 2.2 Giao tiếp UART - 5

Hình 2.3.1 CPU xử lý các Task - 6

Hình 2.3.2 Trạng thái các Task - 7

Hình 2.4 Logo Python - 8

Hình 2.5 Ví dụ về 1 cơ sở dữ liệu - 9

Hình 2.6 STM32F103C8T6 Pinout - 10

Hình 2.7 Module Joystick - 12

Hình 2.8 Module MPU6050. - 12

Hình 2.9 Mạch sạc TP4056 - 13

Hình 2.10 Module HC05 - 14

Hình 2.11 IC nguồnLM1117T - 16

Hình 3.1 Sơ đồ khối của hệ thống - 18

Hình 3.2 Lưu đồ - 25

Hình 4.1.1 Schematic - 27

Hình 4.1.2 P CB - 28

Hình 4.1.3 Mô hình hoàn thiện - 28

Hình 4.2 Giao diện phần mềm - 29

Hình 4.3 Giao diện database - 29

Trang 6

DANH MỤC BẢNG

Bảng 3.2.1 So sánh các dòng vi xử lý - 19Bảng 3.2.2 So sánh các công nghệ không dây. - 20

Trang 7

LỜI MỞ ĐẦU

Trên thị trường hiện tại có rất nhiều tay cầm kết nối không dây chơi game, chúng thì được thiết kế khá nhỏ gọn phù hợp với người chơi Tuy nhiên thường những tay cầm này có giá thành rất cao, kèm theo đó là chỉ có thể chơi một số game nhất định, với lại trong các game thường thì người chơi hay cấu hình game theo ý của mình nhưng đối với các tay cầm hiện tại hầu như không có tính năng là thay đổi cấu hình để phù hợp cấu hình game mà người chơi đã cấu hình trước đó điều này phần nào dẫn đến cảm giác khó chịu khi đang chơi game

Vì những lý do này, nhóm thực hiện đã chọn đề tài “ THIẾT KẾ KEY BOARD

GAME" trong quá trình thực hiện đề tài này, không tránh khỏi những sai sót do kiến

thức có giới hạn, cũng như tham khảo từ nhiều nguồn tài liệu từ internet, sách, báo,… Rất mong nhận được sự đóng góp của quý thầy cô và bạn bè để đề tài thực hiện thành công và phát triển hơn nữa

Trang 8

LỜI CẢM ƠN

Đầu tiên, nhóm thực hiện đề tài xin gửi lời cảm ơn sâu sắc và chân thành đến thầy

PHAN VĂN CA đã tận tình giúp đỡ, chỉ bảo, hướng dẫn nhóm thực hiện trong suốt quá

trình thực hiện đề tài này Trong thời gian làm việc với thầy, nhóm không những tiếp thu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc hiệu quả của thầy Đây là những điều cần thiết cho nhóm trong quá trình học tập và công tác sau này

Nhóm thực hiện cũng xin chân thành cảm ơn các bạn ngành công nghệ kỹ thuật máy tính lớp 151191A , đã luôn đồng hành, giúp đỡ để nhóm có thể thực hiện đề tài này thành công

Quá trình biên soạn báo cáo khó có thể tránh hoàn toàn các sai phạm Kính mong nhận được lời góp ý mang tính xây dựng từ mọi người

Người thực hiện

Đào Minh Thuấn Nguyễn Văn Phú

Trang 9

DANH SÁCH CÁC TỪ VIẾT TẮT

I2C Inter-Integrated Circuit Giao tiếp một thiết bị chủ

với nhiều thiết bị tớ

Receiver Transmitter

Bộ truyền nhận nối tiếp bất đồng bộ

ARM Acorn RISC Machine Là 1 loại cấu trúc vi xử lý

32 bit kiểu RISC (thuộc kiến trúc Harvard, tập lệnh rút gọn)

Interface

Giao diện lập trình ứng dụng

Trang 10

CHƯƠNG 1 : TỔNG QUAN 1.1 Tình hình nghiên cứu hiện nay

Hiện nay, xã hội ngày phát triển và khoa học kỹ thuật ngày càng tiên tiến hơn thì nhu cầu về kỹ thuật càng được quan tâm và phát triển hơn Đặc biệt là những công trình nghiên cứu khoa học nhằm thiết kế ra những sản phẩm ứng dụng có ý nghĩa thiết thực vào cuộc sống

1.2 Lý do chọn đề tài

Trong quá trình học tập thì chúng em đã học được nhiều loại vi điều khiển như: avr, pic, 8051,…Và trên hết là chip Arm cụ thể là dòng arm cortex m3 đại diện là chip STM32F103C8T6 Ngoài ra cũng được làm việc với nhiều module, cảm biến Và bây giờ thông qua đồ án môn học 2 này, nhóm thực hiện muốn tạo ra một sản phẩm sử dụng các tính năng của chip STM32F103C8T6 và các module, cũng như khả năng hàn chip dán

Nên nhóm quyết định chọn đề tài: “Thiết kế Keyboard Game”

1.3 Mục tiêu của đề tài

Đề tài triển khai nghiên cứu hướng tới mục tiêu sau:

 Theo dõi các giá trị góc nghiêng thông qua cảm biến MPU6050, tử các góc nghiêng

đó sẽ bắt đầu gửi các lệnh tương ứng

 Điều khiển led RGB

 Điều khiển module Joystick

 Điều khiển các nút nhấn

 Gửi các chuỗi điều khiển thông qua Bluetooth

 Phần mềm trên máy tính sau khi nhận được các chuỗi sẽ tiến hành gửi các lệnh điều khiển tương ứng để điều khiển game

 Phần mềm có thể thiết lập cấu hình game và lưu thiết lập đó trên database

Trang 11

1.4 Đối tượng nghiên cứu

 Chip STM32F103C8T6, Module Joystick, cảm biến MPU6050, module HC05, nút nhấn, LM1117T 3v3, mạch sạc TP4056

 Chuẩn giao thiếp I2C

 Chuẩn giao tiếp UART

 RTOS

 Ngôn ngữ Python

 Tương tác với cơ sở dữ liệu

1.5 Phương pháp nghiên cứu

Trong đề tài này, nhóm đã sử dụng các phương pháp nghiên cứu sau:

 Phương pháp tham khảo tài liệu: bằng cách thu thập thông tin từ sách, tạp chí về điện tử, truy cập từ mạng internet

 Phương pháp quan sát: khảo sát một số mạch điện từ mạng internet, khảo sát các tay cầm người ta tự chế

 Phương pháp khảo sát và thực nghiệm: từ những ý tưởng và kiến thức của nhóm, kết hơp sự hướng dẫn của giáo viên, nhóm đã thiết kế thử nghiệm thành công tay cầm chơi game

1.6 Bố cục đồ án

Chương 1: Tổng quan

Giới thiệu sơ lược về tình hình nghiên cứu hiện nay cũng như đối tượng nghiên cứu, phương pháp nghiên cứu

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

Nêu các lý thuyết cần thiết của các cảm biến, chuẩn giao tiếp, giao thức sử dụng trong đề tài

Chương 3: Thiết kế và xây dựng hệ thống

Trình bày sơ đồ hệ thống và giải thích hoạt động của hệ thống

Trang 12

Đưa ra các phương pháp lựa chọn phần cứng và xác định lựa chọn phù hợp với yêu cầu của đề tài

Chương 4: Kết quả thực hiện

Tính toán đưa ra giải thuật, thuật toán phần mềm

Trình bày kết quả đã thực hiện về phần cứng và phần mềm

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

Nêu các ưu điểm và các điểm cần cải thiện của đề tài, hướng khắc phục và hướng phát triển trong tương lại

Trang 13

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT

Để tiến hành thiết kế phần cứng cũng như phần mềm nhóm đã tìm hiểu một số khái niệm sau:

2.1 Tổng quan về chuẩn truyền I2C

I2C là một loại bus nối tiếp được phát triển bởi hãng sản xuất linh kiện điện tử Philips Ban đầu, loại bus này chỉ được dùng trong các linh kiện điện tử của Philips Sau

đó, do tính ưu việt và đơn giản của nó, I2C đã được chuẩn hóa và được dùng rộng rãi trong các module truyền thông nối tiếp của vi mạch tích hợp ngày nay Địa chỉ của thiết

bị tớ thường do nhà chế tạo thiết bị thiết lập sẵn

I2C sử dụng hai đường truyền tín hiệu: một đường xung nhịp đồng hồ (SCL) có chức năng cấp xung clock để dịch chuyển dữ liệ và một đường dữ liệu (SDA) có chức năng truyền tải dữ liệu SCL và SDA luôn được kéo lên nguồn bằng một điện trở kéo lên

có giá trị xấp xỉ 4,7 KOhm Các chế độ hoạt động của I²C bao gồm:

 Chế độ chuẩn (standard mode) hoạt động ở tốc độ 100 Kbit/s

 Chế độ tốc độ thấp (low-speed mode) hoạt động ở tốc độ 10 Kbit/s

Trong hệ thống truyền dữ liệu I²C, thiết bị nào cấp xung clock được gọi là thiết bị chủ (master), thiết bị nhận xung clock được gọi là tớ (slave) Thiết bị chủ có 1, thiết bị tớ

có nhiều, mỗi thiết bị tớ có 1 địa chỉ độc lập, chuẩn truyền ban đầu dung địa chỉ 7 bit nên

có thể giao tiếp với 128 thiết bị tớ Các thiết bị sau này được tang số bit địa chỉ lên nên giao tiếp nhiều thiết bị hơn

Hình 2.1 Giao tiếp I2C

Trang 14

2.2 Tổng quan về chuẩn truyền UART

UART là “Universal Asynchronous Receiver / Transmitter” Nó là một vi mạch sẵn

có trong một vi điều khiển nhưng không giống như giao thức truyền thông (I2C & SPI) Chức năng chính của UART là truyền dữ liệu nối tiếp Trong UART, giao tiếp giữa hai thiết bị có thể được thực hiện theo hai cách là giao tiếp dữ liệu nối tiếp và giao tiếp dữ liệu song song

Hình 2.2 Giao tiếp UART

Trong giao tiếp dữ liệu nối tiếp, dữ liệu có thể được truyền qua một đường dây Truyền thông dữ liệu nối tiếp không đắt khi chúng ta so sánh với giao tiếp song song Nó đòi hỏi rất ít mạch cũng như dây

Trong giao tiếp này, có hai loại UART có sẵn là truyền UART và nhận UART và giao tiếp giữa hai loại này có thể được thực hiện trực tiếp với nhau Đối với điều này, chỉ cần hai cáp để giao tiếp giữa hai UART Luồng dữ liệu sẽ từ cả hai chân truyền (Tx) và nhận (Rx) của UARTs Trong UART, việc truyền dữ liệu từ Tx UART sang Rx UART có thể được thực hiện không đồng bộ

Ưu điểm và nhược điểm của UART

 Những ưu và nhược điểm của UART bao gồm những điều sau đây

 Nó chỉ cần hai dây để truyền dữ liệu

 Tín hiệu CLK là không cần thiết

 Nó bao gồm một bit chẵn lẻ để cho phép kiểm tra lỗi

 Sắp xếp gói dữ liệu có thể được sửa đổi vì cả hai mặt được sắp xếp

 Kích thước khung dữ liệu tối đa là 9 bit

 Nó không chứa một số hệ thống phụ (hoặc)

 Tốc độ truyền của UART phải ở mức 10% của nhau

Trang 15

2.3 Tổng quan về RTOS

Hệ điều hành thời gian thực – RealTime Operating Systems(RTOS), là phần mềm điều khiển chuyên dụng thường được dùng trong những ứng dụng nhúng có tài nguyên bộ nhớ hạn chế và yêu cầu ngặt nghèo về thời gian đáp ứng tức thời, tính sẵn sàng cao và khả năng tự kiểm soát một cách chính xác

Một hệ điều hành có thể:

 Cho phép nhiều chương trình chạy cùng 1 lúc (multi-tasking)

 Có quản lý tài nguyên về phần cứng và cung cấp các dịch vụ cho các chương trình khác

 Khi nào bạn cần sử dụng RTOS ?

Tại sao lại phải dùng RTOS ?

 Chia sẻ tài nguyên một cách đơn giản: cung cấp cơ chế để phân chia các yêu cầu về bộ nhớ và ngoại vi của MCU

 Dễ debug và phát triển: Mọi người trong nhóm có thể làm việc một cách độc lập, các lập trình viên thì có thể tránh được các tương tác với ngắt, timer, với phần cứng (cái này mình không khuyến khích lắm vì hiểu được phần cứng vẫn sẽ tốt hơn nhiều)

 Tăng tính linh động và dễ dàng bảo trì: thông qua API của RTOS,…

Các khái niệm cơ bản

Kernel

Hình 2.3.1 CPU xử lý các Task

Trang 16

Kernel sẽ có nhiệm vụ quản lý nhiều task cùng chạy 1 lúc, mỗi task thường chạy mất vài

ms Tại lúc kết thúc task thường:

 Lưu trạng thái task

 Thanh ghi CPU sẽ load trạng thái của task tiếp theo

 Task tiếp theo cần khoảng vài ms để thực hiện

Vì CPU thực hiện tác vụ rất nhanh nên dưới góc nhìn người dùng thì hầu như các task là

được thực hiện 1 cách liên tục

Trang 17

Hình 2.4 Logo Python

Python là ngôn ngữ có hình thức khá đơn giản và rõ ràng, do đó tạo nên sự dễ dàng tiếp cânh cho những lập trình viên mới bắt đầu

Ban đầu, Python được phát triển để chạy trên nền Unix Nhưng rồi theo thời gian,

nó đã "bành trướng" sang mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix Mặc dù sự phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện nay vẫn là tác giả chủ yếu của Python Ông giữ vai trò chủ chốt trong việc quyết định hướng phát triển của Python

Một số tính chất của Python

Python is Interpreted: Nhờ chức năng thông dịch mà trình thông dịch (Interpreter) của Python có thể xử lý lệnh tại thời điểm chạy chương trình (runtime) Nhờ đó mà ta không cần biên dịch chương trình trước khi thực hiện nó (tương tự như Perl và PHP)

Python is Interactive: Tính năng tương tác của Python giúp ta có thể tương tác trực tiếp với trình thông dịch của nó ngay tại dấu nhắc lệnh Cụ thể: Ta có thể thực hiện lệnh một cách trực tiếp tại dấu nhắc của Python

Python is Object-Oriented: Python hỗ trợ mạnh cho phong cách lập trình hướng đối tương

và kỹ thuật lập trình gói mã trong đối tượng

Python is a Beginner's Language: Mặc dầu Python được xem là ngôn ngữ lập trình dành cho những ai mới làm quen với việc lập trình trên máy tính, nhưng nó hỗ trợ mạnh cho việc phát triển nhiều loại ứng dụng khác nhau, từ các chương trình xử lý văn bản đơn giản đến các ứng dụng web, đến các chương trình game,…

Tính năng

Python là một ngôn ngữ lập trình dễ học, dễ đọc Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế các kí hiệu và cấu trúc cú pháp so với các ngôn ngữ khác

Mã nguồn của Python là tương đối dễ để bảo trì và duy trì và có khả năng mở rộng

Python có một tiêu chuẩn thư viện rộng, có nền tảng tương thích trên nhiều hệ điều hành hiện nay như: UNIX, Windows, and Macintosh Đây cũng là một trong những điểm mạnh đáng kể của Python

Trang 18

Python có thể được sử dụng như ngôn ngữ script, hoặc ngôn ngữ biên dịch, nhờ đó mà ta

có thể buil các chương trình lớn trên nó

Khi chế độ Interactive, ta có thể nhập kết quả từ các đầu cuối khác nhau vào chương trình Python,do đó mà việc test hay debug lỗi code trở nên đơn giản hơn

Python cho phép người dùng tích hợp vào các module để có thể sử dụng trong các chương trình khác Nó cũng cung cấp sẵn một tập hợp các modules chuẩn mà lập trình viên có thể

sử dụng lại trong chương trình của họ Các module này cung cấp nhiều chức năng hữu ích, như các hàm truy xuất tập tin, các lời gọi hệ thống, trợ giúp lập trình mạng (socket),… Python cung cấp giao diện cho tất cả các cơ sở dữ liệu thương mại lớn

Có thế dễ dàng tích hợp với C, C++, COM, CORBA, ActiveX, Java

2.5 Tương tác với cơ sở dữ liệu

Cơ sở dữ liệu là tập hợp dữ liệu được tổ chức có cấu trúc liên quan với nhau và được lưu trữ trong máy tính.CSDL được thiết kế, xây dựng cho phép người dùng lưu trữ dữ liệu, truy xuất thông tin hoặc cập nhật dữ liệu.CSDL được tổ chức có cấu trúc Các dữ liệu được lưu trữ có cấu trúc thành các bản ghi (record), các trường dữ liệu (field) Các dữ liệu lưu trữ có mối quan hệ (relation) với nhauCSDL được cấu trúc để dễ dàng truy cập, quản lý và cập nhật

Hình 2.5 Ví dụ về 1 cơ sở dữ liệu

Quản lý dữ liệu là quản lý một số lượng lớn dữ liệu, bao gồm cả việc lưu trữ và cung cấp

cơ chế cho phép Thao tác (thêm, sửa, xóa dữ liệu) và Truy vấn dữ liệu Hai phương pháp quản lý dữ liệu: Hệ thống quản lý bằng file và Hệ thống quản lý bằng CSDL

Quản lý dữ liệu bằng file

Dữ liệu được lưu trữ trong các file riêng biệt Ví dụ: các chương trình lưu trữ thông tin bằng hệ thống các file dạng text

Trang 19

Nhược điểm của việc quản lý bằng file:

 Dư thừa và mâu thuẫn dữ liệu

 Kém hiệu quả trong truy xuất ngẫu nhiên hoặc xử lý đồng thời

 Dữ liệu lưu trữ rời rạc

 Gặp vấn đề về an toàn và bảo mật

Quản lý dữ liệu bằng CSDL

Quản lý dữ liệu bằng CSDL giúp dữ liệu được lưu trữ một cách hiệu quả và có tổ chức, cho phép quản lý dữ liệu nhanh chóng và hiệu quả

Thao tác với dữ liệu

Sử dụng các câu lệnh SELECT,INSERT, UPDATE, DELETE để tương tác với dữ liệu trong cơ sở dữ liệu

2.6 Chip ST32F103C8T6

Hình 2.6 STM32F103C8T6 Pinout

Thông số kỹ thuật:

 Chip STM32F103C8T6 có kích thước core: 32 bit (bộ xử lý 32 bit)

 Kích thước bộ nhớ lưu trữ chương bộ nhớ chương trình: 64kB và là kiểu bộ nhớ FLASH

 Kích thước RAM: 20K x 8

 Số chân I/O: 37

Trang 20

 Tốc độ 72Mhz

 Hoạt động ở nhiệt độ từ - 40 đến 85 độ C

 Liên kết: CAN, I²C, IrDA, LIN, SPI, UART/USART, USB

 Ngoại vi: DMA, Motor Control PWM, PDR, POR, PVD, PWM, Temp Sensor, WDT

 Khả năng hoạt động liên tục 24/7

 Khả năng debug chương trình mạnh Vì sử dụng chuẩn nạp code JATG

Trang 21

Hình 2.7 Module Joystick

Sơ đồ chân của module Joystick:

 5V: Chân cấp nguồn 5V

 GND: Chân nối đất

 VRX: Chân này trả về giá trị ADC trên trục x

 VRY: Chân này trả về giá trị ADC trên trục y

 2 hướng điều khiển X và Y

 Điện áp vào: 5V hoặc 3v3

2.8 Module MPU6050

Hình 2.8 Module MPU6050

Cảm biến GY-521 6DOF IMU MPU6050 được sử dụng để đo 6 thông số: 3 trục Góc quay (Gyro), 3 trục gia tốc hướng (Accelerometer), là loại cảm biến gia tốc phổ biến nhất trên thị trường hiện nay

Trang 22

Sơ đồ chân của MPU6050:

 VCC: Chân cấp nguồn từ 3 – 5V

 GND: Chân nối đất

 SCL: Chân này có chức năng nhận xung clock từ phía bên Master

 SDA: Chân này có chức năng truyền tải dữ liệu thông qua I2C

 XDA (Auxiliary Serial Data), XCL (Auxiliary Serial Clock): Nó có thể được sử dụng cho giao diện khác mô-đun I2C khác với MPU6050

 AD0: Nếu có nhiều hơn một MPU6050 được sử dụng một MCU, thì pin này có thể được sử dụng để thay đổi địa chỉ

 INT: Chân này được sử dụng để chỉ ra rằng dữ liệu có sẵn để MCU đọc

Thông tin kỹ thuật:

 Điện áp sử dụng: 3~5VDC

 Điện áp giao tiếp: 3~5VDC

 Chuẩn giao tiếp: I2C

 Giá trị Gyroscopes trong khoảng: +/- 250 500 1000 2000 degree/sec

 Giá trị Acceleration trong khoảng: +/- 2g, +/- 4g, +/- 8g, +/- 16g

Chức năng: Trả về giá trị Accelerometer 3 trục x,y,z Từ đó ta tính các góc nghiêng, và từ

các góc đó sẽ có những chuỗi lệnh truyền tương ứng đến máy tính Chúng ta chỉ dùng đại lượng gia tốc hướng (Accelerometer) còn đại lượng còn lại không dùng

2.9 Mạch sạc TP4056

Hình 2.9 Mạch sạc TP4056

Mạch sạc pin Lithium TP4056 (1A) V2 là phiên bản nâng cấp của Mạch sạc pin Lithium TP4056 (1A) thêm chức năng ngắt tải bảo vệ pin khi điện áp xuống quá thấp để tránh làm hư hỏng pin (chai pin), mạch được sử dụng để sạc cho các loại pin Lithium có điện áp 3.7~4.2VDC (Pin Lipo, Pin 18650, ), mạch có kích thước nhỏ gọn với cổng USB

Trang 23

kết nối tiện dụng, đèn báo đang sạc và sạc đầy hiển thị trạng thái pin, thích hợp cho các ứng dụng sử dụng pin sạc: Robot, mạch cảm biến không dây,

Sơ đồ chân của mạch sạc TP4056

 IN+,IN-: Là ngõ vào cấp nguồn từ 4.5 đến 8V

 Cổng USB: Ngõ vào cấp nguồn 5VDC

 B+,B-: Là ngõ ra dùng để sạc pin

 OUT+,OUT-: Nối với tải

Lưu ý: Khi cấp nguồn thì chỉ duy nhất sử dụng cổng INT+,INT- hoặc cổng USB không

được sử dụng cả 2

Thông sỗ kỹ thuật:

 IC chính: TP4056

 Nguồn đầu vào:

o 4.5~8VDC: Chân nguồn vào + / -

o 5VDC qua cổng Micro USB

 Nguồn sạc đầy: 4.2VDC

 Dòng sạc: 1A có thể biến đổi theo trạng thái pin

 Chức năng ngắt tải bảo vệ pin khi điện áp xuống quá thấp để tránh làm hư hỏng pin (chai pin)

Trang 24

Bluetooth là chuẩn truyền thông không dây để trao đổi dữ liệu ở khoảng cách ngắn.Chuẩn truyền thông này sử dụng sóng radio ngắn(UHF radio) trong dải tần số ISM (2.4 tới 2.485 GHz) Khoảng cách truyền của module này vào khoảng 10m Module này được thiết kế dựa trên chip BC417 Con chip này khá phức tạp và sử dụng bộ nhớ flash ngoài 8Mbit Nhưng việc sử dụng module này hoàn toàn đơn giản bởi nhà sản xuất đã tích hợp mọi thứ cho bạn trên module HC-05

Sơ đồ chân của module gồm có:

 KEY: là chân chọn chế độ hoạt động ATMode hay DataMode

 VCC: Chân này có thể cấp nguồn từ 3.6 – 6V bên trong module đã có IC nguồn chuyển đổi về điện áp 3v3 cấp cho chip BC417

 GND: Nối với chân GND

 TXD, RXD: Đây là 2 chân UART dùng để giao tiếp hoạt động mức điện áp 3v3

 STATE: Chân trạng thái, không quan tâm nên thả nổi

Module thu phát bluetooth HC-05 dùng để thiết lập kết nối Serial giữa 2 thiết bị bằng sóng bluetooth Điểm đặc biệt của module bluetooth HC-05 là module có thể hoạt động được ở 2 chế độ: MASTER hoặc SLAVE Trong khi đó, bluetooth module HC-06 chỉ hoạt động ở chế độ SLAVE

+ Ở chê độ SLAVE: bạn cần thiết lập kết nối từ smartphone, laptop, usb bluetooth để dò

tìm module sau đó pair với mã PIN là 1234 Sau khi pair thành công, bạn đã có 1 cổng serial từ xa hoạt động ở baud rate 9600

+ Ở chế độ MASTER: module sẽ tự động dò tìm thiết bị bluetooth khác (1 module

bluetooth HC-06, usb bluetooth, bluetooth của laptop ) và tiến hành pair chủ động mà không cần thiết lập gì từ máy tính hoặc smartphone

Trang 25

 Công suất cực đại 5W

 Dòng điện đầu ra cực đại 1,5A

 Dải nhiệt độ hoạt động: 0 đến 125 độ

Trang 26

CHƯƠNG 3 : THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG

Sau khi nhóm đã tìm hiểu một số khái niệm liên quan cần thiết, nhóm tiến hành thiết kế

và xây dựng phần cứng cũng như phần mềm

3.1 Giới thiệu và tóm tắt

3.1.1 Yêu cầu chung của hệ thống

Với tiêu chi thiết kế, làm một tay cầm có thể chơi được nhiều loại game Hệ thống

có các tính năng như sau:

 Tay cầm chơi game kết nối không dây

 Tương tác với máy tính

 Tốc độ xử lý nhanh, tiết kiệm năng lượng

 Giá cả hợp lý

 Kích thước nhỏ gọn

 Chơi được nhiều loại game: nhập vai hành động, đua xe Ví dụ: Samurai, Đấu trường thú, Asphalt,…

 Có thể thiết lập được chức năng của mỗi nút trên tay cầm thông qua phần mềm

 Lựa chọn thể loại game , hoặc xem lại thiết lập trước đó thông qua phần mềm kết nối với cơ sở dữ liệu

3.1.2 Đặc tả hệ thống

Với các yêu cầu của hệ thống trên nhóm đã tiến hành đề ra các phương án thiết kế cho phần cứng như sau:

 Khối nguồn: cung cấp cho toàn bộ hệ thống

 Khối giao tiếp: truyền tín hiệu điều khiển điến khối xự lý trung tâm

 Khối xử lý trung tâm: đọc các giá trị từ các khối gaio tiếp và cảm biển sau đó gửi qua máy tính xử lý thông qua khối truyền thông

 Khối cảm biến: Gửi các giá trị góc nghiêng đến khối xử lý trung tâm

 Khối truyền thông: Gửi các dữ liệu từ khối cảm biến và khối giao tiếp đến máy tính Sau đó máy tính sẽ xử lý các dữ liệu thông qua driver

Với các yêu cầu của hệ thống trên nhóm đã tiến hành đề ra các phương án thiết kế cho phần mềm như sau:

Trang 27

 Sử dụng ngôn ngữ Python để lập trình phần mềm trên máy tính và chọn SQLite làm

cơ sở dữ liệu lưu trữ thông tin cấu hình game

3.2 Sơ đồ khối

Hình 3.1 Sơ đồ khối của hệ thống

 Khối nguồn: Cấp nguồn nuôi chip với cấp nguồn cho toàn bộ hệ thống

 Khối xử lý trung tâm: Nhận dữ liệu truyền về từ khối cảm biến cũng như khối giao tiếp sau đó truyền đến máy tính thông qua khối truyền thông

Bộ vi xử lý cần phải đáp ứng các tiêu chuẩn: tiết kiệm năng lượng, thời gian nhanh,

kích thước nhỏ gọn, đáp ứng thời gian thực, chi phi thiết kế thiết kế thấp

Vi điều khiển STM32F103C8T6 là họ vi điều khiển 32 bit với 64-128 Kb bộ nhớ Flash, USB 2.0 full-speed, 2 bộ ADC và 9 giao diện kết nối

Lõi : ARM 32 bit Cortex-M3 Tần số hoạt động lên tới 72 Mhz

ADC : 2×12 bit, tần số lấy mẫu 1Mhz DMA : Điều khiển 7 kênh DMA

Giao diện kết nối : 2xI2C, 3xUSART, 2xSPI, CAN, USB 2.0 full-speed

+ Các thiết bị ngoại vi có thể được cấu hình một cách thích hợp Lõi của bộ vi xử lý Cortex- M3 được thiết kế để đáp ứng yêu cầu bộ nhớ tối thiểu, năng lượng tiêu thụ thấp và thiết kế nhỏ gọn

+ Tần số hoạt động lên tới 72 Mhz cho phép sử lý các tập lệnh nhanh chóng

Trang 28

+ Bộ ADC của ARM có độ phân giải 12 bits tức là giá trị đọc về nằm trong khoảng 0 -

>2^12= 4096 (Độ phân giải PIC, AVR= 8/10 bits)

+ Có bộ DMA để đẩy cao thời gian truyền nhận

+ Có nhiều chuẩn kết nối phù hợp trong việc phát triển cho hệ thống sau này

Bus Width 8 bit cho core

chuẩn

8/16/32- bit 8/32-bit Hầu như 32bit,

số ít 64 bit Chuẩn truyền

thông

UART, USART, SPI, I2C

UART, USART, SPI, I2S, LIN, CAN, ETHERNET

UART, USART, SPI, I2C, (AVR hỗ trợ CAN, ETHERNET)

UART, USART, SPI, I2S, LIN, CAN, ETHERNET, I2C, DSP, SAI, IrDA

Tốc độ 12 clock/ chu

kỳ lệnh

4 clock/ chu kỳ lệnh

1 clock/ chu kỳ lệnh

1 clock/ chu kỳ lệnh

SRAM,FLASH

SRAM, FLASH

FLASH, SRAM, EEPROM

FLASH, SDRAM, EEPROOM

Trang 29

 Khối cảm biến: Thu thập dữ liệu từ các cảm biến rồi gửi về khối xử lý trung tâm

 Khối truyền thông:

CÔNG NGHỆ KHÔNG DÂY

RF

Frequency

868/915 MHz – 2.4GHz

2.4 GHz 2.4Ghz,5.8Ghz 13.56Mhz

Data Rate 250 Kbits/s 723Kbit/s 11-105Mbits/s 100-420Kbit/s

Bảng 3.2.2 So sánh các công nghệ không dây

 Wifi : Năng lượng tiêu thụ của nó cao, tốc độ truyền dữ liệu cao

 NFC (Near-Field Communication: Công nghệ giao tiếp trường gần) là công nghệ kết nối sử dụng cảm ứng từ để thực hiện kết nối giữa 2 thiết bị Cái này loại vì khoảng cách

nó quá ngắn tối đa 10cm trên lý thuyết thực tế thì chỉ có 4cm chúng ta không thể chơi game với khoảng cách đó

 Zigbee vì tuy nó đáp ứng được yêu cầu đặt ra nhưng giá thành của zigbee cao hơn rất nhiều so với Bluetooth Một điểm nữa là tốc độ truyền dữ liệu của Bluetooth cao hơn

so với zigbee

 Bluetooth Nó đáp ứng được yêu cầu khoảng cách chơi game từ màn hình đến người chơi game, giá thành phù hợp và công suất thấp

 Chọn Bluetooth

Nguyên lý hoạt động chung:

Bộ xử lý trung tâm sau khi nhận được dữ liệu được gửi về từ cảm biến,từ đó sẽ gửi các chuỗi thông qua Bluetooth kết nối với máy tính, phần mềm trên máy tính sẽ tiến hành

so sánh nếu đúng là chuỗi gửi, thì tương ứng từng chuỗi sẽ xuất lệnh điều khiển tương ứng với cấu hình game

Trang 30

3.3 Thiết kế phần cứng

Theo sơ đồ khối ta sẽ thiết kế phần cứng bao gồm 6 phần:

 Khối xử lý trung tâm: Chip STM32F103C8T6

 Khối cảm biến: MPU6050

 Khối giao tiếp: Nút nhấn, Joystick

 Khối nguồn: Mạch sạc TP4056, IC nguồn LM117T, pinNokia

3.3.1 Khối cảm biến

 Yêu cầu thiết kế

Cập nhật giá trị liên tục gia tốc góc

Khi nghiêng tay cầm thì lập tức cảm biến sẽ trả về giá trị gia tốc góc 3 trục

từ 3 giá trị này dùng công thức tính ra các giá trị góc nghiêng

3.3.2 Khối giao tiếp

 Yêu cầu thiết kế

Nút nhấn phải ăn có chống dội, Joystick trả về giá trị ADC liên tục khi sử dụng

 Lựa chọn phần cứng

Sử dụng nút nhấn 2 chân, và module Joystick

 Kết nối

• Joystick: Có 4 chân VCC, GND, VRX, VRY Trong đó 2 chân VRX

và VRY lần lượt nối vào 2 chân PA4 và PA5

Trang 31

• Nút nhấn: Có 6 nút nhấn nối lần lượt nối vào các chân PA12, PA11,

PA10, PA9, PA8, PB15

 Giải thích nguyên lý

• Joystick: Khi sử dụng sẽ trả về giá trị ADC trên 2 trục,bộ xử lý trung

tâm sẽ gửi các chuỗi lệnh tương ứng từ các giá trị này

• Nút nhấn: Khi nhấn thì bộ xử lý trung tâm sẽ gửi chuỗi tương ứng

Sử dụng mạch sạc TP4056 và IC nguồn LM1117T 3v3, pin Nokia

 Giải thích nguyên lý

• Khi sạc: Dòng điện đi vào thông qua cổng USB, sau đó đi ra 2 chân

OUT+ và OUT- OUT+ sẽ là ngõ ra chân INPUT của LM11177T ngõ ra

lúc này sẽ có điện áp là 3v3, điện áp nuôi chip cũng như các cảm biến

• Khi không sạc: Dòng điện được lấy từ pin Nokia

3.3.4 Khối xử lý trung tâm

 Yêu cầu thiết kế

Khối xử lý trung tâm được lập trình để:

 Giao tiếp với MPU6050 để lấy các giá trị gia tốc góc

 Giao tiếp với module Bluetooth

 Giao tiếp với Joystick và nút nhấn

 Giao tiếp với led RGB

Phương án lựa chọn

Trang 32

Để thực hiện được những công việc điều khiển như trên ta có thể sử dụng các loại vi điều khiển như 8051, AVR, PIC… Tuy nhiên những dòng vi xử lý trên có bộ vi xử lý thấp chỉ có 8bit cũng có thể xử lý được nhưng hiệu suất không cao

Lựa chọn

Trong đề tài này ta sử dụng chip STM32F103C8T6 vì:

 chip STM32F103C8T6 hiện là đang là vi điều khiển được phát triển rộng rãi và sử dụng phổ biến

 chip STM32F103C8T6 tiết kiệm năng lượng

 Tốc độ xử lý cao với bộ xử lý 32 bit

3.4 Thiết kế phần mềm

3.4.1 Các thành phần

3.4.1.1 Giao diện

Được chia thành 3 frame: Frame_1, Frame_mid, Frame_2, tương đương với 3 cột

 Frame_1: 9 Label, 8 Entry , 1 ComboBox, 1 CheckBox

• 9 Lable: LU, UP, UR, RIGHT, RD, DOWN, DL, LEFT định nghĩa cho các Entry

• 8 Entry này người dùng có thể điền vào các ký tự mong muốn để thiết lập các hướng cho JoyStick

• 1 ComboBox: lựa chọn hiệu ứng Led trên bàn phím chơi game

• 1 CheckBox :Tùy thuộc vào thể loại game mà người dùng có thể bật/tắt cảm biến MPU6050,

 Frame_2: 7 nút nhấn, 8 Label, 6 Entry

• 7 nút nhấn: 6 nút nhấn trên cùng được đặt tên BUTTON 1, BUTTON 2,…BUTTON

6 nhằm cho người dùng mô hình hóa nó là các nút nhấn trên KeyBoard game Nút nhấn còn lại được đặt tên SELECT GAME với mục đích lựa chọn thể loại game, hoặc xem lại thiết lập trước đó bằng việc truy vấn trên SQLite

• 8 Label : 2 Label(BUTTON, CHARACTER): định nghĩa các trường cho 6 Lable và

6 Entry ,6 Label còn lại được đặt tên BUTTON 1, BUTTON 2,…BUTTON 6 : nhằm định nghĩa cho các 6 Entry sẽ được đề cập bên dưới đây

• 6 Entry: Người dùng có thể điền vào các ký tự mong muốn để thiết lập các ký tự cho 6 nút nhấn

Ngày đăng: 18/12/2021, 22:57

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Giao tiếp I2C. - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Hình 2.1. Giao tiếp I2C (Trang 13)
Hình 2.2. Giao tiếp UART - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Hình 2.2. Giao tiếp UART (Trang 14)
Hình 2.3.1. CPU xử lý các Task - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Hình 2.3.1. CPU xử lý các Task (Trang 15)
Hình 2.3.2. Trạng thái các Task - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Hình 2.3.2. Trạng thái các Task (Trang 16)
Hình 2.5. Ví dụ về 1 cơ sở dữ liệu. - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Hình 2.5. Ví dụ về 1 cơ sở dữ liệu (Trang 18)
Hình 2.6. STM32F103C8T6 Pinout. - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Hình 2.6. STM32F103C8T6 Pinout (Trang 19)
Hình 2.7. Module Joystick - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Hình 2.7. Module Joystick (Trang 21)
Sơ đồ chân của module Joystick: - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Sơ đồ ch ân của module Joystick: (Trang 21)
Sơ đồ chân của MPU6050: - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Sơ đồ ch ân của MPU6050: (Trang 22)
Hình 2.11. IC nguồnLM1117T. - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Hình 2.11. IC nguồnLM1117T (Trang 25)
Hình 3.1.  Sơ đồ khối của hệ thống. - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Hình 3.1. Sơ đồ khối của hệ thống (Trang 27)
Bảng 3.2.1. So sánh các dòng vi xử lý. - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Bảng 3.2.1. So sánh các dòng vi xử lý (Trang 28)
Bảng 3.2.2. So sánh các công nghệ không dây. - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Bảng 3.2.2. So sánh các công nghệ không dây (Trang 29)
Hình 3.2. Lưu đồ - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Hình 3.2. Lưu đồ (Trang 34)
Hình 4.1.1. Schematic. - Đồ án môn học 2 Thiết kế KEYBOARD GAME
Hình 4.1.1. Schematic (Trang 36)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w