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

Đồ án ngành cơ điện: điều khiển thiết bị điện bằng giọng nói

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.39 MB, 40 trang )

ĐẠI HỌC LÂM NGHIỆP VIỆT NAM
KHOA CƠ ĐIỆN VÀ CÔNG TRÌNH
BỘ MÔN KỸ THUẬT ĐIỆN VÀ TỰ ĐỘNG HÓA

KHOÁ LUẬN TỐT NGHIỆP

Đề tài: Thiết kế bộ điều khiển các thiết bị điện trong nhà
bằng giọng nói

Giảng viên hướng dẫn : ThS. Đinh Hải Lĩnh
KS. Nguyễn Thành Trung

Sinh viên thực hiện

: Trần Mạnh Hùng

Lớp

: K58 – CƠ ĐIỆN TỬ

Khoá

: 58

Hà Nội - năm 2017


MỞ ĐẦU
Ngày nay, khoa học công nghệ ngày càng phát triển, đặc biệt là lĩnh vực tự động
hóa. Trong đó, thiết bị điện thông minh đang được đầu tư nghiên cứu và phát triển rất
mạnh với nhiều phương thức điều khiển khác nhau như: Touch (chạm), sử dụng cử chỉ


hay sử dụng bằng giọng nói để ra lệnh...qua đó có tính ứng dụng rất cao trong các khu
sản xuất hay các mô hình nhà thông minh.
Xuất phát từ thực tế trên, kết hợp với kiến thức đã học về điện tử, tin học đại
cương...cùng với những hiểu biết về các thiết bị điện tử, em đã quyết định thực hiện đề
tài: “Thiết kế bộ điều khiển các thiết bị điện trong nhà bằng giọng nói” với mục
đích tạo ra một bộ điều khiển thông minh, có khả năng điều khiển các thiết bị điện dân
dụng trong nhà bằng chính giọng nói của con người, cùng với đó là học hỏi, trau dồi
thêm kiến thức về các thiết bị điện tử và nâng cao hiểu biết cho bản thân.
Em đã sử dụng phương pháp nghiên cứu lý thuyết, kết hợp với thực nghiệm khoa học
để đưa ra hướng thiết kế, thử nghiệm và hoàn thiện sản phẩm. Đề tài của em có bố cục
gồm 3 chương:
Chương 1: Tổng quan về hệ thống điều khiển các thiết bị điện trong nhà và công nghệ
điều khiển bằng giọng nói.
Chương 2: Giới thiệu các linh kiện và phần mềm sử dụng trong bộ điều khiển
Chương 3: Thiết kế và xây dựng phần mềm điều khiển
Chương 4: Thiết kế cấu trúc phần cứng và lập trình cho bộ điều khiển
Lần đầu khai thác một lĩnh vực còn khá mới mẻ và do kiến thức còn hạn chế nên chắc
chắn không thể tránh khỏi những thiếu sót, vì vậy em rất mong có được sự góp ý và
nhắc nhở từ Thầy, Cô giáo để có thể hoàn thiện hơn đề tài của mình.
Em xin chân thành cảm ơn cô giáo ThS. Đinh Hải Linh, Thầy giáo KS Nguyễn
Thành Trung đã giúp đỡ em rất nhiều trong quá trình tìm hiểu, thiết kế và hoàn thành
đề tài đồ án này.
Sinh viên thực hiện

Trần Mạnh Hùng


NHẬN XÉT
(Của giảng viên hướng dẫn)


GIẢNG VIÊN HƯỚNG DẪN
(Chữ ký, họ tên)


NHẬN XÉT
(Của giảng viên phản biện)

GIẢNG VIÊN PHẢN BIỆN
(Chữ ký, họ tên)


