You are on page 1of 40

MỤC LỤC

DANH MỤC HÌNH VẼ


LỜI NÓI ĐẦU
CHƯƠNG 1: KHÁI QUÁT VỀ TRÍ TUỆ NHÂN TẠO VÀ NHẬN DIỆN
GIỌNG NÓI
1.1. Trí tuệ nhân tạo AI

1.1.1. Khái niệm

Trí tuệ nhân tạo (AI) là một nhánh rộng lớn của khoa học máy tính liên
quan đến việc xây dựng các máy thông minh có khả năng thực hiện các tác vụ
thường đòi hỏi trí tuệ con người. AI là một khoa học liên ngành với nhiều cách
tiếp cận, nhưng những tiến bộ trong học máy và học sâu đang tạo ra sự thay đổi
mô hình trong hầu hết mọi lĩnh vực của ngành công nghệ.. Nó đơn giản việc sử
dụng các thuật toán để tạo ra sự thông minh cho máy móc và giúp chúng thực
hiện những việc mà trước tới giờ con người vẫn làm tốt hơn.

Thuật ngữ này thường được áp dụng cho dự án phát triển các hệ thống
được ưu đãi với các đặc tính của quá trình trí tuệ của con người, chẳng hạn như
khả năng suy luận, khám phá ý nghĩa, khái quát hóa hoặc học hỏi từ kinh
nghiệm trong quá khứ. Kể từ khi máy tính kỹ thuật số phát triển vào những năm
1940, người ta đã chứng minh rằng máy tính có thể được lập trình để thực hiện
các nhiệm vụ rất phức tạp - chẳng hạn như khám phá các chứng minh cho các
định lý toán học hoặc chơi cờ với sự thành thạo tuyệt vời.

Tuy nhiên, mặc dù có những tiến bộ liên tục về tốc độ xử lý máy tính và
dung lượng bộ nhớ, vẫn chưa có chương trình nào có thể phù hợp với tính linh
hoạt của con người trên các miền rộng hơn hoặc trong các công việc đòi hỏi
nhiều kiến thức hàng ngày. Mặt khác, một số chương trình đã đạt được mức hiệu
suất của các chuyên gia và chuyên gia con người trong việc thực hiện các nhiệm
vụ cụ thể nhất định, do đó trí tuệ nhân tạo theo nghĩa hạn chế này được tìm thấy
trong các ứng dụng đa dạng như chẩn đoán y tế, máy tính, công cụ tìm kiếm và
nhận dạng giọng nói hoặc chữ viết tay.

1.1.2. Lịch sử trí tuệ nhân tạo


Thuật ngữ trí tuệ nhân tạo được đặt ra vào năm 1956, nhưng AI ngày nay
đã trở nên phổ biến hơn nhờ khối lượng dữ liệu tăng lên, các thuật toán nâng cao
cũng như những cải tiến về khả năng tính toán và lưu trữ.

Nghiên cứu AI ban đầu vào những năm 1950 khám phá các chủ đề như
giải quyết vấn đề và các phương pháp biểu tượng. Trong những năm 1960, Bộ
Quốc phòng Hoa Kỳ đã quan tâm đến loại công việc này và bắt đầu đào tạo máy
tính để bắt chước các suy luận cơ bản của con người. Ví dụ, Cơ quan Dự án
Nghiên cứu Tiên tiến Quốc phòng (DARPA) đã hoàn thành các dự án lập bản đồ
đường phố vào những năm 1970. Và DARPA đã sản xuất các trợ lý cá nhân
thông minh vào năm 2003, rất lâu trước khi Siri, Alexa hay Cortana là những cái
tên quen thuộc.

Công việc ban đầu này đã mở đường cho tự động hóa và lý luận chính
thức mà chúng ta thấy trong máy tính ngày nay, bao gồm hệ thống hỗ trợ quyết
định và hệ thống tìm kiếm thông minh có thể được thiết kế để bổ sung và tăng
cường khả năng của con người.

Từ năm 1950-1970, trí tuệ nhân tạo phát triển một lĩnh vực với tên gọi
“Neural Network”, dịch ra tiếng việt là mạng thần kinh nhân tạo. Mạng thần
kinh là hệ thống tính toán với các nút kết nối với nhau hoạt động giống như các
tế bào thần kinh trong não người. Bằng cách sử dụng các thuật toán, họ có thể
nhận ra các mẫu và mối tương quan ẩn trong dữ liệu thô, phân cụm và phân loại
nó, và theo thời gian liên tục học hỏi và cải thiện.
Hình 1. 1. Cấu trúc mạng thần kinh nhân tạo

Từ năm 1980 – 2010, trí tuệ nhân tạo phát triển mạnh lĩnh vực học máy
(machine learning). Học máy là một phương pháp phân tích dữ liệu tự động hóa
việc xây dựng mô hình phân tích. Đây là một nhánh của trí tuệ nhân tạo dựa trên
ý tưởng rằng các hệ thống có thể học hỏi từ dữ liệu, xác định các mẫu và đưa ra
quyết định với sự can thiệp tối thiểu của con người.

Hình 1. 2. Cấu trúc học máy

Từ năm 2010 đến ngày nay, lĩnh vực học máy đã phát triển một chi
nghành có tên gọi là học sâu (deep learning). Học sâu là một loại máy học đào
tạo máy tính thực hiện các tác vụ giống như con người, chẳng hạn như nhận
dạng giọng nói, xác định hình ảnh hoặc đưa ra dự đoán. Thay vì tổ chức dữ liệu
để chạy thông qua các phương trình được xác định trước, học sâu thiết lập các
tham số cơ bản về dữ liệu và huấn luyện máy tính tự học bằng cách nhận dạng
các mẫu sử dụng nhiều lớp xử lý.

1.1.3. Ứng dụng

AI trong thương mại điện tử: Công nghệ Trí tuệ nhân tạo được sử dụng để
tạo công cụ đề xuất mà qua đó bạn có thể tương tác tốt hơn với khách hàng của
mình. Những đề xuất này được đưa ra phù hợp với lịch sử duyệt web, sở thích
và sở thích của họ. Nó giúp cải thiện mối quan hệ của bạn với khách hàng và
lòng trung thành của họ đối với thương hiệu của bạn.

AI trong Robotics: Robotics là một lĩnh vực khác mà các ứng dụng trí tuệ
nhân tạo thường được sử dụng. Robot được hỗ trợ bởi AI sử dụng các bản cập
nhật theo thời gian thực để cảm nhận các chướng ngại vật trên đường đi của nó
và lập kế hoạch trước cho hành trình của nó ngay lập tức. 

