3.2.2 Arduino Mega2560 (Master)
Trong đề tài, Arduino Mega 2560 được dùng làm trung tâm quản lý điều khiển (Master) nhận tín hiệu điều khiển từ Python thông qua giao tiếp cổng COM và gửi dữ liệu xuống cho các Slave điều khiển động cơ.
❖ Thông số kỹ thuật:
- Vi điều khiển: ATmega 2560.
- Điện áp hoạt động: 5V.
- Nguồn ngồi (jack trịn DC) 7-9V. Khơng nên cấp nguồn 12v vì sẽ gây hỏng IC ổn áp.
- Số chân Digital: 54 ( 15 chân PWM).
- Số chân Analog: 16.
- Giao tiếp UART: 4 bộ Serial.
- Giao tiếp SPI: 1 bộ ( chân 50 đến chân 53) dùng với thư viện SPI của Ardunio.
- Giao tiếp I2C: 1 bộ.
- Ngắt ngoài: 6 chân.
- Bộ nhớ Flash: 256 Kb, 8Kb sử dụng cho Bootloader.
- SRAM: 8 Kb.
SVTH: LÊ TRUNG KIÊN
- Xung clock: 16MHz.
❖ Chức năng của các chân Arduino Mega 2560
- Chân Vin: Đây là điện áp đầu vào được cung cấp cho board mạch Arduino Uno. Khác với chân 5V được cung cấp qua cổng USB. Chân này được sử dụng để cung cấp điện áp tồn mạch thơng qua jack nguồn, thông thường khoảng từ 7 đến 12VDC.
- Chân 5V: Chân này được sử dụng để cung cấp điện áp đầu ra. Arduino Uno
được cấp nguồn bằng ba cách đó là USB, chân Vin của board mạch hoặc jack nguồn.
- USB: Dùng để giao tiếp với máy tính thơng qua cáp USB chúng ta có thể nạp chương trình cho Arduino hoạt động. Ngồi ra, USB cịn là nguồn cho Arduino nó hỗ trợ điện áp khoảng 5 VDC trong khi Vin và jack nguồn hỗ trợ điện áp trong khoảng từ 7V đến 20VDC.
- Chân GND: Chân mass chung cho toàn mạch Arduino.
❖ Chân điều khiển:
RESET: Arduino Mega Mega 2560 có sẵn mạch reset với nút ấn để thiết lập lại hệ thống và chân này có thể được sử dụng khi kết nối các thiết bị khác để thiết lập lại bộ điều khiển.
XTAL1, XTAL2: Thạch anh(16Mhz) được kết nối với xung clock cung cấp cho bộ điều khiển.
AREF: Chân này được dùng khi sử dụng ADC để chuyển đổi tín hiệu với điện áp tham chiếu bên ngồi mà không muốn sử dụng điện áp tham chiếu nội bộ 1.1V hoặc 5V.
Các chân Digital (70): Chân số: Từ 0-53 (số) và 0-15 (tương tự) có thể được sử dụng làm đầu vào hoặc đầu ra cho thiết bị.
Chân tương tự (16):
SVTH: LÊ TRUNG KIÊN
Từ 0-15 (analog) có thể được sử dụng như chân đầu vào tương tự cho bộ ADC, nếu khơng sử dụng nó hoạt động như chân digital bình thường
❖ Chân có Chức năng thay thế:
Chân SPI: Chân 22-SS, 23_SCK, 24-MOSI, 25-MISO
Các chân này được sử dụng cho giao tiếp nối tiếp với giao thức SPI để liên lạc giữa 2 thiết bị trở lên. SPI cho phép bit phải được thiết lập để bắt đầu giao tiếp với các thiết bị khác.
Chân I2C: Chân 20 cho SDA và 21 cho SCK (Tốc độ 400khz) để cho phép liên lạc hai dây với các thiết bị khác.
Chân PWM : Chân 2-13 có thể được sử dụng như đầu ra PWM với hàm analogWrite () để ghi giá trị PWM từ 0-255.
Chân UART: Chân này được sử dụng cho giao tiếp nối tiếp giữa bo mạch với máy tính hoặc hệ thống khác để chia sẻ và ghi dữ liệu.
❖ Chân ngắt :
- Chân digital: 0, 22, 23, 24, 25, 10, 11 ,12 ,13 ,15 ,14.
- Chân analog: 6 ,7 ,8 ,9, 10, 11, 12, 13 ,14, 15.
- Chân này được sử dụng để ngắt. Để kích hoạt chân ngắt phải cài đặt bật ngắt toàn cục.
- Chân ngắt phần cứng: Chân 18 - 21,2,3 ngắt phần cứng được sử dụng cho các
ứng dụng ngắt. Ngắt phần cứng phải được bật với tính năng ngắt tồn cục để ngắt quãng từ các thiết bị khác.
SVTH: LÊ TRUNG KIÊN
Hình 3.16: Sơ đồ chân Arduino Mega 2560
3.2.3 Arduino Uno R3 (Slave)
Trong đề tài, Arduino Uno R3 được dùng làm Slave nhận tín hiệu từ Master để điều khiển động cơ thông qua giao tiếp I2C.
Thông số kỹ thuật:
- Chip: ATmega328P.
- Nguồn cấp: từ 7 đến 12 VDC.
- Dòng max chân 5V: 500 mA.
- Dòng max chân 3.3V: 50 mA.
- Dòng max chân I/O: 30 mA.
- Số chân Digital: 14 chân (Bao 6 chân PWM).
SVTH: LÊ TRUNG KIÊN
- Số chân Analog: 6 chân. - Flash Memory: 32 kb. - SRAM: 2 kb. - EEPROM: 1 kb. - Clock Speed: 16 Mhz. - Kích thước: 68.6 x 53.4mm.
- Khối lượng: 25 gam.
❖ Chức năng của các chân Arduino Uno
- Chân Vin: Đây là điện áp đầu vào được cung cấp cho board mạch Arduino Uno. Khác với chân 5V được cung cấp qua cổng USB. Chân này được sử dụng để cung cấp điện áp toàn mạch thông qua jack nguồn, thông thường khoảng từ 7 đến 12VDC.
- Chân 5V: Chân này được sử dụng để cung cấp điện áp đầu ra. Arduino Uno
được cấp nguồn bằng ba cách đó là USB, chân Vin của board mạch hoặc jack nguồn.
- USB: Dùng để giao tiếp với máy tính thơng qua cáp USB chúng ta có thể nạp chương trình cho Arduino hoạt động. Ngồi ra, USB cịn là nguồn cho Arduino nó hỗ trợ điện áp khoảng 5 VDC trong khi Vin và jack nguồn hỗ trợ điện áp trong khoảng từ 7V đến 20VDC.
- Chân GND: Chân mass chung cho toàn mạch Arduino.
- Chân Reset: Để thiết lập lại tồn bộ và đưa chương trình đang chạy trở về ban
đầu.
- Chân này rất hữu ích khi Arduino bị treo khi đang chạy chương trình.
- Các chân Digital: Có 14 chân Digital trên board mạch Arduino Uno được ký hiệu từ 0 đến 13 với chức năng input và output sử dụng các hàm pinMode(),
digitalWrite(), digitalRead() để điều khiển các chân này.
- Chân PWM: Được cung cấp bởi các chân 3,5,6,9,10,11. Các chân này được cấu hình để cung cấp PWM đầu ra 8 bit.
SVTH: LÊ TRUNG KIÊN
- Các chân Analog: Có 6 chân Analog trên board mạch Arduino Uno được ký hiệu từ A0 đến A5. Được sử dụng để đo điện áp tương tự trong khoảng từ 0 đến 5V.
- Chân Rx, Tx: Dùng để thực hiện giao tiếp nối tiếp thông qua hai chân 0 (Rx) và chân 1 (Tx).
- Chân LED: Arduino Uno tích hợp đèn LED kết nối với chân 13. Cung cấp mức logic HIGH tương ứng ON và LOW tương ứng OFF.
- Chân AREF: Chân này được gọi là tham chiếu tương tự, được sử dụng để cung cấp điện áp tham chiếu cho các đầu vào tương tự.
- Chân SPI: Được dùng để giao tiếp ngoại vi nối tiếp. Các chân 10 (SS), 11
(MOSI), 12 (MISO), 13 (SCK) cung cấp liên lạc SPI với sự trợ giúp của thư viện SPI.
- Chân ngắt ngoài: Chân 2 và 3 được sử dụng để cung cấp các ngắt ngoài.
- Chân I2C: Dùng để giao tiếp I2C với các thiết bị. Chân A4 (SDA)và A5 (SCL)
được sử dụng cho mục đích này.
Hình 3.17: Sơ đồ chân Arduino Uno
SVTH: LÊ TRUNG KIÊN
3.2.4 Động cơ DC Hình 3.18: Động cơ DC giảm tốc Hình 3.18: Động cơ DC giảm tốc Thơng số động cơ: - Điện áp hoạt động: 3-9V. - Dòng điện tiêu thụ: 110-150 mA - Tỉ số truyền: 1:120 - Tốc độ động cơ: 100000 (vòng/phút) - Tốc độ qua hộp giảm tốc: 83 (vòng/phút)
3.2.5 Động cơ và module điều khiển động cơ bước ULN2003 V2
Động cơ bước 28BYJ-48: Động cơ bước 28BYJ-48 là động cơ bước 4 pha, 5 dây điều khiển 4 trong 5 dây này được kết nối với 4 cuộn dây trong động cơ và 1 dây là dây nguồn chung cho cả 4 cuộn dây. Mỗi bước của động cơ qt 1 góc 5,625 độ, vậy để quay 1 vịng động cơ phải thực hiện 64 bước.
Hình 3.19: Động cơ bước 28BYJ-48
Thông số động cơ:
SVTH: LÊ TRUNG KIÊN
- Điện áp hoạt động: 5V.
- Số pha: 4.
- Tần số: 100Hz.
- Số bước trên vịng chưa qua giảm tốc: 64.
- Góc mỗi bước: 5,625 độ.
- Tỉ số truyền: 1:64.
- Số bước sau hộp số giảm tốc (trục chính): 64 x 64 = 4096/1
(bước/vịng).
- Đường kính trục: 5mm.
Hình 3.20: Module điều khiển động cơ L298 V2
Module điều khiển động cơ bước ULN2003 V2: Là một module có kích thước nhỏ và dễ sử dụng. Mạch sử dụng IC ULN2003A để khuếch đại các tín
hiệu điều khiển từ mạch điều khiển và điện áp sử dụng cấp cho động cơ có thể
lên đến 12V.
Thơng số kỹ thuật:
- Điện áp cung cấp: 5 ~ 12VDC.
- Tín hiệu ngõ vào: 4 chân in1, in2, in3, in4.
- Tín hiệu ngõ ra: Jack cắm động cơ bước 28BYJ-48.
- 4 led hiển thị trạng thái hoạt động của động cơ.
- Mức điện áp logic: 3 - 5.5V.
- Nhiệt độ hoạt động: -25 ~ 90℃.
- Kích thước: 25mm x 35mm.
- Trọng lượng: ~20g.
3.2.6 Module LM2596
Hình 3.21: Module LM2596
Thông số kỹ thuật:
- Điện áp đầu vào: Từ 3V đến 30V.
- Điện áp đầu ra: Điều chỉnh được trong khoảng 1.5V đến 30V.
- Dòng đáp ứng tối đa là 3A.
- Hiệu suất: 92%
- Công suất: 15W
Module LM2596 trong hệ thống dùng để giảm áp từ nguồn pin, cấp nguồn cho Arduino và động cơ.
3.2.7 Module LM393
Hình 3.22: Module LM393
Thơng số kỹ thuật:
SVTH: LÊ TRUNG KIÊN
- Điện áp làm việc: 3.3V – 5V DC.
- Kích thước: 3.2cm * 1.4cm
Hình 3.23: Sơ đồ nguyên lý cảm biến LM393
Module LM393 trong hệ thống giúp phát hiện tài liệu khi đưa vào cửa trước.
3.2.8 Module RFID RC522 Hình 3.24: Module RFID RC522 Thơng số kỹ thuật: - Điện áp: 3.3V - Dòng điện:13-26mA - Dòng điện ở chờ: 10-13mA - Dòng điện ở chế độ nghỉ: <80uA - Tần số hoạt động: 13.56MHz
SVTH: LÊ TRUNG KIÊN
- Khoảng cách hoạt động: 0 ~ 60 mm (mifarel card)
- Cổng giao tiếp: SPI
- Tốc độ truyền dữ liệu tối đa 10Мbps
- Kích thước: 40мм х 60мм
- Các loại card RFID hỗ trợ: mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro,mifare Desfire
Module RFID 522 trong hệ thống dùng để kích động cơ để mở cửa sau với thẻ từ. 3.2.9 Màn hình hiển thị và cảm ứng MageDok T116D Thơng số kỹ thuật: - Loại màn hình: A-Si, TFT-LCD - Độ phân giải: 1920 X 1080 - Kích thước: 11,6 inch - Khu vực hoạt động: 256,896 × 144,504 mm - Độ sáng: 300cd / M2 (Typ.) - Tỷ lệ tương phản: 800: 1 (Typ.)
- Thời gian phản hồi: 26 (Typ.) (Ms)
- Đầu vào: Nguồn, cảm ứng, HDMI, Jack âm thanh 3,5 mm
Hình 3.25: Màn hình hiển thị có cảm ứng
SVTH: LÊ TRUNG KIÊN
Màn hình ở đây ta sử dụng để thiết kế giao diện điều khiển cho chatbot.
3.2.10 Pin hệ thống
Hình 3.26: Pin Lithium Polymer
Thông số kỹ thuật:
- Dung lượng :~10000mAh
- Điện áp định mức : 3.7 V
- Điện áp tối đa : 4.2 V
- Điện áp cắt: 2.5 V
- Công suất : 37Wh
- Dòng điện tối đa: 3C
- Nội trở : < 40 Ohm
- Nhiệt độ xả: 20 ° C ~ 60 ° C
- Chu kỳ nạp xả: >1000 lần
- Kích thước: 18 x 65 x 131 (mm)
Robot được sử dụng 4 cell pin để cấp nguồn cho toàn bộ hệ thống bao gồm nguồn cho Arduino, cảm biến và động cơ.
SVTH: LÊ TRUNG KIÊN
3.3 Mơ hình hồn chỉnh
Mơ hình được thiết kế hồn chỉnh với bộ khung chắc chắn và các cơ cấu chuyển động ổn định.
Hình 3.27: Mơ hình hồn chỉnh của robot
SVTH: LÊ TRUNG KIÊN
CHƯƠNG 4: THIẾT KẾ VÀ XÂY DỰNG GIAO DIỆN CHOCHATBOT CHATBOT
4.1 Ứng dụng mạng nơ ron nhân tạo vào chatbot
Mạng nơ-ron nhân tạo (Artificial Neural Network – ANN) là một mô phỏng xử lý thông tin hay thường được gọi ngắn gọn là mạng nơ-ron, được nghiên cứu dựa trên hệ thống thần kinh của sinh vật, giống như một bộ não con người để xử lý các thông tin. ANN bao gồm một số lượng lớn các mối gắn kết để xử lý các yếu tố làm việc trong mối quan hệ giải quyết vấn đề rõ ràng. ANN được giới thiệu năm 1943 bởi nhà thần kinh học Warren McCulloch và nhà logic học Walter Pits, hoạt động của nó giống như hoạt động bộ não của con người, được học hỏi bởi kinh nghiệm thông qua việc đào tạo, huấn luyện, có khả năng lưu giữ được các tri thức và sử dụng những tri thức đó trong việc phán đốn các dữ liệu mới, chưa biết (unseen data). Processing Elements (PE) của ANN gọi là nơ-ron, nhận các dữ liệu vào (inputs) xử lý chúng và cho ra một kết quả (output) duy nhất. Kết quả xử lý của một nơ-ron có thể làm input cho các nơ-ron khác.
Hình 4.1: Kiến trúc mạng nơ ron nhân tạo
SVTH: LÊ TRUNG KIÊN
Kiến trúc chung của một ANN gồm 3 thành phần đó là Input Layer, Hidden
Layer và Output Layer
Trong đó, lớp ẩn (Hidden Layer) gồm các nơ-ron, nhận dữ liệu input từ các Nơ- ron ở lớp (Layer) trước đó và chuyển đổi các input này cho các lớp xử lý tiếp theo. Trong một mạng ANN có thể có nhiều Hidden Layer.
Lợi thế lớn nhất của các mạng ANN là khả năng được sử dụng như một cơ chế xấp xỉ hàm tùy ý mà “học” được từ các dữ liệu quan sát. Tuy nhiên, sử dụng chúng không đơn giản như vậy, một số các đặc tính và kinh nghiệm khi thiết kế một mạng nơ-ron ANN.
Phương pháp này là tính tốn tỷ lệ chính xác dữ liệu đầu ra (output) từ dữ liệu đầu vào (input) bằng cách tính tốn các trọng số cho mỗi kết nối (connection) từ các lần lặp lại trong khi “huấn luyện” dữ liệu cho chatbot. Mỗi bước “huấn luyện” dữ liệu cho chatbot sẽ sửa đổi các trọng số dẫn đến dữ liệu output được xuất ra với độ chính xác cao.
• Chọn mơ hình: Điều này phụ thuộc vào cách trình bày dữ liệu và các ứng
dụng. Mơ hình q phức tạp có xu hướng dẫn đền những thách thức trong q trình học.
• Cấu trúc và sự liên kết giữa các nơ-ron.
• Thuật tốn học: Có hai vấn đề cần học đối với mỗi mạng ANN, đó là học tham
số của mơ hình (parameter learning) và học cấu trúc (structure learning). Học tham số là thay đổi trọng số của các liên kết giữa các nơ-ron trong một mạng, còn học cấu trúc là việc điều chỉnh cấu trúc mạng bằng việc thay đổi số lớp ẩn, số nơ-ron mỗi lớp và cách liên kết giữa chúng. Hai vấn đề này có thể được thực hiện đồng thời hoặc tách biệt. Nếu các mơ hình, hàm chi phí và thuật tốn học được lựa chọn một cách thích hợp, thì mạng ANN sẽ cho kết quả có thể vơ cùng mạnh mẽ và hiệu quả.
SVTH: LÊ TRUNG KIÊN
Hình 4.2: Q trình xử lý thơng tin của một mạng nơ-ron nhân tạo
Inputs: Mỗi Input tương ứng với 1 đặc trưng của dữ liệu. Ví dụ như trong ứng
dụng của ngân hàng xem xét có chấp nhận cho khách hàng vay tiền hay khơng thì mỗi input là một thuộc tính của khách hàng như thu nhập, nghề nghiệp, tuổi, số con,…
Output: Kết quả của một ANN là một giải pháp cho một vấn đề, ví dụ như với
bài tốn xem xét chấp nhận cho khách hàng vay tiền hay khơng thì output là yes hoặc no.
Connection Weights (Trọng số liên kết) : Đây là thành phần rất quan trọng
của một ANN, nó thể hiện mức độ quan trọng, độ mạnh của dữ liệu đầu vào đối với q trình xử lý thơng tin chuyển đổi dữ liệu từ Layer này sang layer khác. Quá trình học của ANN thực ra là quá trình điều chỉnh các trọng số Weight của các dữ liệu đầu vào để có được kết quả mong muốn.
Summation Function (Hàm tổng): Tính tổng trọng số của tất cả các input