MỤC LỤC
CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN CÁC THIẾT BỊ
ĐIỆN TRONG NHÀ VÀ CÔNG NGHỆ ĐIỀU KHIỂN BẰNG GIỌNG NÓI........1
1.1. Khái quát chung về các thiết bị điện thông minh ................................................1
1.2. Công nghệ điều khiển thiết bị điện không dây sử dụng bluetooth .....................1
1.3. Tổng quan về hệ thống điều khiển thiết bị điện trong nhà bằng giọng nói .......2
CHƯƠNG 2 GIỚI THIỆU CÁC LINH KIỆN VÀ PHẦN MỀM ỨNG DỤNG
DÙNG TRONG BỘ ĐIỀU KHIỂN ..............................................................................3
2.1. Giới thiệu về Arduino .............................................................................................. 3
2.2. Phần mềm lập trình Arduino IDE .........................................................................7
2.3. Phần mềm mô phỏng Proteus.................................................................................9
2.4. Ứng dụng App Inventor ........................................................................................10
CHƯƠNG 3 THIẾT KẾ VÀ XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN ...............12
3.1. Thiết kế và xây dựng phần mềm điều khiển .......................................................12
3.1.1. Thiết kế lưu đồ thuật toán trong chương trình trên vi điều khiển ...................12
3.1.2. Thiết kế lưu đồ thuật toán trong ứng dụng trên điện thoại Android ...............13
3.1.3. Thiết kế giao diện ứng dụng thiết kế trên App Inventor ...................................15
CHƯƠNG 4 THIẾT KẾ CẤU TRÚC PHẦN CỨNG VÀ LẬP TRÌNH CHO BỘ
ĐIỀU KHIỂN ................................................................................................................20

4.1. Thiết kế cấu trúc phần cứng .................................................................................20
4.1.1. Khối nguồn ...........................................................................................................21
4.1.2. Khối Module Bluetooth HC05 ............................................................................21
4.1.3. Khối xử lý trung tâm Arduino Uno R3 ............................................................... 24
4.1.4. Khối công suất......................................................................................................25
4.1.5. Khối LED báo trạng thái .....................................................................................28
4.2. Lập trình cho bộ điều khiển .................................................................................29
4.3. Hoàn thành sản phẩm và thực nghiệm................................................................ 32
KẾT LUẬN ............................................................................................................................. 33
DANH MỤC TÀI LIỆU THAM KHẢO .............................................................................. 34


DANH MỤC CÁC BẢNG, HÌNH VẼ
Bảng 2.1. Bảng thông số của Arduino Uno R3 .......................................................................... 5
Hình 1.1. Ứng dụng điều khiển thiết bị điện không dây của bluetooth ..................................... 1
Hình 1.2. Sơ đồ khối hệ thống.................................................................................................... 2
Hình 2.1. Một mạch Arduino Uno chính thức với các mô tả về các cổng I/O........................... 4
Hình 2.2. Mạch thực tế Arduino Uno R3 ................................................................................... 4
Hình 2.3. Giao diện của phần mềm Arduino IDE...................................................................... 8
Hình 2.4. Phần mềm mô phỏng mạch điện tử Proteus .............................................................. 9
Hình 2.5. Các linh kiện trong thư viện Arduino cho Proteus .................................................. 10
Hình 2.6. Các bước để tạo ra một ứng dụng với App Inventor ............................................... 11
Hình 3.1. Lưu đồ thuật toán trong chương trình trên vi điều khiển ........................................ 13
Hình 3.2. Lưu đồ thuật toán trong ứng dụng trên điện thoại Android .................................... 14
Hình 3.3. Tạo mới và đặt tên ứng dụng ................................................................................... 15
Hình 3.4. Thiết kế giao diện ứng dụng..................................................................................... 16
Hình 3.5. Lập trình tính năng cho các đối tượng .................................................................... 17
Hình 3.6. Lưu ứng dụng dưới dạng .apk để cài đặt vào điện thoại Android ........................... 17
Hình 3.7. Lưu và cài đặt ứng dụng bằng cách quét mã Barcode ............................................ 17
Hình 3.8. Ứng dụng trên điện thoại Android ........................................................................... 18