AI trong chăm sóc sức khỏe: Trí tuệ nhân tạo tìm thấy các ứng dụng đa
dạng trong lĩnh vực chăm sóc sức khỏe. AI được sử dụng trong lĩnh vực chăm
sóc sức khỏe để tạo ra những cỗ máy tinh vi có thể phát hiện bệnh và xác định tế
bào ung thư. AI có thể giúp phân tích các tình trạng mãn tính với dữ liệu phòng
thí nghiệm và y tế khác để đảm bảo chẩn đoán sớm. AI sử dụng sự kết hợp của
dữ liệu lịch sử và trí thông minh y tế để phát hiện ra các loại thuốc mới.

AI trong ô tô: Trí tuệ nhân tạo được sử dụng để xây dựng các phương tiện
tự lái. AI có thể được sử dụng cùng với camera của xe, radar, dịch vụ đám mây,
GPS và các tín hiệu điều khiển để vận hành xe. AI có thể cải thiện trải nghiệm
trong xe và cung cấp các hệ thống bổ sung như phanh khẩn cấp, giám sát điểm
mù và đánh lái hỗ trợ người lái.

Ngoài ra còn rất nhiều ứng dụng được sử dụng trong các lĩnh vực khác.

1.2. Nhận dạng giọng nói

1.2.1. Khái niệm


Nhận dạng giọng nói hoặc người nói là khả năng của một máy hoặc
chương trình nhận và giải thích chính tả hoặc hiểu và thực hiện các lệnh bằng
giọng nói. Nhận dạng giọng nói đã trở nên nổi tiếng và được sử dụng với sự gia
tăng của AI và các trợ lý thông minh, chẳng hạn như Alexa của
Amazon, Siri của Apple và Cortana của Microsoft.

Hệ thống nhận dạng giọng nói cho phép người tiêu dùng tương tác với
công nghệ chỉ bằng cách nói chuyện với nó, cho phép các yêu cầu rảnh tay, lời
nhắc và các tác vụ đơn giản khác.

1.2.2. Cách nhận dạng giọng nói hoạt động

Phần mềm nhận dạng giọng nói trên máy tính yêu cầu âm thanh tương
tự phải được chuyển đổi thành   tín hiệu kỹ thuật số , được gọi là chuyển đổi
tương tự sang kỹ thuật số . Để một máy tính giải mã một tín hiệu, nó phải có
một cơ sở dữ liệu kỹ thuật số, hoặc từ vựng, các từ hoặc âm tiết, cũng như một
phương tiện nhanh chóng để so sánh dữ liệu này với các tín hiệu. Các mẫu giọng
nói được lưu trữ trên ổ cứng và được tải vào bộ nhớ khi chương trình được
chạy. Bộ so sánh kiểm tra các mẫu được lưu trữ này so với đầu ra của bộ chuyển
đổi A/D - một hành động được gọi là nhận dạng mẫu.

Trên thực tế, kích thước vốn từ vựng hiệu quả của chương trình nhận
dạng giọng nói liên quan trực tiếp đến dung lượng bộ nhớ truy cập ngẫu nhiên
của máy tính mà nó được cài đặt. Một chương trình nhận dạng giọng nói chạy
nhanh hơn nhiều lần nếu toàn bộ từ vựng có thể được tải vào  RAM , so với việc
tìm kiếm một số khớp trong ổ cứng. Tốc độ xử lý cũng rất quan trọng vì nó ảnh
hưởng đến tốc độ máy tính có thể tìm kiếm các kết quả trùng khớp trên RAM.

Trong khi công nghệ nhận dạng giọng nói bắt nguồn từ PC, nó đã được
chấp nhận trong cả không gian kinh doanh và tiêu dùng trên thiết bị di động và
trong các sản phẩm trợ lý gia đình. Sự phổ biến của điện thoại thông minh đã
mở ra cơ hội để thêm công nghệ nhận dạng giọng nói vào túi người tiêu dùng,
trong khi các thiết bị gia đình, như Google Home và Amazon Echo, đưa công
nghệ nhận dạng giọng nói vào phòng khách và nhà bếp. Nhận dạng giọng nói,
kết hợp với sự phát triển ổn định của cảm biến vạn vật kết nối Internet, đã bổ
sung thêm một lớp công nghệ cho nhiều sản phẩm tiêu dùng mà trước đây
không có bất kỳ khả năng thông minh nào.

Khi việc sử dụng công nghệ nhận dạng giọng nói ngày càng tăng và nhiều
người dùng tương tác với nó, các công ty triển khai phần mềm nhận dạng giọng
nói sẽ có nhiều dữ liệu và thông tin hơn để cung cấp cho mạng nơ-ron cung cấp
năng lượng cho hệ thống nhận dạng giọng nói, do đó cải thiện khả năng và độ
chính xác của các sản phẩm nhận dạng giọng nói.

1.2.3. Sử dụng nhận dạng giọng nói

Việc sử dụng nhận dạng giọng nói đã phát triển nhanh chóng khi AI, máy
học và sự chấp nhận của người tiêu dùng đã trưởng thành. Các trợ lý kỹ thuật số
nội bộ từ Google, Amazon đến Apple đều đã triển khai phần mềm nhận dạng
giọng nói để tương tác với người dùng. Cách người tiêu dùng sử dụng công nghệ
nhận dạng giọng nói khác nhau tùy thuộc vào sản phẩm, nhưng nó có thể bao
gồm chuyển giọng nói thành văn bản, thiết lập lời nhắc, tìm kiếm trên internet
và trả lời các câu hỏi và yêu cầu đơn giản, chẳng hạn như phát nhạc hoặc chia sẻ
thông tin thời tiết hoặc giao thông.

1.2.4. Lập trình nhận dạng giọng nói

Ngày nay, với sự phát triển của các ngôn ngữ lập trình bậc cao, chúng ta
có thể dễ dàng lập trình nhận dạng giọng nói cho máy tính. Chỉ cần cài đặt ngôn
ngữ lập trình và thư viện nhận dạng giọng nói của ngôn ngữ đó, có thể viết
được chương trình này cho máy tính. Và ngôn ngữ python là một trong những
ngôn ngữ có thể hỗ trợ công việc này.

1.2.5. Khả năng điều khiển giọng nói trong hệ thống sử dụng PLC
Hiện nay trên thị trường không có bất kỳ loại PLC có điều khiển giọng
nói tích hợp. Vì thế việc điều khiển PLC bằng giọng nói chỉ có thể thực hiện
được thông qua máy tính.

Để thực hiện điều này, việc đầu tiên cần làm là viết một chương trình
nhận diện giọng trên máy tính bằng ngôn ngữ lập trình bậc cao. Sau đó sẽ gửi
các lệnh tương ứng với địa chỉ cụ thể của PLC. Việc sử dụng giọng nói điều
khiển PLC trong các hệ thống ngày nay vẫn còn hạn chế nhưng tương lai không
xa nó sẽ có thể trở nên phổ biến hơn.

