You are on page 1of 97

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM


KHOA CƠ KHÍ CHẾ TẠO MÁY

ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT CƠ ĐIỆN TỬ

NGHIÊN CỨU ,CHẾ TẠO ROBOT HÚT BỤI


ĐIỀU KHIỂN QUA BLUETOOTH ĐIỆN THOẠI

GVHD: PGS.TS NGUYỄN TRƯỜNG THỊNH


SVTH: PHẠM NGỌC TÙNG
MSSV: 10111093

SKL 0 0 4 2 7 7

Tp. Hồ Chí Minh, tháng 1/2016


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HỒ CHÍ MINH
KHOA CƠ KHÍ CHẾ TẠO MÁY
BỘ MÔN CƠ ĐIỆN TỬ


LUẬN VĂN TỐT NGHIỆP

NGHIÊN CỨU ,CHẾ TẠO ROBOT HÚT BỤI


ĐIỀU KHIỂN QUA BLUETOOTH ĐIỆN THOẠI

GVHD : PGS.TS NGUYỄN TRƯỜNG THỊNH


SVTH : PHẠM NGỌC TÙNG
MSSV : 10111093

Tp. Hồ Chí Minh, tháng 01 năm 2016


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

----***----

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Họ và tên sinh viên: PHẠM NGỌC TÙNG MSSV:10111093

Ngành: Cơ Điện Tử Lớp:101112

Giảng viên hƣớng dẫn: PGS.TS NGUYỄN TRƢỜNG THỊNH

Ngày nhận đề tài: Ngày nộp đề tài:


1. Tên đề tài: “Nghiên cứu, chế tạo Robot hút bụi điều khiển qua Bluetooth điện thoại”.
2. Các số liệu, tài liệu ban đầu: Kế thừa thiết kế từ đề tài “ Nghiên cứu chế tạo
Robot hút bụi tự động”.
3. Nội dung thực hiện đềtài:
- Chế tạo Mobile Robot 3 bánh : 1 bánh dẫn , 2 bánh đẩy.
- Nghiên cứu xây dựng thuật toán điều khiển Robot.
- Điều khiển động cơ Dc Servo bằng Arduino Uno.
-Giao tiếp giữa Arduino Uno và Bluetooth điện thoại.

-Thiết lập giao diện điều khiển trên điện thoại android.
4. Sản phẩm:
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***----

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN

Họ và tên Sinh viên: ..............................................................MSSV:................................

Ngành:................................................................................................................................
Tên đề tài:...........................................................................................................................
Họ và tên Giáo viên hƣớng dẫn:..........................................................................................
NHẬN XÉT
1. Về nội dung đề tài & khối lƣợng thực hiện:
............................................................................................................................................
............................................................................................................................................
2. Ƣu điểm:
............................................................................................................................................
............................................................................................................................................
3. Khuyết điểm:
............................................................................................................................................
............................................................................................................................................
4. Đề nghị cho bảo vệ hay không?
............................................................................................................................................
5. Đánh giá loại:
............................................................................................................................................
6. Điểm:……………….(Bằng chữ: ...................................................................................)
TP. Hồ Chí Minh,ngày tháng năm 20…
Giáo viên hƣớng dẫn
(Ký & ghi rõ họ tên)
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***----

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Họ và tên Sinh viên: ..............................................................MSSV:................................


Ngành:................................................................................................................................
Tên đề tài:...........................................................................................................................
Họ và tên Giáo viên phản biện:............................................................................................
NHẬN XÉT
1. Về nội dung đề tài & khối lƣợng thực hiện:
............................................................................................................................................
............................................................................................................................................
2. Ƣu điểm:
............................................................................................................................................
............................................................................................................................................
3. Khuyết điểm:
............................................................................................................................................
............................................................................................................................................
4. Đề nghị cho bảo vệ hay không?
............................................................................................................................................

5. Đánh giá loại:


............................................................................................................................................
6. Điểm:……………….(Bằng chữ: ...................................................................................)
TP. Hồ Chí Minh, ngày tháng năm 20…
Giáo viên phản biện
(Ký & ghi rõ họ tên)
LỜI CẢM TẠ

Trong quá trình học tập và rèn luyện tại trƣờng Đại Học Sƣ Phạm Kỹ Thuật
Thành Phố Hồ Chí Minh, tôi đã đƣợc sự truyền đạt, chỉ bảo tận tình và tiếp thu đƣợc
một lƣợng kiến thức đáng kể không chỉ về kiến thức chuyên ngành mà là những kiến
thức về thế giới xung quanh thông qua chƣơng trình đào tạo của nhà trƣờng cùng với
hoạt động giảng dạy, truyền đạt kiến thức của toàn thể giảng viên trong trƣờng. Với
sự hỗ trợ đầy đủ về cơ sở vật chất cũng nhƣ môi trƣờng nghiên cứu đã tạo điều kiện
cho tôi mở mang kiến thức và có cái nhìn mới về khoa học. Vì vậy lời cảm ơn đầu
tiên tôi xin gởi đến trƣờng Đại Học Sƣ Phạm Kỹ Thuật Thành Phố Hồ Chí Minh và
tất cả những Giảng viên giảng dạy.
Đồ án này hoàn thành nhờ sự hỗ trợ từ giáo viên hƣớng dẫn. Nhờ sự hƣớng
dẫn tận tình của thầy tôi đã từng bƣớc liên kết những kiến thức đã đƣợc học và thực
hiện những công việc trong đồ án. Thầy cũng là ngƣời tạo điều kiện để tôi sáng tạo và
dám thực hiện những ý tƣởng của mình một cách chủ động, đồng thời bằng kinh
nghiệm của mình, thầy đã góp ý chân thành để tôi hoàn thiện những ý tƣởng đó. Tôi
xin gửi đến thầy lời cảm ơn chân thành nhất.
Tiếp theo xin gửi lời cảm ơn đến những ngƣời bạn, những ngƣời anh đi trƣớc
đã giúp đỡ tôi trong suốt quá trình làm đồ án. Cuối cùng xin gửi lời cảm ơn đến gia
đình, đặc biệt là cha mẹ, những ngƣời đã hy sinh âm thầm để yêu thƣơng tôi trong
cuộc đời này.

TP.HCM, ngày … tháng … năm 20…

Ngƣời thực hiện


TÓM TẮT ĐỀ TÀI

Trong điều kiện kinh tế xã hội và khoa học kỹ thuật phát triển mạnh nhƣ ngày
nay khái niệm robot đã không còn xa lạ với chúng ta. Robot đƣợc sử dụng rộng rãi và
phổ biến, không những xuất hiện trong sản xuất công nghiệp mà còn phục vụ trong
gia đình, giải trí, gọi chung là robot dịch vụ. Bên cạnh đó nhịp sống ngày càng gấp rút
và hối hả hơn, chính vì vậy xuất hiện các robot phục vụ tự động trong gia đình trở nên
cấp thiết hơn. Sự xuất hiện của robot hút bụi tự động sẽ mang lại cho chúng ta cuộc
sống thêm tiện nghi và hiện đại hơn.
Robot hút bụi là sản phẩm kết hợp hệ thống hút bụi và lập trình di chuyển để
tiến hành hút bụi đƣợc sử dụng ngày càng nhiều trong dân dụng. Nắm bắt đƣợc những
nhu cầu trên, robot hút bụi đã đƣợc nghiên cứu, phát triển trên thế giới từ những năm
1995. Đến nay, robot hút bụi đã đƣợc sản xuất nhằm đáp ứng nhu cầu của con ngƣời
với các hãng sản xuất nhƣ: Samsung, LG, Sanyo…
Nhiệm vụ của đề tài này là khảo sát tính năng của các robot hút bụi trên thị
trƣờng, từ đó cải tiến và phát triển robot dựa trên vi điều khiển Arduino và bluetooth
điện thoại android.
ABSTRACT

In the socio-economic conditions and technological development as strong as


today the concept robot was no stranger to us. Robots are widely used and popular, not
only appear in industrial production, but also in domestic service, entertainment,
collectively called service robots. Besides lifestyle increasingly more urgency and
hustle, so service robots appear automatically in the family becomes more urgent. The
advent of robotic vacuum cleaner automatically gives us more life and more modern
amenities.
Robot vacuum cleaners are products that combine vacuum system and
programmed to move to conduct vacuum is used more and more in consumer products.
Catching up with demand, the robot vacuum cleaner has been researching, developing
world since 1995. To date, the robot vacuum cleaner has been produced to meet the
needs of people with the manufacturer as : Samsung, LG, Sanyo ...
The mission of this project is to examine the features of the robot vacuum
cleaners on the market, thus improving and developing robots based on the Arduino
microcontroller and Bluetooth phone android.
Mục Lục
I.1 Đặt vấn đề .................................................................................................................1
II. Giới thiệu một số loại Robot hút bụi hiện nay : .........................................................2
II.1 Robot Roomba ..................................................................................................2
II.2.Robot LG Hombot ...........................................................................................5
III. Kế thừa và hƣớng nghiên cứu ..................................................................................8
IV. Điểm mới của đề tài ...............................................................................................10
V. Giới hạn đề tài .........................................................................................................11
VI. Phƣơng pháp nghiên cứu ........................................................................................11
CHƢƠNG 2: THIẾT KẾ, TÍNH TOÁN ĐỘNG HỌC ..................................................12
I. Thiết kế cấu trúc của robot ........................................................................................12
I.1 Yêu cầu kĩ thuật của robot: ..............................................................................12
I.2 Phƣơng án thiết kế: ..........................................................................................12
II.Bài toán quỹ đạo di chuyển của robot.......................................................................23
III.Giải thuật điều khiển : .............................................................................................24
CHƢƠNG 3 : THIẾT KẾ MẠCH ĐIỆN VÀ BỘ ĐIỀU KHIỂN. ................................25
I.Các thiết bị và linh kiện của Robot : ..........................................................................25
I.1 Bộ điều khiển trung tâm: ..................................................................................25
I.2 Mạch công suất (mạch cầu H L298) điều khiển động cơ : ..............................32
I.3 Động cơ và driver dùng cho 2 bánh xe : .........................................................33
I.4 Động cơ dùng cho 2 chổi quét và hệ thống hút bụi : ......................................35
I.5 Module Bluetooth HC06 :...............................................................................36
I.6 Mạch báo pin ...................................................................................................38
I.7 Cảm biến Siêu âm SRF05 ................................................................................39
I.8 Nguồn cấp cho cả con Robot: ..........................................................................41
II. Sơ đồ mạch điện.......................................................................................................42
CHƢƠNG 4: LẬP TRÌNH ĐIỀU KHIỂN CHO ROBOT BẰNG PHẦN MỀM
APP MIT INVENTOR .....................................................................................................49
CHƢƠNG 5 :THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ .......................................54
CHƢƠNG 6: KẾT LUẬN VÀ KIẾN NGHỊ ...................................................................59
I. Kết luận: ....................................................................................................................59
II. Kiến nghị..................................................................................................................60
TÀI LIỆU THAM KHẢO ................................................................................................84