Hình 3.9. Giao diện ứng dụng sau khi khởi động .................................................................... 18
Hình 3.10. Danh sách các thiết bị có thể kết nối bluetooth ..................................................... 19
Hình 3.11. Ứng dụng sau khi kết nối thành công .................................................................... 19
Hình 3.12. Ứng dụng sẵn sàng nhận lệnh từ người dùng ........................................................ 19
Hình 4.1: Sơ đồ khối tổng quan bộ điều khiển thiết bị điện trong nhà bằng giọng nói .......... 20
Hình 4.2. Sơ đồ nguyên lý mạch nguồn 220VAC – 9VDC ....................................................... 21
Hình 4.3. Sơ đồ nguyên lý mạch nguồn 220VAC – 5VDC. ...................................................... 21
Hình 4.4. Hình ảnh thực tế Module Bluetooth HC-05 ............................................................. 22
Hình 4.5. Sơ đồ nguyên lý Module HC-05 ............................................................................... 22
Hình 4.6. Arduino với mô hình nhà thông minh ...................................................................... 24
Hình 4.7. IC đệm ULN2003A ................................................................................................... 25
Hình 4.8. Sơ đồ nguyên lý module relay 4 kênh trên phần mềm Altium designer ................... 27
Hình 4.9. Sản phẩm module relay 4 kênh ................................................................................ 27
Hình 4.10. LED đơn báo trạng thái ......................................................................................... 28
Hình 4.11. Sản phẩm module relay 4 kênh .............................................................................. 28
Hình 4.12. Bộ điều khiển thiết bị điện trong nhà bằng giọng nói............................................ 32
Hình 4.13. Bật đèn bằng giọng nói .......................................................................................... 32


CHƯƠNG 1
TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN CÁC THIẾT BỊ ĐIỆN
TRONG NHÀ VÀ CÔNG NGHỆ ĐIỀU KHIỂN BẰNG GIỌNG NÓI
1.1. Khái quát chung về các thiết bị điện thông minh
Thiết bị điện thông minh là một hệ thống các thiết bị điện, điện tử có sử dụng
năng lượng. Các thiết bị điện này sẽ trở nên thông minh khi có sự phối hợp giữa công
nghệ thông tin và truyền thông để chúng có thể kết nối và tự động thực hiện các thao
tác từ sự điều khiển của con người. Trong một ngôi nhà thông minh, các thiết bị điện
này sẽ được người dùng điều khiển thông qua điện thoại hay máy tính bảng. Ngoài ra,
có khả năng tương tác được với các thông số môi trường, giúp người sử dụng có thể
giám sát và điều khiển các thiết bị từ xa, đem lại sự an toàn, tiện nghi, linh hoạt, tiết

kiệm và thể hiện đẳng cấp người sử dụng.
1.2. Công nghệ điều khiển thiết bị điện không dây sử dụng bluetooth
Trong những năm gần đây, công nghệ truyền nhận dữ liệu không dây thông minh
đang có những bước phát triển mạnh mẽ, góp công lớn trong việc phát triển các hệ
thống điều khiển, giám sát từ xa, đặc biệt là các hệ thống thông minh. Hiện nay, có khá
nhiều công nghệ truyền nhận dữ liệu không dây như: RF, Wifi, NFC, Bluetooth...
Trong đó, Bluetooth là một trong những công nghệ được phát triển từ lâu và luôn được
cải tiến để nâng cao tốc độ cũng như khả năng bảo mật. Ứng nổi bật của bluetooth
được thể hiện như hình 1.1

Hình 1.1. Ứng dụng điều khiển thiết bị điện không dây của bluetooth

SVTH: Trần Mạnh Hùng

1

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


1.3. Tổng quan về hệ thống điều khiển thiết bị điện trong nhà bằng giọng nói
Xuất phát từ thực tế về sự phát triển của công nghệ truyền nhận dữ liệu không
dây cùng những ứng dụng quan trọng mà nó đem lại, em đã quyết định thực hiện đề
tài: “ Thiết kế bộ điều khiển thiết bị điện trong nhà bằng giọng nói’’. Đề tài ứng dụng
công nghệ Bluetooth phổ biến trên nhiều thiết bị sử dụng hệ điều hành Android, qua
đó áp dụng được rộng rãi cho người sử dụng, góp phần phát triển các hệ thống điều
khiển thông minh.
Bộ điều khiển thiết bị điện trong nhà bằng giọng nói là một dạng của thiết bị điện
thông minh. Hệ thống sẽ nhận tín hiệu từ giọng nói của con người thông qua một ứng
dụng cài đặt trên thiết bị Android có kết nối internet. Sau đó, tín hiệu sẽ được chuyển