CHƯƠNG 2. CHƯƠNG TRÌNH NHẬN DIỆN GIỌNG NÓI BẰNG NGÔN


NGỮ PYTHON
2.1. Ngôn ngữ python

2.1.1. Khái quát về ngôn ngữ python

a) Khái niệm

Python là một ngôn ngữ lập trình đa nền tảng, có nghĩa là nó có thể chạy
trên nhiều nền tảng như Windows, macOS, Linux và thậm chí đã được chuyển
sang các máy ảo Java và .NET. Nó là miễn phí và mã nguồn mở. Nó được sử
dụng trong phát triển web, khoa học dữ liệu, tạo nguyên mẫu phần mềm,…May
mắn thay cho người mới bắt đầu, python có cú pháp đơn giản, dễ sử dụng. Điều
này làm cho python trở thành một ngôn ngữ tuyệt vời để học lập trình cho
người mới bắt đầu. Nó sử dụng các từ khóa tiếng Anh thường xuyên khi các
ngôn ngữ khác sử dụng dấu câu và nó có ít cấu trúc cú pháp hơn các ngôn ngữ
khác.

Python được thông dịch: Python được trình thông dịch xử lý trong thời
gian chạy. Bạn không cần phải biên dịch chương trình của mình trước khi thực
thi nó. Điều này tương tự với PERL và PHP.
Python hướng đối tượng: Python hỗ trợ phong cách hướng đối tượng
hoặc kỹ thuật lập trình đóng gói mã bên trong các đối tượng.

Python là ngôn ngữ dành cho người mới bắt đầu: Python là một ngôn ngữ
tuyệt vời cho các lập trình viên mới bắt đầu và hỗ trợ phát triển một loạt các ứng
dụng từ xử lý văn bản đơn giản đến trình duyệt www đến trò chơi.

b) Lịch sử của Python

 Python được phát triển bởi Guido van Rossum vào cuối những năm 80
và đầu những năm 90 tại Viện Nghiên cứu Quốc gia về Toán học và
Khoa học Máy tính ở Hà Lan.

 Tên gọi python xuất phát từ một đoàn hài kịch nổi tiếng ở Anh Monty
Python mà bản thân Guido là một fan hâm mộ nó.

 Python có nguồn gốc từ nhiều ngôn ngữ khác, bao gồm ABC,
Modula-3, C, C ++, Algol-68, SmallTalk và Unix shell và các ngôn
ngữ kịch bản khác.

 Python đã được đăng ký bản quyền. Giống như Perl, mã nguồn Python


hiện có sẵn theo Giấy phép Công cộng GNU (GPL).

 Python hiện được duy trì bởi một nhóm phát triển cốt lõi tại viện, mặc
dù Guido van Rossum vẫn giữ một vai trò quan trọng trong việc định
hướng sự phát triển của nó.

c) Các tính năng của Python

 Dễ học: Python có ít từ khóa, cấu trúc đơn giản và cú pháp được xác
định rõ ràng. Điều này cho phép học sinh tiếp thu ngôn ngữ một cách
nhanh chóng.

 Dễ đọc: Mã python được xác định rõ ràng hơn và có thể nhìn thấy
bằng mắt.

 Dễ bảo trì: Mã nguồn của Python khá dễ bảo trì.


 Thư viện tiêu chuẩn rộng rãi: Phần lớn thư viện của Python rất di động
và tương thích đa nền tảng trên UNIX, Windows và Macintosh.

 Chế độ tương tác: Python có hỗ trợ chế độ tương tác cho phép kiểm
tra tương tác và gỡ lỗi các đoạn mã.

 Portable: Python có thể chạy trên nhiều nền tảng phần cứng khác nhau
và có giao diện giống nhau trên tất cả các nền tảng.

 Có thể mở rộng: Bạn có thể thêm các mô-đun cấp thấp vào trình thông
dịch Python. Các mô-đun này cho phép các lập trình viên thêm vào
hoặc tùy chỉnh các công cụ của họ để hiệu quả hơn.

 Cơ sở dữ liệu: Python cung cấp giao diện cho tất cả các cơ sở dữ liệu
thương mại chính.

 Lập trình GUI: Python hỗ trợ các ứng dụng GUI có thể được tạo và
chuyển sang nhiều lệnh gọi hệ thống, thư viện và hệ thống cửa sổ,
chẳng hạn như Windows MFC, Macintosh và hệ thống X Window của
Unix.

 Khả năng mở rộng: Python cung cấp cấu trúc và hỗ trợ tốt hơn cho các
chương trình lớn hơn so với kịch bản shell.

Ngoài các tính năng được đề cập ở trên, Python có một danh sách lớn các
tính năng tốt, một số ít được liệt kê dưới đây:

 Nó hỗ trợ các phương pháp lập trình có cấu trúc và chức năng cũng
như OOP.

 Nó có thể được sử dụng như một ngôn ngữ kịch bản hoặc có thể được
biên dịch thành mã byte để xây dựng các ứng dụng lớn.

 Nó cung cấp các kiểu dữ liệu động cấp rất cao và hỗ trợ kiểm tra kiểu
động.

 Nó hỗ trợ thu gom rác tự động.


 Nó có thể dễ dàng tích hợp với C, C ++, COM, ActiveX, CORBA và
Java.

d) Lệnh và cấu trúc điều khiển

Lệnh trong python đơn giản hơn các ngôn ngữ khác không cần phải kết
thúc bằng bất cứ ký tự gì.

Python cũng có các cấu trúc điều khiển:

 Cấu trúc rẽ nhánh: if elif else.

 Cấu trúc lặp: while, for.

 Từ khóa class để khai báo lớp ( sử dụng trong lập trình hướng đối
tượng).

 Lệnh Def: để định nghĩa hàm.

d) Ứng dụng

YouTube, Instagram và Quora là một trong vô số các trang web sử dụng


Python. Phần lớn mã của Dropbox là Python (nơi Van Rossum hiện đang làm
việc), Python đã được sử dụng rộng rãi bởi hãng hiệu ứng đặc biệt kỹ thuật số
ILM (công ty có tác phẩm trải dài trên tất cả các bộ phim Chiến tranh giữa các
vì sao và Marvel).

2.1.2. Phần mềm chạy python

Có thể nhập trực tiếp các câu lệnh của python trên Command Prompt – là
một công cụ có sẵn của hệ điều hành Window.
Hình 2. 1. Chạy python trên Command Prompt

Tuy nhiên để thuận tiện hơn trong việc lập trình có thể chạy python trong
môi trường phát triển tích hợp (IDE). IDE tích hợp sẵn trình biên dịch hoặc trình
thông dịch bên trong nó giúp bạn thực thi code trực tiếp khi đang lập trình ứng
dụng, tiêu biểu như Visual Studio, Esclipe, Xcode, Android studio…v.v. Và khi
viết chương trình trên các phần mềm này ta chỉ cần lưu file với đuôi .py có thể
chạy chương trình trên Command Prompt.