Danh mục hình ảnh:


Hình 1.1: Robot Hút Bụi Roomba ............................................................................. 18
Hình 1.2: Kết cấu của Robot RoomBa ...................................................................... 19
Hình 1.3: Quỹ đạo di chuyển của robot RoomBa .................................................... 19
Hình 1.4: Hệ thống chổi của RoomBa ........................................................................ 20
Hình 1.5: RoomBa tự động sạc pin … ....................................................................... 20
Hình 1.6 : Robot LG HomBot ..................................................................................... 21
Hình 1.7: Hình dáng và bố trí chổi quét góc tƣờng .................................................. ..22
Hình 1.8: Kết cấu và bố trí cảm biến của Robot… .................................................. .22
Hình 1.9 : HomeBot tiếp xúc vật cản… .................................................................... .23
Hình 1.10: Bố trí nguồn nuôi và chổi của Robot ........................................................ .23
Hình 1.11: Robot di chuyển kiểu zigzag ..................................................................... .24
Hình 1.12: Robot di chuyển phân ô… ........................................................................ .25
Hình 1.13: Robot di chuyển xoáy ốc… ...................................................................... ..25
Hình 2.1: Tổng thể của Robot đƣợc thiết kế trên solidwork ..................................... ..29
Hình 2.2: Bản vẽ thiết kế mặt trên khung ................................................................. ..30
Hình 2.3 : Bản vẽ thiết kế mặt dƣới khung ................................................................ ..31
Hình 2.4: Bản vẽ thiết kế chổi quét ........................................................................... ..32
Hình 2.5: Nguyên lí hút bụi........................................................................................ ..33
Hình 2.6: Bản vẽ hộp đựng bụi .................................................................................. ..34
Hình 2.7: Bản vẽ hộp đựng rác .................................................................................. ..35
Hình 2.8: Bản vẽ quạt hút .......................................................................................... ..36
Hình 2.9: Cấu trúc bên trong của robot trên solidword .............................................. ..37
Hình 2.10: Bánh tự lựa trên thị trƣờng ........................................................................ 38
Hình 2.11: Bánh tự lựa đƣợc chọn............................................................................. 39
Hình 2.12: Sơ đồ thuật toán điều khiển robot ............................................................ 40
Hình 3.1 Mạch Arduino ............................................................................................ 44
Hình 3.2: Chu trình chạy phần mềm IDE ................................................................. 46
Hình 3.3: Giao diện Arduino IDE ............................................................................. 47
Hình 3.4: Arduino Toolbar .......................................................................................... 47
Hình 3.5: IDE menu … .............................................................................................. .48
Hình 3.6: File menu ..................................................................................................... 48
Hình 3.7: Sketch menu ................................................................................................ 48
Hình 3.8: Tool menu ................................................................................................... 49
Hình 3.9: Hiển thị Board va Serial Port ..................................................................... 49
Hình 3.10: Board Arduino sử dụng ............................................................................. 49
Hình 3.11: Mạch cầu H ............................................................................................... 50
Hình 3.12: Sơ đồ nguyên lý mạch cầu H ................................................................... 50
Hình 3.13: Động cơ DC Servo JGA25-371 ................................................................ 51
Hình 3.14: Bản vẽ chi tiết động cơ DC Servo JGA25-371 ......................................... 52

Hình 3.16: Động cơ DC gear motor 5V....................................................................... 53


Hình 3.17: Module bluetooth HC06............................................................................ 54
Hình 3.18: Mô hình Arduino kết nối với module bluetooth HC 06 ............................ 56
Hình 3.19: Sơ đồ nguyên lý mạch báo pin yếu .......................................................... 56
Hình 3.20: Mạch báo pin yếu ..................................................................................... 57
Hình 3.21: Cảm biến siêu âm SRF05 ......................................................................... 57
Hình 3.22 : Pin Lipo và bộ sạc .................................................................................... 59
Hình 3.23: Sơ đồ mạch điện ........................................................................................ 60
Hình 3.24: Sơ đồ nguyên lí mạch điều khiển .............................................................. 61
Hình 3.25: Đồ thị điều chế xung PWM ....................................................................... 62
Hình 3.26: Sơ đồ nguyên lí PWM điều khiển động cơ ............................................... 64
Hình 3.27: Cấu trúc chung của hệ thống vòng kín ...................................................... 64
Hình 4.1: Phần mềm MIT app inventor .................................................................... 67
Hình 4.2: Giao diện App Inventor............................................................................. 69
Hình 4.3: Giao diện điều khiển robot đƣợc thiết kế (Designer) trên MIT Inventor .. 70
Hình 4.4: Giao diện lập trình (Blocks) sau khi đã Designer .................................... 71

Hnh 5.1 : Mô hình thực tế của Robot ........................................................................ 72


Hình 5.2: Giao diện trên Android ở chế độ AUTO .................................................... 74
Hình 5.3 : Giao diện trên Android ở chế độ MANUAL ............................................. 75

Danh mục bảng


Bảng 3.28 : Tác động của mỗi bộ Kp,Ki,Kd.… ........................................................ 66
Bảng 3.29 : Công thức tính toán độ lợi KP, KI, KD ................................................. 66
CHƯƠNG 1: TỔNG QUAN

I.1 Đặt vấn đề

Ngày nay, robot học không chỉ đạt được những thành tựu to lớn trong nền sản
xuất công nghiệp như : những cánh tay robot có khả năng làm việc với tốc độ cao, chính xác
và liên tục làm năng suất tăng hơn rất nhiều lần so với trước đây mà còn được ứng dụng
trong đời sống hàng ngày. Một trong những sản phẩm robot đầu tiên được ứng dụng trong đời
sống đó là robot hút bụi tự động. Robot này sẽ giúp bạn tránh được việc phải đi cùng, tiếp
xúc trực tiếp với bụi bặm, tiếng ồn - những yếu tố gây tác động xấu lên sức khỏe.

Với mục tiêu hoạt động trong nhà, robot hút bụi được thiết kế nhỏ gọn để hoạt
động được ở những nơi con người ít khi tiếp xúc lau dọn như :gầm giường ,ghế ,sofa ,bàn
nhỏ… Đồng thời, robot hút bụi cũng có khả năng phát hiện và tránh vật cản, chống rơi.. để
thích hợp hoạt động trong nhà.Tuy nhiên, phải di chuyển khi hoạt động nên nguồn nuôi của
robot là pin hoặc acquy nên thời gian hoạt động và công suất hút bụi của robot bị bạn chế.

Để khắc phục bất tiện do nguồn nuôi và tăng khả năng tương tác với người dùng, hiện
nay các sản phẩm robot hút bụi được nghiên cứu, chế tạo theo hướng thông minh như: tự
động sạc nguồn điện khi yếu nguồn, chức năng hẹn giờ, lưu bản đồ đường đi...
Hiện nay ,robot thút bụi đã được nhập khẩu và sử dụng ở Việt Nam.Tuy nhiên
,chưa có nghiên cứu trong nước nào thực hiện về đề tài này. Vì vậy, nghiên cứu về robot hút
bụi là cần thiết tạo tiền đề chế tạo ra sản phẩm phù hợp phục vụ nhu cầu trong nước.

Page 1
II. Giới thiệu một số loại Robot hút bụi hiện nay :

II.1 Robot Roomba


Robot Roomba của hãng iRobot là một robot hút bụi thông minh. Không
giống nhƣ các loại máy hút bụi thông thƣờng. Roomba thực hiện công việc hút bụi
một cách hoàn toàn tự động theo chƣơng trình đã đƣợc lập sẵn. Roomba thích hợp
cho các gia đình và văn phòng có nền gỗ, thảm, đá hoa.

Hình 1.1 Robot hút bụi Roomba

Với kích thƣớc nhỏ gọn robot có thể di chuyển hết các phòng ,những nơi mà
máy hút bụi thông thƣờng khó vào đƣợc nhƣ gầm bàn, giƣờng ,sofa,…

Page 2
Hình 1.2 Kết cấu của Robot RoomBa.

Các chức năng nổi bật của Roomba là điều khiển từ xa bằng remote control tự
cảm nhận tránh vật cản, tự động sạc khi hết nguồn pin. Roomba có khả năng di chuyển
linh hoạt nhƣ di chuyển hình xoắn ốc,zigzag,…

Hình 1.3 Quỹ đạo di chuyển của robot RoomBa

Roomba đƣợc trang bị 3 chổi quét, trong đó chổi thứ nhất đặt phía trƣớc có
chức năng quét bụi ở góc tƣờng. Chổi thứ hai và chổi thứ ba có chiều quay ngƣợc
nhau đƣa bụi cũng nhƣ rác vào hộp đựng bụi. Hộp này không những đựng bụi mà lọc
cả không khí.

Page 3
Hình 1.4 Hệ thống chổi của RoomBa

Robot Roomba có khả năng báo hết pin và tự động tìm nơi sạc pin.

Hình 1.5 RoomBa tự động sạc pin

Với giá thành tầm khoảng gần 11 triệu vnd so với thị trƣờng tiêu thụ ở
Việt Nam thì hơi cao.

Page 4
II.2.Robot LG Hombot

Hombot là một robot hút bụi thông minh thế hệ mới do hãng LG nghiên cứu
chế tạo.

Hình 1.6 Robot LG HomBot

Không những vƣợt trội trong thiết kế mà đột phá về công nghệ trang bị cho
robot. Hình dáng của robot là hình vuông đƣợc bo các góc tạo sự mƣợt mà cũng
nhƣ tăng diện tích làm sạch trong các góc tƣờng.

Page 5
Hình 1.7 Hình dáng và bố trí chổi quét góc tường

Hombot đƣợc trang bị hai chổi quét, cảm biến siêu âm, camera,…vì vậy nâng
cao hiệu quả làm việc cho robot.

Hình 1.8 Kết cấu trên và bố trí cảm biến của Robot

Hệ thống cảm nhận vật cản của robot sử dụng cảm biến siêu âm, cảm này giúp
cho robot phát hiện vật cản hiệu quả, đo khoảng cách chuẩn xác. Robot tiếp xúc với
vật cản từ khoảng cách rất nhỏ với chỉ 5mm.

Page 6
Hình 1.9 Hombot tiếp xúc vật cản

Hình 1.10 Bố trí nguồn nuôi và chổi của Robot

Không giống nhƣ các robot hút bụi khác, Hombot hoạt động hiệu quả nhờ các
chế độ di chuyển hợp lý, nhƣ hình xoáy ốc, zigzag, phân ngăn, phân ô. Trang bị
camera nhận biết không gian,từ đó đƣa ra lịnh trình làm việc hiệu quả cao.Ví dụ nhƣ :