tới cho bộ xử lý phân tích, xây dựng các thuật toán và cuối cùng đưa ra các tín hiệu
đóng cắt các thiết bị điện trong nhà nhờ relay. Sơ đồ khối của hệ thống điều khiển
được thể hiện như hình 1.2

Hình 1.2. Sơ đồ khối hệ thống

SVTH: Trần Mạnh Hùng

2

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


CHƯƠNG 2
GIỚI THIỆU CÁC LINH KIỆN VÀ PHẦN MỀM ỨNG DỤNG DÙNG
TRONG BỘ ĐIỀU KHIỂN
2.1. Giới thiệu về Arduino
Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với
nhau hoặc với môi trường được thuận lợi hơn. Phần cứng bao gồm một board mạch
nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32bit. Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào
analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau.
Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung giúp
dễ dàng lập trình và có thể mở rộng với các mạch khác. Một khía cạnh quan trọng của
Arduino là các kết nối tiêu chuẩn của nó, cho phép người dùng kết nối với CPU của
board với các module thêm vào có thể dễ dàng chuyển đổi, được gọi là shield. Vài
shield truyền thông với board Arduino trực tiếp thông qua các chân khách nhau, nhưng
nhiều shield được định địa chỉ thông qua serial bus I²C-nhiều shield có thể được xếp
chồng và sử dụng dưới dạng song song. Arduino chính thức thường sử dụng các dòng
chip megaAVR, đặc biệt là ATmega8, ATmega168, ATmega328, ATmega1280, và

ATmega2560. Một vài các bộ vi xử lý khác cũng được sử dụng bởi các mạch Aquino
tương thích. Hầu hết các mạch gồm một bộ điều chỉnh tuyến tính 5V và một thạch anh
dao động 16 MHz (hoặc bộ cộng hưởng ceramic trong một vài biến thể), mặc dù một
vài thiết kế như LilyPad chạy tại 8 MHz và bỏ qua bộ điều chỉnh điện áp onboard do
hạn chế về kích cỡ thiết bị. Một vi điều khiển Arduino cũng có thể được lập trình sẵn
với một boot loader cho phép đơn giản là upload chương trình vào bộ nhớ flash onchip, so với các thiết bị khác thường phải cần một bộ nạp bên ngoài. Điều này giúp
cho việc sử dụng Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính
gốc như là một bộ nạp chương trình. Một mạch Arduino hoàn chỉnh với đầy đủ các
cổng giao tiếp được thể hiện như hình 3.6

SVTH: Trần Mạnh Hùng

3

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


Hình 2.1. Một mạch Arduino Uno chính thức với các mô tả về các cổng I/O
Trong các dòng Arduino thì Arduino Uno R3 là Board mạch rất phổ biến
hiện nay (hình 2.2)

Hình 2.2. Mạch thực tế Arduino Uno R3
Các thông số của Arduino Uno R3 được thể hiện ở bảng 2.1:

SVTH: Trần Mạnh Hùng

4

GVHD: ThS. Đinh Hải Lĩnh

KS Nguyễn Thành Trung


Bảng 2.1. Bảng thông số của Arduino Uno R3
Vi điều khiển

Atmega328 họ 8bit

Điện áp hoạt động

5V DC (chỉ được cấp qua cổng
USB)

Tần số hoạt động

16 MHz

Dòng tiêu thụ

khoảng 30mA

Điện áp vào khuyên dùng

7-12V DC

Điện áp vào giới hạn

6-20V DC

Số chân Digital I/O


14 (6 chân hardware PWM)

Số chân Analog

6 (độ phân giải 10bit)

Dòng tối đa trên mỗi chân I/O

30 mA

Dòng ra tối đa (5V)

500 mA

Dòng ra tối đa (3.3V)

50 mA

Bộ nhớ flash

32 KB (ATmega328) với 0.5KB
dùng bởi bootloader

SRAM

2 KB (ATmega328)

EEPROM


1 KB (ATmega328)

Arduino UNO R3 có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8,
ATmega168, ATmega328. Bộ não này có thể xử lí những tác vụ đơn giản như điều
khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo
nhiệt độ - độ ẩm và hiển thị lên màn hình LCD…
- Năng lượng:

SVTH: Trần Mạnh Hùng

5

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


+ GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO R3. Khi dùng các
thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với
nhau.
+ 5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.
+ 3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA.
+ Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO R3, ta nối cực dương
của nguồn với chân này và cực âm của nguồn với chân GND.
+ IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO R3 có thể được đo ở
chân này và luôn là 5V. Mặc dù vậy không được lấy nguồn 5V từ chân này để sử dụng
bởi chức năng của nó không phải là cấp nguồn.
+ RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc
chân RESET được nối với GND qua 1 điện trở 10KΩ.
- Bộ nhớ:
+ 32KB bộ nhớ Flash: những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớ Flash

của vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho
bootloader.
+ 2KB cho SRAM (Static Random Access Memory): giá trị các biến khai báo khi lập
trình sẽ lưu ở đây. Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM. Khi mất
điện, dữ liệu trên SRAM sẽ bị mất.
+ 1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): đây
giống như một chiếc ổ cứng mini – nơi có thể đọc và ghi dữ liệu vào đây mà không
phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM.
- Các cổng vào ra:
Arduino UNO R3 có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ
có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA. Ở mỗi
chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328
(mặc định thì các điện trở này không được kết nối).
Một số chân digital có các chức năng đặc biệt như sau:

SVTH: Trần Mạnh Hùng

6

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


+ Chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX)
dữ liệu TTL Serial. Arduino Uno R3 có thể giao tiếp với thiết bị khác thông qua 2
chân này. Kết nối bluetooth chính là kết nối Serial không dây. Nếu không cần giao tiếp
Serial, không nên sử dụng 2 chân này nếu không cần thiết
+ Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép xuất ra xung PWM với độ phân giải
8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite(). Nói một
cách đơn giản, có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay

vì chỉ cố định ở mức 0V và 5V như những chân khác.
+ Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài các chức
năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với
các thiết bị khác.
+ LED 13: trên Arduino UNO R3 có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút
Reset, sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13. Khi chân
này được người dùng sử dụng, LED sẽ sáng.
Arduino UNO R3 có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0
→ 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân AREF trên board,
có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog. Tức là nếu cấp
điện áp 2.5V vào chân này thì có thể dùng các chân analog để đo điện áp trong
khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit.
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI
với các thiết bị khác.
2.2. Phần mềm lập trình Arduino IDE
Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thông dụng mạng lại nhiều
lợi thế cho Arduino, tuy nhiên sức mạnh thực sự của Arduino nằm ở phần mềm. Môi
trường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wring dễ hiều và dựa trên
nền tảng C/C++ rất quen thuộc với người làm kỹ thuật. Và quan trọng là số lượng thư
viện code được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn.

SVTH: Trần Mạnh Hùng

7

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


Arduino IDE là phần mềm dùng để lập trình cho Arduino. Giao diện phần mềm

lập trình Arduino IDE cho Arduino được thể hiện như hình 2.3.

Hình 2.3. Giao diện của phần mềm Arduino IDE
Môi trường lập trình Arduino IDE có thể chạy trên ba nền tảng phổ biến hiện nay
là Windows, Macintosh OSX và Linux. Do có tính chất nguồn mở nên môi trường lập
trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh ghiệm.
Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++. Và do ngôn ngữ
lập trình này dựa trên nền tảng ngôn ngữ C của AVR nên người dùng hoàn toàn có thể
nhúng thêm code viết bằng AVR vào chương trình nêu muốn. Hiện tại, Arduino IDE
có thể download từ trang chủ bao gồm các phiên bản sau:
- Arduino 1.0.5
- Arduino 1.5.5 BETA (hỗ trợ cho 2 board Arduino mới nhất là: Arduino Yun và
Arduino Due)
- Arduino IDE cho Intel Galileo

SVTH: Trần Mạnh Hùng

8

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


