Tải bản đầy đủ (.pdf) (65 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.06 MB, 65 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
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


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

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

năm 2019


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ữ PYTHON -------------------------------------------------------------------- 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


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



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. PCB. -------------------------------------------------------------------------------- 28
Hình 4.1.3. Mơ hình hồ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

i


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


ii


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 q 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.

iii


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 q
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
q 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 , đã ln đồng hành, giúp đỡ để nhóm có thể thực hiện đề tài này
thành cơng.

Q trình biên soạn báo cáo khó có thể tránh hồn tồ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ú

iv


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

Ý NGHĨA

TỪ TIẾNG ANH
Inter-Integrated Circuit

Giao tiếp một thiết bị chủ
với nhiều thiết bị tớ.

UART

Universal

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


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).

API

Application
Interface

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

v


ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME

GVHD: PGS.TS PHAN VĂN CA

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.

1



ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME

1.4.

GVHD: PGS.TS PHAN VĂN CA

Đố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.
2


ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME

GVHD: PGS.TS PHAN VĂN CA

Đư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 tốn đưa ra giải thuật, thuật tố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.

3


ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME


GVHD: PGS.TS PHAN VĂN CA

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.

4


ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME


GVHD: PGS.TS PHAN VĂN CA

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

5


ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME

GVHD: PGS.TS PHAN VĂN CA

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 số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 ?
Các ứng dụng không cần dùng RTOS

 Ứng dụng đơn (ứng dụng chỉ có 1 chức năng).
 Ứng dụng có vịng lặp đơn giản.
 Ứng dụng <32kB.
Nếu ứng dụng của bạn mà kích thước chương trình lớn dần và độ phức tạp tăng lên thì
RTOS sẽ rất hữu dụng trong trường hợp này, lúc đó RTOS sẽ chia các ứng dụng phức tạp
thành các phần nhỏ hơn và dễ quản lý hơn.
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

6


ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME

GVHD: PGS.TS PHAN VĂN CA

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.
Task state
Một task trong RTOS thường có các trạng thái như sau

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

RUNNING: đang thực thi.
READY: sẵn sàng để thực hiện.
WAITING: chờ sự kiện.
INACTIVE: khơng được kích hoạt.
2.4. Ngơn ngữ PYTHON
Python là một ngơn ngữ lập trình hướng đối tượng rất thơng dụng dùng để viết các
tiện ích hệ thống và các đoạn mã trên Internet. Nó cũng được sử dụng như ngơn ngữ kết
dính đóng vai trị tích hợp C và C++. Được tạo ra bởi Guido van Rossum tại Amsterdam
năm 1990. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động. Python
được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software
Foundation quản lý. Phiên bản mới nhất của Python hiện tại (thời điểm viết bài) là bản
3.4.x.

7


ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME

GVHD: PGS.TS PHAN VĂN CA

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.
8


ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME


GVHD: PGS.TS PHAN VĂN CA

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.
9



ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME

GVHD: PGS.TS PHAN VĂN CA

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.
10


ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME








GVHD: PGS.TS PHAN VĂN CA

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.
Nguồn cung cấp: 2.6 ~ 3.6V.
Bộ ADC 12 bit.

Một số ưu nhược điểm của chip.
Ưu điểm:


Giá rẻ.
Nhỏ gọn.




Siêu tiết kiệm điện.



GPU mạnh.



Phục vụ cho nhiều mục đích.



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 ch̉n nạp code JATG.



Nhược điểm:


Khơng phù hợp với hệ thống lớn, phức tạp.




Cấu hình cịn thấp.

2.7. Module Joystick
Mạch điều khiển Joysticks được thiết kế để có thể giúp bạn điều khiển các thiết bị
theo mong muốn. Tương tự như trên các tay cầm game, nó sử dụng 2 biến trở trên 2 trục
X và Y, nhờ đó xuất mức điện áp đưa đến đầu vào analog của các vi điều khiển, nhờ đó dễ
dàng xử lý các tín hiệu này để điều khiển các thiết bị chấp hành theo mong muốn. Hơn nữa,
mạch Joystick còn cung cấp thêm 1 nút nhấn và có thể sử dụng nó với chức năng
accept/enter.

11


ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME

GVHD: PGS.TS PHAN VĂN CA

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.
 SW: Trả về giá trị nút nhấn.
Thơng số kỹ thuật:







Kích thước: 34x27x35mm.
5 chân kết nối.
1 Nút nhấn.
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.
12


ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME

GVHD: PGS.TS PHAN VĂN CA








đồ 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

13



ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME

GVHD: PGS.TS PHAN VĂN CA

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).
 Đèn trạng thái sạc:
o Đèn đỏ: đang sạc, chưa đầy
o Đèn xanh lá: Đã sạc đầy.
 Kích thước: 17x22x5mm.
2.10. Module Bluetooth HC05

Hình 2.10. Module HC05


14


ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME

GVHD: PGS.TS PHAN VĂN CA

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.
Thông số kỹ thuật:
 Điện áp hoạt động: 3.3 - 5V.
 Dòng điện khi hoạt động: khi Pairing 30 mA, sau khi pairing hoạt động truyền nhận
bình thường 8 mA.
 Baudrate UART có thể chọn được: 1200, 2400, 4800, 9600, 19200, 38400, 57600,
115200.
 Kích thước của module chính: 28 mm x 15 mm x 2.35 mm.

15


ĐỒ ÁN 2: THIẾT KẾ KEYBOARD GAME

GVHD: PGS.TS PHAN VĂN CA

2.11. IC nguồn LM1117T 3v3

Hình 2.11. IC nguồnLM1117T.

Được sử dụng làm mạch ởn áp.
Sơ đồ chân của IC nguồn:

Hình 2.11.1. Sơ đồ chân

 INPUT: Chân cấp nguồn vào 5V.
 OUTPUT: Ngõ ra 3v3.
 GND: Nối đất.
Thông số kỹ thuật:







Dải áp đầu vào nằm trong khoảng 4.25V – 5.25V.
Áp đầu ra: 3v3.
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 độ.

16


×