Một trong những phần mềm phổ biến và dễ dàng để lập trình là Visual
Studio Code. Nó là một trình soạn thảo mã nguồn nhẹ nhưng mạnh mẽ, chạy
trên máy tính và có sẵn cho windows, macOS và Linux. Nó đi kèm với hỗ trợ
tích hợp cho JavaScript, TypeScript và Node.js và có một hệ sinh thái mở rộng
phong phú cho các ngôn ngữ khác ( chẳng hạn như C++, C#, Java, Python, PHP,
Go).

2.2. Các thư viện sử dụng

2.2.1. Giới thiệu về Pip trong Python

PIP là một trình quản lý thư viện cho Python, viết tắt của từ Preferred
Installer Program. Đây là một tiện ích dòng lệnh cho phép bạn cài đặt, cài đặt
lại hoặc gỡ cài đặt các gói PyPI bằng một dòng lệnh đơn giản và dễ hiểu: pip.

PIP đã được cài đặt sẵn trong python ở các phiên bản mới ngày nay.
 Với hệ điều hành Windows, mở Command Prompt bằng Windows key +
X và chọn Command Prompt.

 Trên Mac, mở Terminal bằng Command + Space và tìm kiếm terminal.

 Trên Linux, mở Terminal bằng Ctrl + Alt + T.

Sau đó để cài đặt các package từ PyPI gõ:

pip install package-name

Thoát khỏi một package gõ:

pip uninstall package-name

2.2.2. Thư viện chuyển văn bản thành giọng nói Pyttsx3

a. Khái niệm

Pyttsx3 là một thư viện chuyển đổi văn bản thành giọng nói bằng Python.
Không giống như các thư viện thay thế, nó hoạt động ngoại tuyến và tương thích
với cả Python 2 và 3.

Các tính năng chuyển văn bản thành giọng nói cho mô-đun này dựa trên
các ngôn ngữ được cài đặt trong hệ điều hành của người sử dụng. Theo mặc
định, nó sẽ đi kèm với gói ngôn ngữ trong quá trình cài đặt hệ điều hành. Cần
cài đặt gói ngôn ngữ theo cách thủ công nếu định sử dụng các ngôn ngữ khác.

b. Thiết lập

pip install pyttsx3

2.2.3. Thư viện nhận diện giọng nói Speech_recognition

a. Khái niệm

Speech_recognition là thư viện để thực hiện nhận dạng giọng nói, với sự
hỗ trợ cho một số công cụ và API, trực tuyến và ngoại tuyến.

Ngoài ra do chương trình điều khiển sử dụng đầu vào là Micro nên thư
viện Pyaudio được yêu cầu cài đặt.
b. Thiết lập

pip install speechrecognition

pip install pyaudio

Trong trường hợp cài đặt thư viện pyaudio bị lỗi, ta sử dụng hai dòng lệnh
sau để fix lỗi:

pip install pipwin

pipwin install pyaudio

2.2.4. OpenOPC for Python

a. Khái niệm

OpenOPC for Python là bộ công cụ OPC (OLE for Process Control) miễn
phí, mã nguồn mở được thiết kế để sử dụng với ngôn ngữ lập trình Python phổ
biến. Các tính năng độc đáo làm cho nó khác biệt với nhiều bộ công cụ OPC có
sẵn trên thị trường. Tương thích với Python 32Bit.

b. Các tính năng

Dễ sử dụng: vì thư viện OpenOPC triển khai một số lượng tối thiểu các
hàm Python có thể được xâu chuỗi với nhau theo nhiều cách khác nhau, nên thư
viện rất đơn giản để học và dễ nhớ. Ở dạng đơn giản nhất, bạn có thể đọc và ghi
các mục OPC dễ dàng như bất kỳ biến nào trong chương trình Python của bạn ...

Hỗ trợ nhiều nền tảng: OpenOPC hoạt động với cả nền tảng Windows và
không phải Windows. Nó đã được thử nghiệm với Windows, Linux và Mac OS
X.

Phong cách lập trình chức năng: OpenOPC cho phép các cuộc gọi OPC
được xâu chuỗi lại với nhau. Ví dụ: bạn có thể đọc giá trị của tất cả các mục
khớp với mẫu ký tự đại diện bằng cách sử dụng một dòng mã Python.

c. Ví dụ về một chương trình làm việc trên project PLC FX5UJ

import OpenOPC
opc = OpenOPC.client()
opc.connect('Kepware.KEPServerEX.V6')
opc.write(('PLC FX5UJ.Device1.X0',True))
opc.close()

2.2.5. Thư viện giao diện đồ họa Tkinter

a. Khái niệm

Tkinter là một gói trong Python có chứa module Tk hỗ trợ cho việc lập
trình GUI. Tk ban đầu được viết cho ngôn ngữ Tcl. Sau đó Tkinter được viết ra
để sử dụng Tk bằng trình thông dịch Tcl trên nền Python. Ngoài Tkinter ra còn
có một số công cụ khác giúp tạo một ứng dụng GUI viết bằng Python như
wxPython, PyQt, và PyGTK.

b. Sử dụng Tkinter

from tkinter import Tk

from tkinter import *

from tkinter.ttk import *

from tkinter import messagebox

Import lớp Tk dùng để tạo cửa sổ, import tất cả thư viện trong gói tkinter
và tkinter.ttk, import messagebox để tạo cửa sổ xác nhận

root = Tk()

Tạo một cửa sổ và gán vào biến root để quản lý

root.geometry("250x150+300+300")

Phương thức geometry() quy định kích thước cửa sổ và vị trí hiển thị trên
màn hình. Hai tham số đầu tiên là kích thước cửa sổ, hai phương thức sau là vị
trí của cửa sổ trên màn hình.

root.mainloop()
Cửa sổ hiện lên màn hình trong khoảng thời gian rất ngắn nên ta dùng
vòng lặp để cửa sổ luôn hiện trên màn hình.

Btn1 = tk.Button(root, text="***",command=***)

Btn1.place(x=30,y=50)

Tạo nút ấn rồi gán vào biến Btn1, nút ấn đặt trong cửa sổ root, tên nút ấn
tùy chọn, command sẽ gọi hàm mà nút ấn thực thi. Phương thức place() để quy
định vị trí của nút bấm trên cửa sổ. Ngoài ra ta có thể thiết lập chiều rộng –
width(size), font chữ - font(“name font”,size), background - bg(color) và màu
chữ - fg(color) của nút ấn bằng cách thêm chúng vào lệnh khởi tạo nút.

2.2.6. Xử lí hình ảnh bằng PILLOW

a. Khái niệm

