BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CƠ KHÍ ----------

BÁO CÁO ĐỒ ÁN TỐT NGHIỆP

NGÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

ĐỀ TÀI:

NGHIÊN CỨU, TÍNH TOÁN CHẾ TẠO ROBOT DI ĐỘNG ĐIỀU KHIỂN BẰNG GIỌNG NÓI

Giáo viên hướng dẫn : ThS. Trần Quốc Bảo

Sinh viên thực hiện : Nguyễn Trần Thế - 2019606801

: Nguyễn Việt Thắng - 2019606711

: Nguyễn Minh Trường - 2019606048

Lớp : Cơ điện tử 4 – K14

Hà Nội – 2023

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀNỘI

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc

PHIẾU GIAO ĐỀ TÀI ĐỒ ÁN TỐT NGHIỆP

CHUYÊN NGÀNH CÔNG NGHỆ KỸ THUẬT CƠ ĐIỆN TỬ

Họ tên sinh viên: 1. Nguyễn Trần Thế Mã SV: 2019606801 Lớp: CĐT 4 Khóa:14

2. Nguyễn Việt Thắng Mã SV: 2019606711 Lớp: CĐT 4 Khóa:14

Khóa:14

3. Nguyễn Minh Trường Mã SV: 2019606048 Lớp: CĐT 4 Tên đề tài: Nghiên cứu tính toán chế tạo robot di động điều khiển bằng giọng

nói.

Mục tiêu đề tài:

- Nghiên cứu đặc điểm cấu tạo và nguyên lý làm việc của robot di động.

- Nghiên cứu về phương pháp và thuật toán điều khiển bằng giọng nói, cử

chỉ và bluetooth.

- Mô phỏng và mô hình hóa robot di động làm cơ sở cho việc thiết kế và

đánh giá hoạt động của robot di động.

- Thực hiện tốt các tiêu chí kỹ thuật bao gồm tính bền vững và ổn định cao,

dễ dàng thiết kế.

Kết quả dự kiến

- Quyển báo cáo về kết quả đề tài nghiên cứu tính toán chế tạo robot di

động điều khiển bằng giọng nói.

- Bản vẽ về thiết kế hệ thống cơ khí và lưu đồ thuật toán điều khiển bằng

giọng nói trong robot di động.

- Mô hình robot di động trên phần mềm.

- Mô hình thực tế robot di động điều khiển bằng giọng nói.

Thời gian thực hiện: từ 06/03/2023 đến 07/05/2023.

GIÁO VIÊN HƯỚNG DẪN KHOA CƠ KHÍ

ThS. Trần Quốc Bảo PGS.TS. Hoàng Tiến Dũng

NỘI DUNG THỰC HIỆN

1. Bố cục thuyết minh đề tài:

Nội dung nghiên cứu SV thực hiện

Chương 1: Giới thiệu chung về robot di động và công nghệ điều khiển giọng nói

1.1. Lịch sử nghiên cứu Nguyễn Trần Thế

1.2. Các vấn đề đặt ra Nguyễn Việt Thắng

1.3. Đối tượng nghiên cứu Nguyễn Minh Trường

1.4. Phương pháp thực hiện Nguyễn Trần Thế

1.5. Dự kiến kết quả đạt được Nguyễn Minh Trường

Chương 2: Cơ sở lý thuyết về robot di động và công nghệ điều khiển giọng nói

2.1. Lý thuyết điều khiển robot di động Nguyễn Việt Thắng

2.2. Lý thuyết về công nghệ điều khiển giọng nói Nguyễn Việt Thắng

2.3. Mô hình hệ thống cơ khí robot di động Nguyễn Minh Trường

2.4. Mô hình hệ thống điều khiển robot di động Nguyễn Minh Trường

2.5. Kết luận Chương 2 Nguyễn Trần Thế

Chương 3: Tính toán thiết kế robot di động điều khiển bằng giọng nói

Nguyễn Trần Thế 3.1. Thiết kế phần cứng robot di động điều khiển bằng giọng nói

3.2. Thiết kế hệ thống điều khiển robot di động bằng giọng nói Nguyễn Minh Trường Nguyễn Việt Thắng

Nguyễn Việt Thắng 3.3. Lưu đồ thuật toán điều khiển robot di động điều khiển bằng giọng nói

3.4. Kết luận Chương 3 Nguyễn Minh Trường

Chương 4: Chế tạo mô hình và đánh giá

Nguyễn Trần Thế 4.1. Chế tạo mô hình robot di động điều khiển bằng giọng nói

4.2. Đánh giá hoạt động của hệ thống Nguyễn Việt Thắng

Kết luận và định hướng phát triển

2. Bản vẽ:

TT Tên bản vẽ SV thực hiện Khổ giấy Số lượng

1 Bản vẽ hệ thống cơ khí A3 1 Nguyễn Việt Thắng

2 Bản vẽ hệ thống điều khiển A3 1 Nguyễn Minh Trường

3 Lưu đồ thuật toán điều khiển A3 1 Nguyễn Trần Thế

3. Mô hình/ sản phẩm

Nội dung công việc SV thực hiện

 Chế tạo, lắp ráp hệ thống cơ khí

Nguyễn Trần Thế Nguyễn Việt Thắng Nguyễn Minh Trường

 Lắp ráp mạch điều khiển

Nguyễn Trần Thế Nguyễn Việt Thắng Nguyễn Minh Trường

LỜI CẢM ƠN

Lời đầu tiên nhóm sinh viên thực hiện đề tài xin gửi lời cảm ơn chân

thành tới các thầy cô giáo trong trường Đại học Công nghiệp Hà Nội nói chung

và các thầy cô giáo trong khoa cơ khí nói riêng đã tận tình giảng dạy, truyền đạt

cho tôi những kiến thức, kinh nghiệm quý báu trong suốt thời gian qua.

Đặc biệt chúng tôi xin gửi lời cảm ơn sâu sắc đến thầy Trần Quốc Bảo đã

định hướng, hướng dẫn tận tình và tạo điều kiện tốt nhất cho chúng tôi trong

suốt quá trình chúng tôi thực hiện đề tài.

Sau cùng chúng tôi xin gửi lời cảm ơn đến các anh, chị, các bạn đã giúp

đỡ, chia sẻ kinh nghiệm, đóng góp ý kiến cho chúng tôi để hoàn thiện thành tốt

tài liệu.

Trong quá trình thực hiện các chủ đề tài liệu này sẽ không tránh khỏi sự

thiếu xót. Rất mong nhận được sự góp ý của quý thầy cô và các bạn để đề tài

được hoàn thiện hơn.

Nhóm thực hiện để xin chân thành cảm ơn!

Nhóm thực hiện đề tài

Nguyễn Trần Thế

Nguyễn Việt Thắng

Nguyễn Minh Trường

MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ ROBOT DI ĐỘNG ............................. 1

1.1 Lịch sử nghiên cứu....................................................................................... 1

1.2 Các vấn đề đặt ra .......................................................................................... 2

1.3 Đối tượng nghiên cứu .................................................................................. 3

1.4 Phương pháp thực hiện ................................................................................ 3

1.5 Kết quả dự kiến ............................................................................................ 3

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VỀ ROBOT DI ĐỘNG VÀ CÔNG NGHỆ

ĐIỀU KHIỂN GIỌNG NÓI .................................................................................. 5

2.1 Lý thuyết điều khiển robot di động.............................................................. 5

2.1.1 Khái niệm robot di động ........................................................................ 5

2.1.2 Các phương pháp điều khiển robot di động .......................................... 5

2.1.3 Lý thuyết điều khiển robot bằng cử chỉ. ............................................... 8

2.1.4 Giới thiệu về MIT App Iventor ........................................................... 10

2.1.5 Lý thuyết về công nghệ xử lý ảnh ....................................................... 15

2.1.6. Phát hiện đối tượng và thị giác máy tính ........................................... 18

2.2 Lý thuyết về công nghệ điều khiển giọng nói ........................................... 21

2.2.1 Khái niệm về công nghệ điều khiển giọng nói .................................... 21

2.2.2 Cách thức xây dựng công nghệ điều khiển giọng nói ......................... 21

2.2.3 Các loại hệ thống nhận dạng ............................................................... 23

2.2.4 Các cách nhận dạng giọng nói............................................................. 23

2.2.5 Cách thức triển khai công nghệ giọng nói .......................................... 24

2.2.6 Ứng dụng của công nghệ điều khiển giọng nói .................................. 24

2.2.7 Ưu nhược điểm của công nghệ điều khiển giọng nói ......................... 25

2.3. Mô hình hệ thống cơ khí robot di động .................................................... 26

2.3.1 Khung cơ khí ....................................................................................... 27

2.3.2 Bộ phận truyền động ........................................................................... 27

2.3.3 Bộ phận liên kết ................................................................................... 28

2.4 Mô hình hệ thống điều khiển ..................................................................... 29

2.4.1 Arduino Uno R3 .................................................................................. 29

2.4.2 Module ESP32 ..................................................................................... 31

2.4.3 Module ESP 8266 ................................................................................ 32

2.4.4 Module L298 ....................................................................................... 33

2.4.5 Cảm biến siêu âm HC-SR04 ............................................................... 36

2.4.6 Module cảm biến gia tốc góc MPU6050............................................. 37

2.4.7 Mạch sạc pin lithium 18650 2 cell nối tiếp 16A ................................. 39

2.4.8 Mạch sạc TP4056 ................................................................................ 40

2.4.9 Module ESP 32 – CAM ...................................................................... 41

2.4.10 Động cơ servo SG90 ......................................................................... 43

2.4.11 Động cơ DC giảm tốc vàng v1 .......................................................... 44

2.5 Kết luận chương 2 ...................................................................................... 44

CHƯƠNG 3: TÍNH TOÁN THIẾT KẾ ROBOT DI ĐỘNG ĐIỀU KHIỂN

BẰNG GIỌNG NÓI ............................................................................................ 45

3.1 Thiết kế phần cứng robot di động điều khiển bằng giọng nói ................... 45

3.1.1 Thiết kế sơ đồ khối hệ thống ............................................................... 45

3.1.2 Tính toán thiết kế mô hình .................................................................. 46

3.2 Thiết kế hệ thống điều khiển robot di động bằng giọng nói ...................... 52

3.2.1 Kết nối arduino và cảm biến HC-SR04............................................... 52

3.2.2 Kết nối module ESP32, L298 và động cơ DC .................................... 53

3.2.3 Kết nối ESP32-CAM và laptop ........................................................... 55

3.2.4 Kết nối ESP 8266, MPU6050 và mạch sạc ......................................... 56

3.2.5 Thiết kế mạch in .................................................................................. 57

3.3 Lưu đồ thuật toán điều khiển robot di động bằng giọng nói ..................... 59

3.4 Kết luận chương 3 ...................................................................................... 62

CHƯƠNG 4: CHẾ TẠO MÔ HÌNH VÀ ĐÁNH GIÁ ....................................... 63

4.1 Chế tạo mô hình robot di động điều khiển bằng giọng nói ....................... 63

4.1.1 Lắp ráp và kiểm tra .............................................................................. 63

4.1.2 Thiết kế ứng dụng điều khiển robot di động qua MIT Ap Inventor ... 66

4.2 Đánh giá hoạt động của hệ thống .............................................................. 69

4.2.1 Kết quả ................................................................................................ 69

4.2.2 Đánh giá hoạt động của hệ thống ........................................................ 73

KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN ............................................... 74

TÀI LIỆU THAM KHẢO ................................................................................... 75

DANH MỤC HÌNH ẢNH

Hình 2. 1: Phương pháp Dead-reckoning.............................................................. 6

Hình 2. 2: Hệ thống dẫn đường cột mốc chủ động ............................................... 7

Hình 2. 3: Định vị sử dụng bản đồ ........................................................................ 8

Hình 2. 4: Điều khiển robot thông qua wifi .......................................................... 8

Hình 2. 5: Điều khiển robot di động bằng cử chỉ .................................................. 9

Hình 2. 6: Giao diện quản lý project ................................................................... 10

Hình 2. 7: Giao diện thiết kế (Design) ................................................................ 10

Hình 2. 8: Giao diện lập trình (Blocks) ............................................................... 11

Hình 2. 9: Thiết kế giao diện ............................................................................... 11

Hình 2. 10: Khối lệnh (Code blocks) trong App inventor .................................. 12

Hình 2. 11: Lệnh tích hợp có sẵn ........................................................................ 13

Hình 2. 12: Screen ............................................................................................... 14

Hình 2. 13: Vùng làm việc .................................................................................. 14

Hình 2. 14: Các bước cơ bản trong xử lý ảnh ..................................................... 15

Hình 2. 15: Sơ đồ phân tích và xử lý ảnh và lưu đồ thông tin giữa các khối ..... 18

Hình 2. 16 : Hoạt động YOLO ............................................................................ 20

Hình 2. 17: Giao tiếp với bằng google assistant ................................................. 21

Hình 2. 18: Xử lý ngôn ngữ tự nhiên .................................................................. 23

Hình 2. 19: Trợ lý ảo ........................................................................................... 25

Hình 2. 20: Khung Robot .................................................................................... 27

Hình 2. 21:Bánh xe robot .................................................................................... 28

Hình 2. 22: Bộ phận liên kết ............................................................................... 28

Hình 2. 23: Sơ đồ chân Arduino Uno R3 ............................................................ 29

Hình 2. 24: Module ESP32 ................................................................................. 31

Hình 2. 25: Sơ đồ chân của bo 30 chân ESP32 DevKit. ..................................... 32

Hình 2. 26: Sơ đồ chân WeMos D1 Mini ........................................................... 33

Hình 2. 27: Modue L298 ..................................................................................... 34

Hình 2. 28: Sơ đồ chân L298 .............................................................................. 35

Hình 2. 29: Nguyên lý hoạt động theo chiều thuận ............................................ 35

Hình 2. 30: Nguyên lý hoạt động theo chiều nghịch .......................................... 35

Hình 2. 31: Cảm biến siêu âm HC-SR04 ............................................................ 36

Hình 2. 32: Góc nghiêng theo trục X,Y,Z ........................................................... 38

Hình 2. 33: Sơ đồ chân MPU6050 ...................................................................... 38

Hình 2. 34: Mạch sạc pin 18650 ......................................................................... 39

Hình 2. 35: Mạch sạc TP4056 ............................................................................. 40

Hình 2. 36: Sơ đồ dây mạch sạc TP4056 ............................................................ 41

Hình 2. 37: Module ESP32-CAM ....................................................................... 42

Hình 2. 38: Sơ đồ chân ESP32-CAM ................................................................. 42

Hình 2. 39: Servo SG90 ...................................................................................... 43

Hình 2. 40: Sơ đồ chân servo SG90 .................................................................... 43

Hình 3. 1 : Sơ đồ khối hệ thống .......................................................................... 45

Hình 3. 2: Cấu hình của robot với hai bánh chủ động ........................................ 46

Hình 3. 3: Phân tích lực tác dụng lên bánh xe .................................................... 50

Hình 3. 4: Động cơ giảm tốc V1 ......................................................................... 51

Hình 3. 5: Sơ đồ kết nối arduino với cảm biến HC-SR04 .................................. 52

Hình 3. 6: Sơ đồ kết nối module ESP32, L298 và động cơ DC ......................... 53

Hình 3. 7: Sơ đồ kết nối pin và mạch sạch .......................................................... 54

Hình 3. 8: Sơ đồ kết nối ESP32-CAM và laptop ................................................ 55

Hình 3. 9: Kết nối tay cầm .................................................................................. 56

Hình 3. 10: Bản vẽ nguyên lý của ESP32 [6] .................................................... 57

Hình 3. 11: Mạch in của ESP32 .......................................................................... 57

Hình 3. 12: Bản vẽ nguyên lý ESP8266 .............................................................. 58

Hình 3. 13: Mạch in của ESP 8266 ..................................................................... 58

Hình 3. 14: Lưu đồ thuật toán ứng dụng điều khiển ........................................... 59

Hình 3. 15: Lưu đồ thuật toán điều khiển robot .................................................. 60

Hình 3. 16: Lưu đồ thuật toán phát hiện vật ....................................................... 61

Hình 3. 17: Lưu đồ thuật toán xử lý ảnh ............................................................. 62

