Professional Documents
Culture Documents
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT CƠ ĐIỆN TỬ
SKL 0 0 4 2 7 7
----***----
-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
----***----
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
----***----
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.
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
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 :
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,…
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.
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.
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
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ó.
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:
Page 8
Hình 1.12 Robot di chuyển phân ô
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.
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.
-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.
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.
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”.
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.
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 :
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:
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,…
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
Page 22
Hình 2.11 Bánh tự lựa được chọn
Để đ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.
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 :
Kiểu Zigzag
START
Đ
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.
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:
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.
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…
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:
Ấn nút Reset
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.
Arduino Toolbar có một số button và chức năng của chúng nhƣ sau:
1 2 3 4
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
Page 30
Hình 3.9 Hiển thị Board va Serial Port
Page 31
I.2 Mạch công suất (mạch cầu H L298) điều khiển động cơ :
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ý:
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.
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
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 :
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
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
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.
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ể.
Page 41
II. Sơ đồ mạch điện
Page 42
Mạch điện bao gồm :
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.
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ơ.
Để 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
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ố
độ
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 -
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ả.
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Ả
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:
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ý.
Tạo ra giao tiếp giữa điện thoại Android và module bluetooth HC06.
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
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
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
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(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)
{
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);
}
}
}
}
}
}
}
Page 69
{
switch(mode)
{
case 0: //disable/coast
digitalWrite(ENA, LOW); //set enable low to disable A
break;
break;
Page 70
//setting IN2 high connects motor lead 2 to +voltage
digitalWrite(IN2, HIGH);
break;
break;
}
}
//********************************************************
Page 71
void motorB(int mode, int percent)
{
switch(mode)
{
case 0: //disable/coast
digitalWrite(ENB, LOW); //set enable low to disable B
break;
break;
Page 72
//setting IN4 high connects motor lead 2 to +voltage
digitalWrite(IN4, HIGH);
break;
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;
}
}
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;
}
}
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