Page 7
những nơi mà robot đã đi qua sẽ không lập lại, ƣu tiên làm sạch ở những nơi bẩn hơn.
Nhƣng với giá thành khoảng 16 triệu vnd thì nó càng khó hơn để ngƣời
tiêu dùng tiếp cận đƣợc với nó.

III. Kế thừa và hướng nghiên cứu

Sau khi khảo sát một số loại Robot hút bụi trên thị trƣờng hiện nay, đa số các
loại này đều có chung những ƣu điểm : di chuyển tự động linh hoạt nhƣ di chuyển
hình xoắn ốc,zigzag,…và sử dụng cảm biến siêu âm để tránh vật cản và điều khiển từ
xa bằng remote control.
Các kiểu di chuyển của robot:

Hình 1.11 Robot di chuyển kiểu Zigzag

Page 8
Hình 1.12 Robot di chuyển phân ô

Hình 1.13 Robot di chuyển xoáy ốc

Khi mà công nghệ ngày một phát triển thì chiếc smart phone ngày càng gần
gũi hơn với con ngƣời,nó không chỉ đƣợc sử dụng với mục đích nghe ,gọi hay nhắn
tin mà còn có nhiều tính năng khác, kế thừa những thành quả có sẵn và cùng với
những ý tƣởng của mình, tôi đã quyết định phát triển robot hút bụi dùng bluetooth
điện thoại android để điều khiển thay vì dùng remote control,vì khá phù hợp với trình

Page 9
độ, điều kiện tài chính và gần gũi với sinh viên, thích hợp làm một đề tài nghiên cứu
tốt nghiệp bậc đại học.Mục đích nhằm cải thiện độ ổn định, tốc độ hoạt động , thực
hiện các tác vụ chính xác và ổn định hơn trong việc di chuyển và không phải mất thời
gian vào nghiên cứu phần cứng quá nhiều nhƣng để tập trung vào phần điều khiển.

IV. Điểm mới của đề tài


Robot không chỉ chạy bằng chế độ tự động mà còn có thể đƣợc điều khiển tốc
độ và vị trí một cách chính xác hơn thông qua điện thoại Android .
Trong đề tài “Nghiên cứu, chế tạo robot hút bụi điều khiển qua Bluetooth điện
thoại”. Tôi đã đi sâu vào việc thiết kế và gia công cơ khí cho robot ,phân tích xác
định độ chính xác lắp ghép, vấn đề chuẩn lắp ghép, gia công và độ chính xác của
robot. Nay tôi gia công lại robot dựa trên những điều chỉnh theo thiết kế đã có.

Về phần thiết kế bộ điều khiển, tôi sử dụng công nghệ Bluetooth trên giao diện
điện thoại android để đƣa ra lệnh điều khiển cho module Bluetooth thông qua giao
tiếp không dây Bluetooth, rồi từ đó truyền tín hiệu vào board Arduino Uno để điều
khiển các động cơ Dc servo của từng bánh quay theo ý muốn.

Ƣu điểm của việc sử dụng thiết bị Bluetooth so với các thiết bị khác :

-Có khả năng xuyên qua các vật thể rắn và phi kim.

-Bluetooth sử dụng một chuẩn giao thức nên mọi thiết bị Bluetooth đều có thể
cùng làm việc với nhau.

- Sử dụng ít năng lƣợng phù hợp với các thiết bị di động có dung lƣợng pin ít.

-Sử dụng “frequency hopping” giúp giảm đụng độ tối đa.

-Có khả năng sử dụng 3 kênh thoại và 1 kênh dữ liệu.

-Có khả năng bảo mật từ 8-128 bit .

-Thiết bị nhỏ gọn, số lƣợng hỗ trợ thiết bị Bluetooth ngày càng nhiều và đa
dạng.

-Giá thành thiết bị rẻ, truyền dữ liệu miễn phí.

Page 10
V. Giới hạn đề tài
Hạn chế về tốc độ và khoảng cách truyền nhận của module bluetooth ( < 10m)
với các trang thiết bị khác, dễ bị nhiễu bởi một số thiết bị sử dụng sóng radio khác.

Với đề tài này, ngƣời nghiên cứu thực hiện với các mục đích sau:

-Hoàn thiện một lƣợng kiến thức khá lớn thiết kế chế tạo, điều khiển tự
động,truyền nhận tín hiệu,lập trình trên điện thoại Android.
-Giới thiệu về việc ứng dụng công nghệ mobile robot vào đời sống hàng ngày
khi mà công nghệ ngày càng phát triển.
-Góp phần vào việc nghiên cứu, phát triển, ứng dụng tự động hóa trong giải
trí, dịch vụ và chăm sóc sức khỏe.

VI. Phương pháp nghiên cứu


Tìm hiểu một số đề tài nghiên cứu khoa học có liên quan, nghiên cứu các tài
liệu trên các trang web cũng nhƣ một số sách liên quan đến đề tài đƣợc trình bày ở
phần “Tài Liệu Tham Khảo”.Từ đó có đƣợc các nhận xét khái quát về việc lựa chọn
cấu hình cho robot , phƣơng án thiết lập thuật toán.Từ mô hình robot đó sẽ nghiên
cứu tìm hiểu phƣơng pháp thiết kế mạch điện và lập trình cho robot có thể chuyển
động tốt nhất.
Sau khi hoàn thành đề tài, việc chạy thử nghiệm robot sẽ đƣợc thực hiện để có
đƣợc những nhận xét và đánh giá những gì đã đạt đƣợc và chƣa đạt đƣợc so với mục
tiêu nhiệm vụ đã đặt ra từ lúc ban đầu của đề tài.
Kết thúc chƣơng 1, phần giới thiệu tổng quan về robot. Hƣớng nghiên cứu,
nhiệm vụ của đề tài và phƣơng pháp nghiên cứu đã đƣợc trình bày cụ thể.Trong chƣơng
kế tiếp, tôi sẽ đề cập đến vấn đề lựa chọn phƣơng án thiết kế và các bƣớc thực hiện.

Page 11
CHƢƠNG 2: THIẾT KẾ, TÍNH TOÁN ĐỘNG HỌC

Ở chƣơng 1 đã trình bày về mục tiêu cũng nhƣ yêu cầu của đề tài nên ở
chƣơng này sẽ trình bày thiết kế và cách chế tạo các chi tiết của robot, bài toán di
chuyển đa hƣớng của Robot. Vì đồ án mang tính chất kế thừa thiết kế cơ khí, nên tôi
sẽ đƣa ra những kết quả đã đƣợc thành lập từ tài liệu tham khảo đồ án tốt nghiệp
“Nghiên cứu và chế tạo robot hút bụi tự động”.

I. Thiết kế cấu trúc của robot


I.1 Yêu cầu kĩ thuật của robot:
Robot hút bụi chỉ có nhiệm vụ di chuyển hút bụi và tránh vật cản phía trƣớc.

Phần cơ khí của robot hút bụi cứng vững để mang đƣợc pin, mạch điều khiển,
cảm biến,…
Tốc độ di chuyển không quá nhỏ cũng không lớn quá, không gây khó khăn cho
việc điều khiển.

Cơ cấu cơ khí nhỏ gọn, giúp cho robot di chuyển linh hoạt.

Kiểu dáng, màu sắc đẹp.


I.2 Phƣơng án thiết kế:

Vì sự kế thừa của những sản phẩm có sẵn cũng nhƣ của đồ án đã tham khảo nên
phần thiết kế cơ khí chỉ đƣợc cải tiến thêm vài chi tiết mà quan trọng chủ yếu là phần
điều khiển. Thiết kế phần thân đƣợc tiến hành trên phần mềm vẽ 3D Solidwork.Ta có
hình dạng tổng thể của phần khung cũng nhƣ kích thƣớc tổng quát của khung robot.

Page 12
Hình 2.1 Tổng thể của Robot được thiết kế trên solidwork

Cơ cấu dichuyển của robot hút bụi sử dụng mô hình di động sử dụng hai bánh
dẫn chủ động và một bánh dẫn hƣớng.

Page 13
- Phần khung xe :

Hình 2.2 Bản vẽ thiết kế mặt trên khung

Page 14
Hình 2.3 Bản vẽ thiết kế mặt dưới khung

Page 15
- Phần chổi quét:

Hình 2.3 Bản vẽ thiết kế chổi quét

Robot đƣợc trang bị 2 chổi quét,cùng kích thƣớc đƣợc gắn với 2 motor 5V
nhƣng chiều quay ngƣợc nhau tạo ra lực hút bụi và rác vào hộp.

Page 16
- Hệ thống hút bụi:
Mỗi robot hút bụi trên thị trƣờng đều đƣợc trang bị hệ thống hút bụiriêng.
Một hệ thống hút bụi điển hình bao gồm phần hút, phần lọc. Trang bị động cơ
và cánh quạt tạo lực hút cho hệ thống. Lực hút mạnh hay yếu tùy thuộc vào công suất
của động cơ.
Nguyên lý hút bụi rất đơn giản, bên trong có một động cơ điện có tốc độ vòng
quay rất cao, trên trục chuyển động của động cơ điện có lắp cánh quạt gió, khi động cơ
điện hoạt động với tốc độ cao, cánh quạt gió sẽ quạt cùng với trục chuyển động với tốc
độ cao, nhƣ vậy không khí bên trong sẽ nhanh chóng thổi ra nhƣ một chiếc hộp rỗng.
Để bù lại phần không khí đã mất sẽ có một luồng không khí nhanh chóng đi vào theo sự
chênh lệch về áp suất.

Phần lọc có chức năng lọc sạch không khí đƣa vào, giữ lại bụi bẩn cũng nhƣ các
thành phần không tốt cho sức khỏe của con ngƣời có trong không khí nhƣ vi khuẩn
chẳng hạn. Tùy thuộc vào nhƣ cầu lọc mà sử dụng nhiều vật liệu lọc khác nhau nhƣ
giấy lọc, lƣới lọc, vải lọc,…

Hình 2.4 Nguyên lý hút bụi

Dựa trên nguyên lý chung của máy hút bụi, hệ thống hút bụi của robot đƣợc
thiết kế bao gồm : thân, động cơ điện và cánh quạt.

Page 17
Hình 2.5 Bản vẽ hộp đựng bụi

Page 18
Hình 2.7 Bản vẽ hộp đựng rác

Page 19
Hình 2.8 Bản vẽ quạt hút

Page 20
Sau khi tính toán và thiết kế ta ghép chúng lại và được:

Hình 2.9 Cấu trúc bên trong của robot trên Solidwork

Page 21
- Bánh xe tự lựa:

Bánh tự lựa là loại bánh bị động,đƣợc phát động bởi hai bánh chủ động.Bánh
này có chứ năng dẫn hƣớng cho robot.