Hình 4. 1: Động cơ và bánh xe ............................................................................ 63

Hình 4. 2: Khung robot tầng 1 ............................................................................ 64

Hình 4. 3: Tầng 1 robot di động .......................................................................... 64

Hình 4. 4: Tầng 2 robot di động .......................................................................... 65

Hình 4. 5: Tầng 3 robot di động .......................................................................... 65

Hình 4. 6: Hình ảnh robot sau khi lắp rắp thành công ........................................ 66

Hình 4. 7: Tạo dự án mới .................................................................................... 66

Hình 4. 8: Dự án mới ........................................................................................... 66

Hình 4. 9: Kéo các khối vào khung đã có ........................................................... 67

Hình 4. 10: Kéo khối TextBox để nhập địa chỉ IP kết nối với camera. .............. 67

Hình 4. 11: Thiết lập các nút bấm sử dụng khối “ Button” ................................ 67

Hình 4. 12: Các khối chức năng .......................................................................... 68

Hình 4. 13: Giao diện điều khiển tay cầm và giọng nói trên ứng dụng .............. 68

Hình 4. 14: Kết quả điều khiển bằng giọng nói .................................................. 69

Hình 4. 15: Kết quả điều khiển robot bằng cử chỉ .............................................. 70

Hình 4. 16: Kết quả điều khiển bằng bluetooth .................................................. 71

Hình 4. 17: Kết quả xử lý hình ảnh phát hiện được ............................................ 72

Hình 4. 18: Robot phát hiện vật cản trong quá trình quét ................................... 73

DANH MỤC BẢNG BIỂU

Bảng 2. 1: Bảng thông số kỹ thuật Arduino R3 .................................................. 30

Bảng 2. 2: Bảng thông số kỹ thuật L298 ............................................................. 34

Bảng 2. 3: Bảng thông số kỹ thuật cảm biến siêu âm HC-SR04 ....................... 36

Bảng 2. 4: Bảng thông số kỹ thuật mạch sạc pin 18650 ..................................... 39

Bảng 2. 5: Bảng thông số kỹ thuật mạch sạc TP4056 ........................................ 40

Bảng 2. 6: Bảng thông số kỹ thuật động cơ giảm tốc V1 ................................... 44

CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ ROBOT DI ĐỘNG

1.1 Lịch sử nghiên cứu

Mobile robot là loại máy tự động có khả năng di chuyển trong một số môi

trường nhất định. Mobile robot hiện đang được các nhà nghiên cứu chú trọng và

hầu như các trường đại học lớn đều có phòng thí nghiệm để tập trung nghiên cứu

loại robot này. Chúng cũng được sử dụng trong các ngành công nghiệp, quân sự

và sinh hoạt..., như trong sing hoạt có robot hút bụi, lau nhà hay cắt cỏ....

Hình dạng robot xuất hiện đầu tiên ở nước Hoa Kỳ, là loại tay máy chép

hình dung trong phòng thí nghiệm vật liệu phóng xạ. Vào những năm 50 của thế

kỷ trước, bên cạnh các loại tay máy chép hình cơ khí, các loại tay máy chép hình

thủy lực điện tử đã xuất hiện. Tuy nhiên, các tay máy thương mại đều có chung

nhược điểm là thiếu sự di động, các tay máy này hoạt động hạn chế quanh vị trí

của nó. Ngược lại, mobile robot là loại robot di động có thể di chuyển từ không

gian này đến không gian khác một cách độc lập hay được điều khiển từ xa, do

đó tạo không gian hoạt động lớn.

Năm 1969: Mowbot là con robot đầu tiên cắt cả bãi cỏ một cách tự động.

The Stanford Cart line follower là một con robot di động có thể di chuyển thông

qua nhận dạng đường kẻ trắng, sử dụng một camera để nhìn. Nó bao gồm một

“kênh truyền thanh” gắn với hệ thống máy tính lớn để tạo ra những tính toán.

Năm 1977: Bộ phim “Chiến tranh giữa các vì sao" phần I, A new Hope

mô tả R2D2, một con robot di động hoạt động độc lập và C3P0, một con robot

hình người. Họ đã khiến công chúng biết đến những con robot.

Năm 1980: Thị hiếu của người tiêu dùng về robot tăng, robot được bảy

bán và mua về để sử dụng trong nhà. Ví dụ RB5X vẫn tồn tại tới ngày nay và

một loạt mẫu robot HERO. Robot The Stanford Cart được phát triển mạnh, nó

đã có thể lái tàu biển vượt qua những trở ngại và tạo lên bản đồ những nơi nó đi

qua.

1

Năm 1990: Cha đẻ của nền robot công nghiệp Joseph Engelberger làm

việc với các đồng nghiệp và đã phát minh ra những con robot tự động trong

ngành y tế và được bán bởi Helpmate. Sở an ninh Mỹ gây quỹ cho dự án

MDARS-I dựa vào robot bảo vệ trong nhà Cybermotion.

Năm 1999: Sony giới thiệu Aibo, một con robot có khả năng đi lại, quan

sát và tác động qua lại tới môi trường. Robot điều khiển từ xa dùng cho quân sự

PackBot cũng được giới thiệu.

Năm 2001: Dự án Swaim-Bots, Swaim-Bots giống những bầy côn trùng

được khởi động. Chúng bao gồm một số lượng lớn các con robot đơn lẻ, có thể

tác động lẫn nhau và cùng nhau thực hiện những nhiệm vụ phức tạp.

Năm 2002: Roomaba, một con robot di động dung trong gia đình, thực

hiện công việc lau nhà xuất hiện. Tiếp tục phát triển hiện nay có rất nhiều loại

robot phục vụ cho con người dần xuất hiện ngày càng thân thiện hơn.

1.2 Các vấn đề đặt ra

Trong quá trình nghiên cứu, tính toán chế tạo robot di động điều khiển

bằng giọng nói cần giải quyết các vấn đề sau:

- Vấn đề cơ khí:

 Phân tích tính toán thiết kế kết cấu khung cho robot sao cho robot

chuyển động êm không rung lắc đảm bảo độ chính xác cao khi di

chuyển.

 Tính toán lựa chọn vật liệu, linh kiện phù hợp với đề tài.

 Lựa chọn các cảm biến điều khiển robot bằng giọng nói, cử chỉ,

bluetooth.

- Vấn đề điều khiển:

 Lập trình phầm mềm điều khiển robot bằng giọng nói, cử chỉ,

bluetooth.

2

 Robot di động hoạt động chính xác khi được điều khiển qua phần

mềm đã lập.

- Với việc kết hợp giữa phần điều khiển và cơ khí sẽ có một robot di

động hoạt động ổn định.

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

Đối tượng nghiên cứu của đề tài là chế tạo robot di động kết hợp viết một

ứng dụng trên nền tảng Android giao tiếp với người điều khiển bằng giọng nói

và cảm ứng thông qua phần mềm. Bên cạnh đó, robot di động còn có thể điều

khiển bằng cử chỉ theo bàn tay. Sử dụng các phần mềm thiết kế mạch in Altium,

phần mềm thiết kế mô hình 3D Solidworks và trình biên dịch Arduino IDE để

lập trình cho vi điều khiển. Sau đó lắp ráp các chi tiết cơ khí cùng các module

chức năng làm sao để chúng có thể hoạt động thống nhất, đồng bộ trên một mô

hình.

1.4 Phương pháp thực hiện

- Tìm kiếm, thu thập các tài liệu về robot di động trên sách, báo và các

trang mạng trên Internet.

- Nghiên cứu những thiết kế đã được các nhóm, các cá nhân phát triển

trong và ngoài nước.

- Tìm hiểu về công nghệ điều khiển bằng giọng nói và ứng dụng của công

nghệ này.

- Nghiên cứu phương pháp và thuật toán điều khiển bằng giọng nói, cử chỉ

và bluetooth ứng dụng vào để điều khiển robot di động.

- Nghiên cứu, lựa chọn và kiểm nghiệm các module, linh kiện phù hợp.

- Tính toán, thiết kế phần khung, vỏ robot, đảm bảo sự linh hoạt cho robot,

giảm khối lượng, đảm bảo tính thẩm mĩ và độ bền.

1.5 Kết quả dự kiến

- Bản vẽ chế tạo cơ khí và bản vẽ hệ thống điều khiển của robot di động.

3

- Mô hình robot di động điều khiển trên phần mềm kết nối qua bluetooth.

- Mô hình robot di động điều khiển bằng giọng nói và cử chỉ bàn tay.

- Bên cạnh đó, mô hình robot báo hiệu vật cản phía trước.

- Mô hình robot di động tích hợp camera theo dõi phía sau và nhận biết vật

cản bằng camera phía trước.

4

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VỀ ROBOT DI ĐỘNG VÀ CÔNG

NGHỆ ĐIỀU KHIỂN GIỌNG NÓI

2.1 Lý thuyết điều khiển robot di động

2.1.1 Khái niệm robot di động

Robot là một loại thiết bị có thể thực hiện những công việc một cách tự

động bằng sự điều khiển của máy tính hoặc các vi mạch điện tử được lập trình.

Robot có một trong các đặc điểm sau đây: do con người sáng tạo ra, có khả năng

nhận biết môi trường xung quanh và tương tác với những vật thể trong môi

trường, có khả năng đưa ra các lựa chọn dựa trên môi trường và được điều khiển

một cách tự động theo những trình tự đã được lập trình trước, có thể điều khiển

được bằng các lệnh để có thể thay đổi tùy theo yêu cầu của người sử dụng, có

thể di chuyển quay hoặc tịnh tiến theo một hay nhiều chiều và khéo léo trong

vận động.

Robot di động là robot có khả năng tự di chuyển, di chuyển trong môi

trường của chúng, không cố định vào một vị trí thực. Robot di động có khả năng

điều hướng một môi trường không kiểm soát được mà không cần các thiết bị

hướng dẫn vật lý hoặc cơ điện. Ngoài ra, robot di động có thể dựa vào các thiết

bị hướng dẫn cho phép nó di chuyển tuyến đường định hướng được xác định

trước trong không gian tương đối được kiểm soát. Nó khác với robot công

nghiệp thường đặt gần cố định và hoạt động bằng các cánh tay.

2.1.2 Các phương pháp điều khiển robot di động

Một robot di động thông minh phải được điều khiển dẫn đường theo một

chiến lược có hiệu quả. Có nhiều nghiên cứu trên thế giới với các thuật giải và

phương pháp khác nhau cho dẫn đường robot trong các môi trường trong nhà và

ngoài trời. Ta sẽ điểm qua một vài phương pháp như sau:

- Phương pháp Dead-reckoning:

Dead-reckoning là phương pháp dẫn đường được sử dụng rộng rãi nhất

đối với robot di động. Phương pháp này cho độ chính xác trong thời gian ngắn,

5

giá thành thấp và tốc độ lấy mẫu rất cao. Tuy nhiên do nguyên tắc cơ bản của

phương pháp Dead-reckoning là tích luỹ thông tin về gia tốc chuyển động theo

thời gian do đó dẫn tới sự tích luỹ sai số. Sự tích luỹ sai số theo hướng sẽ dẫn

đến sai số vị trí lớn tăng tỉ lệ với khoảng cách chuyển động của robot. Tuy nhiên

hầu hết các nhà nghiên cứu đều đồng ý rằng Dead-reakoning là một phần quan

trọng trong hệ thống dẫn đường robot, các lệnh dẫn đường sẽ được đơn giản hoá

nếu độ chính xác của phương pháp Dead-reckoning được cải thiện. Phương pháp

dead-reakoning dựa trên phương trình đơn giản và thực hiện được một cách dễ

dàng, sử dụng dữ liệu từ bộ mã hoá số vòng quay bánh xe. Dead-reckoning dựa

trên nguyên tắc là chuyển đổi số vòng quay bánh xe thành độ dịch tuyến tính

tương ứng của robot. Nguyên tắc này chỉ đúng với giá trị giới hạn. Có một vài lý

do dẫn đến sự không chính xác trong việc chuyển từ số gia vòng quay bánh xe

sang chuyển động tuyến tính. Tất cả các nguồn sai số này được chia thành 2

nhóm: sai số hệ thống và sai số không hệ thống. Để giảm sai số Dead-reckoning

cần phải tăng độ chính xác động học cũng như kích thước tới hạn.

Hình 2. 1: Phương pháp Dead-reckoning

- Hệ thống dẫn đường cột mốc chủ động:

Hệ thống dẫn đường cột mốc chủ động là hệ thống dẫn đường được sử

dụng phổ biến nhất trên tàu biển và máy bay. Hệ thống này cung cấp thông tin vị

trí rất chính xác với quá trình xử lý tối thiểu. Hệ thống cho phép tốc độ lấy mẫu

6

và độ tin cậy cao nhưng đi kèm với nó là giá thành cao trong việc thiết lập và

duy trì. Cột mốc được đặt tại các vị trí chính xác sẽ cho phép xác định toạ độ

chính xác của vật thể. Có 2 phương pháp đo dùng trong hệ thống cột mốc chủ

động, đó là phép đo 3 cạnh tam giác và phép đo 3 góc tam giác. Phép đo 3 cạnh

tam giác. Phép đo 3 cạnh tam giác xác định vị trí vật thể dựa trên khoảng cách

đo được tới cột mốc biết trước. Trong hệ thống dẫn đường sử dụng phép đo này

thông thường có ít nhất là 3 trạm phát đặt tại các vị trí biết trước ngoài môi

trường và 1 trạm nhận đặt trên robot. Hoặc ngược lại có 1 trạm phát đặt trên rô

bốt và các trạm nhận đặt ngoài môi trường. Sử dụng thông tin về thời gian

truyền của chùm tia hệ thống sẽ tính toán khoảng cách giữa các trạm phát cố

định và trạm nhận đặt trên robot. GPS (Global Positionings Systems) - hệ thống

định vị toàn cầu hoặc hệ thống cột mốc sử dụng cảm biến siêu âm là các ví dụ

khi sử dụng phép đo 3 cạnh tam giác, phép đo 3 góc tam giác.

Hình 2. 2: Hệ thống dẫn đường cột mốc chủ động

- Định vị sử dụng bản đồ:

Robot sử dụng các cảm biến được trang bị để tạo ra một bản đồ cục bộ

môi trường xung quanh. Bản đồ này sau đó so sánh với bản đồ toàn cục lưu trữ

sẵn trong bộ nhớ. Nếu tương ứng, robot sẽ tính toán vị trí và góc hướng thực tế

của nó trong môi trường.

7

Hình 2. 3: Định vị sử dụng bản đồ

- Ngoài ra robot di động có thể điều khiển từ xa bằng tay được điều khiển

thông qua wifi, hồng ngoại hay bluetooth…

Hình 2. 4: Điều khiển robot thông qua wifi

2.1.3 Lý thuyết điều khiển robot bằng cử chỉ.

Nhiều chủ đề liên quan đến giao tiếp giữa con người và robot đã được

khám phá trong những năm gần đây và nhiều phương pháp nghiên cứu liên tục

được công bố. Nhiều giao diện thân thiện với người dùng đã được giới thiệu

bằng lời nói, tầm nhìn, cử chỉ,... Trong số các nghiên cứu sử dụng cử chỉ, Mitra

et al. đã thảo luận về phương pháp sử dụng nhiều loại cảm biến để thu tín hiệu

8

nhằm xác định mẫu cử chỉ. Một trong những mục tiêu của bài báo này là hiểu cử

chỉ tay sử dụng cảm biến IMU.

Hình 2. 5: Điều khiển robot di động bằng cử chỉ

Ngày nay, robot đang là lĩnh vực mới nổi trong lĩnh vực công nghệ. Robot

là một mô hình cơ điện, được vận hành bởi một chương trình máy tính. Nó có

thể là tự động hoặc bán tự động. Một robot tự động không có giao diện của con

người. Phần lớn các robot công nghiệp là tự động vì chúng yêu cầu tốc độ cao.

Tuy nhiên, một số lĩnh vực có yêu cầu về robot bán tự động hoặc do con người

điều khiển. Robot di động được sử dụng trong môi trường gia đình, môi trường

cần sự tỉ mỉ,... trong bối cảnh ngày nay. Ví dụ như robot trinh thám, robot vận