2.3. Phần mềm mô phỏng Proteus
Phần mềm Proteus là phần mềm cho phép mô phỏng hoạt động của mạch điện tử
bao gồm phần thiết kế mạch và viết chương trình điều khiển cho các họ vi điều khiển
như MCS-51, PIC, AVR,… Phần mềm bao gồm 2 chương trình: ISIS cho phép mô
phỏng mạch và ARES dùng để vẽ mạch in
Proteus là công cụ mô phỏng cho các loại Vi Điều Khiển khá tốt, nó hỗ trợ các
dòng VĐK PIC, 8051, PIC, dsPIC, AVR, HC11, MSP430, ARM7/LPC2000 … các

giao tiếp I2C, SPI, CAN, USB, Ethenet,… ngoài ra còn mô phỏng các mạch số, mạch
tương tự một cách hiệu quả. ISIS đã được nghiên cứu và phát triển trong hơn 12 năm
và có hơn 12000 người dùng trên khắp thế giới. Sức mạnh của nó là có thể mô phỏng
hoạt động của các hệ vi điều khiển mà không cần thêm phần mềm phụ trợ nào. Sau đó,
phần mềm ISIS có thể xuất file sang ARES hoặc các phần mềm vẽ mạch in khác

Hình 2.4. Phần mềm mô phỏng mạch điện tử Proteus
* Thư viện Arduino trong Proteus
Thư viện Arduino là một bổ sung rất hay cho phần mềm mô phỏng Proteus, nó
giúp cho việc mô phỏng Arduino được thuận tiện và dễ dàng hơn thay vì chỉ mô phỏng
được chip Atmega328 (nhân của Arduino), thư viện này được phát triển bởi các kỹ sư
Cesar Osaka, Daniel Cezar, Roberto Bauer và được đăng tải trên Blog tiếng Bồ Đào
Nha: />SVTH: Trần Mạnh Hùng

9

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


Thư viện bao gồm các linh kiện sau:
+ Arduino Uno (phiên bản chip Atmega 328 chân DIP)
+ Arduino Uno (phiên bản chip Atmega 328 chân SMD)
+ Arduino Mega
+ Arduino Lilypad
+ Arduino Nano
+ Cảm biến siêu âm Ulstrasonic V2
Các linh kiện trong thư viện Arduino của Proteus được thể hiện như hình 2.5:

Hình 2.5. Các linh kiện trong thư viện Arduino cho Proteus

2.4. Ứng dụng App Inventor
App Inventor là một công cụ lập trình trực quan dùng để phát triển phần mềm
ứng dụng trên hệ điều hành Android được Google giới thiệu vào ngày 12/7/2010.
Với công cụ App Inventor, Google tạo điều kiện để mọi người có thể tự xây dựng
phần mềm ứng dụng cho thiết bị di động dùng hệ điều hành Android.

SVTH: Trần Mạnh Hùng

10

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


App Inventor thực chất là một ứng dụng web, chạy bởi trình duyệt trên máy tính
cá nhân.Tuy nhiên, người dùng vẫn phải cài đặt một phần mềm Java mang tên App
Inventor Extras, có nhiệm vụ điều khiển điện thoại Android (kết nối với máy tính
thông qua cổng USB). Nhờ vậy, người dùng có thể nhanh chóng chuyển ứng dụng từ
máy tính cá nhân qua điện thoại Android để chạy thử. Nhóm dự án App Inventor tại
Google dự định bổ sung những bộ mô phỏng điện thoại Android để có thể sử dụng
App Inventor mà không cần có điện thoại Android thực sự gắn vào máy tính. Việc
thiết kế code trên app rất tiện lợi và đơn giản. Chỉ cần kéo các phần tử trong khối
blocks rồi sau đó thả ra màn hình và lắp ghép theo ý tưởng của người sử dụng. Các
bước tạo ra một ứng dụng với App Inventor (hình 2.6)

Hình 2.6. Các bước để tạo ra một ứng dụng với App Inventor
Ngày nay, MIT đã hoàn thiện App Inventor và nó được chia sẻ ngay trên tài
khoản Google. Các lập trình viên mới bắt đầu hoặc bất kỳ ai muốn tạo ứng dụng
Android chỉ cần vào địa chỉ web của MIT, nhập thông tin tài khoản Google, và từ
những mảnh ghép nhỏ, xây dựng những ý tưởng của mình.