Hiện nay có rất nhiều bánh tự lựa trên thị trƣờng với nhiều kích thƣớc,kiểu
dáng, mẫu mã khác nhau nhƣ : omi, mắt trâu,…
Chế tạo bánh tự lựa phải đúng yêu cầu kỹ thuật nhƣ:
 Đảm bảo độ cứng vững.
 Bánh xe di chuyển linh hoạt.
 Tránh hiện tƣợng bánh xe bị kẹt cứng.
 Tránh hiện tƣợng rung lắc của bánh xe khi dichuyển.
Bánh tự lựa đảm bảo 2 bậc tự do là : xoay theo trục z và x

Hình 2.10 Bánh tự lựa trên thị trường

Page 22
Hình 2.11 Bánh tự lựa được chọn

II.Bài toán quỹ đạo di chuyển của robot

Để điều khiển robot đi theo một quỹ đạo nào đó, ví dụ nhƣ di chuyển theo một
đƣờng cong nào đó thực chất là ta thay đổi tỉ lệ tốc độ 2 bánh xe của robot.

Gọi V1 là vận tốc bánh xe trái

V2 là vận tốc bánh xe phải


K = V1 / V2

 Với K = 1 : robot di chuyển thẳng (vì vận tốc 2 bánh bằng nhau).
 Với K = 0 : robot quay tại chỗ với tâm là bánh trái (vì lúc này vận
tốc bánh trái V1 = 0).
 Với K = ∞ : robot quay tại chỗ với tâm là bánh phải(vì lúc này
vận tốc bánh phải V2 = 0).
 Với 0 < R < 1: robot đi theo hình tròn ngƣợc chiều kim đồng hồ(vì
lúc này vận tốc V1 < V2).

 Với R > 1: robot đi theo hình tròn thuận chiều kim đồng hồ (vì lúc
này vận tốc V1 > V2 ).
 Với R = -1, hai bánh xe quay ngƣợc chiều và đồng tốc, robot quay
tròn tại chỗ, tâm là điểm giữa hai bánh xe.

Page 23
III.Giải thuật điều khiển :

Từ bài toán di chuyển của robot ta viết đƣợc sơ đồ điều khiển:

Kết nối Chọn chế độ Hẹn giờ START


bluetooth & kiểu di chuyển làm việc

Kiểu Zigzag
START

Quay phải Chạy thẳng CB

Đ
Chạy thẳng
Quay phải Quay trái
S
Đ
Quay trái
CB Lùi lại

1
Hình 2.12 Sơ đồ thuật toán điều khiển robot

Page 24
CHƢƠNG 3 : THIẾT KẾ MẠCH ĐIỆN VÀ BỘ ĐIỀU KHIỂN.

I.Các thiết bị và linh kiện của Robot :


I.1 Bộ điều khiển trung tâm:

I.1.1 Phần cứng Arduino :


-Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tƣơng tác
với nhau hoặc với môi trƣờng đuợc thuận lợi hơn. Phần cứng bao gồm một board
mạch nguồn mở đƣợc thiết kế trên nền tảng vi xử lý AVR Atmel 8 bit, hoặc ARM
Atmel 32-bit. Những Model hiện tại đƣợc trang bị gồm 1 cổng giao tiếp USB,6 chân
đầu vào analog, 14 chân I/O kỹ thuật số tƣơng thích với nhiều board mở rộng khác.

Một khía cạnh quan trọng của Arduino là các kết nối tiêu chuẩn của nó, cho
phép ngƣời dùng kết nối với CPU của board với các module thêm vào có thể dễ dàng
chuyển đổi,đƣợc gọi là shield. Vài shield truyền thông với board Arduino trực tiếp
thông qua các chân khác nhau, nhƣng nhiều shield đƣợc định địa chỉ thông qua serial
bus I2C- nhiều shield có thể đƣợc xếp chồng và sử dụng dƣới dạng song song.
Arduino chính thức thƣờng sử dụng các dòng chip megaAVR, đặc biệt là ATmega8,
ATmega168, ATmega328, ATmega1280, và ATmega2560.

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

Page 25
-Các thành phần chức năng:

Hình 3.1 Mạch Arduino


 USB Connector:
Arduino sử dụng cáp USB để giao tiếp với máy tính. Thông qua cáp USB
chúng ta có thể Upload chƣơng trình cho Arduino hoạt động, ngoài ra USB còn là
nguồn cho Arduino.

 PowerJack:
Khi không sử dụng USB làm nguồn thì chúng ta có thể sử dụng nguồn ngoài
thông qua jack cắm 2.1mm (cực dƣơng ở giữa) hoặc có thể sử dụng 2 chân Vin và
GND để cấp nguồn cho Arduino.

Bo mạch hoạt động với nguồn ngoài ở điện áp từ 5 – 12 volt. Chúng ta có thể
cấp một áp lớn hơn tuy nhiên chân 5V sẽ có mức điện áp lớn hơn 5 volt. Và nếu sử
dụng nguồn lớn hơn 12 volt thì sẽ có hiện tƣợng nóng và làm hỏng board mạch.
Khuyết cáo các nên dùng nguồn ổn định từ 5 đến dƣới 12 volt.

 Power Supply

Page 26
Chân 5V và chân 3.3V (Output voltage): các chân này dùng để lấy nguồn ra từ
nguồn mà chúng ta đã cung cấp cho Arduino. Lƣu ý: không đƣợc cấp nguồn vào các
chân này vì sẽ làm hỏng Arduino.

GND: chân mass.


 Chip ATmega328:
Chip ATmega328 có 32 KB bộ nhớ flash trong đó 1KB sử dụng cho bootloader
 Digital I/O pins
Arduino UNO có 14 chân digital với chức năng input và output sử dụng các
hàm pinMode(), digitalWrite() và digitalRead() để điều khiển các chân.

Cũng trên 14 chân digital này chúng ta còn một số chân chức năng đó là: Serial:
0 và 1. Dùng để truyền (Tx) và nhận (Rx) dữ liệu nối tiếp TTL. Chúng ta có thể sử
dụng nó để giao tiếp với cổng COM của một số thiết bị hoặc các linh kiện có chuẩn
giao tiếp nối tiếp.

PWM (pulse width modulation): các chân 2 đến 13 trên bo mạch. Các chân
PWM giúp chúng ta có thể sử dụng nó để điều khiển tốc độ động cơ, độ sáng của đèn…

 Reset button : dùng để reset Arduino.

 Thông số kĩ thuật :

 Vi xử lý:Atmega328
 Điện áp hoạt động:5V
 Điện áp đầu vào:7-12V
 Điện áp đầu vào (Giới hạn):6-20V
 Chân vào/ra (I/O) số: 14 ( 6 chân có thể cho đầu ra PWM)
 Chân vào tƣơng tự: 6
 Dòng điện trong mỗi chân I/O:40mA
 Dòng điện chân nguồn 3.3V:50mA
 Bộ nhớ trong: 32 KB(ATmega328)
 SRAM: 2 KB(ATmega328)
 EEPROM: 1 KB(ATmega328)
 Xung nhịp:16MHz

Page 27
I.1.2 Phần mềm Arduino IDE:
Môi trƣờng phát triển tích hợp Arduino IDE là một ứng dụng đa nền tảng đƣợc
viết bằng Java, và đƣợc dẫn xuất từ IDE cho ngôn ngữ lập trình xử lý và các dự án lắp
ráp. Nó bao gồm một trình soạn thảo mã với các tính năng nhƣ làm nổi bật cú pháp,
khớp dấu ngặc khối chƣơng trình, thụt đầu dòng tự động và cũng có khả năng biên dịch
và tải lên các chƣơng trình vào board mạch với một nhấp chuột duy nhất. Một chƣơng
trình hoặc mã viết cho Arduino đƣợc gọi là "sketch".

Chƣơng trình Arduino đƣợc viết bằng C hoặc C++.Arduino IDE đi kèm với một
thƣ viện phần mềm đƣợc gọi là "Wiring" từ dự án lắp ráp ban đầu, cho hoạt động đầu
vào/đầu ra phổ biến trở nên dễ dàng hơn nhiều. Ngƣời sử dụng chỉ cần định nghĩa hai
hàm để thực hiện một chƣơng trình điều hành theo chu kỳ.

Khi các chúng ta bật điện bảng mạch Arduino, reset hay nạp chƣơng trình mới,
hàm setup() sẽ đƣợc gọi đến đầu tiên. Sau khi xử lý xong hàm setup(), Arduino sẽ nhảy
đến hàm loop() và lặp vô hạn hàm này cho đến khi tắt điện board mạch Arduino. Chu
trình đó có thể mô tả trong hình dƣới đây:

Hàm Set up Hàm Loop

Ấn nút Reset

Hình 3.2 Chu trình chạy phần mềm IDE

Arduino IDE sử dụng GNU toolchain và AVR libc để biên dịch chƣơng trình và
sử dụng avrdude để tải lên các chƣơng trình vào board mạch chủ. Do nền tảng Arduino
sử dụng vi điều khiển Atmel ,môi trƣờng phát triển của Atmel, AVR Studio hoặc Atmel

Page 28
Studio mới hơn, cũng có thể đƣợc sử dụng để phát triển phần mềm cho các Arduino.

Arduino IDE là nơi để soạn thảo code, kiểm tra lỗi và upload code cho Arduino.

Hình 3.3 Giao diện Arduino IDE

Arduino Toolbar có một số button và chức năng của chúng nhƣ sau:

1 2 3 4

Hình 3.4 Arduino Toolbar


 Verify: kiểm tra code có lỗi hay không. (1) Upload: nạp code đang soạn
thảo vào Arduino.(2)

 New, Open, Save: Tạo mới, mở và lƣu sketch. (3)

 Serial Monitor: Đây là màn hình hiển thị dữ liệu từ Arduino gửi lên
máy tính.(4)

Page 29
Hình 3.5 IDE menu

Hình 3.6 File menu

Hình 3.7 Sketchmenu

Hình 3.8 Tool menu

Page 30
Hình 3.9 Hiển thị Board va Serial Port

Hình 3.10 Board Arduino sử dụng

Page 31
I.2 Mạch công suất (mạch cầu H L298) điều khiển động cơ :

Hình 3.11 Mạch cầu H

IC L298

IC L298 là một IC tích hợp nguyên khối gồm 2 mạch cầu H bên trong. Với
điện áp làm tăng công suất nhỏ nhƣ động cơ DC loại vừa…
Sơ đồ nguyên lý:

Hình 3.12 Sơ đồ nguyên lý mạch cầu H

Chức năng các chân của L298:


- 4 chân INPUT: IN1, IN2, IN3, IN4 đƣợc nối lần lƣợt với các chân 5, 7, 10,
12 của L298. Đây là các chân nhận tín hiệu điều khiển.