chuyển,... hiện đang làm việc xung quanh chúng ta và giúp chúng ta rất nhiều

trong các hoạt động thường ngày. Có một số phương pháp để tương tác với

những robot này, chẳng hạn như giọng nói, cử chỉ và cần điều khiển. Nó có

nhược điểm là không thích hợp để điều khiển từ xa liên tục. Trong những trường

hợp như vậy, cử chỉ điều khiển thích hợp hơn cho điều khiển của robot. Có một

số các phương pháp để thu thập cử chỉ của con người mà máy móc có thể diễn

giải được. Găng tay dữ liệu được sử dụng để ghi lại thông tin cử chỉ. Dữ liệu cử

chỉ cũng có thể được thu thập qua Bluetooth hoặc sóng hồng ngoại, công nghệ

xúc giác, quang học hoặc chuyển động. Gia tốc kế là thiết bị tốt nhất để kiểm

soát chuyển động nhỏ của bộ điều khiển cánh tay.

9

2.1.4 Giới thiệu về MIT App Iventor

 Giới thiệu chung.

MIT App Inventor dành cho Android là một ứng dụng web nguồn mở ban

đầu được cung cấp bởi Google và hiện tại được duy trì bởi Viện Công nghệ

Massachusetts (MIT). Nền tảng cho phép nhà lập trình tạo ra các ứng dụng phần

mềm cho hệ điều hành Android. Bằng cách sử dụng giao diện đồ họa, nền tảng

cho phép người dùng kéo và thả các khối mã (blocks) để tạo ra các ứng dụng có

thể chạy trên thiết bị Android.

 Các giao diện của MIT App Inventor:

- Giao diện quản lý project

Hình 2. 6: Giao diện quản lý project

- Giao diện thiết kế (Design)

Hình 2. 7: Giao diện thiết kế (Design)

10

- Giao diện lập trình (Blocks)

Hình 2. 8: Giao diện lập trình (Blocks)

 Thiết kế giao diện

Hình 2. 9: Thiết kế giao diện

11

 Ứng dụng có thể có nhiều cửa sổ giao diện, trong MIT AI2 gọi là

các Screen.

 Palette: Chứa các thành phần có thể đặt lên trên Screen như:

Button, Label, Image, Listview, Video player, ….

 Layout: Chứa các khung giao diện theo chiều dọc, chiều ngang, ...

 Media: Bao gồm các đa phương tiện: camera, âm thanh, giọng nói,

dịch, video, …

 Drawing and Animation: Chứa các đối tượng động, hình ảnh

động, ...

 Maps: Chứa vị trí, đánh dấu, các đối tượng địa lý, ...

 Charts: Bao gồm các khung biểu đồ cột, biểu đồ tròn, …

 Sensors: Chứa các đối tượng liên quan đến cảm biến như các biểu

tượng như đồng hồ, độ dài, nhiệt độ, ánh sáng, tốc độ, ...

 Social: Chứa các biểu tượng liên quan đến cách thức liên lạc, các

mạng xã hội liên kết, …

 Connectivity: Chứa các biểu tượng như kết nối bluetooth, kết nối

qua web, ...

Hình 2. 10: Khối lệnh (Code blocks) trong App inventor

12

- Lệnh tích hợp có sẵn

Hình 2. 11: Lệnh tích hợp có sẵn

- Những nhóm lệnh tích hợp sẵn (Build-in) gồm những nhóm như sau:

 Control: là nhóm lệnh liên quan đến các câu lệnh điều kiện, điều khiển,

vòng lặp, ...

 Logic: là những nhóm giá trị liên quan đến logic như true, false, phủ

định, các phép so sánh, ...

 Math: là nhóm lệnh, giá trị liên quan đến tính toán, con số, ...

 Text: là nhóm lệnh những câu lệnh xử lý và làm việc với chuỗi, xâu ký

tự, ...

 Lists: là nhóm lệnh làm việc với danh sách.

 Colors: là nhóm lệnh làm việc với màu sắc.

 Variables: là nhóm giúp bạn tạo, khai thác và xử lý các biến (toàn cục

hoặc địa phương).

 Procedure: giúp bạn xây dựng chương trình con, thủ tục, ...

- Screen

13

Hình 2. 12: Screen

 Screen hiển thị danh sách những đối tượng mà bạn đã kéo thả trên

màn hình hiện tại. Với mỗi đối tượng như vậy sẽ có những câu lệnh

nhất định để tương tác với nó.

 Những bài viết về các đối tượng sẽ được trình bày ở các bài viết sau.

- Vùng làm việc

Hình 2. 13: Vùng làm việc

 Vùng làm việc của blocks có thể chia thành 4 phần như sau:

+ 1: Vùng chứa những khối lệnh đề xuất từ một đối tượng mà bạn đã

chọn từ blocks, bạn có thể kéo thả những khối lệnh này vào vùng làm

việc thật sự để trở thành lệnh cho ứng dụng thực thi.

14

+ 2: Những khối lệnh đã được kéo ra từ những khối lệnh đề xuất. Ứng

dụng sẽ thực thi những khối lệnh này.

+ 3: Backpack: Giúp bạn sao chép và dán các khối lệnh đến màn hình

khác hoặc project khác.

+ 4: Thùng rác: Để xóa những khối lệnh, bạn chỉ cần kéo thả chúng vào

thùng rác này.

2.1.5 Lý thuyết về công nghệ xử lý ảnh

Xử lý ảnh [1] là một lĩnh vực mang tính khoa học và công nghệ. Nó là

một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ

phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc

biệt là máy tính chuyên dụng riêng cho nó.

Bước đầu tiên trong quá trình xử lý ảnh, ảnh tự nhiên từ thế giới ngoài

được thu nhận qua các thiết bị thu (như camera, máy chụp ảnh). Trước đây, ảnh

thu qua camera là các ảnh tương tự (loại camera ống kiểu CCIR). Gần đây, với

sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ camera, sau

đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo. Mặt

khác, ảnh cũng có thể tiếp nhận từ vệ tinh, có thể quét từ ảnh chụp bằng máy

quét ảnh. Hình dưới đây mô tả các bước cơ bản trong xử lý ảnh.

Hình 2. 14: Các bước cơ bản trong xử lý ảnh

15

Sơ đồ trên gồm các phần sau:

 Phần thu nhận ảnh (Image Acquisition)

Ảnh có thể nhận qua camera màu hoặc đen trắng. Thưởng ảnh nhận qua

camera là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh

25 dòng), cũng có loại camera đã số hoá (như loại CCD – Change Coupled

Device) là loại photodiot tạo cường độ sáng tại mỗi điểm ảnh.

Camera thường dùng là loại quét dòng ; ảnh tạo ra có dạng hai chiều. Chất

lượng một ảnh thu nhận được phụ thuộc vào thiết bị thu, vào môi trường (ánh

sáng, phong cảnh).

 Tiền xử lý (Image Processing)

Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ

tiền xử lý để nâng cao chất lượng. Chức năng chính của bộ tiền xử lý là lọc

nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn.

 Phân đoạn (Segmentation) hay phân vùng ảnh

Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để

biểu diễn phân tích, nhận dạng ảnh. Ví dụ: để nhận dạng chữ (hoặc mã vạch)

trên phong bì thư cho mục đích phân loại bưu phẩm, cần chia các câu, chữ về

địa chỉ hoặc tên người thành các từ, các chữ, các số (hoặc các vạch) riêng biệt để

nhận dạng. Đây là phần phức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây

lỗi, làm mất độ chính xác của ảnh. Kết quả nhận dạng ảnh phụ thuộc rất nhiều

vào công đoạn này.

 Biểu diễn ảnh (Image Representation)

Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân

đoạn) cộng với mã liên kết với các vùng lận cận. Việc biến đổi các số liệu này

thành dạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính. Việc chọn

các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn

với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm

cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận

được. Ví dụ: trong nhận dạng ký tự trên phong bì thư, chúng ta miêu tả các đặc

trưng của từng ký tự giúp phân biệt ký tự này với ký tự khác.

16

 Nhận dạng và nội suy (Image Recognition and Interpretation)

Nhận dạng ảnh là quá trình xác định ảnh. Quá trình này thường thu được

bằng cách so sảnh với mẫu chuẩn đã được học (hoặc lưu) từ trước. Nội suy là

phán đoán theo ý nghĩa trên cơ sở nhận dạng. Ví dụ: một loạt chữ số và nét gạch

ngang trên phong bì thư có thể được nội suy thành mã điện thoại. Có nhiều cách

phân loại ảnh khác nhau về ảnh. Theo lý thuyết về nhận dạng, các mô hình toán

học về ảnh được phân theo hai loại nhận dạng ảnh cơ bản:

- Nhận dạng theo tham số.

- Nhận dạng theo cấu trúc.

Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng

trong khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký

điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận

dạng mặt người...

 Cơ sở tri thức (Knowledge Base)

Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độ

sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phủ kéo theo

nhiễu. Trong nhiều khâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các

phương pháp toán học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt

chước quy trình tiếp nhận và xử lý ảnh theo cách của con người. Trong các bước

xử lý đó, nhiều khâu hiện nay đã xử lý theo các phương pháp trí tuệ con người.

Vì vậy, ở đây các cơ sở tri thức được phát huy.

 Mô tả (biểu diễn ảnh)

Từ hình ảnh các bước cơ bản trong xử lý ảnh, ảnh sau khi số hoá sẽ được

lưu vào bộ nhớ, hoặc chuyển sang các khâu tiếp theo để phân tích. Nếu lưu trữ

ảnh trực tiếp từ các ảnh thô, đòi hỏi dung lượng bộ nhớ cực lớn và không hiệu

quả theo quan điểm ứng dụng và công nghệ. Thông thường, các ảnh thô đó được

đặc tả (biểu diễn) lại (hay đơn giản là mã hoá) theo các đặc điểm của ảnh được

gọi là các đặc trưng ảnh (Image Features) như: biến ảnh (Boundary), vùng ảnh

(Region). Một số phương pháp biểu diễn thường dùng:

- Biểu diễn bằng mã chạy (Run-Length Code)

17

- Biểu diễn bằng mã xích (Chaine-Code)

- Biểu diễn bằng mã tứ phân (Quad-Tree Code)

Tuy nhiên trong thực tế các quá trình sử dụng ảnh số không nhất thiết phải

qua hết các khâu đó tùy theo đặc điểm ứng dụng. Hình dưới đây cho sơ đồ phân

tích và xử lý ảnh và lưu đồ thông tin giữa các khối một cách khá đầy đủ. Ảnh

sau khi được số hóa được nén, lưu lại để truyền cho các hệ thống khác sử dụng

hoặc để xử lý tiếp theo. Mặt khác, ảnh sau khi số hóa có thể bỏ qua công đoạn

nâng cao chất lượng (khi ảnh đủ chất lượng theo một yêu cầu nào đó) để chuyển

tới khâu phân đoạn hoặc bỏ tiếp khâu phân đoạn chuyển trực tiếp tới khâu trích

chọn đặc trưng. Hình dưới đây cũng chia các nhánh song song như: nâng cao

chất lượng ảnh có hai nhánh phân biệt: nâng cao chất lượng ảnh (tăng độ sáng,

độ tương phản, lọc nhiễu) hoặc khôi phục ảnh (hồi phục lại ảnh thật khi ảnh

nhận được bị méo)...

Hình 2. 15: Sơ đồ phân tích và xử lý ảnh và lưu đồ thông tin giữa các khối

2.1.6. Phát hiện đối tượng và thị giác máy tính

 Phát hiện đối tượng

Object Detection là một bài toán quan trọng trong lĩnh vực Computer

Vision, thuật toán Object Detection được chia thành 2 nhóm chính:

- Họ các mô hình RCNN ( Region-Based Convolutional Neural

Networks) để giải quyết các bài toán về định vị và nhận diện vật thể.

18

- Họ các mô hình về YOLO (You Only Look Once) dùng để nhận dạng

đối tượng được thiết kế để nhận diện các vật thể real-time.

Ta có thể điểm qua R-CNN bao gồm : Fast R-CNN, Faster R-CNN. Thuật

toán tạo đề xuất khu vực trong R-CNN và R-CNN nhanh được tách ra khỏi

CNN. Thuật toán này không thể đào tạo được và đòi hỏi rất nhiều tính toán.

Trong phương pháp Faster R-CNN, một CNN bổ sung được sử dụng để tạo các

đề xuất khu vực thay vì thuật toán tìm kiếm chọn lọc. Đầu vào của CNN bổ

sung, được gọi là RPN (mạng đề xuất khu vực), là bản đồ tính năng cuối cùng

được trích xuất từ mô hình CNN và đầu ra là các đề xuất khu vực được tạo. Khi

tích hợp quy trình tạo đề xuất khu vực vào mô hình CNN chính, tốc độ và độ

chính xác trong việc phát hiện đã tăng lên.

Phương pháp YOLO (You Only Look Once) là một trong những phương

pháp phát hiện một giai đoạn, coi toàn bộ quá trình phát hiện là một bài toán hồi

quy đơn lẻ. Thay vì tạo các đề xuất vùng, hình ảnh đầu vào được chia thành một

số lưới và một số hộp giới hạn cụ thể được gán cho mỗi lưới. Với phương pháp

YOLO, 45 hình ảnh có thể được xử lý trong một giây, điều này có nghĩa là việc

phát hiện đối tượng bằng YOLO có thể được áp dụng cho hệ thống thời gian

thực.

Yolo là một mô hình mạng CNN cho việc phát hiện, nhận dạng, phân loại

đối tượng. Yolo được tạo ra từ việc kết hợp giữa các convolutional layers và

connected layers.Trong đó các convolutional layers sẽ trích xuất ra các feature

của ảnh, còn full-connected layers sẽ dự đoán ra xác suất đó và tọa độ của đối

tượng.

 Hoạt động YOLO

Đầu vào của mô hình là một ảnh, mô hình sẽ nhận dạng ảnh đó có đối

tượng nào hay không, sau đó sẽ xác định tọa độ của đối tượng trong bức ảnh.

Ảnh đầu vào được chia thành thành S×S ô thường thì sẽ là 3 × 3, 7 × 7, 9 × 9...

việc chia ô này có ảnh hưởng tới việc mô hình phát hiện đối tượng.

19

Hình 2. 16 : Hoạt động YOLO

Với input là 1 ảnh, đầu ra mô hình là một ma trận 3 chiều có kích thước S

× S × (5 × N + M) với số lượng tham số mỗi ô là (5 × N + M) với N và M lần

lượt là số lượng box và class mà mỗi ô cần dự đoán. Ví dụ với hình ảnh trên chia

thành 7 × 7 ô, mỗi ô cần dự đoán 2 bounding box và 3 object : con chó, ô tô, xe

đạp thì output là 7 × 7 × 13, mỗi ô sẽ có 13 tham số, kết quả trả về ( 7 × 7 × 2 =

98 ) bounding box. Chúng ta sẽ cùng giải thích con số (5 × N + M) được tính

như thế nào. Dự đoán mỗi bounding box gồm 5 thành phần : (x, y, w, h,

prediction) với (x, y ) là tọa độ tâm của bounding box, (w, h) lần lượt là chiều

rộng và chiều cao của bounding box, prediction được định nghĩa Pr(Object)∗

IOU(pred,truth). Với hình ảnh trên như ta tính mỗi ô sẽ có 13 tham số, ta có thể

hiểu đơn giản như sau tham số thứ 1 sẽ chỉ ra ô đó có chứa đối tượng nào hay

không P(Object), tham số 2, 3, 4, 5 sẽ trả về x, y ,w, h của Box1. Tham số 6, 7,

8, 9, 10 tương tự sẽ Box2, tham số 11, 12, 13 lần lượt là xác suất ô đó có chứa