Để sử dụng được App Inventor, người dùng cần truy cập vào địa chỉ:
ai2.appinventor.mit.edu. Sau đó tiến hành đăng nhập bằng tài khoản Google để mở
trang quản lí các project.
SVTH: Trần Mạnh Hùng

11

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


CHƯƠNG 3
THIẾT KẾ VÀ XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN
3.1. Thiết kế và xây dựng phần mềm điều khiển
* Xây dựng lưu đồ thuật toán
Trong thực tế, để thay đổi trạng thái của một thiết bị điện (hoạt động -> ngừng
hoạt động hoặc ngược lại) ta sử dụng cách thông dụng nhất đó là phải tác dụng cơ trực
tiếp lên công tắc, attomat, jack cắm nguồn…nhằm bật hay ngắt nguồn cung cấp vào
thiết bị điện. Tương tự, hệ thống điều khiển các thiết bị điện trong nhà bằng giọng nói
cũng sẽ thực hiện bật hoặc ngắt nguồn cung cấp vào thiết bị điện để thay đổi trạng thái
hoạt động của nó, tuy nhiên, người sử dụng không cần tác động cơ học trực tiếp lên
công tắc, hay jack cắm nguồn, mà chỉ cần ra lệnh bằng giọng nói.
Để làm được điều này, hệ thống sẽ đóng vai trò là một bộ phận trung gian xử lý giọng
nói sau đó chuyển thành tín hiệu tương tự đóng/ cắt nguồn cấp vào thiết bị điện thông
qua relay. Dưới đây là lưu đồ thuật toán trong trương trình trên vi điều khiển và trong
ứng dụng trên điện thoại Andrioid
3.1.1. Thiết kế lưu đồ thuật toán trong chương trình trên vi điều khiển
Dựa vào mục tiêu và yêu cầu của đề tài, em đã xây dựng được lưu đồ thuật toán
làm cơ sở để viết code lập trình như hình 3.1


SVTH: Trần Mạnh Hùng

12

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


Hình 3.1. Lưu đồ thuật toán trong chương trình trên vi điều khiển
* Giải thích lưu đồ thuật toán
Khi hệ thống được cấp nguồn thì trước tiên sẽ khởi tạo chân vào/ra của vi điều
khiển trên kit Arduino. Các chân điều khiển đèn, chân tín hiệu đưa sang điều khiển
khối công suất là các chân ra. Chân nguồn cấp 5VDC, 9VDC là các chân vào.
Để vi điều khiển của Arduino có thể nhận và xử lý được giọng nói của người dùng,
trước tiên cần khai báo một chuỗi ký tự (string). Chuỗi ký tự này sẽ đóng vai trò là
mẫu để so sánh với các chuỗi ký tự nằm trong bộ nhớ tạm của vi điều khiển mà trước
đó module bluetooth HC-05 gửi về. Vi điều khiển sẽ bắt đầu chu trình so sánh.
3.1.2. Thiết kế lưu đồ thuật toán trong ứng dụng trên điện thoại Android
Căn cứ vào yêu cầu của đề tài và lưu đồ thuật toán trên vi điều khiển, em đã thiết
kế lưu đồ thuật toán của ứng dụng trên điện thoại Android như hình 3.2.:

SVTH: Trần Mạnh Hùng

13

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


Hình 3.2. Lưu đồ thuật toán trong ứng dụng trên điện thoại Android

* Giải thích lưu đồ hình 2.3:
Trước khi mở ứng dụng, người dùng cần bật bluetooth của điện thoại android
trước. Tiếp theo, người dùng sẽ chọn và kết nối với địa chỉ có tên HC-05 (modlue
bluetooth của bộ điều khiển) thông qua một list danh sách các thiết bị đang phát tín
hiệu bluetooth.
Khi kết nối thành công, người dùng ra lệnh cho bộ điều khiển bằng cách click vào biểu
tượng micro trên giao diện ứng dụng và phát giọng nói. Ứng dụng sẽ nhận diện giọng
SVTH: Trần Mạnh Hùng

14

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