Page 32
- 4 chân OUTUT: OUT1, OUT2, OUT3, OUT4 (tƣơng ứng với các chân
INPUT) đƣợc nối với các chân 2, 3,13,14 của L298. Các chân này sẽ đƣợc nối với động
cơ.
- Hai chân ENA và ENB dùng để điều khiển mạch cầu H trong L298. Nếu ở
mức logic “1” (nối với nguồn 5V) cho phép mạch cầu H hoạt động, nếu ở mức logic
“0” thì mạch cầu H không hoạt động
Với bài toán của mình ở trên, các bạn chỉ cần lƣu ý đến cách điều khiển chiều
quay với L298:
- Khi ENA = 0: Động cơ không quay với mọi đầu vào.
- Khi ENA = 1:
INT1 = 1; INT2 = 0: Động cơ quay thuận.
INT1 = 0; INT2 = 1: Động cơ quay nghịch.
INT1 = INT2: Động cơ dùng ngay tức thì.
Với ENB cũng tƣơng tự với INT3, INT4
I.3 Động cơ và driver dùng cho 2 bánh xe :
- Bao gồm 2 Động cơ DC Servo Mitsumi giảm tốc encoder 334x4 xung, số hiệu
JGA 25-371 ( 6VDC-24VDC/1.25W).
- Làm việc tốt ở : 12VDC.

Hình 3.18: Động cơ DC Servo JGA25-371

Page 33
Hình 3.19 : Bản vẽ chi tiết động cơ DC Servo JGA25-371
Hƣớng dẫn bộ Encoder:

- Bộ encoder đảm bảo tốc độ đo đƣợc lƣờng độ chính xác, đầu ra là 334
xung khi động cơ quay một vòng tròn. Chip có tích hợp kích hoạt pulse , đầu ra là
xung vuông.

-Có 6 dây gồm : 2 dây cho động cơ, 2 dây đọc encoder,2 dây nguồn encoder.

Page 34
Bảng 3.20 : Chế độ làm việc của động cơ ở 12VDC

I.4 Động cơ dùng cho 2 chổi quét và hệ thống hút bụi :

Hình 3.21 Động cơ DC gear motor 5V

Page 35
Thông số kĩ thuật :
 Mã số : PG22180-E
 Mô-men xoắn: 0.1-12kgf.cm
 Tốc độ : 2-3000rpm
 Công suất: 1,5 – 2,5 W
 Điện áp (V): 3V, 6V, 12V, 24V
 Chiều dài hộp số: 13,9 – 28,3 mm
 Tỷ lệ Hộp số: 1 : 3,5 - 1 : 2036
 Đƣờng kính trục : 4 mm
 Trọng lƣợng tịnh: 100 – 130 g
I.5 Module Bluetooth HC06 :

Hình 3.22 Module bluetooth HC06

Bluetooth module cho phép vi điều khiển kết nối với các thiết bị ngoại vi:
smartphone, laptop, usb bluetooth... thông qua giao tiếp Serial gửi và nhận tín hiệu 2
chiều.
Module bluetooth đƣợc tích hợp trên board cho phép bạn sử dụng nguồn từ
3.5V đến 6V cung cấp cho board mà không cần lo lắng về chênh lệch điện áp 3V - 5V
gây hỏng board.

Page 36
Bluetooth module gồm 6 chân theo thứ tự: KEY, VCC, GND, TX, RX, STATE.
Đây là module bluetooth SLAVE nghĩa là bạn không thể chủ động kết nối bằng
vi điều khiển, mà cần sử dụng smartphone, laptop, bluetooth usb... để dò tín hiệu và kết
nối (pair) từ smartphone, laptop, bluetooth usb... Sau khi pair thành công, bạn có thể
gửi và nhận tín hiệu từ vi điều khiển đến các thiết bị này.
Hƣớng dẫn nối dây

Bluetooth module Arduino

VCC 5V

GND GND

TXD RX

RXD TX

Lưu ý: không được gắn lộn dây Vcc và Gnd vì sẽ gây hỏng module bluetooth
ngay lập tức.
Tần số làm việc: 2.4GHz
Kích thƣớc module: 44mm x 16mm x 7mm. Có sẵn 1 dây nối dài 4 bus 18cm.
Module này gồm 4 chân GND, VCC, TX, RX Khi kết nối chúng ta chỉ cần nối
chân TX với chân 0 và chân RX nối với chân 1 trên Arduino sau đó chúng ta có thể lập
trình gửi và nhận dữ liệu nhƣ 1 cổng Serial thông thƣờng. Module này có 3 loại Master,
Slave và loại chạy đƣợc cả 2 chế độ Master và Slave, khi kết nối với điện thoại bạn
điền mật khẩu mặc định là:1234.

Page 37
Hình 3.23 Mô hình Arduino kết nối với module bluetooth HC 06
I.6 Mạch báo pin

Hình 3.24 sơ đồ nguyên lý mạch báo pin yếu


Thông qua Ic so sánh LM393 , khi nguồn sụt áp thì sẽ báo hiệu bằng đèn led.

Chọn mạch có sẵn trên thị trƣờng :

Page 38
Hình 3.25 Mạch báo pin yếu

Thông số kĩ thuật:
Input: 2~8S.
Battery type: Lipo/LiFe/Li-ion
Cell Voltage Display Range: 0.5v~4.5v
Total Voltage Display Range: 3.7~36v
Alarm set values: Off or 2.7~3.8v => nhấn nút trên đỉnh mạch để cài điện
áp.

I.7 Cảm biến Siêu âm SRF05

Hình 3.26 Cảm biến siêu âm SRF05


Thông số kỹ thuật: - 5 chân:
- Điện áp hoạt động : 5VDC + Vcc
- Dòng supply: <2mA + Trige
- Khoảng cách phát hiện: 2 - 450cm + Echo
- độ chính xác cao: 0.3cm + Out
+ GND

Page 39
Cảm biến SRF05 là một loại cảm biến khoảng cách dựa trên nguyên lý thu
phát siêu âm.
Cảm biến gồm một bộ phát và một bộ thu sóng siêu âm. Sóng siêu âm từ đầu
phát truyền đi trong không khí, gặp vật cản (vật cần đo khoảng cách tới) sẽ phản xạ
ngƣợc trở lại và đƣợc đầu thu ghi lại. Vận tốc truyền âm thanh trong không khí là một
giá trị xác định trƣớc, ít thay đổi. Do đó nếu xác định đƣợc khoảng thời gian từ lúc phát
sóng siêu âm tới lúc nó phản xạ về đầu thu sẽ quy đổi đƣợc khoảng cách từ cảm biến
tới vật thể. Cảm biến SRF05 cho khoảng cách đo tối đa lên tới 3-4 mét.
SRF05 có thể thiết lập cách hoạt động thông qua các chân điều khiển MODE.
Nối hoặc không nối chân MODE xuống GND cho phép cảm biến đƣợc điều khiển
thông qua giao tiếp dùng 1 chân hay 2 chân IO .
Cách 1 – Tách riêng chân TRIGGER và ECHO (tƣơng thích với cảm biến
SRF04)
Modun cảm biến SRF05 có hai chân TRIGGER và ECHO riêng biệt. Khi chân
MODE để trống (chân MODE có điện trở kéo lên VCC, khi để trống nó sẽ nhận mức
điện áp VCC) SRF05 sẽ sử dụng cả 2 chân chức năng TRIGGER và ECHO cho việc
điều khiển hoạt động của cảm biến.
Để điều khiển SRF05 ở MODE1 cần cấp cho chân TRIGGER một xung điều
khiển với độ rộng tối thiểu 10uS. Sau đó một khoảng thời gian, đầu phát sóng siêu âm
sẽ phát ra sóng siêu âm, vi xử lý tích hợp trên modun sẽ tự xác định thời điểm phát
sóng siêu âm và thu sóng siêu âm. Vi xử lý tích hợp này sẽ đƣa kết quả thu đƣợc ra
chân ECHO. Độ rộng xung vuông tại chân ECHO tỉ lệ với khoảng cách từ cảm biến tới
vật thể.
Cách 2: Sử dụng một chân cho cả TRIGGER và ECHO
Ở chế độ này, một chân của vi xử lý sẽ điều khiển quá trình phát xung của cảm
biến siêu âm và việc đọc tín hiệu trả về. Yêu cầu lúc đó chân MODE cần đƣợc nối đất
(GND). Đầu tiên xuất một xung với độ rộng tối thiểu 10uS vào chân TRIGGER-ECHO
(chân số 3) của cảm biến. Sau đó vi xử lý tích hợp trên cảm biến sẽ phát ra tín hiệu điều
khiển đầu phát siêu âm. Sau 700uS kể từ lúc kết thúc tín hiệu điều khiển, từ chân
TRIGGER-ECHO có thể đọc ra một xung mà độ rộng tỉ lệ với khoảng cách từ cảm biến

Page 40
tới vật thể.

I.8 Nguồn cấp cho cả con Robot:

Hình 3.28 : Pin Lipo và bộ sạc

Minimum Capacity: 2650 mAh


Configuration: 3S1P / 11.1v / 3Cell
Constant Discharge:20C
Peak Discharge (10 sec): 30C
Pack Weight:225g
Pack Size: 137 x 43 x 17mm
Charge Plug: JST-XH
Discharge Plug: FemaleXT60

Page 41
II. Sơ đồ mạch điện

Hình 3.29 Sơ đồ mạch điện

Page 42
Mạch điện bao gồm :

 1 Board Arduino Uno R3.


 2 Board công suất L298.
 3 Cảm biến siêu âm SRF05.
 2 Động cơ DC servo.
 4 Động cơ Gear Box Motor 5V.
 1 Module Bluetooth HC06.
 Nguồn cấp cho toàn mạch điện.
Nguyên lí hoạt động: DC1 DC2

Điện Module Arduino L298


thoại Bluetooth Uno DC3
Android HC06 R3 L298
DC4
Cảm
DC5 DC6
Biến
siêu
Âm

Hình 3.30 Sơ đồ nguyên lí mạch điều khiển

Arduino uno nhận tín hiệu từ module bluetooth thông qua giao tiếp chân TX,RX
với TXD,RXD của module bluetooth và tín hiệu từ 3 cảm biến siêu âm để điều khiển 6
động cơ thông qua 2 mạch cầu H L298.
Mục đích điều khiển chính cho động cơ đó chính là điều khiển xung PWM và
thuật toán PID :

 Phƣơng pháp điều xung PWM (Pulse Width Modulation) là phƣơng pháp điều
chỉnh điện áp ra tải, hay nói cách khác, là phƣơng pháp điều chế dựa trên sự thay
đổi độ rộng của chuỗi xung vuông, dẫn đến sự thay đổi điện áp ra.

Page 43
Các PWM khi biến đổi thì có cùng 1 tần số và khác nhau về độ rộng của sƣờn
dƣơng hay sƣờn âm.