object1 (P(chó|object), object2(P(ô tô|object)), object3(P( xe đạp|object)). Lưu ý

rằng tâm của bounding box nằm ở ô nào thì ô đó sẽ chứa đối tượng, cho dù đối

tượng có thể ở các ô khác thì cũng sẽ trả về là 0. Vì vậy việc mà 1 ô chứa 2 hay

nhiều tâm của bouding box hay đối tượng thì sẽ không thể detect được, đó là

một hạn chế của mô hình YOLO, vậy ta cần phải tăng số lượng ô chia trong 1

20

ảnh lên đó là lí do vì sao mình nói việc chia ô có thể làm ảnh hưởng tới việc mô

hình phát hiện đối tượng.

2.2 Lý thuyết về công nghệ điều khiển giọng nói

2.2.1 Khái niệm về công nghệ điều khiển giọng nói

Điều khiển bằng giọng nói, còn được gọi là hỗ trợ giọng nói, là một

chương trình phần mềm hoặc thiết bị phần cứng có khả năng giải mã giọng nói

của con người, chuyển giọng nói thành tín hiệu điều khiển các thiết bị, cho phép

vận hành rảnh tay các thiết bị. Cốt lõi của công nghệ giọng nói là khả năng lấy

giọng nói của người dùng làm đầu vào hoặc lệnh để tạo ra đầu ra mong muốn

hoặc thực hiện một tác vụ.

Hình 2. 17: Giao tiếp với bằng google assistant

- Kết cấu của công nghệ giọng nói gồm 2 phần chính:

 Phần mềm (bao gồm giao diện người dùng, hay còn gọi là “bộ mặt”

của ứng dụng, bao gồm giao diện người dùng, UI, UX; phụ trợ chạy

các dịch vụ chạy nền như AI).

 Phần cứng (thiết bị thông minh: máy tính, điện thoại thông minh, loa

thông minh, các thiết bị IoT khác,...)

2.2.2 Cách thức xây dựng công nghệ điều khiển giọng nói

 Thông thường một bộ máy giọng nói sẽ có hai phần:

- Phần thứ nhất gọi là Speech synthesizer (còn gọi là Text to Speech hay

TTS). Đây là một trình tổng hợp giọng nói và thiết bị hoặc ứng dụng xài để

21

tương tác với người dùng, ví dụ: đọc văn bản trên màn hình, thông báo về tiến

độ chạy một tác vụ nào đó.

- Phần thứ hai là một công nghệ nhận dạng cho phép phần mềm biết được

người dùng đang nói gì, từ đó chuyển thể thành lệnh để thiết bị thực thi hoặc

chuyển đổi thành các kí tự nhập liệu. Nói cách khác, đây là thứ thay thế cho bàn

phím của chúng ta.

- Một ứng dụng nhận dạng giọng nói lý tưởng sẽ bao gồm cả hai bộ phận

nói trên, nhưng một số phần mềm chỉ xài một cái rồi từ từ nâng cấp sau.

- Thoạt nhìn thì việc triển khai công nghệ nhận dạng giọng nói khá đơn

giản, nhưng thực chất thì không phải như thế:

 Thứ nhất, các nhà phát triển phải xây dựng nên một công nghệ có

thể lắng nghe, phân tích và phiên dịch một cách chính xác giọng

nói của người dùng. Nếu không thì làm sao ứng dụng biết bạn đang

nói gì, còn nếu độ chính xác không cao thì cũng như không.

 Thứ hai, vấn đề bản địa hóa (localization) cũng là một chuyện làm

đau đầu các lập trình viên. Mỗi quốc gia sẽ có ngôn ngữ của riêng

mình, vấn đề đó là làm thế nào để có thể hỗ trợ càng nhiều ngôn

ngữ càng tốt.

- Có một kĩ thuật được nhắc đến nhiều trong thời gian gần đây, đó là xử

lý ngôn ngữ tự nhiên (Natural Language Processing – NLP). Nó là tập hợp của

nhiều thuận toán phức tạp nhằm phân tích mệnh lệnh của người dùng nhưng

không bắt buộc họ phải nói theo một cấu trúc câu định sẵn. Nhiều năm trước khi

muốn điều khiển bằng giọng nói, bạn chỉ có thể nói những thứ như “Mở bản

đồ”, “Nhắn tin cho vợ”, “Báo thức lúc 5 giờ sáng”. Còn bây giờ thì nhờ có NLP,

chúng ta có thể nói các câu như “Siri, vui lòng nhắn tin cho vợ của tôi là tôi sẽ

về trễ nhé”, hay như “Hãy đánh thức tôi lúc 5 giờ sáng ngày mai”.

22

Hình 2. 18: Xử lý ngôn ngữ tự nhiên

2.2.3 Các loại hệ thống nhận dạng

- Hệ thống phụ thuộc vào loa: Yêu cầu đào tạo trước khi sử dụng và do

đó phụ thuộc vào loa để hoạt động. Người dùng có thể phải đọc một loạt các từ,

cụm từ và câu để giúp đào tạo hệ thống.

- Hệ thống loa độc lập: Không yêu cầu đào tạo trước khi sử dụng và đã có

khả năng hiểu hầu hết giọng nói của người dùng. Nhiều trợ lý giọng nói phổ

biến sử dụng hệ thống loa độc lập.

- Nhận dạng giọng nói rời rạc: Yêu cầu người dùng nói từng từ một hoặc

tạm dừng giữa mỗi từ, vì hệ thống chỉ có thể hiểu từng từ và nghĩa của chúng.

- Nhận dạng giọng nói liên tục: Cho phép người dùng nói với tốc độ bình

thường khi tương tác với hệ thống.

- Ngôn ngữ tự nhiên: Có thể hiểu lời nói của người dùng và ý nghĩa của

chúng, đồng thời có thể trả lời họ, cung cấp câu trả lời cho câu hỏi, hoàn thành

mệnh lệnh hoặc cung cấp thông tin được yêu cầu.

2.2.4 Các cách nhận dạng giọng nói

Mặc dù có nhiều cách để phân loại công nghệ nhận dạng giọng nói, nhưng

để đơn giản, chúng ta có thể chia thành hai loại hệ thống nhận dạng giọng nói:

Phụ thuộc vào người nói và không phụ thuộc vào người nói.

Đối với các hệ thống phụ thuộc vào người nói, người dùng phải cung cấp

bộ dữ liệu đào tạo (các đoạn giọng nói của họ) cho hệ thống để hệ thống đào tạo

23

(làm quen) trước khi hệ thống có thể bắt đầu nhận dạng giọng nói của người

dùng.

Với loại hệ thống không phụ thuộc vào người nói, người dùng không cần

cung cấp bộ dữ liệu đào tạo. Nhược điểm của hệ thống này là nó chỉ có thể nhận

dạng một lượng từ hạn chế (được hệ thống nạp trong khi sản xuất).

Do đó, công nghệ giọng nói được áp dụng trong các sản phẩm dành cho

người tiêu dùng hầu hết ở dạng hệ thống phụ thuộc vào người nói.

2.2.5 Cách thức triển khai công nghệ giọng nói

 Có rất nhiều cách thức triển khai công nghệ giọng nói, nhưng được dùng

nhiều nhất thì có thể kể đến 2 loại sau:

- Điện toán đám mây: Trong trường hợp này, việc nhận dạng, xử lý ngôn

ngữ sẽ diễn ra trên máy chủ của các công ty cung cấp dịch vụ. Phương pháp đám

mây giúp việc nhận dạng được chính xác hơn, ứng dụng thì có dung lượng nhỏ,

nhưng bù lại thì thiết bị ở phía người dùng phải luôn kết nối với internet. Độ trễ

trong quá trình gửi giọng nói từ máy lên server rồi trả kết quả từ server về lại

máy cũng là những thứ đáng cân nhắc.

- Tích hợp thẳng vào ứng dụng: Với phương thức này, quá trình xử lý

giọng nói sẽ diễn ra trong nội bộ ứng dụng, không cần giao tiếp với bên ngoài,

chính vì thế tốc độ sẽ nhanh hơn. Người dùng cũng không bắt buộc phải kết nối

vào mạng thường trực. Tuy nhiên, giải pháp này gặp nhược điểm đó là khi có

cập nhật hoặc thay đổi gì đó về bộ máy nhận dạng, nhà sản xuất sẽ phải cập nhật

lại cả một app, trong khi với phương thức đám mây thì những thay đổi đó chỉ

cần làm ở phía server. Kích thước ứng dụng cũng sẽ tăng lên, có thể lên tới cả

vài trăm MB.

2.2.6 Ứng dụng của công nghệ điều khiển giọng nói

Như bạn có thể đoán được, tiềm năng của công nghệ giọng nói là rất lớn

với các ứng dụng trong nhiều lĩnh vực. Dưới đây là một vài ứng dụng tiêu biểu:

- Chăm sóc sức khỏe: ghi lại lịch sử y tế của bệnh nhân mà không cần phải

tương tác kỹ thuật số với EHR (hồ sơ sức khỏe điện tử).

24

- Trợ lý ảo (hoặc trợ lý giọng nói): có thể thực hiện hầu hết mọi tác vụ mà

một thiết bị thông minh có thể thực hiện chỉ bằng giọng nói. Một số trợ lý ảo sử

dụng công nghệ giọng nói nổi tiếng có thể kể đến như Google Assistant, Apple’s

Siri, Amazon’s Alexa,…

- Duyệt web mà không cần chạm vào bất kỳ phím nào.

- Phụ đề tự động: giọng nói từ clip âm thanh sẽ được chuyển từ lời nói

thành văn bản và được đồng bộ hóa tự động.

- Xe: Nhiều xe ô tô hiện nay có công nghệ kích hoạt bằng giọng nói được

tích hợp trực tiếp vào chính chiếc xe. Điều này bao gồm những thứ như loa xe

hơi thông minh và các điểm truy cập xe hơi được kết nối để cho phép lái xe rảnh

tay dễ dàng và an toàn hơn.

- Thiết bị gia dụng: Nhiều thiết bị, thiết bị và hệ thống hiện được kết nối

với internet và với nhau để giúp mọi người kiểm soát, bảo vệ và tận hưởng ngôi

nhà của họ dễ dàng hơn bao giờ hết. Nhiều thiết bị nhà thông minh khác nhau,

chẳng hạn như bộ điều nhiệt và hệ thống an ninh, cũng sử dụng kích hoạt bằng

giọng nói cho cùng mục đích đó.

Hình 2. 19: Trợ lý ảo

2.2.7 Ưu nhược điểm của công nghệ điều khiển giọng nói

 Ưu điểm:

- Khả năng truy cập: Kích hoạt bằng giọng nói cho phép nhiều người truy

cập công nghệ kỹ thuật số, thiết bị được kết nối và internet dễ dàng hơn. Nó cải

thiện khả năng tiếp cận cho người khuyết tật, đặc biệt là đối với những người bị

suy giảm chức năng thị lực hoặc vận động.

25

- Kết nối: Kích hoạt bằng giọng nói có thể dễ dàng hoạt động với các công

nghệ và thiết bị được kết nối khác trong nhà bạn, chẳng hạn như thiết bị thông

minh và loa. Kết nối này làm cho việc hoàn thành các nhiệm vụ khác nhau trong

nhà của bạn trở nên đơn giản và nhanh chóng hơn nhiều.

- Thuận tiện: Sử dụng kích hoạt bằng giọng nói có thể thuận tiện hơn đáng

kể so với việc nhập nội dung nào đó trên bàn phím hoặc điện thoại thông minh

hoặc hoàn thành tác vụ theo cách thủ công. Trong số những người Mỹ sử dụng

trợ lý kỹ thuật số, 55% cho rằng khả năng sử dụng thiết bị của họ ở chế độ rảnh

tay là lý do chính khiến họ sử dụng tính năng kích hoạt bằng giọng nói. Khi sử

dụng công nghệ kích hoạt bằng giọng nói, bạn có thể sử dụng trí óc và đôi tay

của mình để làm việc khác.

- Cá nhân hóa: Công nghệ kích hoạt bằng giọng nói tạo ra trải nghiệm kỹ

thuật số được cá nhân hóa hơn cho người dùng. Điều này có thể bao gồm ghi

nhớ thông tin từ các tương tác trước đó, đưa ra lời nhắc hữu ích và phân biệt

giữa nhiều người dùng chỉ bằng giọng nói. Nói cách khác, bạn càng sử dụng

kích hoạt bằng giọng nói nhiều thì bạn càng sử dụng dễ dàng và tốt hơn.

 Nhược điểm:

- Chi phí: Các thiết bị khác sử dụng tính năng kích hoạt bằng giọng nói,

bao gồm cả loa và thiết bị thông minh có thể sẽ có chi phí khá cao.

- Không chính xác: Mặc dù độ chính xác của công nghệ kích hoạt bằng

giọng nói đã tăng lên đáng kể trong vài năm qua, nhưng nó vẫn chưa

hoàn hảo. Ta có thể vẫn gặp phải một số lỗi như không nhận diện được

giọng nói,…

2.3. Mô hình hệ thống cơ khí robot di động

Mô hình hệ thống cơ khí robot di động bao gồm:

- Khung cơ khí

- Bộ phận truyền động

- Bộ phận liên kết

26

2.3.1 Khung cơ khí

Khung robot đóng vai trò vô cùng quan trọng trong việc làm tăng khả

năng hoạt động ổn định của robot. Khung, vỏ của robot giúp kết nối, cố định và

sắp xếp hợp lý các bộ phận của robot như bánh xe, các linh kiện, bảng mạch và

pin. Từ đó, giúp cho robot có được sự ổn định và vững chắc trong quá trình vận

hành. Ngoài ra, phần khung vỏ còn có tác dụng tăng tính cá nhân hóa và thẩm

mỹ cho robot.

Yêu cầu cơ bản nhất cho phần đế robot là độ cứng vững và độ đồng phẳng

“tương đối” trên địa hình di chuyển, tất nhiên không phải địa hình di chuyển nào

cũng giống nhau về nhiều yếu tố như độ phẳng, độ ma sát trên bánh xe. Hai mặt

phẳng để đặt pin và các linh kiện cũng như mạch in được làm bằng nhựa mica.

Hoạt động của robot di động chủ yếu ở những nới có điều kiện nhiệt độ,

độ ẩm, địa hình thích hợp nên chọn mica làm phần khung robot. Mica là một

loại nhựa PPC tổng hợp, do đặc tính bền, dẻo, dễ sử dụng của mica mà ta có thể

dùng dao cắt hay các máy cắt cnc (máy tự động có đầu cắt là hợp kim cứng)

hoặc các máy laser (đầu cắt sử dụng tia laser) để cắt mica theo thiết kế.

Hình 2. 20: Khung Robot

2.3.2 Bộ phận truyền động

Bộ phận truyền động: Robot di động được dẫn động bằng 4 bánh chủ

động. Các bánh chủ động được điều khiển bởi 4 động cơ giảm tốc. Để đạt được

tính linh hoạt trong di chuyển thì chúng em sử dụng bánh xe V1 với kích thước

màu sắc đã chọn trước. Bánh xe mô hình V1 được thiết kế để sử dụng với động

27

cơ giảm tốc V1. Bánh xe mô hình V1 là loại bánh được sử dụng nhiều nhất

trong các thiết kế robot hiện nay vì có giá thành phải chăng, chất lượng tốt.

 Ưu điểm bánh xe V1:

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

- Bánh có chất lượng tốt.

- Chuyển hướng nhanh.

- Di chuyển rất êm.

- Phù hợp cho nhiều loại robot.

 Nhược điểm bánh xe V1:

- Khó vượt qua các chướng ngại vật có kích thước lớn.

- Khả năng bám đường kém.

Hình 2. 21:Bánh xe robot

2.3.3 Bộ phận liên kết

Hình 2. 22: Bộ phận liên kết

28

- Để tạo nên một khung cơ khí chắc chắn, vững chắc trong di chuyển, sử

dụng trục đồng lục giác đực cái để liên kết, chống đỡ, kết nối ba tầng mica của

mô hình robot di động.

- Ưu điểm của trụ đồng lục giác:

 Sản phẩm có chiều dài phù hợp, độ bền cao, giúp công việc tháo,

mở bu lông, ốc vít trở nên nhẹ nhàng, hiệu quả hơn.

 Được làm từ thép không gỉ với độ cứng, độ chịu lực cao nên khi sử

dụng, chìa lục giác sẽ không bị cong, vênh hay biến dạng, hư hỏng

dù bị tác động một lực lớn.

 Đầu lục giác được thiết kế nhiều góc cạnh, phù hợp với nhu cầu sử

dụng, giúp tiết kiệm thời gian hoàn thành công việc.

2.4 Mô hình hệ thống điều khiển

2.4.1 Arduino Uno R3

Arduino Uno R3 [2] được sử dụng vi điều khiển ATmega328, tương

thích với hầu hết các loại Arduino Shield trên thị trường, có thể gắn thêm các

module mở rộng để thực hiện thêm các chức năng như điều khiển motor, kết nối

wifi hay các chức năng khác.

Sử dụng ngôn ngữ lập trình C, C++ hoặc Arudino, một ngôn ngữ bắt

nguồn từ C, C++ trên phần mềm riêng cho lập trình Arduino IDE.

Hình 2. 23: Sơ đồ chân Arduino Uno R3

29

 Ứng dụng của Arduino Uno R3

- Aruino Uno R3 được sử dụng phổ biến trong việc tự thiết kế ra các

mạch điện tử như điều khiển led, gửi dữ liệu lên lcd, điều khiển motor, ... hay

được gắn thêm các shield để kết nối nhiều module cảm biến khác để thực hiện

thêm nhiều chức năng mở rộng như gửi dữ liệu qua wifi.

 Thông số kỹ thuật

Bảng 2. 1: Bảng thông số kỹ thuật Arduino 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-12 VDC

Điện áp vào giới hạn 6-20 VDC

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 da 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

32 KB (Atmega328) với 0.5KB dùng Bộ nhớ flash bởi bootloader

SRAM 2 KB (Atmega328)

EEPROM 1 KB( Atmega328)

30

2.4.2 Module ESP32

 Khái niệm:

ESP32-WROOM-32 [3] là module Wi-Fi + Bluetooth® + Bluetooth LE

MCU chung, mạnh mẽ nhắm đến nhiều ứng dụng khác nhau, từ mạng cảm biến

năng lượng thấp đến các tác vụ đòi hỏi khắt khe nhất, chẳng hạn như mã hóa

giọng nói, truyền phát nhạc và MP3 giải mã. Module hỗ trợ các chuẩn giao tiếp

SPI, UART, I2C và I2S và có khả năng kết nối với nhiều ngoại vi như các cảm

biến, các bộ khuếch đại, thẻ nhớ (SD card),…

Hình 2. 24: Module ESP32

Ở chế độ sleep dòng điện hoạt động là 5 µA nên thích hợp cho các ứng

dụng dùng pin như các thiết bị điện tử đeo tay. Ngoài ra module còn hỗ trợ cập

nhật firmware từ xa (OTA) do đó người dùng vẫn có thể có những bản cập nhật

mới nhất của sản phẩm.

 Cấu hình ESP32

- Kích thước: 18 mm x 20 mm x 3 mm.

- CPU

 CPU: Xtensa Dual-Core LX6 microprocessor.

 Chạy hệ 32 bit.

 Tốc độ xử lý 160MHZ up to 240 MHz.

 Tốc độ xung nhịp đọc flash chip 40MHz --> 80MHz (tùy chỉnh khi

lập trình).

 RAM: 520 KByte SRAM.

31

- Hỗ trợ 2 giao tiếp không dây

 Wi-Fi

 Bluetooth

- Hỗ trợ tất cả các loại giao tiếp (UART / SPI / I2C / PWM / ADC / DAC).

- Cảm biến tích hợp trên chip ESP32.

 1 cảm biến Hall (cảm biến từ trường).

 1 cảm biến đo nhiệt độ.

 Cảm biến chạm (điện dung) với 10 đầu vào khác nhau.

- Nguồn

 Điện áp hoạt động: 2,2-3,6V.

 Dòng tiêu thụ ổn định: 80mA

 Sơ đồ chân của ESP32

Hình 2. 25: Sơ đồ chân của bo 30 chân ESP32 DevKit.

2.4.3 Module ESP 8266

 Giới thiệu chung

ESP8266 [4] hay gọi đầy đủ là ESP8266EX là một vi mạch Wi-Fi giá rẻ,

có hỗ trợ bộ giao thức TCP/IP và có thể tích hợp vào thành phần của vi điều

khiển, được sản xuất bởi hãng Espressif Systems ở Thượng Hải, Trung Quốc.

32

- Sơ đồ chân WeMos D1 Mini

Hình 2. 26: Sơ đồ chân WeMos D1 Mini

- Vi điều khiển: ESP8266EX

- Điện áp hoạt động: 3.3V

- Số chân I/O: 11

- Số chân Analog Input: 1 (điện áp vào tối đa 3.3V)

- Bộ nhớ Flash: 4MB

- Giao tiếp: Cable Micro USB

- Nguồn áp: 5V được cung cấp qua cổng Micro USB

- Wifi: 2.4 GHz

- Kích thước: 34.2mmx25.6mm

 Thông số kĩ thuật

2.4.4 Module L298

 Khái niệm:

Module L298 là một mạch điều khiển động cơ một chiều DC cùng lúc.

L298 là IC điều khiển cầu kép toàn kỳ có dải điện áp hoạt động rộng, xử lý

dòng tải có mức tối đa 3A. Bao gồm điện áp bão hòa thấp và bảo vệ quá

nhiệt. Có cấu tạo từ hai mạch cầu H transistor.

33

Hình 2. 27: Modue L298

 Thông số kỹ thuật

Bảng 2. 2: Bảng thông số kỹ thuật L298

Điện áp ở đầu vào 5 – 30 V

Điện áp tín hiệu điều khiển 5 – 7V

Điện áp logic Low: từ -0,3V đến 1,5V

High: 2,3V đến Vss

Dòng điện tối đa cho từng động cơ 2A

Dòng yêu cầu của tín hiệu điều khiển 0 – 36 mA

Công suất 1 cầu tương đương 25W

Kích thước 43x43x27mm

34

Hình 2. 28: Sơ đồ chân L298

 Nguyên lý hoạt động

Để điều khiển mạch cầu H, ta thay đổi điện áp điều khiển các công tắc S1,

S2, S3, S4. Bằng cách thay đổi điện áp điều khiển các công tắc S1, S2, S3, S4 ta

có thể điều khiển chiều quay và moment quay của motor.

Hình 2. 29: Nguyên lý hoạt động theo chiều thuận

Hình 2. 30: Nguyên lý hoạt động theo chiều nghịch

35

2.4.5 Cảm biến siêu âm HC-SR04

Hình 2. 31: Cảm biến siêu âm HC-SR04

Cảm biến siêu âm HC-SR04 là một dạng cảm biến module. Cảm biến này

thường chỉ là một bản mạch, hoạt động theo nguyên lý thu phát sóng siêu âm bởi

2 chiếc loa cao tần.

Cảm biến siêu âm HC-SR04 thường được kết hợp với các bộ arduino,

PIC, AVR,… để chạy một số ứng dụng như : phát hiện vật cản trên xe robot, đo

khoảng cách vật,…

Chính vì là một cảm biến siêu âm dạng module, cho nên hầu như ứng

dụng hay độ chính xác của cảm biến đều phụ thuộc vào phần code mà người sử

dụng lập trình và nạp vào bản mạch điều khiển.

 Thông số kỹ thuật cảm biến siêu âm HC-SR04

Bảng 2. 3: Bảng thông số kỹ thuật cảm biến siêu âm HC-SR04

Điện áp làm việc 5VDC

Dòng điện 15mA

Tần số 40 KHZ

Khoảng cách phát hiện 2cm – 400cm

Tín hiệu đầu ra Xung mức cao 5V, mức thấp 0V

36

Góc cảm biến Không quá 15 độ

Độ chính xác cao Lên đến 3mm

 Ứng dụng cảm biến siêu âm HC-SR04

- Với các module cảm biến siêu âm HC-SR04 được ứng dụng nhiều nhất

trong các bài toán đo khoảng cách vật từ xa.

- Một số ứng dụng khác cũng hay dùng module cảm biến siêu âm HC-

SR04 mà chúng ta thường thấy như:

 Dùng đo mức chất lỏng trong chai, hộp sữa, …

 Dùng phát hiện vật cản trên đường đi của robot.

2.4.6 Module cảm biến gia tốc góc MPU6050

 Giới thiệu về MPU6050

MPU6050 là thiết bị theo dõi chuyển động 6 trục dựa trên MEMS. Nó có

một con quay hồi chuyển trên chip và cảm biến gia tốc cùng với cảm biến nhiệt

độ. Mô-đun này có kích thước rất nhỏ, yêu cầu tiêu thụ điện năng thấp, độ chính

xác cao, độ lặp lại cao, khả năng chịu sốc cao, có khả năng lập trình hiệu suất

dành riêng cho ứng dụng và mức giá tiêu dùng thấp. MPU6050 có thể dễ dàng

giao tiếp với các cảm biến khác như từ kế và vi điều khiển…

 Hoạt động của con quay hồi chuyển:

Tính năng gia tốc kế (Acceleromete). Gia tốc kế 3 trục: MPU6050 bao

gồm gia tốc kế 3 trục với công nghệ vi điện cơ (MEMs). Nó được sử dụng để

phát hiện góc nghiêng hoặc độ nghiêng dọc theo các trục X, Y và Z như hình

bên dưới.

37

Hình 2. 32: Góc nghiêng theo trục X,Y,Z

- Gia tốc kế ba trục đầu ra kỹ thuật số với phạm vi tỷ lệ đầy đủ có thể lập

trình là ±2g, ±4g, ±8g và ±16g (Lực g là gia tốc tương đối của vật so với

khi rơi tự do g=9,81m/s^2).

- ADC 16 bit tích hợp cho phép lấy mẫu đồng thời các máy đo gia tốc trong

khi không yêu cầu bên ngoài bộ ghép kênh.

- Dòng hoạt động bình thường của máy đo gia tốc: 500µA.

- Dòng điện ở chế độ gia tốc kế công suất thấp: 10µA ở 1,25Hz, 20µA ở

5Hz, 60µA ở 20Hz, 110µA ở 40Hz.

 Chân giao tiếp

Hình 2. 33: Sơ đồ chân MPU6050

38

 Thông số kĩ thuật

- Nguồn: 3VDC đến 5VDC.

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

2.4.7 Mạch sạc pin lithium 18650 2 cell nối tiếp 16A

 Giới thiệu chung

Mạch sạc pin lithium 18650 2 cell nối tiếp 16A có dòng xả tối đa lên lến

16A, được sử dụng để sạc 2 cell pin Lithium hoặc 18650 có điện áp trung bình

3.7~4.2VDC mắc nối tiếp, mạch có chức năng ngắt khi đầy, bảo vệ chập nguồn,

quá áp và pin dưới áp quy định.

Hình 2. 34: Mạch sạc pin 18650

Mạch sạc pin lithium 18650 2 cell nối tiếp 16A có thiết kế, chất lượng gia

công và linh kiện rất tốt, phù hợp trong các thiết kế cần có mạch quản lý pin,

sạc.

 Thông số kĩ thuật:

Bảng 2. 4: Bảng thông số kỹ thuật mạch sạc pin 18650

Điện áp sạc 8.4V - 9V

Dòng xả liên tục tối đa của mạch 5A

Dòng sạc vào tối đa 1A

39

Điện áp ngắt khi sạc đầy mỗi cell 4.25 – 4.35VDC (sai số 0.05)

Điện áp ngắt khi yếu pin mỗi cell 2.3 – 3.0VDC (sai số 0.05)

Kích thước 41mm x 8 mm x 2,2mm (L x W x

H)

2.4.8 Mạch sạc TP4056

 Khái niệm:

TP4056 là bộ sạc tuyến tính dòng điện không đổi, điện áp không đổi hoàn

chỉnh dành cho pin lithium-ion đơn cell, phù hợp lý tưởng cho các ứng dụng di

động như robot, mạch cảm biến không dây,... Mạch có 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, ...),