nói rồi sau đó gửi dữ liệu về cho bộ điều khiển thực hiện lệnh, đồng thời hiển thị giọng
nói đã phát dưới dạng text.
3.1.3. Thiết kế giao diện ứng dụng thiết kế trên App Inventor
Dựa vào thuật toán đã xây dựng cho ứng dụng, bằng cách truy cập vào địa chỉ:
ai2.appinventor.mit.edu. Em đã thiết kế được ứng dụng điều khiển cài đặt trên điện
thoại Android có tên: Voice_activation_TMH, các bước thực hiện như sau:
Bước 1: Nhấn vào Project chọn Start new project để tạo mới ứng dụng, chọn tên ứng
dụng là: Voice_activation_TMH (hình 2.4)

Hình 3.3. Tạo mới và đặt tên ứng dụng
Bước 2: Lựa chọn các đối tượng phù hợp với ứng dụng ở cột Palette, kéo sang vùng
Viewer để thiết kế giao diện cho ứng dụng. Danh sách và thuộc tính của từng đối
tượng sẽ nằm ở cột Components và Properties (hình 2.5)

SVTH: Trần Mạnh Hùng


15

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


Hình 3.4. Thiết kế giao diện ứng dụng
Bước 3: Sau khi thiết kế xong giao diện, chuyển qua thẻ block để lập trình tính năng
cho các đối tượng cũng như chương trình hoạt động của ứng dụng ( hình 2.6)

SVTH: Trần Mạnh Hùng

16

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


Hình 3.5. Lập trình tính năng cho các đối tượng
Bước 4: Lưu và tải ứng dụng và cài đặt vào thiết bị Android, có 2 cách:
+ Cách 1: Nhấn vào nút Build trên thanh công cụ, chọn App (save .apk to my computer)
để lưu ứng dụng dưới dạng .apk và sau đó cài đặt vào thiết bị android (hình 2.7)

Hình 3.6. Lưu ứng dụng dưới dạng .apk để cài đặt vào điện thoại Android
+ Cách 2: Tải ứng dụng có tên MIT AI2 Companion trên CH Play, khởi động ứng
dụng và quét mã barcode được tạo ra khi nhấn vào Build và chọn App (provide QR
code for .apk) (hình 2.8)

Hình 3.7. Lưu và cài đặt ứng dụng bằng cách quét mã Barcode

Sau khi đã tải và cài đặt thành công, sau khi khởi động, ứng dụng sẽ có giao diện như
hình 2.6

SVTH: Trần Mạnh Hùng

17

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


Hình 3.8. Ứng dụng trên điện thoại Android
Các thao tác sử dụng phần mềm để kết nối tới bộ điều khiển thiết bị điện trong
nhà bằng giọng nói:
Bước 1: Bật bluetooth trên thiết bị android và khởi động ứng dụng
Voice_activation_TMH. Ban đầu khi chưa được kết nối, ứng dụng sẽ hiển thị chữ:
NOT CONNECTED (hình 2.9)

Hình 3.9. Giao diện ứng dụng sau khi khởi động
Bước 2: Nhấn vào nút Seclect Device, ứng dụng sẽ hiển thị 1 list danh sách các thiết bị
khác đang phát tín hiệu bluetooth, khi đó chọn và kết nối với thiết bị có tên kèm địa
chỉ MAC: 20:16:12:12:20:67 HC-05, Nếu kết nối thành công, ứng dụng sẽ hiển thị chữ
CONNECTED, nếu thiết bị chưa được bật ứng dụng sẽ báo lỗi (hình 2.10 và 2.11)

SVTH: Trần Mạnh Hùng

18

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung



Hình 3.10. Danh sách các thiết bị có thể kết nối bluetooth

Hình 3.11. Ứng dụng sau khi kết nối thành công
Bước 3: Nhấn vào nút có biếu tượng micro màu xanh trên màn hình cho tới khi ứng
dụng hiện chữ Speak now và hình micro màu đỏ, sau đó ra lệnh cho bộ điều khiển
(hình 2.12)

Hình 3.12. Ứng dụng sẵn sàng nhận lệnh từ người dùng

SVTH: Trần Mạnh Hùng

19

GVHD: ThS. Đinh Hải Lĩnh
KS Nguyễn Thành Trung


×