Hình 3.31 Đồ thị điều chế xung PWM


-Nguyên lý hoạt động của PWM
Đây là phƣơng pháp đƣợc thực hiện theo nguyên tắc đóng ngắt nguồn của tải một
cách có chu kì theo luật điều chỉnh thời gian đóng cắt. Phần tử thực hiện nhiện vụ đó trong
mạch các van bán dẫn.
-Ứng dụng của PWM trong điều khiển:

PWM đƣợc ứng dụng nhiều trong điều khiển. Điển hình nhất mà chúng ta thƣờng
hay gặp là điều khiển động cơ và các bộ xung áp, điều áp... Sử dụng PWM điều khiển độ
nhanh chậm của động cơ hay cao hơn nữa, nó còn đƣợc dùng để điều khiển sự ổn định tốc
độ động cơ.

Page 44
Ngoài lĩnh vực điều khiển hay ổn định tải thì PWM còn tham gia và điều chế các
mạch nguồn nhƣ : boot, buck, nghịch lƣu 1 pha và 3 pha...

PWM còn gặp nhiều trong thực tế ở các mạch điện điều khiển. Điều đặc biệt là
PWM chuyên dùng để điều khiển các phần tử điện tử công suất có đƣờng đặc tính là tuyến
tính khi có sẵn 1 nguồn 1 chiều cố định .Nhƣ vậy PWM đƣợc ứng dụng rất nhiều trong
các thiết bị điện- điện tử. PWM cũng chính là nhân tố mà các đội Robocon sử dụng để
điều khiển động cơ hay ổn định tốc độ động cơ.

-Các cách để tạo ra đƣợc PWM để điều khiển

Để tạo đƣợc ra PWM thì hiện nay có hai cách thông dụng : Bằng phần cứng và
bằng phần mềm.

Trong phần cứng có thể tạo bằng phƣơng pháp so sánh hay là từ trực tiếp từ các
IC dao động tạo xung vuông nhƣ : 555, LM556...

Trong phần mền đƣợc tạo bằng các chip có thể lập trình đƣợc. Tạo bằng phần
mền thì độ chính xác cao hơn là tạo bằng phần cứng. Nên ngƣời ta hay sử dụng phần mền
để tạo PWM.

-Điều khiển động cơ : điều mà chúng ta dễ nhận thấy rằng là PWM rất hay đƣợc
sử dụng trong động cơ để điều khiển động cơ hoạt động nhanh , chậm, thuận ,nghịch và
ổn định tốc độ cho nó. Cái này đƣợc ứng dụng nhiều trong điều khiển động cơ 1 chiều.

Page 45
Hình 3.32 Sơ đồ nguyên lí PWM điều khiển động cơ DC
Đây là mạch đơn giản điều khiển động cơ. Nếu muốn điều khiển động cơ quay
thuận quay ngƣợc thì phải dùng đến cầu H.

 Kỹ thuật điều khiển PID tuy không phải là một kỹ thuật điều khiển mới, nhƣng
lại là kỹ thuật phổ biến nhất chuyên dùng để điều khiển các hệ thống trong công
nghiệp nhƣ hệ thống lò nhiệt, điều khiển tốc độ, vị trí, moment động cơ AC và
DC. Một trong những lý do bộ điều khiển PID trở nên phổ biến nhƣ vậy là vì
tính đơn giản, dễ triển khai trên những vi xử lý nhỏ với hiệu năng tính toán hạn
chế.
Cấu trúc chung của hệ thống vòng kín nhƣ sau:

Hình 3.33: Cấu trúc chung của hệ thống vòng kín Trong hình vẽ trên

- Plant: là hệ thống cần đƣợc điều khiển

Page 46
- Controller: Cung cấp tín hiệu điều khiển cho Plant, đƣợc thiết kế để điều
khiển toàn bộ đáp ứng của hệ thống.
Hàm truyền của bộ điều khiển PID có dạng nhƣ sau:

Trong đó:
- KP: Độ lợi khâu tỷ lệ
- KI: Độ lợi khâu tích phân
- KD: Độ lợi khâu vi phân

Biến số (e) đại diện cho sai số giữa giá trị mong muốn (R) và giá trị ngõ ra (Y).
Sai số này (e) sẽ đƣợc đƣa đến bộ điều khiển PID, và bộ điều khiển này sẽ tính toán cả vi
phân và tích phân của tín hiệu sai số này. Tín hiệu (u) sẽ có giá trị nhƣ sau:

Tín hiệu (u) sẽ đƣợc đƣa đến đối tƣợng điều khiển và ta sẽ thu đƣợc một tín hiệu
(Y) mới. Tín hiệu này sẽ lại đƣợc đƣa đến cảm biến để tính toán ra sai số mới (e). Bộ điều
khiển lại tính toán các giá trị vi phân, tích phân của sai số này. Quá trình cứ thế lặp đi lặp
lại.

Đặc tính của bộ điều khiển P, I và D: Bộ điều khiển tỷ lệ (KP) có tác dụng làm
giảm thời gian lên và sẽ làm giảm, nhƣng không triệt tiêu, sai số ở trạng thái xác lập
(steady- stateerror).
Bộ điều khiển tích phân (KI) sẽ triệt tiêu sai số ở trạng thái xác lập, nhƣng lại có
thể làm giảm chất lƣợng của đáp ứng quá độ.
Bộ điều khiển vi phân (KD) sẽ làm tăng độ ổn định của hệ thống, giảm độ vọt lố
và tăng chất lƣợng đáp ứng quá độ.
Tác động của mỗi bộ điều khiển KP, KI, KD đƣợc trình bày trong bảng sau:

Page 47
Thời gian lên Thời gian quá Sai số xác lập
Độ vọt lố
độ

KP Giảm Tăng Tăng


Thay đổi nhỏ

KI Giảm Tăng Tăng Triệt tiêu

Thay đổi nhỏ Thay đổi nhỏ


KD Giảm Giảm

Bảng 3.34 Tác động của mỗi bộ Kp,Ki,Kd.

Cần lƣu ý rằng trong bộ điều khiển PID, sự các tác động này có thể không chính
xác, vì KP, KI và KD phụ thuộc lẫn nhau. Thực ra, thay đổi một trong các thông số này
có thể làm thay đổi tác động của hai thông số còn lại.
Chỉnh định bộ điều khiển PID bằng phƣơng pháp Zeigler – Nichols: Ban đầu,
đặt tất cả các độ lợi KP, KI, KD bằng 0. Sau đó tăng KP lên cho đến khi đạt đƣợc giá
trị độ lợi Ku, là độ lợi mà ở đó ngõ ra của hệ thống bắt đầu dao động với biên độ không
đổi. Ku và chu kỳ dao động Tu đƣợc dùng để tính toán các độ lợi KP, KI, KD dựa vào
công thức sau.

Bộ điều
KP KI KD
khiển

P Ku/2 - -

PI Ku/2.2 Tu/1.2 -

PID Ku/1.7 Tu/2 Tu/8

Bảng 4.4 Công thức tính toán độ lợi KP, KI, KD

Page 48
CHƢƠNG 4: LẬP TRÌNH ĐIỀU KHIỂN CHO ROBOT BẰNG
PHẦN MỀM APP MIT INVENTOR

App Inventor ra mắt vào tháng 7-2010, với chƣơng trình này, bạn không cần phải
có bất cứ kiến thức nào về lập trình cũng có thể tạo các ra ứng dụng cho Android từ cơ
bản đến nâng cao bằng những thao tác kéo-thả.

Hình 4.1 Phần mềm MIT app inventor

Dựa trên ý tƣởng “những gì bạn thấy là những gì bạn có” (WYSIWYG), App
Inventor giúp dễ dàng tiếp cận và xây dựng ứng dụng Android. Với giao diện trực quan,
dễ hiểu, cho phép truy cập đến các chức năng của điện thoại kể cả GPS, đây là công cụ
giúp cho bộ sƣu tập ứng dụng của Android ngày càng dồi dào và phong phú.

Tháng 8-2010, một lập trình viên mang tên Clark Wimberly đã tạo ra nền tảng
Twitter client bằng App Inventor đã chứng minh khả năng và sức mạnh của chƣơng trình

Page 49
này.
Đáng tiếc, chỉ 1 năm sau khi ra đời, App Inventor đã bị Google vùi dập, việc truy
cập và sử dụng mã nguồn mở một cách thoải mái khiến Google không đồng tình vì nó
không nằm trong chiến lƣợc của ông lớn này. Sau đó, Google chi tiền để hỗ trợ học viện
Công nghệ Massachusetts (MIT) thực hiện dự án, với mục đích đào tạo các lập trình viên
một cách bài bản, và tiếp đó mới phổ biến App Inventor.
Ngày nay, MIT đã hoàn thiện App Inventor và nó đƣợc chia sẻ ngay trên tài khoản
Google. Các lập trình viên mới bắt đầu hoặc bất kỳ ai muốn tạo ra ứng dụng Android chỉ
cần vào địa chỉ web của MIT, nhập thông tin tài khoản Google, và từ những mảnh ghép
nhỏ, xây dựng những ý tƣởng của mình.
Với chƣơng trình này, bạn không cần phải có bất cứ kiến thức nào về lập trình
cũng có thể tạo các ra phần mềm cho Android từ cơ bản đến nâng cao. Với giao diện trực
quan, dễ hiểu, cho phép truy cập đến các chức năng của điện thoại kể cả GPS, đây sẽ là
công cụ giúp cho bộ sƣu tập ứng dụng của Android ngày càng dồi dào và phong phú.
Điểm nổi bật của App Inventor là nó cho phép bạn vừa thiết kế ứng dụng vừa xài
thử ứng dụng đó trực tiếp trên chiếc điện thoại Android đang đƣợc kết nối với máy tính.
Tất cả các công đoạn viết phần mềm đều thông qua giao diện đồ họa trực quan theo kiểu
WYSIWYG (What you see is what you get) mà không cần bạn phải đụng tới một đoạn mã
nào. Các chỉ dẫn trên màn hình đủ dễ hiểu để bạn có thể tiến hành viết phần mềm ngay mà
không nhất thiết phải xem qua các bản hƣớng dẫn sử dụng.
Tuy có cách dùng đơn giản nhƣng App Inventor khá "hào phóng" khi cho phép
bạn truy xuất đến các chức năng thƣờng dùng của điện thoại nhƣ chức năng tự động nhắn
tin, xác định vị trí hiện tại qua GPS và kể cả giao tiếp với các ứng dụng trên nền web nhƣ
Amazon, Facebook hay Twitter.

Page 50
Hình 4.2 Giao diện App Inventor

Tƣơng đối giống với visual studio , App Inventor chỉ khác ở chỗ mã code ngƣời
dùng không phải nhập bằng tay mà nó đã có sẵn khi thiết kế giao diện,ngƣời dùng chỉ
việc ghép lại với nhau.