mạch có kích thước nhỏ gọn với cổng Micro USB 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.

Hình 2. 35: Mạch sạc TP4056

 Thông số kỹ thuật

Bảng 2. 5: Bảng thông số kỹ thuật mạch sạc TP4056

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

- 5VDC qua cổng Micro USB

Nguồn sạc đầy 4.2VDC

40

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

Phương thức sạc Sạc tuyến tính 1%

Độ chính xác khi sạc 1,5%

Đèn trạng thái sạc - Đèn đỏ: đang sạc, chưa đầy

- Đèn xanh lá: Đã sạc đầy.

Ngưỡng sạc nhỏ giọt 2.9V

Kích thước 17x22x5mm

 Sơ đồ nối dây

Hình 2. 36: Sơ đồ dây mạch sạc TP4056

2.4.9 Module ESP 32 – CAM

 Giới thiệu chung

ESP32-CAM là một module hoàn chỉnh với một bộ vi điều khiển tích

hợp, có thể làm cho nó hoạt động độc lập. Ngoài kết nối WiFi + Bluetooth,

module này còn có một máy quay video tích hợp và một khe cắm thẻ nhớ

microSD để lưu trữ.

ESP-32CAM có thể được sử dụng rộng rãi trong các ứng dụng IoT khác

nhau, thích hợp cho thiết bị thông minh gia đình, điều khiển không dây công

nghiệp, giám sát không dây kiểm soát, nhận dạng không dây QR, tín hiệu hệ

thống định vị không dây…Nó là một giải pháp lý tưởng cho các ứng dụng IoT.

41

Mạch thu phát Wifi BLE ESP32 này là mạch chính hãng AI – Thinker có chất

lượng độ ổn định và độ bền rất cao, sử dụng camera OV2640 chất lượng cao

hình ảnh sắc nét, không nhiễu sọc, không xảy ra tình trạng treo khi hoạt động do

sử dụng ic cấp nguồn chất lượng cao.

Mạch thu phát wifi BLE ESP32-CAM Ai-Thinker này có thể sử dụng

Arduino IDE để biên dịch và viết code, được hỗ trợ mạnh mẽ từ cộng đồng.

Hình 2. 37: Module ESP32-CAM

 Sơ đồ chân:

Hình 2. 38: Sơ đồ chân ESP32-CAM

 Thông số kĩ thuật:

- IC chính: ESP32-S (AI-Thinker).

- Module Wi-Fi BT SoC 802.11.

- CPU 32-bit có công suất thấp, cũng có thể phục vụ bộ xử lý ứng dụng.

42

- Tốc độ xử lý lên đến 160MHz.

- Tích hợp 520 KB SRAM, 4MPSRAM bên ngoài.

- Dải tần số: 1421 ~ 2484 Mhz.

- Bluetooth: 4.2 BR/EDR BLE.

- Hỗ trợ máy ảnh OV2640 và OV7670, đèn flash tích hợp.

2.4.10 Động cơ servo SG90

 Giới thiệu chung

Công dụng chính của động cơ servo là đạt được góc quay chính xác trong

khoảng từ 900 – 1800. Việc điều khiển này có thể ứng dụng để lái robot, di

chuyển các tay máy lên xuống, quay một cảm biến để quét khắp phòng.

Hình 2. 39: Servo SG90

Hình 2. 40: Sơ đồ chân servo SG90

 Thông số kỹ thuật

- Khối lượng: 9g.

- Kích thước: 22.2x11.8.32 mm.

- Momen xoắn: 1.8kg/cm.

- Tốc độ hoạt động: 60 độ trong 0,1 giây.

43

- Điện áp hoạt động: 4,8V(~5V).

- Nhiệt độ hoạt động: 0 ºC – 55 ºC.

- Kết nối dây màu đỏ với 5V, dây màu nâu với mass, dây màu cam với

chân phát xung của vi điều khiển. Ở chân xung cấp một xung từ 1ms-2ms

theo để điều khiển góc quay theo ý muốn.

2.4.11 Động cơ DC giảm tốc vàng v1

 Giới thiệu chung

Động cơ DC (viết tắt của Direct Current Motors) là động cơ điện một

chiều (dòng điện có hưởng xác định) chuyển đổi năng lượng điện thành năng

lượng cơ học. Động cơ DC lấy điện năng từ dòng điện trực tiếp và chuyển đổi

năng lượng này thành vòng quay cơ học.

 Thông số kĩ thuật

Bảng 2. 6: Bảng thông số kỹ thuật động cơ giảm tốc V1

Điện áp hoạt động 3 – 9VDC

Tỉ số truyền 1:48

Dòng điện tiêu thụ 110mA – 140mA