Pillow là một fork từ thư viện PIL của Python được sử dụng để xử lý hình
ảnh.

b. Cách sử dụng

from PIL import Image Import thư viện PIL

img = Image.open("name.jpg") Mở và load ảnh vào

2.3. Chương trình nhận diện giọng nói


#import thư viện
import pyttsx3
import speech_recognition as sr
import OpenOPC
from tkinter import *
from tkinter.ttk import *
from tkinter import messagebox
import tkinter as tk
from PIL import Image
import webbrowser as wb

#kết nối Kepserver
opc = OpenOPC.client()
opc.servers()
opc.connect('Kepware.KEPServerEX.V6')

PLC=pyttsx3.init()      #khởi tạo object PLC chuyển text thành speech
voice = PLC.getProperty('voices')      #lấy giọng nói trong máy
PLC.setProperty('voice', voice[2].id)   #chọn giọng trong máy
#hàm nói của AI
def speak(audio1):
    print('PLC: ' + audio1)
    PLC.say(audio1)
    PLC.runAndWait()
#hàm nhận diện giọng nói
def command():
    print("PLC đang nghe...")
    c=sr.Recognizer()
    you = ""        #khởi tạo biến you = string(rỗng)
    while you == "":    #khi you = string(rỗng) thực hiện lệnh dưới
        with sr.Microphone() as source:    #nghe với nguồn là Micro 
            audio = c.record(source, duration=3)    #thời gian nghe 3s
        try:    #dùng try-except để bắt lỗi
            you = c.recognize_google(audio,language='vi-VN') #nghe bằng tiếng 
Việt
            print("Phuc: "+you)
        except:
            you = ""    #nếu không nghe được gì thì quay lại while
        if you != "":   #nếu nghe được thì thoát vòng lặp
            break   
    return you
#hàm khởi động băng tải
def START():
    opc.write(('PLC FX5UJ.Device1.X0',True))   #X0 logic1 
    opc.write(('PLC FX5UJ.Device1.X1',False))  #X1 logic0
#hàm dừng băng tải
def STOP():
    opc.write(('PLC FX5UJ.Device1.X0',False))  #X0 logic0 
    opc.write(('PLC FX5UJ.Device1.X1',True))   #X1 logic1