Page 51
Hình 4.3 Giao diện điều khiển robot được thiết kế (Designer) trên MIT
Inventor

Yêu cầu đƣợc đặt ra là robot phải đƣợc điều khiển bằng 2 chế độ AUTO &
MANUAL.
Chế độ MANUAL là chế độ mà ngƣời dùng có thể điều khiển nó đến vị trí cần
đến.
Chế độ AUTO là chế độ mà bất kỳ con robot hút bụi nào cũng có nhƣng yêu
cầu ở đây là ta phải cài đặt thời gian và tốc độ làm việc .Khi các thông số yêu cầu đƣợc
cài đặt thì nó mới có thể bắt đầu làm việc.

Page 52
Hình 4.4 Giao diện lập trình (Blocks) sau khi đã Designer

Nhƣ đã nói ở trên, sau khi đƣợc designer thì ngƣời dùng có thể lấy các lệnh có
sẵn ra để ghép lại với nhau giúp cho việc lập trình đƣợc dễ dàng hơn.
Hình 4.4 đã mô tả đoạn code của chƣơng trình điều khiển robot. Để xem chi tiết
hơn thì xem phần phụ lục. Các lệnh này sẽ đƣợc thực hiện ghi bluetooth điện thoại của
bạn kết nối với module bluetooth .

Page 53
CHƢƠNG 5 :THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

Hình 5.1 Mô hình thực tế của Robot

Kích thƣớc của robot : 250 x 250 x 50 (mm).


Khối lƣợng : 1,4 (kg).
Thời gian hoạt động : (30 phút).
Thể tích hộp chứa bụi : 0,9 (lít).

Page 54
Qua nghiên cứu,tính toán thiết kế robot đã đƣợc chế tạo ra so với yêu cầu đặt ta
là 80%.Vì thời gian nghiên cứu có hạn nên chƣa làm đƣợc tốt nhất có thể, cần nghiên
cứu sâu hơn từng chi tiết nhỏ thì nó có thể đạt đƣợc mức cao hơn.
Chi phí để tạo ra một con robot hút bụi:

Linh kiện & thiết bị Số lƣợng Giá thị trƣờng


Mạch Arduino Uno R3 1 180.000 vnd
Mạch công suất L298 2 260.000 vnd
Cảm biến siêu âm SRF05 3 150.000 vnd
Module bluetooth HC06 1 130.000 vnd
Động cơ DC Servo 2 550.000 vnd
Mitsumi giảm tốc
Gear box motor 4 600.000 vnd
Pin Lipo và bộ sạc 1 600.000 vnd
Gia công khung,chổi quét 350.000 vnd
và hệ thống hút bụi bằng
mica
Bánh mắt trâu dẫn hƣớng 1 50.000 vnd
Bánh xe cho chuyển động 2 50.000 vnd
Dây điện và một vài thiết 180.000 vnd
bị khác.

Tổng cộng 3.100.000 vnd

Với chi phí thiết kế nhƣ trên thì giá bán sản phẩm này sẽ rẻ hơn rất nhiều so với
các hãng khác, hẳn khả năng lọt vào tầm nhắm của các bà nội trợ ở Việt Nam sẽ cao
hơn .Việc sử dụng bluetooth điện thoại sẽ tiện hơn rất nhiều cho họ khi mà những
remote cổ điển sử dụng hồng ngoại giao tiếp với khả năng kém nếu bị vật cản.

Page 55
Hình 5.6 Giao diện trên Android ở chế độ AUTO

Khi Robot làm việc ở chế độ AUTO ta phải chọn tốc độ di chuyển và thời gian làm việc
(tính theo phút ) của Robot.Trên màn hình sẽ có thêm 2 nút là Start để bắt đầu và Stop để tạm
ngƣng làm việc.Khi chế độ AUTO hoạt động thì chế độ MANUAL sẽ đƣợc ẩn đi và ngƣợc
lại.

Page 56
Hình 5.7 Giao diện trên Android ở chế độ MANUAL

Chế độ MANUAL là chế độ mà ngƣời dùng có thể điều khiển nó đến vị trí cần làm một
cách chính xác.

Page 57
Những yêu cầu đã thực hiện đƣợc khi đề ra:

 Thiết kế và chế tạo đƣợc khung xe ,gá lắp động cơ cùng với board mạch điện tử
hợp lý.

 Chọn đƣợc thiết bị và linh kiện phù hợp.

 Lập trình điều khiển động cơ trên Arduino IDE.

 Thiết kế giao diện và lập trình trên App MIT Inventor.

 Tạo ra giao tiếp giữa điện thoại Android và module bluetooth HC06.

Những yêu cầu chƣa thực hiện đƣợc :

 Vì đề tài này là sự kế thừa và cải tiến nên phần cơ khí chƣa chế tạo đƣợc hệ thống

quét và hút bụi, rác nhƣ lý thuyết nghiên cứu.

 Chƣa xây dựng đƣợc thuật toán PID để động cơ quay với tốc độ chính xác.

 Cảm biến siêu âm hoạt động chƣa ổn định cần phải tìm kiếm và thay thế loại cảm

biến khác để Robot hoạt động tốt hơn.

Page 58
CHƢƠNG 6: KẾT LUẬN VÀ KIẾN NGHỊ

I. Kết luận:
Trong quá trình thực hiện đồ án này, cùng với những sự hƣớng dẫn kinh
nghiệm của giảng viên, em đã rút ra đƣợc một số kết luận sau:
Robot hút bụi là một mẫu robot có thể di chuyển đa hƣớng chính xác và linh
hoạt.Tuy nhiên trong quá trình thiết kế và gia công cơ khí, những sai số dù là nhỏ
nhất khi cộng dồn lại sẽ dẫn đến việc robot di chuyển không chính xác và đặc biệt
khi tốc độ cao và di chuyển quãng đƣờng xa sai số sẽ càng lớn.
Dù robot mới chỉ hoạt động trong môi trƣờng nghiên cứu ở phòng thí nghiệm,
chƣa đƣa vào sử dụng trong thực tế, nhƣng vì hoạt động của robot yêu cầu động cơ
phải thay đổi chiều và vận tốc liên tục.Các phần cơ khí cần phải đƣợc lắp ráp một
cách chính xác,pin đƣợc sạc và sử dụng hợp lý, cảm biến cần đƣợc lựa chọn tốt hơn
và đƣợc giữ hoàn toàn cố địnhđể tối ƣu hóa khả năng di chuyển củarobot.
Khả năng xử lý của Board Arduino còn hạn chế trong việc phát xung,đọc
encoder và tính toán thông số.Nhƣng việc lập trình cho Board đƣợc thuận tiện hơn
các vi điều khiển khác,vì nhóm đã quen thuộc. Ngoài ra tầm hoạt động của Robot còn
ngắn,do Module HC-06 chỉ truyền nhận tín hiệu trong khoảng dƣới 10m.
Dùng giải thuật bộ PID điều khiển vị trí và vận tốc giúp ngƣời dùng có thể
thiết lập các thông số đảm bảo động cơ hoạt động ổn định, thiết lập bộ truyền động
điện tử, thời gian đáp ứng khi đảo chiều, tăng tốc, giảm tốc… Tuy nhiên do kinh
nghiệm và kỹ năng còn thiếu nên trong quá trình sử dụng, vận tốc của từng động cơ
chƣa ổn định , dẫn đến Robot di chuyển bị lệch khỏi quỹ đạo. Việc dò các thông số
Kp,Ki,Kd và cải thiện sai số của động cơ gặp rất nhiều khó khăn dẫn đến mất nhiều
thời gian,dẫn đến việc hiệu quả và năng suất làm việc giảm đi, làm chậm tiến độ đồ
án.
Giao diện điều khiển tƣởng chừng nhƣ đơn giản, dễ thiết kế nhƣng khi đƣa
vào sử dụng thì là phần rất quan trọng. Giao diện phải đƣợc thiết kế sao cho logic và

Page 59
dễ dử dụng.Phần thiết kế giao diện nên đƣợc tính toán từ trƣớc để dễ dàng trong việc
lập trình và điều khiển.
II. Kiến nghị
Đề án này là một đề án có tiềm năng lớn,mang tính kế thừa và đang phát triển.
Nếu chúng ta cần một Robot hút bụi chỉ biết chạy tự động thì quá là bình thƣờng.Robot
hút bụi điều khiển qua bluetooth là giải pháp không tồi ,vì bluetooth sử dụng nguồn
năng lƣợng nhỏ và tần số ổn định so với hồng ngoại,Wifi....vv, cùng với chiếc Smart
Phone đang dần gắn bó với con ngƣời trong đời sống hàng ngày .Ngoài ra để không
phải để ý đến việc Robot hết pin thì có thể thêm vào tính năng tự sạc để giải quyết vấn
đề ấy.
Robot là một lĩnh vực bao hàm nhiều môn học trong trƣờng, việc học từng
môn học riêng lẻ dƣờng nhƣ đơn giản hơn việc kết hợp lại để tạo ra một ứng dụng
robot. Vì vậy trong các môn học thí nghiệm hay thực tập, các kỹ năng thực tế dù đơn
giản hay phức tạp mà cần thiết nên đƣợc đầu tƣ đẩy mạnh trong giảng dạy, để sinh
viên có thêm kinh nghiệm và trải nghiệm trong việc sử dụng thiết bị và ứng biến khi
gặp khó khăn. Những phần không thực tế hay không cần thiết nên đƣợc qua nhanh,
thậm chí bỏ qua.
Đối với các kỹ năng và môn học cần thiết để ứng dụng trong thực tế, nhà
trƣờng nên cho sinh viên tiếp xúc sớm, từ căn bản đến nâng cao, để sinh viên sớm có
điều kiện rèn giũa các kỹ năng đó, đồng thời trau dồi các kiến thức cần thiết với nhu
cầu thực tế càng sớm càng tốt.
Tuy nhiên vì còn nhiều hạn chế trong điều kiện cũng nhƣ khả năng, đồ án vẫn
chƣa thể 100% ứng dụng ngoài thực tiễn. Từ thí nghiệm sang đến thực tế tuy có vẻ
không khác xa, nhƣng cần một nỗ lực lớn và một khối kinh nghiệm và kiến thức
không nhỏ. Vì vậy trong tƣơng lai, hƣớng phát triển không những đồ án này, mà còn
nhiều đồ án khác đƣợc phát triển lên để hoàn toàn đạt đƣợc yêu cầu sản phẩm thƣơng
mại để có thể đem những gì đang có trong phòng thí nghiệm ra giúp ích cho ngành
Robot tự động hóa, tạo ra ích lợi cho xã hội nƣớc nhà.

Page 60
Phụ Lục

1.Code lập trình trên Arduino IDE:

#define ENA 10 //enable A on pin 5 (needs to be a pwm pin)


#define ENB 11 //enable B on pin 3 (needs to be a pwm pin)
#define IN1 8 //IN1 on pin 2 conrtols one side of bridge A
#define IN2 9 //IN2 on pin 4 controls other side of A
#define IN3 12 //IN3 on pin 6 conrtols one side of bridge B
#define IN4 13 //IN4 on pin 7 controls other side of B
#define chanphat 2
#define chanthu 3
#define chanphattrai 4
#define chanthutrai 5
#define chanphatphai 6
#define chanthuphai 7
int thoigian,khoangcach;
int thoigiantrai,khoangcachtrai;
int thoigianphai,khoangcachphai;
byte bluetoothByte = 0;
void setup()
{
Serial.begin(9600);
pinMode(chanphat, OUTPUT);
pinMode(chanthu, INPUT);
pinMode(chanphattrai, OUTPUT);
pinMode(chanthutrai, INPUT);
pinMode(chanphatphai, OUTPUT);
pinMode(chanthuphai, INPUT);

Page 61
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop()
{
if (Serial.available() > 0)
{
bluetoothByte = Serial.read();
}
if(bluetoothByte<6)
{
robotMANUAL(IN1,IN2,IN3,IN4,ENA,ENB, bluetoothByte);
}
if(bluetoothByte>29)
{
digitalWrite(chanphat,HIGH);
delayMicroseconds(500);
digitalWrite(chanphat,LOW);
thoigian=pulseIn(chanthu,HIGH);
khoangcach=0.0344*(thoigian/2);
digitalWrite(chanphattrai,HIGH);
delayMicroseconds(500);
digitalWrite(chanphattrai,LOW);
thoigiantrai=pulseIn(chanthutrai,HIGH);

Page 62
khoangcachtrai=0.0344*(thoigiantrai/2);
digitalWrite(chanphatphai,HIGH);
delayMicroseconds(500);
digitalWrite(chanphatphai,LOW);
thoigianphai=pulseIn(chanthuphai,HIGH);
khoangcachphai=0.0344*(thoigianphai/2);

if (khoangcachtrai<2) // robot dat ben phai mep tuong


{

for(int i=1; i < 1000000;i++)


{

if(i%2 !=0)
{
motorA(1,100);
motorB(1,100);
delay(100);
motorA(1,bluetoothByte);
motorB(1,bluetoothByte);
delay(100);
if(khoangcach<2)
{
motorA(2,100);
motorB(2,100);
delay(500);
motorB(1,100);

Page 63
motorA(2,100);
delay(1000);
motorA(1,100);
motorB(1,100);
delay(500);
if(khoangcachtrai<5)
{
motorB(1,100);
motorA(2,100);
delay(1000);
motorA(1,100);
motorB(1,100);
delay(500);
}

if(khoangcachtrai>5)
{
motorB(2,100);
motorA(1,100);
delay(1000);
motorA(1,100);
motorB(1,100);
delay(500);
}
}

}
if(i%2==0)

Page 64
{
motorA(1,100);
motorB(1,100);
delay(100);
motorA(1,bluetoothByte);
motorB(1,bluetoothByte);
delay(100);
if(khoangcach<2)
{
motorA(2,100);
motorB(2,100);
delay(500);
motorB(2,100);
motorA(1,100);
delay(1000);
motorA(1,100);
motorB(1,100);
delay(500);
if(khoangcachtrai<5)
{
motorB(2,100);
motorA(1,100);
delay(1000);
motorA(1,100);
motorB(1,100);
delay(500);

Page 65
if(khoangcachtrai>5)
{
motorB(1,100);
motorA(2,100);
delay(1000);
motorA(1,100);
motorB(1,100);
delay(500);
}

}
}
}
}
if (khoangcachphai<2)
{

for(int i=1; i < 1000000;i++)


{

if(i%2 !=0)
{
motorA(1,100);
motorB(1,100);
delay(100);
motorA(1,bluetoothByte);

Page 66
motorB(1,bluetoothByte);
delay(100);
if(khoangcach<2)
{
motorA(2,100);
motorB(2,100);
delay(500);
motorB(2,100);
motorA(1,100);
delay(1000);
motorA(1,100);
motorB(1,100);
delay(500);
if(khoangcachphai<5)
{
motorB(2,100);
motorA(1,100);
delay(1000);
motorA(1,100);
motorB(1,100);
delay(500);
}

if(khoangcachphai>5)
{
motorB(1,100);
motorA(2,100);
delay(1000);

Page 67
motorA(1,100);
motorB(1,100);
delay(500);
}

}
}
if(i%2==0)
{
motorA(1,100);
motorB(1,100);
delay(100);
motorA(1,bluetoothByte);
motorB(1,bluetoothByte);
delay(100);
if(khoangcach<2)
{
motorA(2,100);
motorB(2,100);
delay(500);
motorB(1,100);
motorA(2,100);
delay(1000);
motorA(1,100);
motorB(1,100);
delay(500);
if(khoangcachphai<5)

Page 68
{
motorB(1,100);
motorA(2,100);
delay(1000);
motorA(1,100);
motorB(1,100);
delay(500);
}

if(khoangcachphai>5)
{
motorB(2,100);
motorA(1,100);
delay(1000);
motorA(1,100);
motorB(1,100);
delay(500);

}
}
}
}
}
}
}

void motorA(int mode, int percent)

Page 69
{

//change the percentage range of 0 -> 100 into the PWM


//range of 0 -> 255 using the map function
int duty = map(percent, 0, 100, 0, 255);

switch(mode)
{
case 0: //disable/coast
digitalWrite(ENA, LOW); //set enable low to disable A
break;

case 1: //turn clockwise


//setting IN1 high connects motor lead 1 to +voltage
digitalWrite(IN1, HIGH);

//setting IN2 low connects motor lead 2 to ground


digitalWrite(IN2, LOW);

//use pwm to control motor speed through enable pin


analogWrite(ENA, duty);

break;

case 2: //turn counter-clockwise


//setting IN1 low connects motor lead 1 to ground
digitalWrite(IN1, LOW);

Page 70
//setting IN2 high connects motor lead 2 to +voltage
digitalWrite(IN2, HIGH);

//use pwm to control motor speed through enable pin


analogWrite(ENA, duty);

break;

case 3: //brake motor


//setting IN1 low connects motor lead 1 to ground
digitalWrite(IN1, LOW);

//setting IN2 high connects motor lead 2 to ground


digitalWrite(IN2, LOW);

//use pwm to control motor braking power


//through enable pin
analogWrite(ENA, duty);

break;
}

}
//********************************************************

//**************** Motor B control *****************

Page 71
void motorB(int mode, int percent)
{

//change the percentage range of 0 -> 100 into the PWM


//range of 0 -> 255 using the map function
int duty = map(percent, 0, 100, 0, 255);

switch(mode)
{
case 0: //disable/coast
digitalWrite(ENB, LOW); //set enable low to disable B
break;

case 1: //turn clockwise


//setting IN3 high connects motor lead 1 to +voltage
digitalWrite(IN3, HIGH);

//setting IN4 low connects motor lead 2 to ground


digitalWrite(IN4, LOW);

//use pwm to control motor speed through enable pin


analogWrite(ENB, duty);

break;

case 2: //turn counter-clockwise


//setting IN3 low connects motor lead 1 to ground
digitalWrite(IN3, LOW);

Page 72
//setting IN4 high connects motor lead 2 to +voltage
digitalWrite(IN4, HIGH);

//use pwm to control motor speed through enable pin


analogWrite(ENB, duty);

break;

case 3: //brake motor


//setting IN3 low connects motor lead 1 to ground
digitalWrite(IN3, LOW);

//setting IN4 high connects motor lead 2 to ground


digitalWrite(IN4, LOW);

//use pwm to control motor braking power


//through enable pin
analogWrite(ENB, duty);

break;
}
}
void robotMANUAL(byte inR1, byte inR2, byte inL1, byte inL2,byte ena,byte enb,
byte action)
{
digitalWrite(ena,HIGH);
digitalWrite(enb,HIGH);
switch (action)

Page 73
{
case 0:
motorControlNoSpeed(inR1, inR2, 0);
motorControlNoSpeed(inL1, inL2, 0);
break;
case 1:
motorControlNoSpeed(inR1, inR2, 1);
motorControlNoSpeed(inL1, inL2, 1);
break;
case 2:
motorControlNoSpeed(inR1, inR2, 2);
motorControlNoSpeed(inL1, inL2, 2);
break;
case 3:
motorControlNoSpeed(inR1, inR2, 1);
motorControlNoSpeed(inL1, inL2, 2);
break;
case 4:
motorControlNoSpeed(inR1, inR2, 2);
motorControlNoSpeed(inL1, inL2, 1);
break;
case 5:
motorControlNoSpeed(inR1, inR2, 1);
motorControlNoSpeed(inL1, inL2, 0);
break;
case 6:
motorControlNoSpeed(inR1, inR2, 0);
motorControlNoSpeed(inL1, inL2, 1);

Page 74
break;
case 7:
motorControlNoSpeed(inR1, inR2, 2);
motorControlNoSpeed(inL1, inL2, 0);
break;
case 8:
motorControlNoSpeed(inR1, inR2, 0);
motorControlNoSpeed(inL1, inL2, 2);
break;
default:
action = 0;

}
}

void motorControlNoSpeed (byte in1,byte in2, byte direct)


{

switch (direct)
{
case 0:
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
break;
case 1:
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);

Page 75
break;
case 2:
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
break;

}
}

2.Lập Trình Trên App MIT Inventor :

Page 76
Page 77
Page 78
Page 79
Page 80
Page 81
Page 82
Page 83
TÀI LIỆU THAM KHẢO

- Đồ Án Tốt Nghiệp Đại Học : “Nghiên Cứu Chế Tạo Robot Hút bụi Tự Động”.

- Trong Hieu Bui, Tan Tien Nguyen, Tan Lam Chung and Sang Kim
Bong, 2000, “ A Simple Nonlinear Control of Two-Wheels Welding Robot”,
Transactions on Control, Automation, and Systems Engineering Vol.2, No.1.
- Ying-Wen Bai and Ming-Feng Hsueh, 2012, “Using an Adaptive
Iterative Learning Algorithm for Planning of the Path of an Autonomous
Robotic Vacuum Cleaner”, The1st IEEE Global Conference on Consumer
Electronics 2012, pp.406~410
-Autonomous Mobile Robots, R. Seigwart,I.Nourbakhsh.
- “Báo Cáo Phƣơng Pháp Nghiên Cứu Khoa Học Tìm Hiểu Board Mạch Cho
Arduino Và Các Ứng Dụng Của Nó”.
- Trang web : “www.google.com”.
- Trang web: ”www.youtube.com” .

Page 84

You might also like