Tốc độ quay 125 vòng/ 1 phút tại 3VDC

208 vòng/ 1 phút tại 5VDC

Mômen xoắn 800gfcm

2.5 Kết luận chương 2

Chương 2 đã trình bày được tổng quan về robot di động và các công nghệ

sử dụng trong mô hình. Bên cạnh đó cũng làm nổi bật về công nghệ điều khiển

giọng nói. Ngoài ra, xác định được mô hình hệ thống cơ khí và các linh kiện cần

cho hệ thống điều khiển.

44

CHƯƠNG 3: TÍNH TOÁN THIẾT KẾ ROBOT DI ĐỘNG ĐIỀU KHIỂN

BẰNG GIỌNG NÓI

3.1 Thiết kế phần cứng robot di động điều khiển bằng giọng nói

3.1.1 Thiết kế sơ đồ khối hệ thống

 Sơ đồ khối hệ thống

Hình 3. 1 : Sơ đồ khối hệ thống

Hệ thống gồm bộ điều khiển trung tâm là điện thoại Androi cài đặt app

điều khiển và cảm biến gia tốc góc MPU6050. Khối xử xý vi điều khiển là

ESP32, thu tín hiệu điều khiển từ khối điều khiển, xử lý và đưa ra câu lệnh điều

khiển cho động cơ hoạt động. Khối thu tín hiệu hình ảnh là camera, truyền hình

ảnh về màn hình phần mềm điều khiển và máy tính. Khối cảm biến xác định

khoảng cách đối với vật mà camera thu được.

 Chức năng của từng khối

- Khối điều khiển: Có chức năng phát các tín hiệu lệnh điều khiển trên App

hoặc trên MPU6050 thông qua Bluetooth kết nối với ESP32. Sau đó ESP32

thu và xử lý tín hiệu điều khiển và điều khiển động cơ theo lệnh điều khiển.

- Khối xử lý: ESP32 có chức năng nhận tín hiệu điều khiển từ khối điều

khiển và điều khiển động cơ theo lệnh.

45

- Khối động cơ: gồm các động cơ DC và servo được điều khiển bởi khối xử

lý.

- Khối camera: Thu hình ảnh và truyền hình ảnh về đồng thời ứng dụng điều

khiển và máy tính để hiển thị tầm nhìn.

- Máy tính: Có chức năng nhận hình ảnh từ camera, từ đó phân tích nhận

dạng vật trong tầm nhìn.

- Khối nguồn: Cung cấp nguồn cho hệ thống hoạt động.

- Khối bảo vệ: Mạch sạc bảo vệ khối nguồn, tự ngắt nguồn sạc khi pin đầy.

- Khối cảm biến: Phát hiện và đo khoảng cách đến vật đang xuất hiện trong

tầm nhìn.

- Khối hiện thị: LCD hiển thị khoảng cách và cảnh báo khi cảm biến quét

được vật cản.

3.1.2 Tính toán thiết kế mô hình

Do đề tài sử dụng 4 bánh chủ động và 4 động cơ độc lập mà hai bánh trái

được mắc nối tiếp với nhau, hai bánh phải mắc nối tiếp với nhau nên cấu hình

của robot sẽ quy về cấu hình một khung xe với hai bánh xe và 2 động cơ như

hình 3.2.[5]

Hình 3. 2: Cấu hình của robot với hai bánh chủ động

46

Robot di động với hai bánh chủ động bao gồm hai động cơ độc lập gắn

với hai bánh xe có đường kính là 2r (Hình 3.2). Điểm Q là trọng tâm của robot

được đặt tại điểm giữa trục của hai bánh xe, khoảng cách từ mỗi bánh xe đến Q

có độ dài là a (m). Ta quy ước Φ là góc hợp bởi hệ qui chiếu được gắn trên robot

{X’,Y’} với hệ qui chiếu toàn cục {X,Y} và và tương ứng là tốc độ quay

của bánh phải và bánh trái của robot di động.

 Phương trình động học thuận robot visai:

Với:

: Vận tốc dài bánh trái

: Vận tốc dài bánh phải

2a: Chiều rộng thân xe

Xây dựng hệ tọa độ suy rộng trong không gian truyền động và không gian

nhiệm vụ của robot:

(3.1)

Với:

: là góc quay bên phải

: là góc quay bên trái

Vi phân các biểu thức p và q:

(3.2)

Vận tốc dài của các bánh truyền động:

(3.3)

47

Vận tốc dài của thân xe:

(3.4)

Vận tốc dài của thân xe trong không gian nhiệm vụ:

Chiếu lên Ox:

(3.5)

Chiếu lên Oy:

(3.6)

Ta có:

(3.7)

Ta có phương trình động học thuận:

(3.8)

 Phương trình động học nghịch robot visai:

Do (m>n) 3>2, ta có phương trình động học nghịch:

(3.9)

48

 Phương trình động lực học visai

Vì ma trận I tensor quán tính robot là hằng số, mô hình động lực học

Newton-Euler

(*)

Trong đó:

F là tổng lực tác động lên robot, N là tổng momen đối với trọng tâm tác

dụng lên robot, I là tensor quán tính của robot. Ta có rằng trọng tâm trùng với

điểm giữa của 2 bánh dẫn động.

Tổng lực tác động:

(3.10)

(3.11)

Từ (*) (3.12)

Momen tác động:

(3.13)

Từ (*) (3.14)

Mô hình động lực học robot:

(3.15)

 Tính toán lựa chọn công suất động cơ

Địa hình làm việc của robot là địa hình phẳng, giả thiết bỏ qua sự biến

dạng của bánh xe, bỏ qua lực cản của không khí trong quá trình robot di chuyển.

Các thông số của robot:

49

- Khối lượng robot ước tính: m=1,2 (kg)

- Chọn bánh xe có đường kính 2r= 68(mm)

- Tốc độ tối đa là: 0.5(m/s)

Phân tích lực tác dụng lên bánh xe chủ động gồm 4 lực tác đụng như sau:

Hình 3. 3: Phân tích lực tác dụng lên bánh xe

Với:

: là lực kéo sinh ra do momen của động cơ.

: là lực ma sát nghỉ giữa bánh xe và bề mặt sàn.

: là phản lực của mặt sàn.

: là momen xoắn của động cơ.

: là một phần tư trọng lượng của robot di động, .

: là một phần tư khối lượng của robot di động.

Chọn phương án chuyển động của robot là chuyển động thẳng. Hai

bánh dẫn động di chuyển cùng tốc độ về phía trước với vận tốc 𝑣 = 0,5 (m/s).

Tốc độ quay của bánh xe là:

Phương trình cân bằng lực:

50

- Khi robot chuyển động đều

Vận tốc không đổi là =0,5(m/s), nên gia tốc . Khi đó:

Lực kéo sinh ra do momen của động cơ là:

Với hệ số ma sát lăn = 0,015 khi di chuyển trên sàn gạch.

Công suất cần thiết để xe di chuyển ổn định với vận tốc 0,5 (m/s) là:

- Khi robot tăng tốc

Robot tăng tốc với gia tốc =0,5(m/s2). Lực kéo sinh ra do momen của

động cơ là:

Với hệ số ma sát tĩnh là

Momen xoắn cần thiết để robot tăng tốc là:

Công suất cần thiết để tăng tốc lên 0,5(m/s) là:

Từ kết quả (3.16) và (3.17) suy ra công suất động cơ cần thiết là 1,77 (W)

và tốc độ vòng yêu cầu là 140,43 (rpm). Chọn động cơ giảm tốc V1, sử dụng

điện áp 9V có công suất nhỏ 1,8 (W), tốc độ không tải là 208 rpm tại 5VDC.

Hình 3. 4: Động cơ giảm tốc V1

51

3.2 Thiết kế hệ thống điều khiển robot di động bằng giọng nói

3.2.1 Kết nối arduino và cảm biến HC-SR04

Hình 3. 5: Sơ đồ kết nối arduino với cảm biến HC-SR04

Đề tài sử dụng cảm biến siêu âm HC-SR04 để phát hiện, đo khoảng cách

và cảnh báo khi có vật cản. Cảm biến truyền tín hiệu về Arduino để xử lý và

hiển thị trên LCD 16x2. Giải thích sơ đồ nối dây:

- Chân Echo và Trig của cảm biến siêu âm lần lượt nối với chân 11 và 12

của Arduino.

- Chân VCC và GND của cảm biến siêu âm lần lượt nối với chân 5V và

GND của Arduino.

- Chân điều khiển của Servo nối với chân 10 của Arduino.

- Chân VCC và GND của Servo lần lượt nối với chân 3V3 và GND của

Arduino.

- Chân tín hiệu và GND của Buzzer lần lượt nối với chân 13 và GND của

Arduino.

- Chân SDA và SCL của I2C trên LCD được nối lần lượt vào chân A4 và

A5 trên Arduino Uno.

52

- Chân VCC và GND của LCD lần lượt nối với chân VIN và GND trên

Arduino Uno.

Để đo khoảng cách, ta sẽ phát 1 xung rất ngắn từ chân Trig. Sau đó, cảm

biến sẽ tạo ra 1 xung HIGH ở chân Echo cho đến khi nhận lại được sóng phản

xạ ở pin này. Chiều rộng của xung sẽ bằng với thời gian sóng siêu âm được phát

từ cảm biển và quay trở lại.

Tốc độ của âm thanh trong không khí là 340 m/s (hằng số vật lý), tương

đương với 29,412 microSeconds/cm (106/ (340*100)). Khi đã tính được thời

gian, ta sẽ chia cho 29,412 để nhận được khoảng cách.

Tín hiệu HC-SR04 thu được sẽ gửi về cho arduino sau đó hiển thị trên

màn hình LCD.

Cảm biến HC-SR04 được gắn lên servo để tăng phạm vi quét của cảm

biến giúp phát hiện vật cản trong phạm vi lớn hơn.

3.2.2 Kết nối module ESP32, L298 và động cơ DC

Hình 3. 6: Sơ đồ kết nối module ESP32, L298 và động cơ DC

53

Đề tài sử dụng module ESP32 tiếp nhận và xử lý tín hiệu điều khiển từ

App hoặc module ESP8266 rồi băm xung PWM điều khiển động cơ hoạt động

theo lệnh điều khiển. Sơ đồ nối dây:

- Chân IN1, IN2, IN3, IN4,GND của L298 lần lượt nối với các chân TX2,

D18, D19, D21, GND của module ESP32.

- Động cơ DC1 và DC2 mắc song song, 2 chân (+) và (-) mắc vào OUT 1

và OUT2 của L298.

- Động cơ DC3 và DC4 mắc song song, 2 chân (+) và (-) mắc vào OUT 4

và OUT3 của L298.

- Chân kết nối 1 của công tắc gạt được nối với chân D4 của ESP32 và 1 đầu

của điện trở. Đầu còn lại của điện trở nối với chân 3V3 của module

ESP32.

- Chân nguồn của công tắc gạt được nối với chân GND của module

ESP32.

- Pin và mạch sạc được nối như hình :

Hình 3. 7: Sơ đồ kết nối pin và mạch sạch

- Chân P+ và P- của mạch sạc lần lượt được nối nói chân dương và âm của

jack cái.

- Chân (+) của jack cái nối với chân 12v của L298 và chân (-) của jack cái

nối với chân GND của L298.

54

3.2.3 Kết nối ESP32-CAM và laptop

Hình 3. 8: Sơ đồ kết nối ESP32-CAM và laptop

Dữ liệu hình ảnh mà ESP32-CAM nhận được sẽ được truyền đến máy

tính. Lúc này máy tính sẽ xử lý dữ liệu và hiển thị tên các đồ vật được ESP32-

CAM phát hiện. Sơ đồ kết nối:

- Chân OUR của ESP32-CAM được nối với chân TX của mạch nạp.

- Chân OUT của ESP32-CAM được nối với chân RX của mạch nạp.

- Chân 5V và GND của ESP32-CAM lần lượt được nối với chân 5V và

GND của mạch nạp.

- Máy tính kết nối với ESP32-CAM để nạp code và xử lý dữ liệu thu được

thông qua dây kết nối cắm vào đầu micro USB của module kết nối.

55

3.2.4 Kết nối ESP 8266, MPU6050 và mạch sạc

Hình 3. 9: Kết nối tay cầm

Đồ án sử dụng cảm biến gia tốc góc MPU6050 để đo giá trị góc nghiêng

khi người sử dụng dùng tay cầm để điều khiển. MPU6050 đo được giá trị góc,

truyền về ESP8266 để tính toán và xử lý dữ liệu. Dữ liệu góc sau khi được xử lý

xong được truyền về esp32 thông qua giao tiếp Serial. Esp32 tiếp nhận lệnh điều

khiển và điều khiển động cơ thực hiện. Sơ đồ nối dây:

- Chân SCL, SDA, VCC, GND của MPU6050 lần lượt nối với chân D1,

D2, VIN, GND của ESP8266.

- Cực âm và dương của Pin được nối với chân B- và B+ của mạch sạc

TP4056.

- Chân OUT+ của mạch sạc nối với chân VCC của ESP8266 thông qua 1

công tắc gạt để đóng mở nguồn điện.

- Chân OUT- của mạch sạc nối với chân GND của ESP8266.

56

3.2.5 Thiết kế mạch in

Để phần đi dây được gọn gàng thì nhóm thiết kế các mạch in sau:

Hình 3. 10: Bản vẽ nguyên lý của ESP32 [6]

Hình 3. 11: Mạch in của ESP32

57

Hình 3. 12: Bản vẽ nguyên lý ESP8266

Hình 3. 13: Mạch in của ESP 8266

58

3.3 Lưu đồ thuật toán điều khiển robot di động bằng giọng nói

 Lưu đồ thuật toán ứng dụng điều khiển:

Hình 3. 14: Lưu đồ thuật toán ứng dụng điều khiển

59

 Lưu đồ thuật toán điều khiển robot:

Hình 3. 15: Lưu đồ thuật toán điều khiển robot

60

 Lưu đồ thuật toán phát hiện vật:

Hình 3. 16: Lưu đồ thuật toán phát hiện vật

61

 Lưu đồ thuật toán xử lý ảnh:

Hình 3. 17: Lưu đồ thuật toán xử lý ảnh

3.4 Kết luận chương 3

Chương 3 đã giải quyết được bài toán tính toán động cơ và bài toán động

học cho robot di động. Bên cạnh đó, chúng em đã thiết kế được sơ đồ đấu nối

của hệ thống điều khiển robot di động.

62

CHƯƠNG 4: CHẾ TẠO MÔ HÌNH VÀ ĐÁNH GIÁ

4.1 Chế tạo mô hình robot di động điều khiển bằng giọng nói

4.1.1 Lắp ráp và kiểm tra

 Phần bánh xe

Lắp động cơ giảm tốc V1 và bánh xe thông qua trục động cơ.

Hình 4. 1: Động cơ và bánh xe

 Phần khung xe

- Khung xe chia làm 3 tầng:

 Tầng thứ nhất dùng để gắn kết nối động cơ, đồng thời chứa các

module L298, ESP32, pin và mạch sạc.

 Tầng thứ 2 dùng để gắn mạch arduino R3, cảm biến HCSR04 và servo

SG90.

 Tầng thứ 3 dùng để gắn màn hình LCD, buzzer và ESP32-CAM.

 Chúng được xếp chồng lên nhau tạo thành một bộ khung hoàn chỉnh.

63

Hình 4. 2: Khung robot tầng 1

 Phần module điều khiển.

- Lắp module ESP32 vào khung xe.

- Lắp nguồn pin.

- Lắp module điều khiển động cơ L298.

- Module điều khiển động cơ L298 được kết nối với ESP32 và nguồn pin.

Hình 4. 3: Tầng 1 robot di động

64

- Lắp pin dự phòng

- Lắp mạch Arduino Uno R3

 Mạch Arduino Uno R3 được kết nối với pin dự phòng

- Cảm biến HC-SR04 được gắn trên servo SG90 và cùng kết nối với mạch

arduino R3

Hình 4. 4: Tầng 2 robot di động

- Lắp màn hình LCD.

 Màn hình LCD được kết nối với mạch arduino R3.

- Lắp module ESP32-CAM.

Hình 4. 5: Tầng 3 robot di động