#hàm brain
def begin():
    while True:
        you=command().lower()      #chuyển về chữ thường để máy tính hiểu
        #tạo cửa sổ xác nhận lệnh
        Msg1 = tk.messagebox.askquestion(title="Confirm",message="Do you want" 
+ you + "?",icon = 'warning')
        if Msg1 == 'no':    #bấm "no" để từ chối lệnh
            tk.messagebox.showinfo('Return','You will now return to the 
application screen')
        else:       #bấm "yes" xác nhận lệnh
            if "tắt" in you:
                speak("Tạm biệt ông chủ")
                quit()
            elif "khởi động" in you:
                START()
                speak("tôi bắt đầu khởi động")
            elif "dừng lại" in you:
                STOP()
                speak("tôi đã dừng")
            else:
                speak("Xin lỗi! Tôi không hiểu, làm ơn thử lại")
#giao diện khởi động
root=tk.Tk()        #tạo cửa sổ
root.title("Control PLC Program")     #tên cửa sổ
root.geometry("484x274")    #kích cỡ
root.iconbitmap("AI.ico")   #icon cửa sổ
bg1 = PhotoImage(file = "bg1.png")      #import ảnh và gán vào biến bg1
img = tk.Label( root, image = bg1,bg="yellow")  #đưa ảnh lên cửa sổ vừa tạo 
làm background
img.place(x = 0, y = 0)     #size ảnh = size cửa sổ nên đặt ảnh ở vị trí gốc 
tọa độ
#thêm label
lbl = tk.Label(root,text="Wellcome to program",fg="#780001",bg="#668EF0",font=
(".Vn3DH",12))
lbl.place(x=120,y=10)
#thêm texbox
txt = tk.Entry(root, width=50)
txt.place(x=30,y=52)
#thêm combobox
combo = Combobox(root)
combo["values"] = ("Lê Hữu Phúc","Trần Trung Hiếu","Nguyễn Đức Thành Dương")
combo.place(x=30,y=90,width=305)
#lệnh của Client Login
def handleBtn1():
    MsgBox1 = tk.messagebox.askquestion(title="Confirm", message="Do you want 
loggin?",icon = 'warning')
    if MsgBox1 == 'no':
        tk.messagebox.showinfo('Return','You will now return to the 
application screen')
    else:  #khi bấm "yes" xác nhận đăng nhập, cửa sổ thứ 2 hiện ra
        root1=tk.Tk()
        root1.title("Control PLC Program")
        root1.geometry("480x252")
        root1.iconbitmap("AI.ico")
        img2 = tk.Label( root1, bg="#ADD2E2")
        img2.place(height=252,width=480)
        lbl1 = tk.Label(root1,fg="red",font=("Tahoma",14))
        lbl1.place(x=10,y=10)
        lbl1.configure(text = "Xin Chào, " + txt.get(),bg="#ADD2E2")    
        lbl2 = tk.Label(root1,text="Please select content",fg="blue",
bg="#ADD2E2",font=("Tahoma",18))
        lbl2.place(x=110,y=50)
        lbl3 = tk.Label(root1,text=":::<Click to command by voice>:::",
bg="#ADD2E2",font=("Tahoma Bold",11))
        lbl3.place(x=170,y=110)
        lbl4 = tk.Label(root1,text=":::<Click to Exit>:::",bg="#ADD2E2",
font=("Tahoma Bold",11))
        lbl4.place(x=170,y=150)
        #thêm button
        Btn3 = tk.Button(root1,text="Command",font=("Tahoma Bold",9),fg="blue"
,bg="yellow",width=10,command=begin)
        Btn3.place(x=70,y=110)
        Btn4 = tk.Button(root1,text="Quit",font=("Tahoma Bold",9),fg="blue",
bg="yellow",width=10,command=quit)
        Btn4.place(x=70,y=150)
        return
#lệnh của Manager Login
def handleBtn2():
    MsgBox2 = tk.messagebox.askquestion(title="Confirm", message="Do you want 
loggin?",icon = 'warning')
    if MsgBox2 == 'no':
        tk.messagebox.showinfo('Return','You will now return to the 
application screen')
    else:   #khi bấm "yes" xác nhận đăng nhập, cửa sổ thứ 2 hiện ra
        root1=tk.Tk()
        root1.title("Control PLC Program")
        root1.geometry("480x252")
        root1.iconbitmap("AI.ico")
        img2 = tk.Label( root1, bg="#ADD2E2")
        img2.place(height=252,width=480)
        lbl1 = tk.Label(root1,fg="red",font=("Tahoma",14))
        lbl1.place(x=10,y=10)
        lbl1.configure(text = "Xin Chào, " + combo.get() + " ĐTĐ58ĐH",
bg="#ADD2E2")
        lbl2 = tk.Label(root1,text="Please select content",fg="blue",
bg="#ADD2E2",font=("Tahoma",18))
        lbl2.place(x=140,y=50)
        lbl3 = tk.Label(root1,text=":::<Click to command by voice>:::",
bg="#ADD2E2",font=("Tahoma Bold",11))
        lbl3.place(x=170,y=110)
        lbl4 = tk.Label(root1,text=":::<Click to Exit>:::",bg="#ADD2E2",
font=("Tahoma Bold",11))
        lbl4.place(x=170,y=150)
        #thêm button
        Btn3 = tk.Button(root1,text="Command",font=("Tahoma Bold",9),fg="blue"
,bg="yellow",width=10,command=begin)
        Btn3.place(x=70,y=110)
        Btn4 = tk.Button(root1, text="Quit",font=("Tahoma Bold",9),fg="blue",
bg="yellow",width=10,command=quit)
        Btn4.place(x=70,y=150)
        return
#lệnh của nút Help?
def handleBtn3():
    root1=tk.Tk()
    root1.title("Trợ giúp")
    root1.geometry("430x500")
    root1.iconbitmap("AI.ico")
    img3=tk.Label(root1,bg="#ADD2E2")
    img3.place(height=500,width=430)
    img4=tk.Label(root1,bg="#F8F284")
    img4.place(height=250,width=430)
    #tạo button
    Link1=tk.Button(root1,text="Link 1",font=("Tahoma Bold",9),fg="white",
bg="black",width=7,command=web1)
    Link1.place(x=18,y=310)
    Link2=tk.Button(root1,text="Link 2",font=("Tahoma Bold",9),fg="white",
bg="black",width=7,command=web2)
    Link2.place(x=18,y=350)
    Link3=tk.Button(root1,text="Link 3",font=("Tahoma Bold",9),fg="white",
bg="black",width=7,command=web3)
    Link3.place(x=18,y=390)
    Link4=tk.Button(root1,text="Link 4",font=("Tahoma Bold",9),fg="white",
bg="black",width=7,command=web4)
    Link4.place(x=18,y=430)

    #thêm label nửa dưới Help
    lbl = tk.Label(root1,text=":::<Hướng dẫn lập trình AI cơ bản bằng python>:
::",bg="#ADD2E2",font=("Tahoma",10))
    lbl.place(x=95,y=310)
    lbl1 = tk.Label(root1,text=":::<Link cài speech tiếng Việt>:::",
bg="#ADD2E2",font=("Tahoma",10))
    lbl1.place(x=95,y=350)
    lbl2 = tk.Label(root1,text=":::<Hướng dẫn lập trình giao diện đồ họa>:::",
bg="#ADD2E2",font=("Tahoma",10))
    lbl2.place(x=95,y=390)
    lbl3 = tk.Label(root1,text=":::<Giao tiếp giữa PLC và python qua 
KepserverEx>:::",bg="#ADD2E2",font=("Tahoma",10))
    lbl3.place(x=95,y=430)
    lbl4 = tk.Label(root1,text="Please click on Link1, Link2,... to go to the 
instructions",bg="#ADD2E2",fg="blue",font=("ROBOTO",10))
    lbl4.place(x=50,y=470)
    lbl5 = tk.Label(root1,text="Software creation instructions",bg="#ADD2E2",
fg="red",font=("ROBOTO",18))
    lbl5.place(x=50,y=270) 
    #thêm label nửa trên Help
    lbl6 = tk.Label(root1,text="Software manuals",bg="#F8F284",fg="red",
font=("ROBOTO",18))
    lbl6.place(x=120,y=10)
    lbl7=tk.Label(root1,text="Bước 1: Đăng nhập với tên của người sử dụng \n \
        cửa sổ điều khiển hiện ra",bg="#F8F284",font=("Times New Roman",14))
    lbl7.place(x=30,y=40)
    lbl8 = tk.Label(root1,text="Bước 2: Để ra lệnh cho PLC click vào Command",
bg="#F8F284",font=("Times New Roman",14))
    lbl8.place(x=30,y=85)
    lbl9 = tk.Label(root1,text="Các lệnh mà Trợ lí ảo hỗ trợ bao gồm: \n \khởi 
động :::<Khởi động băng tải>::: \n dừng lại :::<Dừng băng tải>::: \n \tắt :::<
Thoát chương trình>:::",bg="#F8F284",font=("Times New Roman",14))
    lbl9.place(x=30,y=105)
    lbl10 = tk.Label(root1,text="Bước 3: Để thoát chương trình click vào Quit"
,bg="#F8F284",font=("Times New Roman",14))
    lbl10.place(x=30,y=190)
def web1():
    url = f"https://youtu.be/Nx_kwUQKqV8"
    wb.get().open(url)
def web2():
    url = f"https://drive.google.com/file/d/1RxcHrHi_eXOAObNVLh00YWV2sa5RQgsL/
view"
    wb.get().open(url)
def web3():
    url = f"https://youtu.be/MHva487-DH0"
    wb.get().open(url) 
def web4():
    url = f"https://youtu.be/RyTtbSLYarM"
    wb.get().open(url)    

#thêm button login, Help?       
Btn1 = tk.Button(root, text="Client Login",font=("Tahoma Bold",9),bg="yellow",
fg="blue",width=12,command=handleBtn1)
Btn1.place(x=359,y=50)
Btn2 = tk.Button(root, text="Manager Login",font=("Tahoma Bold",9),bg="yellow"
,fg="blue",width=12,command=handleBtn2)
Btn2.place(x=359,y=88)
Btn3 = tk.Button(root, text="Help?",font=("Tahoma Bold",9), bg="#008C8A",fg="y
ellow",width=8,command=handleBtn3)
Btn3.place(x=205,y=235)

root.mainloop()
CHƯƠNG 3: GIAO TIẾP GIỮA PLC VÀ PYTHON QUA ETHERNET
3.1. Các phương thức giao tiếp giữa PLC và python qua ethernet

3.1.1. Giao tiếp bằng cách sử dụng thư viện giao thức hỗ trợ của python
Hình 3. 1. Cấu trúc giao tiếp PLC và python qua ethernet

Đây là phương thức giao tiếp dễ thực hiện để kết nối giữa PLC và python
qua ethernet. Với mỗi loại ngôn ngữ đều có thư viện hỗ trợ riêng với từng loại
PLC tương ứng. Ngôn ngữ python cũng vậy, giả sử muốn giao tiếp với PLC S7
1200 thì có thư viện Snap 7 hỗ trợ, giao tiếp với PLC Mitsubishi có thư viện
pymcrotocol.

Cách thức thực hiện rất đơn giản, ta đặt địa chỉ IP cho PLC. Sau đó chạy
một dòng lệnh đặt địa chỉ IP với ngôn ngữ python. Việc sử dụng các lệnh trong
thư viện hỗ trợ được giải thích rất cụ thể trên các diễn đàn và các hướng dẫn về
nó. Giao tiếp giữa python và PLC, ta sử dụng các lệnh đọc và viết.

Tuy nhiên với dòng PLC FX hiện tại chưa có thư viện hỗ trợ. Thư viện
pymcrotocol chỉ hỗ trợ các PLC dòng Q, L, QnA, iQ-L, iQ-R. Do đó với đề tài
sử dụng dòng PLC FX thì không thể sử dụng phương thức này.

3.1.2. Giao tiếp qua thư viện pymodbus

Hình 3. 2. Cấu trúc giao tiếp bằng modbus


Pymodbus là một triển khai giao thức Modbus đầy đủ sử dụng xoắn /
torndo / asyncio cho lõi truyền thông không đồng bộ của nó. Nó cũng có thể
được sử dụng mà không có bất kỳ phụ thuộc nào của bên thứ ba (ngoài pyserial)
nếu một dự án nhẹ hơn là cần thiết. Hơn nữa, nó sẽ hoạt động tốt dưới bất kỳ
phiên bản python nào> 2.7 (bao gồm cả python 3+).

Sử dụng thư viện pymodbus để giao tiếp giữa PLC và python là cách khá
phức tạp. Về phía PLC ta phải viết chương trình cho nó thành modbus server,
còn python là modbus client.

3.1.3. Giao tiếp thông qua giao thức OPC

Hình 3. 3. Cấu trúc giao tiếp qua Kepserverex

Với cách này ta sẽ sử dụng một phần mềm OPC trung gian để giao tiếp
giữa python và PLC. Phần mềm OPC có thể sử dụng là Kepserverex.
KEPServerEX là nền tảng kết nối hàng đầu trong ngành cung cấp một nguồn dữ
liệu tự động hóa công nghiệp duy nhất cho tất cả các ứng dụng của bạn. Thiết kế
nền tảng cho phép người dùng kết nối, quản lý, giám sát và điều khiển các thiết
bị tự động hóa đa dạng và các ứng dụng phần mềm thông qua một giao diện
người dùng trực quan.

Sử dụng cách này phải giải quyết hai vấn đề. Một là kết nối kepserverex
với PLC, hai là kết nối giữa python với kepserverex. Vấn đề thứ nhất hoàn toàn
có thể giải quyết được, vì kepserverex hiện nay được phát triển hầu như có thể
kết nối với các dòng PLC. Vấn đề thứ hai để kết nối giữa python và kepserverex
ta có thể sử dụng thư viện Open OPC.

3.2. Các phần mềm sử dụng để giao tiếp thông qua phương thức OPC

3.2.1. Phần mềm KEPserverEX

Hình 3. 4. Cơ chế hoạt động của KEPServerEX

KEPServerEX là một phần mềm cho phép bạn kết nối các thiết bị và ứng
dụng khác nhau với nhau. Nền tảng được thiết kế để kết nối, giám sát và điều
khiển các thiết bị khác nhau này. Tất cả các luồng thông tin khác nhau kết hợp
với nhau trong một giao diện người dùng, vì vậy người dùng có cái nhìn tổng
quan và toàn quyền kiểm soát toàn bộ hệ thống của họ. Nó được phát triển để
đáp ứng nhu cầu của khách hàng: nó có hiệu suất cao, rất đáng tin cậy và dễ sử
dụng.

KEPServerEX là một hệ thống dễ truy cập, cung cấp cho người dùng
quyền truy cập dữ liệu cho các ứng dụng khách, Internet of Things và phần mềm
phân tích dữ liệu lớn. Kepware cung cấp cho người dùng quyền truy cập bằng
cách tương thích và hỗ trợ các sản phẩm sau:
 OPC (Truyền thông nền tảng mở)
 Giao diện tự động hóa
 Giao diện CNTT
 Giao diện đám mây

KEPServerEX giảm thời gian tải mạng và thiết bị, đồng thời tối ưu hóa
thông tin liên lạc bằng cách liên kết các máy với nhau. KEPServerEX tạo liên
kết giữa các thiết bị khác nhau vì các thiết bị và bộ điều khiển phải có thể giao
tiếp với nhau, ngay cả khi chúng không thuộc cùng một nhà sản xuất hoặc
không nói cùng một ngôn ngữ. Nó cũng đảm bảo rằng nhiều yêu cầu về dữ liệu
được ghép nối với nhau, theo cách này, cần ít yêu cầu hơn và điều này làm giảm
thời gian tải của mạng và thiết bị.
Bên cạnh việc kết nối các thiết bị khác nhau với nhau, KEPServerEX còn
có chức năng như một điểm vào. KEPServerEX cung cấp một điểm vào duy
nhất cho tất cả các luồng thông tin và lưu trữ và lưu trữ dữ liệu đến theo thời
gian thực.
Do các tính năng này, giao tiếp được tối ưu hóa, điều này mang lại cho
người dùng khả năng đưa ra quyết định nhanh hơn và thích ứng nhanh hơn với
các thay đổi, để tối ưu hóa hệ thống của họ với tiềm năng tối đa. Cuối cùng,
KEPServerEX giảm tổng chi phí sở hữu.
KEPServerEX có công cụ trình quản lý người dùng được tích hợp sẵn.
Công cụ này cho phép người dùng xác định người dùng nào có quyền truy cập
nhất định với các dự án và nhiệm vụ khác nhau. Quyền truy cập bị hạn chế này
có thể bị giới hạn bởi một thẻ thuộc về một số dự án nhất định.
Bên cạnh công cụ quản lý, có thể xây dựng các đường hầm dữ liệu an
toàn, chẳng hạn như khi thông tin được truyền qua internet, chẳng hạn như đến
các thiết bị từ xa, KEPServerEX bổ sung xác thực và mã hóa cho các nguồn dữ
liệu của nó. Bằng cách này KEPServerEX đảm bảo rằng thông tin của một công
ty, doanh nghiệp, tổ chức được bảo mật.

Ứng dụng này hỗ trợ các hệ điều hành Microsoft Windows sau:
Windows 10 x64 (Pro và Enterprise Edition) 3

Windows 10 x86 (Pro và Enterprise Edition)

Windows 8.1 x64 (Windows 8, Pro và Enterprise Edition) 3

Windows 8.1 x86 (Windows 8, Pro và Enterprise Edition)

Windows 8 x64 (Windows 8, Pro và Enterprise Edition) 3

Windows 8 x86 (Windows 8, Pro và Enterprise Edition)

Windows 7 x64 (Phiên bản Professional, Ultimate và Enterprise) 3

Windows 7 x86 (Phiên bản Professional, Ultimate và Enterprise)

Windows Server 2012 x64 R23

Windows Server 2012 x643


Windows Server 2008 x64 R23

3.2.2. Phần mềm GX Works 3

GX Works 3 là một công cụ kỹ thuật để định cấu hình cài đặt, lập trình,
gỡ lỗi và thực hiện hiện bảo trì cho các bộ điều khiển có thể lập trình như
MELSEC iQ-R series/ MELSEC iQ-F series. Khả năng sử dụng của nó tốt hơn
nhiều so với GX Works 2 vì các chức năng đã được cải thiện.

a. Các chức năng chính của GX Works 3

 Lập trình bằng nhiều ngôn ngữ

GX Works 3 có 3 ngôn ngữ lập trình: Ladder Diagram, Structured, and


Function Block Diagram/ Ladder.
Hình 3. 5. Chương trình viết bằng ngôn ngữ Ladder

Hình 3. 6. Chương trình viết bằng ngôn ngữ ST

Hình 3. 7. Chương trình viết bằng ngôn ngữ FBD/LD

 Chức năng cài đặt thông số


Tham số của mô đun CPU, mô đun I/O có thể được thiết lập.
 Chức năng ghi vào PLC/ đọc từ PLC

Hình 3. 8. Đọc và ghi PLC


Các chương trình tuần tự đã tạo có thể ghi vào/ đọc từ một mô đun CPU.
Ngoài ra các chương trình tuần tự có thể được sửa đổi trong khi các mô đun
CPU đang chạy bằng cách thực hiện thay đổi chương trình trực tuyến.

3.3. Xây dựng giao tiếp giữa PLC và python qua Kepserverex
CHƯƠNG 4: XÂY DỰNG ĐIỀU KHIỂN MÔ HÌNH PHÂN LOẠI BẰNG
GIỌNG NÓI
4.1. Mô hình phân loại sản phẩm

4.1.1. Bài toán phân loại sản phẩm


Hệ thống phân loại sản phẩm theo màu sắc gồm xanh, đỏ, đen. Sản phẩm
ban đầu được đưa vào một khu vực chứa. Ở đây có lắp đặt một cảm biến khi có
sản phẩm sẽ tự động kích hoạt xi lanh đẩy đưa vào băng tải. Băng tải chuyển
động đưa sản phẩm đi qua hai cảm biến. Các cảm biến có chức năng nhận diện
màu sắc sản phẩm tương ứng kích hoạt xi lanh để đẩy sản phẩm vào các thùng
chứa tương ứng. Cảm biến thứ nhất có chức năng phát hiện màu xanh, cảm biến
thứ hai có chức năng phát hiện màu đỏ. Sản phẩm màu đen sẽ được đưa vào
thùng chứa ở cuối hành trình băng tải.

Hệ thống phân loại có thể được điều khiển bằng nút ấn trên tủ điện hoặc
có thể điều khiển bằng giọng nói thông qua máy tính.

4.1.2. Các thiết bị sử dụng trong hệ thống

Hệ thống phân loại bao gồm: PLC FX5UJ, 3 xi lanh tác động bằng nam
châm điện, 2 cảm biến màu, 1 cảm biến tiệm cận

a. PLC FX5UJ
Hình 4. 1. PLC FX5UJ

 Thông số kỹ thuật: PLC Mitsubishi FX 5UJ-40MT/ES

Nguồn cấp: 100 – 240 VAC (-15%, +10% ).

Tần số: 50/60 Hz.

Công suất: 30W.

Có sẵn 24 ngõ vào số Sink/Source và 16 ngõ ra Sink.

Cổng kết nối Ethernet, cổng nạp chương trình Mini-B USB.

Cổng gắn thẻ nhớ ngoài.

Có sẵn 8 cổng ngõ vào đếm xung tốc độ cao HSC: 4 chân 100KHz và 4
chân 10KHz.

Có thể mở rộng MAX 256 I/O.


 Các Module mở rộng: để mở rộng khả năng hoạt động nhà sản xuất đã
chế tạo sẵn các loại sau:

+ Khối I/O mở rộng dùng nguồn AC/DC với 16/32 I/O và có cả đầu ra
relay và transistor ( sourcing và sinking ).

+ Khối đầu vào mở rộng: 8/16 và 32 Input sử dụng nguồn 24VDC.

+ Khối đầu ra mở rộng: 8/16 và 32 Output cả kiểu relay và transistor


( sourcing và sinking ).

+ Khối xung cao tốc với 8 Input và 8 Output.

+ Khối vào tương tự (A/D): 4 kênh, 8 kênh được chế tạo kiểu điện áp có
các dải điện áp: 0 -5V, 1 – 5V, 0 – 10V và -10 - 10V.

+ Khối ra tương tự (D/A): 4 kênh được chế tạo kiểu điện áp có các dải
điện áp: 0 -5V, 1 – 5V, 0 – 10V và -10 - 10V.

+ Khối đầu vào kết nối trực tiếp với cảm biến nhiệt độ: 4 kênh, 8 kênh và
loại cảm biến nhiệt độ: -200 °C - 1200 °C (Pt100, Ni100,...Cặp nhiệt ngẫu:
K,J,T,B,R,S,...).

+ Khối bộ đếm tốc độ cao: 2 kênh, f max =200 KHz .

+ Khối chuyên dụng cho điều khiển chuyển động: 4 trục và 8 trục.

+ Khối chuyên dụng điều khiển vị trí 1 trục và 2 trục: f = 200KHz

+ Khối mở rộng về truyền thông: CC-Link, Ethernet, Modbus, Serial


communication.

+ Khối nguồn cung cấp 5VDC: I tải ≈ 1 A .

 Sơ đồ đấu dây ngõ vào và ngõ ra

b. Cảm biến LX 101

 Các thông số của cảm biến


Ngõ ra loại NPN
Khoảng cách phát hiện 10 mm ± 3 mm
Công suất tiêu thụ: 750 mW với chế độ thường và 600 mW với chế độ
ECO.
Khả năng chịu dòng: 50 mA.
Điện áp ứng dụng: 30 VDC.
Điện áp dư: 1.5 V
Chuẩn bảo vệ IP67 (IEC).
Nhiệt độ môi trường -10 – 55 ℃ .
Nhiệt độ bảo quản -20 – 70 ℃ .
Độ ẩm môi trường 35 - 85 % RH.
Độ ẩm bảo quản 35 – 85 % RH.
Ánh sáng phát ra: đỏ/ xanh dương/ xanh lá.
 Sơ đồ đấu dây

Hình 4. 2. Sơ đồ đấu dây của cảm biến LX 101

4.2. Kết quả điều khiển mô hình bằng giọng nói


TÀI LIỆU THAM KHẢO
KẾT LUẬN

You might also like