65

 Hình ảnh thực tế sau khi lắp thành công robot.

Hình 4. 6: Hình ảnh robot sau khi lắp rắp thành công

4.1.2 Thiết kế ứng dụng điều khiển robot di động qua MIT Ap Inventor

Để có một ứng dụng điều khiển robot di động trước tiên ta hãy tìm kiếm

trang web : Mit App Inventor trên Google.[7]

Hình 4. 7: Tạo dự án mới

- Tạo một dự án mới bằng cách nhấn vào “ Start new project ”.

Hình 4. 8: Dự án mới

66

- Định dạng cấu trúc màn hình theo từng vị trí là khung dọc, khung

ngang,… màn hình đang có khung định dạng theo hàng ngang là

“HorizontalArrangement” có chiều cao được định dạng là tự động và

chiều rộng là đầy màn hình.

Hình 4. 9: Kéo các khối vào khung đã có

- Kéo khối “ Image” vào khung đã có và đặt chiều cao đầy khung hình và

chiều rộng 50 pixels.

- Kéo khối “Label” để viết chữ “ ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI”.

- Phần kết nối bluetooth, kéo khối ListPicker.

- Phần phông màu thì chọn “BackgroundColor” để thay đổi.

Hình 4. 10: Kéo khối TextBox để nhập địa chỉ IP kết nối với camera.

Hình 4. 11: Thiết lập các nút bấm sử dụng khối “ Button”

67

- Các nút bấm “ Điều khiển giọng nói”, “ Giới thiệu mô hình” , “ Thành

viên”, “ Camera” , “ tiến” , “lùi” , “ phải” , “trái” sử dụng khối “ Button” .

- Để có được màn hình có bố cục hợp lý, dễ nhận biết, chúng ta sử dụng các

tác vụ như thay đổi độ dài, độ rộng,thay đổi tên, màu chữ , phông chữ ,..

Hình 4. 12: Các khối chức năng

- Để kết nối bluetooth sử dụng khối “BluetoothCilent1”.

- Để nhận được giọng nói sử dụng khối “SpeechRecognizer1”.

- Để truy cập liên kết thoát ra ứng dụng khác sử dụng khối

“ActivityStarter1”.

- Để kết nối với camera qua interner sử dụng khối “Web1”.

 Giao diện sau hoàn thiện ứng dụng

Hình 4. 13: Giao diện điều khiển tay cầm và giọng nói trên ứng dụng

68

4.2 Đánh giá hoạt động của hệ thống

4.2.1 Kết quả

 Kết quả nhóm đạt được:

Hình 4. 14: Kết quả điều khiển bằng giọng nói

- Robot di động nhận diện được những lệnh di chuyển : “ đi thẳng” , “đi

lùi”, “rẽ trái” , “rẽ phải” , “quay đầu” , “quay tròn”, “dừng lại”.

- Robot sử dụng nhận dạng giọng nói rời rạc: Yêu cầu người dùng nói từng

từ một hoặc tạm dừng giữa mỗi câu.

69

Hình 4. 15: Kết quả điều khiển robot bằng cử chỉ

- Mô hình robot điều khiển bằng cử chỉ hoạt động ổn định.

- Khi nghiêng theo hướng X- robot rẽ trái , nếu giữ nguyên tư thế tay cầm

thì robot sẽ xoay vòng tròn ngược chiều kim đồng hồ.

- Khi nghiên hướng X+ robot rẽ phải, nếu giữ nguyên tư thế tay cầm thì

robot xoay vòng tròn theo chiều kim đồng hồ.

- Để robot đi thẳng, ta hướng tay cầm xuống hướng Y- .

- Để robot đi lùi, ta hướng tay cầm lên hướng Y+.

- Khi muốn tăng tốc, ta càng nghiên góc nghiêng lớn thì tốc độ càng tăng.

- Để robot dừng lại, ta để tay cầm ở vị trí ban đầu.

70

Hình 4. 16: Kết quả điều khiển bằng bluetooth

- Robot di chuyển theo lệnh điều khiển : đi thẳng, đi lùi, rẽ trái, rẽ phải,

xoay tròn. Để robot dừng lại thực hiện nhả nút bấm.

- Robot có camera hỗ trợ quan sát phía sau giúp tăng tầm nhìn không gian

của người điều khiển.

71

Hình 4. 17: Kết quả xử lý hình ảnh phát hiện được

Tệp thư viện thêm vào lập trình chứa tên của hơn 90 đối tượng mà mô

hình YOLOv3 được đào tạo để phát hiện. Đây là một số hình ảnh mà mô hình

thu thập và xử lý hình ảnh được như chai nước, cái cốc, cái ghế ,...

72

Hình 4. 18: Robot phát hiện vật cản trong quá trình quét

Robot có thể phát hiện vật cản trong phạm vi 20cm và báo hiệu bằng còi.

Phần mềm mô phỏng độ chính xác của cảm biến là processing. Phần màu đỏ

trên cửa sổ màn hình là vị trí vật cản. Vị trí vật cản sẽ được xác định và hiển thị

khoảng cách, góc độ,nằm trong vùng nhận diện.

4.2.2 Đánh giá hoạt động của hệ thống

- Việc sử dụng nhiều phương pháp mang đến sự di chuyển linh hoạt trong

quá trình vận hành của thiết bị.

- Người sử dụng có thể điều khiển robot di chuyển đến vị trí mong muốn

một cách nhanh chóng.

- Mô hình kết hợp camera trước và sau sẽ giúp người điều khiển có góc

nhìn rộng về không gian mà robot di chuyển đến.

- Về phần điều khiển robot di động bằng giọng nói có nhược điểm sẽ không

nhận dạng được giọng nói khi có nhiều tạp âm.

- Mô hình robot đã hoàn thiện và hoạt động tốt nhưng trong quá trình điều

khiển còn một tác nhân như kết nối mạng, tốc độ internet, ... ảnh hưởng

đến việc truyền tải chất lượng hình ảnh.

73

KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN

 Kết luận

- Mô hình robot di động hoàn thiện điều khiển trên phần mềm đã thiết kế.

- Mô hình robot di động hoàn thiện điều khiển di chuyển bằng giọng nói.

- Mô hình robot di động hoàn thiện điều khiển di chuyển bằng cử chỉ.

- Mô hình được thiết kế và tính toán đúng với yêu cầu đề tài đặt ra.

- Hiểu rõ và nắm được phương pháp điều khiển cho mô hình robot di động.

 Hướng phát triển

- Có thể thay đổi các khối động cơ và khung xe để xe hoạt động tốt hơn và

ổn định hơn.

- Có thể dùng thêm bộ encoder để xe hoạt động ổn định.

- Có thể tích hợp thêm nhiều cảm biến khác trên xe để đáp ứng nhiều mục

đích sử dụng khác nhau.

- Có thể tận dụng camera để xử lý ảnh điều khiển bằng các phương pháp

khác nhau.

74

TÀI LIỆU THAM KHẢO

[1] Giáo trình xử lý ảnh (2014)

https://www.slideshare.net/elLeonNo1/gio-trnh-x-l-nh

[2] Datasheet ARDUINO (2023)

https://docs.arduino.cc/resources/datasheets/A000066-datasheet.pdf

[3] Datasheet ESP32 (2023)

https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en

.pdf

[4] NodeMCU ESP8266 (2020)

https://components101.com/development-boards/nodemcu-esp8266-pinout-

features-and-datasheet

[5] Introduction to Mobile Robot Control (2014, Elsevier)

https://books.google.com.vn/books?id=gmYALDVqlLUC&lpg=PP1&ots=55H

Lhk6geq&dq=Introduction%20to%20Mobile%20Robot%20Control%20(2014%

2C%20Elsevier)&lr&hl=vi&pg=PP1#v=onepage&q&f=false

[6] Vẽ mạch in trên Altium(2020)

https://khuenguyencreator.com/hoc-altium-tu-a-toi-z-cho-sinh-vien/

[7] Hướng dẫn sử dụng App Inventor 2 (2023)

https://duoclienthong.edu.vn/huong-dan-su-dung-app-inventor-2/

75

PHỤ LỤC

Bảng ký hiệu các tham số

Ký hiệu Ý nghĩa Đơn vị

{X,Y} Hệ quy chiếu toàn cục

{X’,Y’} Hệ quy chiếu được gắn trên robot

Tốc độ quay của bánh phải rpm

Tốc độ quay của bánh trái rpm

Φ Góc hợp bởi {X,Y} và {X’,Y’}

a Khoảng cách từ mỗi bánh xe đến Q m

Q Trọng tâm của robot

Vận tốc dài bánh trái m/s

Vận tốc dài bánh phải m/s

2a Chiều rộng thân xe m

Góc quay bên phải Rad/s

Góc quay bên trái Rad/s

Vận tốc dài của thân xe m/s VQ

F Tổng lực tác động lên robot N

N Tổng momen đối với trọng tâm tác dụng lên N.m

robot

I Tensor quán tính của robot

Lực kéo sinh ra do momen của động cơ N

Lực ma sát nghỉ giữa bánh xe và bề mặt sàn N

Phản lực của mặt sàn N

Momen xoắn của động cơ N

Một phần tư trọng lượng của robot di động, N

.

r Bán kính bánh xe m

m Khối lượng robot kg

Một phần tư khối lượng của robot di động kg

n Tốc độ quay của bánh xe rpm

Lực kéo sinh ra do momen của động cơ N

Lực ma sát N

Hệ số ma sát lăn

LẬP TRÌNH TRÊN ARDUINO IDE:

LẬP TRÌNH ĐIỀU KHIỂN ESP32 TRÊN MOBILE ROBOT, TIẾP NHẬN TÍN HIỆU TỪ ESP8266 TỪ TAY CẦM + KẾT NỐI BLUTOOTH VÀ GIỌNG NÓI

#include "BluetoothSerial.h"

BluetoothSerial SerialBT;

#include

#include

#include

#include

Ticker blinker;

#define LED_esp 2

#define SW 4

#define IN1 17

#define IN2 18

#define IN3 19

#define IN4 21

typedef struct message

{

int a;

int b;

};

struct message mess;

void blinkLed() {

digitalWrite(LED_esp,0);

blinker.detach();

}

void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len)

{

digitalWrite(LED_esp,1);

blinker.attach(0.1, blinkLed);

memcpy(&mess, incomingData, sizeof(mess));

mess.a = map(mess.a-5, -95, 95, -255,255);

if (mess.a>255) mess.a=255;

if (mess.a<-255) mess.a=-255;

mess.b = map(mess.b, -95, 95, -255,255);

if (mess.b>255) mess.b=255;

if (mess.b<-255) mess.b=-255;

}

void setup() {

pinMode(IN1,OUTPUT); digitalWrite(IN1, 0);

pinMode(IN2,OUTPUT); digitalWrite(IN2, 0);

pinMode(IN3,OUTPUT); digitalWrite(IN3, 0);

pinMode(IN4,OUTPUT); digitalWrite(IN4, 0);

pinMode(LED_esp,OUTPUT); digitalWrite(LED_esp, 0);

pinMode(12,OUTPUT); digitalWrite(12, 0);

pinMode(SW,INPUT);

Serial.begin(9600); delay(500);

WiFi.mode(WIFI_STA);

Serial.println(WiFi.macAddress());

if (esp_now_init() != ESP_OK) {

Serial.println("Error initializing ESP-NOW");

return;

}

esp_now_register_recv_cb(OnDataRecv);

ledcAttachPin(IN1, 1); ledcSetup(1, 1000, 8);

ledcAttachPin(IN2, 2); ledcSetup(2, 1000, 8);

ledcAttachPin(IN3, 3); ledcSetup(3, 1000, 8);

ledcAttachPin(IN4, 4); ledcSetup(4, 1000, 8);

ledcWrite(1, 0); ledcWrite(2, 0);

ledcWrite(3, 0); ledcWrite(4, 0);

SerialBT.begin("ESP32 xe 4 banh");

}

void loop() {

dung();

while (digitalRead(SW)==1)

{

if (mess.b>70)

{

ledcWrite(2, mess.b);

ledcWrite(3, mess.b);

if (mess.a>70)

{

ledcWrite(1, mess.a);

ledcWrite(4, 0);

}

else if (mess.a<-70)

{

ledcWrite(4, mess.a*(-1));

ledcWrite(1, 0);

}

else

{

ledcWrite(1, 0);

ledcWrite(4, 0);

}

}

else if (mess.b<-70)

{

ledcWrite(1, mess.b*(-1));

ledcWrite(4, mess.b*(-1));

if (mess.a>70)

{

ledcWrite(2, mess.a);

ledcWrite(3, 0);

}

else if (mess.a<-70)

{

ledcWrite(3, mess.a*(-1));

ledcWrite(2, 0);

}

else

{

ledcWrite(2, 0);

ledcWrite(3, 0);

}

}

else

{

if (mess.a>70)

{

ledcWrite(1, mess.a); ledcWrite(2, 0);

ledcWrite(3, mess.a); ledcWrite(4, 0);

}

else if (mess.a<-70)

{

ledcWrite(2, mess.a*(-1)); ledcWrite(1, 0);

ledcWrite(4, mess.a*(-1)); ledcWrite(3, 0);

}

else

{

ledcWrite(1, 0); ledcWrite(2, 0);

ledcWrite(3, 0); ledcWrite(4, 0);

}

}

}

dung();

while (digitalRead(SW)==0)

{

if (SerialBT.available())

{

char c = SerialBT.read();

if (c=='A') tien();

else if (c=='B') lui();

else if (c=='C') trai();

else if (c=='D') phai();

else if (c=='E') dung();

else if (c=='G') tien();

else if (c=='H') {trai(); delay(500); dung();}

else if (c=='I') {phai(); delay(500); dung();}

else if (c=='J') lui();

else if (c=='K') dung();

else if (c=='Q') {phai(); delay(1000); dung();}

else if (c=='R') phai();

}

delay(10);

}

}

void lui()

{

ledcWrite(1, 200); ledcWrite(2, 0);

ledcWrite(4, 200); ledcWrite(3, 0);

}

void tien()

{

ledcWrite(2, 200); ledcWrite(1, 0);

ledcWrite(3, 200); ledcWrite(4, 0);

}

void phai()

{

ledcWrite(1, 200); ledcWrite(2, 0);

ledcWrite(3, 200); ledcWrite(4, 0);

}

void trai()

{

ledcWrite(2, 200); ledcWrite(1, 0);

ledcWrite(4, 200); ledcWrite(3, 0);

}

void dung()

{

ledcWrite(1, 0); ledcWrite(2, 0);

ledcWrite(3, 0); ledcWrite(4, 0);

}

LẬP TRÌNH TRÊN ARDUINO IDE:

ĐIỀU KHIỂN CỬ CHỈ SỬ DỤNG ESP8266 TRUYỀN DỮ LIỆU ĐÃ XỬ LÝ TỪ MPU6050 VỀ ESP32 Ở MOBILE ROBOT

#include

#include

#include

Adafruit_MPU6050 mpu;

#include

#include

#include

#define LED 2

uint8_t node[6] = {0xA4,0xE5,0x7C,0xF6,0xB0,0xC0};

typedef struct message {

int a;

int b;

};

struct message mess;

void init_ESPnow() {

WiFi.mode(WIFI_STA);

if (esp_now_init() != 0) {

Serial.println("Problem during ESP-NOW init");

return;

}

esp_now_set_self_role(ESP_NOW_ROLE_CONTROLLER);

esp_now_add_peer(node, ESP_NOW_ROLE_SLAVE, 1, NULL, 0);

}

void setup() {

pinMode(LED, OUTPUT); digitalWrite(LED, 1);

Serial.begin(9600); delay(500);

if (!mpu.begin()) {

Serial.println("Failed to find MPU6050 chip");

while (1) {

digitalWrite(LED, 0); delay(1000);

digitalWrite(LED, 1); delay(1000);

}

}

mpu.setAccelerometerRange(MPU6050_RANGE_8_G);

mpu.setGyroRange(MPU6050_RANGE_500_DEG);

mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);

init_ESPnow();

mess.a = 0;

mess.b = 0;

}

void loop() {

digitalWrite(LED, 0);

sensors_event_t a, g, temp;

mpu.getEvent(&a, &g, &temp);

mess.a = (int)(a.acceleration.x * 10);

mess.b = (int)(a.acceleration.y * 10);

esp_now_send(node, (uint8_t *) &mess, sizeof(mess));

delay(25);

digitalWrite(LED, 1);

delay(50);

}

LẬP TRÌNH KHỞI TẠO HÌNH ẢNH QUA IP TRÊN ARDUINO IDE

#include

#include

#include

const char* WIFI_SSID = "Redmi Note 11";

const char* WIFI_PASS = "23456781";

WebServer server(80);

static auto loRes = esp32cam::Resolution::find(320, 240);

static auto hiRes = esp32cam::Resolution::find(800, 600);

static auto hiRes = esp32cam::Resolution::find(640, 480);

void

serveJpg()g

{

auto frame = esp32cam::capture();

if (frame == nullptr) {

Serial.println("CAPTURE FAIL");

server.send(503, "", "");

return;

}

Serial.printf("CAPTURE OK %dx%d %db\n", frame->getWidth(), frame- >getHeight(),

static_cast(frame->size()));

server.setContentLength(frame->size());

server.send(200, "image/jpeg");

WiFiClient client = server.client();

frame->writeTo(client);

}

void

handleJpgLo()

{

if (!esp32cam::Camera.changeResolution(loRes)) {

Serial.println("SET-LO-RES FAIL");

}

serveJpg();

}

void

handleJpgHi()

{

if (!esp32cam::Camera.changeResolution(hiRes)) {

Serial.println("SET-HI-RES FAIL");

}

serveJpg();

}

void

setup()

{

Serial.begin(115200);

Serial.println();

{

using namespace esp32cam;

Config cfg;

cfg.setPins(pins::AiThinker);

cfg.setResolution(hiRes);

cfg.setBufferCount(2);

cfg.setJpeg(80);

bool ok = Camera.begin(cfg);

Serial.println(ok ? "CAMARA OK" : "CAMARA FAIL");

}

WiFi.persistent(false);

WiFi.mode(WIFI_STA);

WiFi.begin(WIFI_SSID, WIFI_PASS);

while (WiFi.status() != WL_CONNECTED) {

delay(500);

}

Serial.print("http://");

Serial.print(WiFi.localIP());

Serial.println("/cam-lo.jpg");

Serial.print("http://");

Serial.print(WiFi.localIP());

Serial.println("/cam-hi.jpg");

server.on("/cam-lo.jpg",handleJpgLo);

server.on("/cam-hi.jpg", handleJpgHi);

server.begin();

}

void loop()

{

server.handleClient();

}

import cv2 #opencv

import urllib.request

import numpy as np

url = 'http://192.168.80.21/cam-hi.jpg'

#url = 'http://192.168.80.21/'

winName = 'ESP32 CAMERA' cv2.namedWindow(winName,cv2.WINDOW_AUTOSIZE) # phần trăm kích thước ban đầu

classNames = []

classFile = 'coco.names'

with open(classFile,'rt') as f:

classNames = f.read().rstrip('\n').split('\n')

configPath = 'ssd_mobilenet_v3_large_coco_2020_01_14.pbtxt' #sử dụng thuật toán phát hiện nổi tiwsng ssmobilenetv3

weightsPath = 'frozen_inference_graph.pb'

net = cv2.dnn_DetectionModel(weightsPath,configPath)

net.setInputSize(320,320)# cài kích thước vào

#net.setInputSize(480,480)

net.setInputScale(1.0/127.5)# cài đặt tỉ lệ vào

net.setInputMean((127.5, 127.5, 127.5))

net.setInputSwapRB(True_

while(1):

imgResponse = urllib.request.urlopen (url) # mở địa chỉ

imgNp = np.array(bytearray(imgResponse.read()),dtype=np.uint8)

img = cv2.imdecode (imgNp,-1)

img = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)

#img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

classIds, confs, bbox = net.detect(img,confThreshold=0.5)

LẬP TRÌNH XỬ LÝ ẢNH PHÁT HIỆN ĐỐI TƯỢNG TRÊN VISUAL STUDIO CODE

print(classIds,bbox)

if len(classIds) != 0:

for

classId,

confidence,box

in

zip(classIds.flatten(),confs.flatten(),bbox):

cv2.rectangle(img,box,color=(0,255,0),thickness = 3)

cv2.putText(img, classNames[classId-1], (box[0]+10,box[1]+30), cv2.FONT_HERSHEY_COMPLEX, 1, (0,255,0),2)

cv2.imshow(winName,img)

tecla = cv2.waitKey(5) & 0xFF

if tecla == 27:

break

cv2.destroyAllWindows()

Lưu đồ thuật toán ứng dụng điều khiển:

Lưu đồ thuật toán điều khiển robot:

Start

Start

S

Power ON

Khởi tạo giao diện

Đ

S

2

Switch==0

Điều khiển bằng cử

S

Bật Bluetooth

Đ

1

2

Đ

Điều khiển qua App

S

Tìm thiết bị Bluetooth

S

S

Khởi tạo địa chỉ MAC

Kết nối bluetoth với app điều khiển

1

Đ

Đ

S

Đ

Kết nối với Robot

Các nút button điều khiển không cho phép nhấn

Đ

Robot và tay cầm điều khiển kết nối thông qua MAC

Robot và App kết nối

Chuyển sang giao diện điều khiển & các button điều khiển cho phép nhấn

Robot hoạt động Khởi tạo UART PWM và định dạng biến

Robot hoạt động Khởi tạo UART PWM và định dạng biến

S

Đ

Nhấn button chế độ điều khiển tay cầm

Chuyển sang giao diện điều khiển bằng giọng nói

S

S

Esp32 nhận giá trị góc

S

Nhận ký tự từ app qua giao tiếp UART

Có Button được nhấn

S

Đ

Button Voice đươc nhấn

Đ

Đ

Xử lý tín hiệu góc, đưa ra lệnh điều khiển động cơ

Tiến hành so sánh và đưa ra lệnh thực hiện chức năng tương ứng với ký tự nhận được đã được định danh ở khai báo

Ứng dụng sẽ gửi đi các ký tự (A, B,C, D,...) được gán cho các lệnh điều khiển tương ứng (tiến, lùi, trái, phải,..) với các button được nhấn đến ESP32 để tiến hành lệnh tương ứng.

DC1

DC2

DC3

DC4

Dùng những lệnh điều khiển được thiết lập (đi thẳng/, rẽ trái/phải,..) nói vào cửa sổ Google Asistant hiện lên ở app. Ứng dụng sẽ gửi đi các ký tự (G, H, I, J,...) được gán cho các lệnh điều khiển tương ứng đến ESP32 để tiến hành lệnh tương ứng.

DC1

DC2

DC3

DC4

End

End

End

Lưu đồ thuật toán phát hiện vật:

Lưu đồ thuật toán xử lý ảnh:

Start

Start

S

ESP32-Cam hiển thị

HC-SR04 OK Servo OK Loa OK

Đ

S

Cam phát hiện vật cản

S

Cảm biến phát hiện vật cản

Đ

Đ

Phân tích xử lý hình ảnh thu được

Đo khoảng cách đến vật cản

S

S

Nhận biết vật

Khoảng cách an toàn

Gửi tín hiệu "Nguy hiểm" cho Arduino, hiển thị lên LCD, loa và servo

Đ

Đ

Gửi tín hiệu "An toàn" cho Arduino và hiển thị lên LCD

Gửi dữ liệu về cho máy tính

End

End

A

B

C

D

E

F

G

H

J

K

+

-

18650Li-on

Khoi dieu khien chuyen dong robot

0

0

Khoi ESP32-CAM

18650Li-on

-

+

R1

30

3.3V

VIN

1

29

GND1

GND

-

2

B

+ B

28

1

1

D15

D13

3

27

MACHSAC

D2

D12

M B

SW2

4

26

D4

D14

5

-

P

+ P

25

SW-SPDT-MOM

RX2

D27

6

24

TX2

D26

5V

3V3

X R

X T

7

2

2

23

D5

D25

GND

IO16

8

I

POWER JACK DC

L298

+

4

9

22

E S P 3 2 - D E V K T

D18

D33

IO12

IO0

9

21

VS

VCC

D19

D32

IO13

GND

X T

10

X R

2

OUT1

C C V

D N G

20

D21

D35

IO15

VCC

11

3

OUT2

A

-

19

RX

D34

+

IO14

UOR

TX

12

-

13

5 7 10 12 6 11

Micro

B

3

3

OUT3

IN1 IN2 IN3 IN4 ENA ENB

18

C + 3

TX

VN

-

IO2

UOT

RX

-

13

14

OUT4

3

1 15

17

SENSA SENSB

D22

VP

GND

IO4

GND

14

ESP32-CAM

16

D23

EN

I

+

8

15

L298

4

4

H C T W S R E W O P

5

5

Khoi tay dieu khien bang cu chi

Khoi do khoang cach va canh bao an toan

LCD1 LM016L

TestPin www.TheEngineeringProjects.com

ESP8266 WEMOSmini

6

6

VCC GND

/

U P M G T

r e g g i r T

o h c E

I

d n G

V 5 +

D D V

0 D

7 D

S S V

E E V

W R

1 D

2 D

3 D

4 D

6 D

S R

E

5 D

SIM2

1 2 3 4 5 6 7 8

J1 POWER JACK DC

VCC GND SCL SDA XDA XCL AD0 INT

2

7

1

3

5

8

9

4

6

1 1

0 1

3 1

2 1

4 1

RST A0 D0 D5 D6 D7 D8 3V3

TX RX D1 D2 D3 D4 GND 5V

GND VCC

5V

GND

BUZ1

GND

+

7

7

g i r T

AREF

-

o h c E

VCC

GND

5V

A

BUZZER

+

SW1

RESET

B

C + 3

14 15

I

-

Trig Echo

SCL SDA

U2 SCL SDA

-

5V

A R D U N O

3

13

INT

13 12 ~11 ~10 ~9 8

GND

5V

I

6 3

1

8

8

P O W E R

GND

U1 OUT+ OUT-

VIN+

5V

I

GND

I

2

1 2 3

4 5 6 7 9 10 11 12

VIN-

A0 A1 A2

P0 P1 P2 P3 P4 P5 P6 P7

P 8 2 3 A G E M T A

L E M T A

D G T A L

5 4

(

BAT+ BAT-

PCF8574

S M U L I N O

A N A L O G

I

SAC-3V7-1A

P W M ~ )

N

+88.8

SDA

GND

Pin

7 ~6 ~5 4 ~3 2 TX > 1 RX < 0

A0 A1 A2 A3 A4 A5

FILE NAME:

Ban ve dien dieu khien

SCL

www.arduino.cc blogembarcado.blogspot.com

9

9

SIMULINO UNO SMD

DATE: 07/05/2023 PAGE: of 1

1

DESIGN TITLE: MobileRobot Nguyen Tran The

BY:

TIME: 1:36:35 CH

K

A

B

C

D

E

F

G

H

J

1

0 0 2

194

4

13

5

3

6

12

7

VẬT LIỆU

TÊN CHI TIẾT

SỐ LƯỢNG

STT

6

MICA

VỎ XE

1

ARDUINO UNO R3

1

2

MÀN HÌNH LCD

1

3

NHỰA NHỰA THỦY TINH

ESP32 CAM

1

NHỰA

4

10

2 5

BUZZER

1

NHỰA

5

HC- SR04

1

NHỰA

6

7 6 1

SERVO SG90

1

NHỰA

7

ĐỘNG CƠ DC GIẢM TỐC

4

NHỰA

8

MODULE ESP32

1

NHỰA

9

4 5

CHẮN BÙN

2

MICA

10

1

BÁNH XE

4

NHỰA

9

TRỤ ĐỒNG

8

ĐỒNG

11 12

KE GÓC CHỮ L

1

SẮT

13

Người vẽ

Nguyễn Minh Trường

MÔ HÌNH ROBOT DI ĐỘNG ĐIỀU KHIỂN BẰNG GIỌNG NÓI

Người kiểm tra

ThS.Trần Quốc Bảo

11

139

Tỉ lệ

8

2

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

1:1

12,0

66,1

20,9

9,0 3,2

3 , 3

0 , 2 1

5 , 3 5

35,1

0 , 9

7,0

16,0

6,4 10,0

0 , 9

6 , 3 1

Người vẽ

Nguyễn Minh Trường

ARDUINO UNO R3

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

NHỰA

1:1

0 , 8 6

25,0

51,4

Người vẽ

Nguyễn Minh Trường

9,8

BÁNH XE

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

NHỰA

1:1

11,9

4 , 9

5 , 6

11,9

Người vẽ

Nguyễn Minh Trường

BUZZER

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

NHỰA

1:1

60,0

3 , 0

0 , 0 6

0 , 0 9

37,6

3

35,0

9 , 1

0 , 1

Người vẽ

Nguyễn Minh Trường

CẠNH BÊN

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

MICA

1:1

3 , 0 0

0 , 5 3

3 , 4 6

1 3 5 °

104,5

200,0

120,0

40,0

Người vẽ

Nguyễn Minh Trường

CHẮN BÙN

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

MICA

1:1

20,0

R

7,0

15,0

5,0

12,0

15,0

38,0

Người vẽ

Nguyễn Minh Trường

ĐỘNG CƠ DC GIẢM TỐC

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

NHỰA

1:1

15

38

5 1

80 95

3

0 8 1

2

0

69

3

125

1

Người vẽ

Nguyễn Minh Trường

ĐẾ TẦNG 1

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

MICA

1:1

3

,

0

0 , 1 2 1

165,0

0 , 1

Người vẽ

Nguyễn Minh Trường

ĐẾ TẦNG 2

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

MICA

1:1

101,0

74,5

0 0 , 0 9

2 , 9 7

3,0

89,1

0 0 , 1

Người vẽ

Nguyễn Minh Trường

ĐẾ TẦNG 3

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

MICA

1:1

2,0 2,0

9 , 1

3 , 1

5 , 1

4 , 2

6 , 5

1,8

26,5

5 , 0 5

1 , 8 3

3,0

Người vẽ

Nguyễn Minh Trường

ESP32

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

NHỰA

1:1

8,5

4 , 5

2 , 3

7 , 7 1

0 , 9

4 , 2

1,5

7 , 2

0 , 6

0 , 5 2

7 , 4

19,2

38,0

Người vẽ

Nguyễn Minh Trường

ESP32 CAM

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

NHỰA

1:1

1,4

R

3 , 1 2

1

6,3

3,1

12,30

15,3

8,0

3 , 4

0 , 7

4 , 1

0 , 1

45,7

Người vẽ

Nguyễn Minh Trường

HC - SR04

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

NHỰA

1:1

24,6

4,0

6 , 4 2

0 , 5 2

10,0

25,0

0 , 0 3

Người vẽ

Nguyễn Minh Trường

KE GÓC CHỮ L

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

SẮT

1:1

4,9

3,4

3 , 7

6 , 5

2 , 1

0 , 0 1

1 , 6

2 , 0 4

2 , 2

0 , 7

6 , 4 1

3,0

24,0

0 , 9 1

9 , 7

39,4

Người vẽ

Nguyễn Minh Trường

L298

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

NHỰA

1:1

1,6

7,9

R

2 , 8

9 , 4 3

7 , 2 1

2 , 2 2

3,2

3,2

61,9

68,3

79,4

7 , 8

Người vẽ

Nguyễn Minh Trường

MÀN HÌNH LCD

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

NHỰA + THỦY TINH

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

1:1

11,5

4,0

,

9 4

4 , 2

2 , 2 3

8 , 8 1

22,4

32,2

Người vẽ

Nguyễn Minh Trường

SERVO

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

NHỰA

1:1

9,0

25,0

0 , 2 5

0

3 , 0

92,0

120,0

0 , 1

Người vẽ

Nguyễn Minh Trường

TẤM CHẮN TRƯỚC XE

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

MICA

1:1

50,0

5,1

3 , 0

2

,

8

5,5

Người vẽ

Nguyễn Minh Trường

TRỤ ĐỒNG

Người kiểm tra

ThS. Trần Quốc Bảo

Tỉ lệ

ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGHÀNH CÔNG NGHỆ KĨ THUẬT CƠ ĐIỆN TỬ

ĐỒNG

1:1