ĐỒ ÁN TỐT NGHIỆP ĐIỆN TỬ THIẾT KẾ VÀ CHẾ TẠO ROBOT LAU NHÀ THÔNG MINH
ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ VÀ CHẾ TẠO ROBOT LAU NHÀ THÔNG MINH, thuyết minh THIẾT KẾ VÀ CHẾ TẠO ROBOT LAU NHÀ THÔNG MINH, bộ điều khiển lập trình THIẾT KẾ VÀ CHẾ TẠO ROBOT LAU NHÀ THÔNG MINH , ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ VÀ CHẾ TẠO ROBOT LAU NHÀ THÔNG MINH
ĐỀ TÀI: THIẾT KẾ VÀ CHẾ TẠO ROBOT LAU NHÀ THÔNG MINH
LỜI CẢM ƠN
Đầu tiên tôi xin chân thành cảm ơn quý thầy, cô trong khoa Điện tử Viễn thông, Đại học Bách Khoa Đà Nẵng đã tận tình truyền đạt kiến thức trong suốt thời gian học tập tại trường. Với vốn kiến thức quý báu được tiếp thu, tôi đã có nền tảng vững chắc để thực hiện tốt đồ án.Và đặc biệt tôi xin gửi lời biết ơn sâu sắc đến PGS.TS Phạm Văn Tuấn đã tận tình hướng dẫn, đồng thời động viên trong thời gian tôi nghiên cứu và hoàn thành đồ án này.
Tôi cũng thầm biết ơn sự ủng hộ của gia đình, bạn bè – những người thân yêu luôn là chỗ dựa vững chắc cho tôi.
Trong thời gian thực hiện đồ án, mặc dù có nhiều cố gắng nhưng chắc chắn đồ án sẽ không tránh khỏi những thiếu sót. Kính mong các thầy tận tình chỉ bảo và góp ý kiến để đồ án được hoàn thiện hơn.
Cuối cùng, tôi xin kính chúc quý Thầy, Cô và gia đình dồi dào sức khỏe, luôn thành công trong sự nghiệp cao quý của mình.
Tôi xin chân thành cảm ơn!
LỜI CAM ĐOAN.. 1
LỜI CẢM ƠN.. 2
PHÂN CÔNG NHIỆM VỤ.. 3
MỤC LỤC.. 4
CÁC TỪ VIẾT TẮT.. 8
CHƯƠNG 1. 10
GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI10
1.1 Giới thiệu chương. 10
1.2 Tổng quan về Robot lau nhà. 10
1.3 Đề xuất thiết kế mô hình Robot lau nhà thông minh. 14
1.3.1 Mô hình robot15
1.3.2 Sơ đồ khối của mạch điều khiển Robot16
1.4 Nguyên lý hoạt động của Robot17
1.5 Kết luận chương. 17
CHƯƠNG 2. 18
GIỚI THIỆU VỀ CÁC MODULE SỬ DỤNG TRONG ROBOT.. 18
2.1 Giới thiệu chương. 18
2.2 Giới thiệu KIT launchpad MSP430G2553. 18
2.2.1 Giới thiệu chung. 18
2.2.2 Đặc điểm chính của KIT lanchpad MSP430. 19
2.3 Cảm biến từ trường GY-273 HMC5883L.. 20
2.3.1 Giới thiệu chung. 20
2.3.2 Nguyên lý hoạt động. 20
2.3.3 Đánh giá hoạt động. 21
2.3.4 Kết luận. 21
2.4 Module cảm biến siêu âm SRF-04. 21
2.4.1 Giới thiệu chung. 21
2.4.2 Nguyên lý hoạt động. 23
2.4.3 Đánh giá hoạt động. 24
2.4.4 Kết luận. 24
2.5 Module mạch cầu H L298 điều khiển động cơ. 24
2.5.1 Giới thiệu chung. 24
2.5.2 Nguyên lý hoạt động. 26
2.5.3 Đánh giá hoạt động. 27
2.5.4 Kết luận. 27
2.6 Module encoder 32 xung. 28
2.6.1 Giới thiệu chung. 28
2.6.2 Nguyên lý hoạt động. 28
2.6.3 Đánh giá hoạt động. 30
2.6.4 Kết luận. 30
2.7 Công tắc hành trình. 30
2.7.1 Giới thiệu chung. 30
2.7.2 Nguyên lý hoạt động. 31
2.7.3 Đánh giá hoạt động. 31
2.7.4 Kết luận. 31
2.8 Sơ đồ ghép nối các khối module. 31
2.9 Kết luận chương. 32
CHƯƠNG 3. 33
LẬP TRÌNH CHO ROBOT.. 33
3.1 Giới thiệu chương. 33
3.2 Phương pháp điều chế xung PWM... 33
3.2.1 Giới thiệu về phương pháp. 33
3.2.2 Ứng dụng phương pháp trong điều khiển tốc độ động cơ robot34
3.2.3 Kết luận. 34
3.3 Thuật toán PID.. 34
3.3.1 Giới thiệu về thuật toán. 34
3.3.2 Áp dụng thuật toán PID để ổn định hướng đi cho robot36
3.3.3 Sơ đồ thuật toán. 37
3.3.4 Đánh giá thuật toán. 37
3.3.5 Kết luận. 38
3.4 Thuật toán di chuyển. 38
3.4.1 Giới thiệu về thuật toán. 38
3.4.2 Sơ đồ thuật toán. 39
3.4.3 Đánh giá thuật toán. 40
3.4.4 Kết luận. 40
3.5 Thuật toán tránh vật cản. 40
3.5.1 Giới thiệu về thuật toán. 40
3.5.2 Sơ đồ thuật toán. 40
3.5.3 Đánh giá thuật toán. 44
3.5.4 Kết luận. 44
3.6 Kết luận chương. 44
CHƯƠNG 4. 45
KẾT QUẢ VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA ROBOT.. 45
4.1 Giới thiệu chương. 45
4.2 Kết quả đạt được và khảo sát45
4.2.1 Phần cơ khí và mạch điều khiển. 45
4.2.2 Phần lập trình. 46
4.3 Nhận xét và đánh giá kết quả đạt được. 47
4.3.1 Đánh giá về nguồn điện áp và dung lượng acquy. 47
4.3.2 Tính hiệu quả. 47
4.3.3 Giá thành của Robot48
4.4 Kết luận chương. 49
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI50
PHỤ LỤC.. 53
CÁC TỪ VIẾT TẮT
DIR |
DIRECT |
ĐIỀU HƯỚNG |
PWM |
PULSE WIDTH MODULATION |
ĐIỀU CHẾ ĐỘ RỘNG XUNG |
VĐK |
|
VI ĐIỀU KHIỂN |
DC |
DIRECT CURRENT |
DÒNG ĐIỆN MỘT CHIỀU |
ADC |
ANALOG TO DIGITAL CONVERTER |
BỘ CHUYỂN ĐỔI TƯƠNG TỰ SANG SỐ |
MCU |
MICROCONTROLLER UNIT |
BỘ VI ĐIỀU KHIỂN |
UART |
UNIVERSAL ASYNCHRONOUS RECEIVER/TRANSMITTER |
BỘ TRUYỀN NHẬN KHÔNG ĐỒNG BỘ |
I2C |
INTER-INTEGRATED CIRCUIT |
MỘT LOẠI GIAO TIẾP TRUYỀN THÔNG NỐI TIẾP ĐỒNG BỘ |
SPI |
SERIAL PERIPHERAL INTERFACE |
GIAO DIỆN NGOẠI VI NỐI TIẾP |
RAM |
RANDOM ACCESS MEMORY |
BỘ NHỚ TRUY CẬP NGẤU NHIÊN |
RISC |
REDUCED INSTRUCTIONS SET COMPUTER |
MÁY TÍNH VỚI TẬP LỆNH ĐƠN GIẢN HÓA |
IC |
INTEGRATED CIRCUIT |
MẠCH TÍCH HỢP |
PID |
PROPORTIONAL INTEGRAL DERIVATIVE |
BỘ ĐIỀU KHIỂN THEO CƠ CHẾ PHẢN HỒI VÒNG |
GPS |
GLOBAL POSITIONING SYSTEM |
HỆ THỐNG ĐỊNH VỊ TOÀN CẦU |
LỜI MỞ ĐẦU
Trong xã hội hiện đại ngày nay, khoa học kỹ thuật đang phát triển rất mạnh mẻ và đi cùng với đó là sự phát triển các sản phẩm ứng dụng của nó vào thực tế trong nhiều lĩnh vực như: y tế , giáo dục, nông nghiệp, sản phẩm dân dụng… Do đó, với mong muốn áp dụng kiến thức mà mình đã học được trong hơn bốn năm học ở giảng đường đại học , nhóm chúng tôi đã quyết định làm một sản phẩm mang tính ứng dụng vào đời sống thực tiễn của mỗi chúng ta. Sản phẩm đó là một chú robot lau nhà thông minh.
Robot lau nhà thông minh được thiết kế để có thể lau sàn nhà trong gia đình bằng khăn lau nhà microfiber cao cấp sử dụng sợi hình vòng khép kín độc đáo nhanh chóng lấy sạch mọi bụi bẩn trên sàn nhà, robot di chuyển theo hình ziczac thông minh dưới sự điều hướng của la bàn điện tử, kết hợp thuật toán điều khiển PID nhằm ổn định hướng đi cho robot. Đảm bảo robot có thể lau sạch toàn bộ khu vực trong ngôi nhà và tránh được các vật cản thông thường trong nhà bằng các cảm biến siêu âm và công tắc hành trình được gắn trên robot. Với việc sử dụng công nghệ hoàn toàn khác là sử dụng các cảm biến giá rẻ nhưng vẫn hiệu quả cao, sản phẩm hy vọng sẽ có đủ sức cạnh tranh cả về mặt giá lẫn chất lượng so với các sản phẩm robot của các hãng khác trên thị trường.
Đồ án được chia thành 4 chương :
- Chương 1 GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
- Chương 2 GIỚI THIỆU CÁC MODULE SỬ DỤNG TRONG ROBOT
- Chương 3 LẬP TRÌNH CHO ROBOT
- Chương 4 KẾT QUẢ VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA ROBOT
CHƯƠNG 1
GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu chương
Trong chương này, tôi giới thiệu sơ bộ về robot lau nhà thông minh, trong đó nội dung chính trình bày bao gồm: mô hình, sơ đồ khối và nguyên lý hoạt động của robot.
1.2 Tổng quan về Robot lau nhà
Robot làm sạch cho môi trường công cộng cũng như các hộ gia đình cá nhân dường như mang lại các bước đột phá mà các nhà thiết kế hệ thống robot phi công nghiệp đã mong đợi từ lâu. Khảo sát trong bài báo A Short History of Cleaning Robots [1] chọn ra 30 robot làm sạch khác nhau với sản phẩm phát triển trong vòng 15 năm trở lại đây và một vài trường hợp ngoại lệ. Khảo sát tập trung vào việc làm sạch sàn, đặc biệt là làm sạch sàn nhà. Khảo sát mô tả một loạt các loại robot lau và hút bụi được phát triển cho nhiệm vụ này. Kết quả là hầu như 30 sản phẩm robot nêu trên vẫn đạt đến trạng thái của sản phẩm thương mại, số lượng của chúng chắc chắn phản ánh kỳ vọng về giá trị kinh tế liên quan đến việc tự động hóa các nhiệm vụ làm sạch [1]. Ở châu Âu dự toán cho thị trường dịch vụ làm sạch lên tới 100 tỷ USD mỗi năm [1]. Do đó, không ngạc nhiên khi các ngành công nghiệp làm sạch và các nhà sản xuất thiết bị vệ sinh tích cực đầu tư vào sản phẩm này.
Có 2 sản phẩm làm sạch sàn nhà trên thị trường hiện nay đó là sản phẩm Robot lau nhà và Robot hút bụi. Hình 1.1 minh họa về 2 loại sản phẩm làm sạch sàn nhà trên thị trường.
Hình 1.1 Robot hút bụi của SAMSUNG và Robot lau nhà của iRobot
So với loại Robot hút bụi, Robot lau nhà có đặc điểm là lau nhà được sạch hơn do mọi bụi bẩn đều bám vào khăn lau, trong khi Robot hút bụi không được sạch hơn do bụi có thể bị khuếch tán xung quanh, ngoài ra Robot hút bụi khó có thể hút được bụi dính vào sàn nhà do lực hút bị hạn chế và gây ra tiếng ồn lớn do động cơ hút gây nên tạo cảm giác khó chịu cho người sử dụng [3].
Các loại Robot lau nhà hiện nay có những kỹ thuật dẫn đường cho Robot khác nhau. Có 2 hướng chính là sử dụng cảm biến và xử lý ảnh. Hướng xử lý ảnh lần đầu tiên được cấp cho nhà sáng chế Eric Richard Bartsch năm 2002 [5], ông sử dụng camera để quét trên trần nhà xử lý ảnh để tạo bản đồ di chuyển cho Robot. Hình 1.2 minh họa phương pháp trên được trích từ tài liệu tham khảo[5].
Hình 1.2 Robot sử dụng công nghệ xử lý ảnh để tạo bản đồ cho Robot
Tuy nhiên Robot sử dụng công nghệ xử lý ảnh như trên có nhược điểm là không thể hoạt động trong điều kiện thiếu ánh sáng nên dần dấn được các công ty chuyển sang sử dụng cảm biến để tạo bản đồ di chuyển cho Robot. Sản phẩm của iRobot sử dụng bản quyền công nghệ NorthStar® Navigation tạo lập bản đồ cho Robot [3]. Công nghệ này dựa trên hệ thống định vị GPS kết hợp cảm biến gyroscopes để dẫn đường cho Robot [6]. Và đơn giản hơn là sản phẩm Robot LTM-T290 của hãng XRobot chỉ di chuyển theo phương pháp ngẫu nhiên
Hình 1.3 Hình ảnh iRobot và Robot LTM-T290
Trên thị trường hiện nay có rất nhiều sản phẩm của các hãng lơn như LG, SAMSUNG, PHILIPS,...Tuy nhiên lại hướng đến sản phẩm Robot hút bụi. Theo trang 10TopTenREVIEWS so sánh và xếp hạng sản phẩm tốt nhất năm 2014, sản phẩm của hãng iRobot là sản phẩm duy nhất trên thị trường hiện nay phát triển theo hướng Robot lau nhà và đã được xếp hạng thứ 2 (Rankings #2) với các sản phẩm khác [2]. iRobot sử dụng bản quyền công nghệ NorthStar® Navigation tạo lập bản đồ để di chuyển [3], có một phương pháp nữa là di chuyển ngẫu nhiên thì hiệu quả không cao do bị trùng lặp đường đi và bỏ sót nhiều phần chưa được lau. Phương pháp này chỉ áp dụng cho các sản phẩm giá rẻ trên thị trương hiện nay. Hình 1.4 thể hiện sự đánh giá của giữa 2 phương pháp tạo bản đồ và di chuyển ngẫu nhiên [7].
Hình 1.4 So sánh tính hiệu quả phương pháp di chuyển của Robot [7]
Về kỹ thuật tránh vật cản, các Robot đều hoạt động theo nguyên tắc chung là sử dụng cảm biến siêu âm hoặc cảm biến hồng ngoại để đo khoảng cách từ Robot tới vật cản, qua đó tính toán xử lý và đưa ra thuật toán né tránh thích hợp.
Qua quá trình khảo sát và đánh giá các loại Robot có trên thị trường như trên, Chúng tôi thấy rằng, tuy có những tính năng nổi bật như vậy, nhưng Robot lau nhà của iRobot hay những hãng khác vẫn chưa được sử dụng phổ biến do giá thành của nó có thể nói là quá đắt (tầm 9à10 triệu VND), đặc biệt là nước có thu nhập thấp như Việt Nam. Vì vậy với mong muốn đưa sản phẩm Robot lau nhà phổ biến đến mọi gia đình, phù hợp với túi tiền người dân Việt Nam. Chúng tôi đã sử dụng những cảm biến giá rẻ kết hợp với thuật toán lập trình thông minh cho Robot để có được nhưng tính năng tương đương với sản phẩm của iRobot và thêm một vài cải tiến nhỏ khác, điều đó được thể hiện qua Bảng 1.1
Các tính năng |
Sản phẩm iRobot |
Sản phẩm Robot của đề tài |
Điều hướng cho Robot |
Sử dụng bản quyền công nghệ sử dụng GPS NorthStar® Navigation ( Giá 1.000.000 VND) |
Sử dụng Cảm biến từ trường GY-273 HMC5883L ( Giá 120.000 VND) |
Tránh vật cản + phát hiện bậc thang |
Sử dụng cảm biến hồng ngoại ( Giá 290.000 VND) |
Cảm biến siêu âm ( SRF-04) ( Giá 65.000 VND) |
Chống kẹt Robot |
Không có |
Sử dụng encoder để phát hiện Robot bị kẹt ( Giá 35.000 VND) |
Bảng 1.1 So sánh công nghệ sử dụng giữa 2 sản phẩm Robot lau nhà
Có thể thấy răng một đặc điểm quan trọng của đề tài nhằm giảm giá thành cao cho Robot là chúng tối sử dụng cảm biến từ trường GY-273 HMC5883L để xác định hướng đi, lập bản đồ cho Robot thay vì sử dụng công nghệ NorthStar® Navigation, hay xử lý ảnh đắt tiền.
1.3 Đề xuất thiết kế mô hình Robot lau nhà thông minh
Robot lau nhà thông minh được chúng tôi thiết kế với những tính năng chính sau
- Robot có thể làm sạch sàn nhà (lau khô) & lau ướt.
- Robot có cảm biến nên không ngã cầu thang, các bậc lên xuống hoặc gặp chướng ngại vật biết quay đầu lại, tránh được hầu hết vật cản trong nhà bằng các thuật toán thông minh.
- Robot lau theo hình ziczac đảm bảo lau tối đa diện tích sàn nhà.
Với các tính năng như trên, ta có thể thấy robot hoàn toàn có thể đảm bảo được yêu cầu tối thiểu để lau sạch một ngôi nhà mà không thua kém bất cứ một robot nào hiện có mặt trên thị trường. Do vậy, tính khả thi của đề tài này sẽ rất là cao, chúng tôi mong muốn sản phẩm sẽ dần hoàn thiện hơn và sớm đi vào thực tế để góp phần vào việc hổ trợ con người tiết kiệm thời gian và công sức trong cuộc sống hiện đại.
1.3.1 Mô hình robot
Version 1 |
Hình 1.5 Ảnh chụp cấu tao bên trong của robot phiên bản 1.
Chú thích :
- Cảm biến 3 trục từ trường GY-273 HMC5883L.
- Cảm biến siêu âm SRF-04.
- 2 Động cơ.
- Text LCD.
- Mạch điều khiển động cơ.
- Khăn lau nhà Microfiber
- Acquy 12V
Qua ba phiên bản phát triển, robot cũng dần hoàn thiện và hoạt động ổn định hơn. Dưới đây là hai phiên bản phát triển sau của robot.
Version 2 |
Version 3 |
Hình 1.6 Phiên bản 2 và phiên bản 3 của robot
1.3.2 Sơ đồ khối của mạch điều khiển Robot
......................................................
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
Trong đề tài này chúng tôi đã thiết kế và chế tạo được sản phẩm robot lau nhà thông minh, qua những thử nghiệm thực tế chúng tôi đã có những sửa chữa để ngày càng hoàn thiện sản phẩm, sản phẩm cũng đã trải qua 2 phiên bản thử nghiệm trước đó. Chúng tôi tin rằng nếu được sản xuất với số lượng lớn, sản phẩm sẽ được thiết kế đẹp hơn, ổn định hơn, đủ sức cạnh tranh với các sản phẩm của nước ngoài. Hơn thế nữa một sản phẩm mang thương hiệu “made in Viet Nam” cũng sẽ là một niềm tự hào lớn cho chúng ta.
Hướng phát triển đề tài trong tương lai là phát triển ứng dụng sản phẩm rộng hơn như tăng kích thước của robot để ứng dụng trong việc lau những nơi có diện tích rộng lớn như nhà hàng, siêu thị, khách sạn…, thiết kế chống nước để có thể sử dụng để lau chùi trong môi trường có nước như bể bơi, hồ cá…
TÀI LIỆU THAM KHẢO
[1] Erwin Prassler, Arno Ritter, Christoph Schaeffer, Paolo Fiorini, “A Short History of Cleaning Robots”, 2000-12-01
[2] Robot Vacuum Review and Comparisons 2014 Best, http://robot-vacuum-review.toptenreviews.com/
[3] The Best Robot Floor Cleaners, http://gizmodo.com/5853095/which-robot-maid-will-clean-your-floors-the-best
[4] iRobot Braava™ Floor Mopping Robot, http://www.irobot.com
[5] Eric Richard Bartsch, The Procter & Gamble Company, “Home cleaning robot”, 2002-10-01
[6] Robotics, Automation and Mechatronics (RAM), 2011 IEEE Conference on
[7] Automatic Robot Vacuum Neato XV-25, http://www.generationrobots.com/en/400928-automatic-robot-vacuum-neato-xv-25.html
[8] PID controller, http://en.wikipedia.org/wiki/PID_controller
[9] Texas Instruments (2010) TI Educational Products - MSP-EXP430G2 LaunchPad Tài liệu tham khảo 3.
[10] John H. Davies (September 4, 2008 ) MSP430 Microcontroller Basics
[11] Michael Margolis (Oct 23, 2012), Make an Arduino-Controlled Robot, http://makezine.com/2012/10/23/arduino-controlled-Robots-webcast-with-author-michael-margolis/webcast-with-author-michael-margolis/
[12] Texas Instruments, “MSP430x2xx Family User’s Guide”, January 2010.
[13] SRF04 Technical Documentation - Robot Electronics, http://www.Robot-electronics.co.uk/htm/srf04tech.htm
[14] Applications of magnetic position sensors - Honeywell, http://aerospace.honeywell.com/~/media/UWSAero/common/documents/Applications-of-Magnetic-Position-Sensors.pdf
PHỤ LỤC
Chương trình cho MSP430G2553. Hàm main.c
//*********************************************************************//
// FINAL PROJECT
// Description:
// Project Name : Smart cleaner Robot
// Note : // Neu error heading_new > heading_old
// Neu error >=0 --> heading_new < heading_old
// la ban so quay ve ben phia banh trai --> tang heading--> error <0
// la ban so quay ve ben phai banh phai --> giam heading--> error >0
// Created day : 28/02/2014 By : VAN LIC+ BA TUE
// Last fixed : 23/04/2014 By : VAN LIC+ BA TUE
//*********************************************************************
// Define
#include "msp430g2553.h"
#include "I2C.h"
#include "UART.h"
#include "compass.h"
#include "PID.h"
#include "math.h"
#include "GLCD.h"
#include "PWM.h"
#include "SRF05.h"
#define L_speed 5000
#define R_speed 5000
#define xoay 8000
#define lui 8000
//******************************************************************
// Varible
int current_value=0,setpoint=0,heading_error=0,bak=0,set=0;
int temp=1;
double hold=0;
int dir=1;
int i=0;
int offset=0;
Cộng hòa xã hội chủ nghĩa Việt Nam
Độc lập – Tự do – Hạnh phúc
===========================
Kính gởi: - Trường Đại học Bách Khoa Đà Nẵng
- Khoa Điện Tử – Viễn Thông
Nhóm chúng tôi gồm 2 thành viên:
Trần Văn Líc
Hiện là sinh viên lớp 09DT1, khoa Điện Tử – Viễn Thông, trường Đại học Bách Khoa Đà Nẵng.
Nguyễn Bá Tuệ
Hiện là sinh viên lớp 09DT3, khoa Điện Tử – Viễn Thông, trường Đại học Bách Khoa Đà Nẵng.
Chúng tôi xin cam đoan đồ án này là kết quả do chúng tôi tự tính toán, thiết kế và nghiên cứu, không sao chép của ai, được thực hiện dưới sự hướng dẫn của PGS.TS Phạm Văn Tuấn. Nếu có bất kì sự vi phạm nào, nhóm xin chịu hoàn toàn trách nhiệm và chịu mọi sự kỉ luật của khoa và nhà trường.
Xin chân thành cảm ơn.
Đà Nẵng, tháng 06 năm 2014
Sinh viên
Đầu tiên tôi xin chân thành cảm ơn quý thầy, cô trong khoa Điện tử Viễn thông, Đại học Bách Khoa Đà Nẵng đã tận tình truyền đạt kiến thức trong suốt thời gian học tập tại trường. Với vốn kiến thức quý báu được tiếp thu, tôi đã có nền tảng vững chắc để thực hiện tốt đồ án.Và đặc biệt tôi xin gửi lời biết ơn sâu sắc đến PGS.TS Phạm Văn Tuấn đã tận tình hướng dẫn, đồng thời động viên trong thời gian tôi nghiên cứu và hoàn thành đồ án này.
Tôi cũng thầm biết ơn sự ủng hộ của gia đình, bạn bè – những người thân yêu luôn là chỗ dựa vững chắc cho tôi.
Trong thời gian thực hiện đồ án, mặc dù có nhiều cố gắng nhưng chắc chắn đồ án sẽ không tránh khỏi những thiếu sót. Kính mong các thầy tận tình chỉ bảo và góp ý kiến để đồ án được hoàn thiện hơn.
Cuối cùng, tôi xin kính chúc quý Thầy, Cô và gia đình dồi dào sức khỏe, luôn thành công trong sự nghiệp cao quý của mình.
Tôi xin chân thành cảm ơn!
Nhóm thực hiện:
Trần Văn Líc
Nguyễn Bá Tuệ
Trần Văn Líc
- Tìm hiểu và lập trình cho cảm biến từ trường GY-273 HMC5883L.
- Lập trình cho module encoder để phát hiện chuyển động của robot
- Lập trình PID điều khiển động cơ để ổn định hướng đi cho robot
- Phát triển các thuật toán di chuyển thông minh, thuật toán tránh vật cản cho Robot
Nguyễn Bá Tuệ
- Thiết kế và thi công phần cơ khí và mạch điều khiển cho Robot
- Tìm hiểu và lập trình cho cảm biến siêu âm SRF-04, công tắc hành trình để phát hiện vật cản cho Robot
- Lập trình PWM để điều khiển tốc độ động cơ dùng module mạch cầu H L298
- Phát triển các thuật toán di chuyển thông minh, thuật toán tránh vật cản cho Robot
LỜI CAM ĐOAN
LỜI CẢM ƠN
PHÂN CÔNG NHIỆM VỤ
MỤC LỤC
CÁC TỪ VIẾT TẮT
CHƯƠNG 1
GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu chương
1.2 Tổng quan về Robot lau nhà
1.3 Đề xuất thiết kế mô hình Robot lau nhà thông minh
1.3.1 Mô hình robot
1.3.2 Sơ đồ khối của mạch điều khiển Robot
1.4 Nguyên lý hoạt động của Robot
1.5 Kết luận chương
CHƯƠNG 2
GIỚI THIỆU VỀ CÁC MODULE SỬ DỤNG TRONG ROBOT
2.1 Giới thiệu chương
2.2 Giới thiệu KIT launchpad MSP430G2553
2.2.1 Giới thiệu chung
2.2.2 Đặc điểm chính của KIT lanchpad MSP430
2.3 Cảm biến từ trường GY-273 HMC5883L
2.3.1 Giới thiệu chung
2.3.2 Nguyên lý hoạt động
2.3.3 Đánh giá hoạt động
2.3.4 Kết luận
2.4 Module cảm biến siêu âm SRF-04
2.4.1 Giới thiệu chung
2.4.2 Nguyên lý hoạt động
2.4.3 Đánh giá hoạt động
2.4.4 Kết luận
2.5 Module mạch cầu H L298 điều khiển động cơ
2.5.1 Giới thiệu chung
2.5.2 Nguyên lý hoạt động
2.5.3 Đánh giá hoạt động
2.5.4 Kết luận
2.6 Module encoder 32 xung
2.6.1 Giới thiệu chung
2.6.2 Nguyên lý hoạt động
2.6.3 Đánh giá hoạt động
2.6.4 Kết luận
2.7 Công tắc hành trình
2.7.1 Giới thiệu chung
2.7.2 Nguyên lý hoạt động
2.7.3 Đánh giá hoạt động
2.7.4 Kết luận
2.8 Sơ đồ ghép nối các khối module
2.9 Kết luận chương
CHƯƠNG 3
LẬP TRÌNH CHO ROBOT
3.1 Giới thiệu chương
3.2 Phương pháp điều chế xung PWM
3.2.1 Giới thiệu về phương pháp
3.2.2 Ứng dụng phương pháp trong điều khiển tốc độ động cơ robot
3.2.3 Kết luận
3.3 Thuật toán PID
3.3.1 Giới thiệu về thuật toán
3.3.2 Áp dụng thuật toán PID để ổn định hướng đi cho robot
3.3.3 Sơ đồ thuật toán
3.3.4 Đánh giá thuật toán
3.3.5 Kết luận
3.4 Thuật toán di chuyển
3.4.1 Giới thiệu về thuật toán
3.4.2 Sơ đồ thuật toán
3.4.3 Đánh giá thuật toán
3.4.4 Kết luận
3.5 Thuật toán tránh vật cản
3.5.1 Giới thiệu về thuật toán
3.5.2 Sơ đồ thuật toán
3.5.3 Đánh giá thuật toán
3.5.4 Kết luận
3.6 Kết luận chương
CHƯƠNG 4
KẾT QUẢ VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA ROBOT
4.1 Giới thiệu chương
4.2 Kết quả đạt được và khảo sát
4.2.1 Phần cơ khí và mạch điều khiển
4.2.2 Phần lập trình
4.3 Nhận xét và đánh giá kết quả đạt được
4.3.1 Đánh giá về nguồn điện áp và dung lượng acquy
4.3.2 Tính hiệu quả
4.3.3 Giá thành của Robot
4.4 Kết luận chương
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
PHỤ LỤC
DIR |
DIRECT |
ĐIỀU HƯỚNG |
PWM |
PULSE WIDTH MODULATION |
ĐIỀU CHẾ ĐỘ RỘNG XUNG |
VĐK |
|
VI ĐIỀU KHIỂN |
DC |
DIRECT CURRENT |
DÒNG ĐIỆN MỘT CHIỀU |
ADC |
ANALOG TO DIGITAL CONVERTER |
BỘ CHUYỂN ĐỔI TƯƠNG TỰ SANG SỐ |
MCU |
MICROCONTROLLER UNIT |
BỘ VI ĐIỀU KHIỂN |
UART |
UNIVERSAL ASYNCHRONOUS RECEIVER/TRANSMITTER |
BỘ TRUYỀN NHẬN KHÔNG ĐỒNG BỘ |
I2C |
INTER-INTEGRATED CIRCUIT |
MỘT LOẠI GIAO TIẾP TRUYỀN THÔNG NỐI TIẾP ĐỒNG BỘ |
SPI |
SERIAL PERIPHERAL INTERFACE |
GIAO DIỆN NGOẠI VI NỐI TIẾP |
RAM |
RANDOM ACCESS MEMORY |
BỘ NHỚ TRUY CẬP NGẤU NHIÊN |
RISC |
REDUCED INSTRUCTIONS SET COMPUTER |
MÁY TÍNH VỚI TẬP LỆNH ĐƠN GIẢN HÓA |
IC |
INTEGRATED CIRCUIT |
MẠCH TÍCH HỢP |
PID |
PROPORTIONAL INTEGRAL DERIVATIVE |
BỘ ĐIỀU KHIỂN THEO CƠ CHẾ PHẢN HỒI VÒNG |
GPS |
GLOBAL POSITIONING SYSTEM |
HỆ THỐNG ĐỊNH VỊ TOÀN CẦU |
LỜI MỞ ĐẦU
Trong xã hội hiện đại ngày nay, khoa học kỹ thuật đang phát triển rất mạnh mẻ và đi cùng với đó là sự phát triển các sản phẩm ứng dụng của nó vào thực tế trong nhiều lĩnh vực như: y tế , giáo dục, nông nghiệp, sản phẩm dân dụng… Do đó, với mong muốn áp dụng kiến thức mà mình đã học được trong hơn bốn năm học ở giảng đường đại học , nhóm chúng tôi đã quyết định làm một sản phẩm mang tính ứng dụng vào đời sống thực tiễn của mỗi chúng ta. Sản phẩm đó là một chú robot lau nhà thông minh.
Robot lau nhà thông minh được thiết kế để có thể lau sàn nhà trong gia đình bằng khăn lau nhà microfiber cao cấp sử dụng sợi hình vòng khép kín độc đáo nhanh chóng lấy sạch mọi bụi bẩn trên sàn nhà, robot di chuyển theo hình ziczac thông minh dưới sự điều hướng của la bàn điện tử, kết hợp thuật toán điều khiển PID nhằm ổn định hướng đi cho robot. Đảm bảo robot có thể lau sạch toàn bộ khu vực trong ngôi nhà và tránh được các vật cản thông thường trong nhà bằng các cảm biến siêu âm và công tắc hành trình được gắn trên robot. Với việc sử dụng công nghệ hoàn toàn khác là sử dụng các cảm biến giá rẻ nhưng vẫn hiệu quả cao, sản phẩm hy vọng sẽ có đủ sức cạnh tranh cả về mặt giá lẫn chất lượng so với các sản phẩm robot của các hãng khác trên thị trường.
Đồ án được chia thành 4 chương :
· Chương 1 GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
· Chương 2 GIỚI THIỆU CÁC MODULE SỬ DỤNG TRONG ROBOT
· Chương 3 LẬP TRÌNH CHO ROBOT
· Chương 4 KẾT QUẢ VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA ROBOT
CHƯƠNG 1
GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu chương
Trong chương này, tôi giới thiệu sơ bộ về robot lau nhà thông minh, trong đó nội dung chính trình bày bao gồm: mô hình, sơ đồ khối và nguyên lý hoạt động của robot.
1.2 Tổng quan về Robot lau nhà
Robot làm sạch cho môi trường công cộng cũng như các hộ gia đình cá nhân dường như mang lại các bước đột phá mà các nhà thiết kế hệ thống robot phi công nghiệp đã mong đợi từ lâu. Khảo sát trong bài báo A Short History of Cleaning Robots [1] chọn ra 30 robot làm sạch khác nhau với sản phẩm phát triển trong vòng 15 năm trở lại đây và một vài trường hợp ngoại lệ. Khảo sát tập trung vào việc làm sạch sàn, đặc biệt là làm sạch sàn nhà. Khảo sát mô tả một loạt các loại robot lau và hút bụi được phát triển cho nhiệm vụ này. Kết quả là hầu như 30 sản phẩm robot nêu trên vẫn đạt đến trạng thái của sản phẩm thương mại, số lượng của chúng chắc chắn phản ánh kỳ vọng về giá trị kinh tế liên quan đến việc tự động hóa các nhiệm vụ làm sạch [1]. Ở châu Âu dự toán cho thị trường dịch vụ làm sạch lên tới 100 tỷ USD mỗi năm [1]. Do đó, không ngạc nhiên khi các ngành công nghiệp làm sạch và các nhà sản xuất thiết bị vệ sinh tích cực đầu tư vào sản phẩm này.
Có 2 sản phẩm làm sạch sàn nhà trên thị trường hiện nay đó là sản phẩm Robot lau nhà và Robot hút bụi. Hình 1.1 minh họa về 2 loại sản phẩm làm sạch sàn nhà trên thị trường.
Hình 1.1 Robot hút bụi của SAMSUNG và Robot lau nhà của iRobot
So với loại Robot hút bụi, Robot lau nhà có đặc điểm là lau nhà được sạch hơn do mọi bụi bẩn đều bám vào khăn lau, trong khi Robot hút bụi không được sạch hơn do bụi có thể bị khuếch tán xung quanh, ngoài ra Robot hút bụi khó có thể hút được bụi dính vào sàn nhà do lực hút bị hạn chế và gây ra tiếng ồn lớn do động cơ hút gây nên tạo cảm giác khó chịu cho người sử dụng [3].
Các loại Robot lau nhà hiện nay có những kỹ thuật dẫn đường cho Robot khác nhau. Có 2 hướng chính là sử dụng cảm biến và xử lý ảnh. Hướng xử lý ảnh lần đầu tiên được cấp cho nhà sáng chế Eric Richard Bartsch năm 2002 [5], ông sử dụng camera để quét trên trần nhà xử lý ảnh để tạo bản đồ di chuyển cho Robot. Hình 1.2 minh họa phương pháp trên được trích từ tài liệu tham khảo[5].
Hình 1.2 Robot sử dụng công nghệ xử lý ảnh để tạo bản đồ cho Robot
Tuy nhiên Robot sử dụng công nghệ xử lý ảnh như trên có nhược điểm là không thể hoạt động trong điều kiện thiếu ánh sáng nên dần dấn được các công ty chuyển sang sử dụng cảm biến để tạo bản đồ di chuyển cho Robot. Sản phẩm của iRobot sử dụng bản quyền công nghệ NorthStar® Navigation tạo lập bản đồ cho Robot [3]. Công nghệ này dựa trên hệ thống định vị GPS kết hợp cảm biến gyroscopes để dẫn đường cho Robot [6]. Và đơn giản hơn là sản phẩm Robot LTM-T290 của hãng XRobot chỉ di chuyển theo phương pháp ngẫu nhiên
Hình 1.3 Hình ảnh iRobot và Robot LTM-T290
Trên thị trường hiện nay có rất nhiều sản phẩm của các hãng lơn như LG, SAMSUNG, PHILIPS,...Tuy nhiên lại hướng đến sản phẩm Robot hút bụi. Theo trang 10TopTenREVIEWS so sánh và xếp hạng sản phẩm tốt nhất năm 2014, sản phẩm của hãng iRobot là sản phẩm duy nhất trên thị trường hiện nay phát triển theo hướng Robot lau nhà và đã được xếp hạng thứ 2 (Rankings #2) với các sản phẩm khác [2]. iRobot sử dụng bản quyền công nghệ NorthStar® Navigation tạo lập bản đồ để di chuyển [3], có một phương pháp nữa là di chuyển ngẫu nhiên thì hiệu quả không cao do bị trùng lặp đường đi và bỏ sót nhiều phần chưa được lau. Phương pháp này chỉ áp dụng cho các sản phẩm giá rẻ trên thị trương hiện nay. Hình 1.4 thể hiện sự đánh giá của giữa 2 phương pháp tạo bản đồ và di chuyển ngẫu nhiên [7].
Hình 1.4 So sánh tính hiệu quả phương pháp di chuyển của Robot [7]
Về kỹ thuật tránh vật cản, các Robot đều hoạt động theo nguyên tắc chung là sử dụng cảm biến siêu âm hoặc cảm biến hồng ngoại để đo khoảng cách từ Robot tới vật cản, qua đó tính toán xử lý và đưa ra thuật toán né tránh thích hợp.
Qua quá trình khảo sát và đánh giá các loại Robot có trên thị trường như trên, Chúng tôi thấy rằng, tuy có những tính năng nổi bật như vậy, nhưng Robot lau nhà của iRobot hay những hãng khác vẫn chưa được sử dụng phổ biến do giá thành của nó có thể nói là quá đắt (tầm 9à10 triệu VND), đặc biệt là nước có thu nhập thấp như Việt Nam. Vì vậy với mong muốn đưa sản phẩm Robot lau nhà phổ biến đến mọi gia đình, phù hợp với túi tiền người dân Việt Nam. Chúng tôi đã sử dụng những cảm biến giá rẻ kết hợp với thuật toán lập trình thông minh cho Robot để có được nhưng tính năng tương đương với sản phẩm của iRobot và thêm một vài cải tiến nhỏ khác, điều đó được thể hiện qua Bảng 1.1
Các tính năng |
Sản phẩm iRobot |
Sản phẩm Robot của đề tài |
Điều hướng cho Robot |
Sử dụng bản quyền công nghệ sử dụng GPS NorthStar® Navigation ( Giá 1.000.000 VND) |
Sử dụng Cảm biến từ trường GY-273 HMC5883L ( Giá 120.000 VND) |
Tránh vật cản + phát hiện bậc thang |
Sử dụng cảm biến hồng ngoại ( Giá 290.000 VND) |
Cảm biến siêu âm ( SRF-04) ( Giá 65.000 VND) |
Chống kẹt Robot |
Không có |
Sử dụng encoder để phát hiện Robot bị kẹt ( Giá 35.000 VND) |
Bảng 1.1 So sánh công nghệ sử dụng giữa 2 sản phẩm Robot lau nhà
Có thể thấy răng một đặc điểm quan trọng của đề tài nhằm giảm giá thành cao cho Robot là chúng tối sử dụng cảm biến từ trường GY-273 HMC5883L để xác định hướng đi, lập bản đồ cho Robot thay vì sử dụng công nghệ NorthStar® Navigation, hay xử lý ảnh đắt tiền.
1.3 Đề xuất thiết kế mô hình Robot lau nhà thông minh
Robot lau nhà thông minh được chúng tôi thiết kế với những tính năng chính sau
· Robot có thể làm sạch sàn nhà (lau khô) & lau ướt.
· Robot có cảm biến nên không ngã cầu thang, các bậc lên xuống hoặc gặp chướng ngại vật biết quay đầu lại, tránh được hầu hết vật cản trong nhà bằng các thuật toán thông minh.
· Robot lau theo hình ziczac đảm bảo lau tối đa diện tích sàn nhà.
Với các tính năng như trên, ta có thể thấy robot hoàn toàn có thể đảm bảo được yêu cầu tối thiểu để lau sạch một ngôi nhà mà không thua kém bất cứ một robot nào hiện có mặt trên thị trường. Do vậy, tính khả thi của đề tài này sẽ rất là cao, chúng tôi mong muốn sản phẩm sẽ dần hoàn thiện hơn và sớm đi vào thực tế để góp phần vào việc hổ trợ con người tiết kiệm thời gian và công sức trong cuộc sống hiện đại.
1.3.1 Mô hình robot
Version 1 |
Hình 1.5 Ảnh chụp cấu tao bên trong của robot phiên bản 1.
Chú thích :
1. Cảm biến 3 trục từ trường GY-273 HMC5883L.
2. Cảm biến siêu âm SRF-04.
3. 2 Động cơ.
4. Text LCD.
5. Mạch điều khiển động cơ.
6. Khăn lau nhà Microfiber
7. Acquy 12V
Qua ba phiên bản phát triển, robot cũng dần hoàn thiện và hoạt động ổn định hơn. Dưới đây là hai phiên bản phát triển sau của robot.
Version 2 |
Version 3 |
Hình 1.6 Phiên bản 2 và phiên bản 3 của robot
1.3.2 Sơ đồ khối của mạch điều khiển Robot
Hình 1.7 Sơ đồ khối của mạch điều khiển Robot
1.4 Nguyên lý hoạt động của Robot
Robot hoạt động dựa trên các cảm biến chính là cảm biến từ trường, cảm biến siêu âm, công tắc hành trình và encoder . Cảm biến từ trường dùng để định hướng cho robot, xác định hướng đi chính xác và thông minh nhất. Kết hợp cảm biến siêu âm, công tắc hành trình để phát hiện vật cản và những nơi chênh lệch độ cao . Encoder dùng để phát hiện robot dừng do bị trượt bánh hoặc bị mắc do các vật cản. Tất cả các cảm biến này sẽ gửi tín hiệu về hai chip vi xử lý chính MSP430G2553 để xử lý và đưa ra các thuật toán thích hợp. Một chip nhận tín hiệu từ cảm biến siêu âm để xử lý đưa ra mức logic (0 hoặc 1), một chip nhận tín hiệu từ các cảm biến còn lại đồng thời nhận tín hiệu của chíp thứ nhất, từ đó đưa ra các thuật toán điều khiển robot di chuyển và né tránh vật cản một cách thông minh nhất.
1.5 Kết luận chương
Như vậy, trong chương này tôi đã giới thiệu một cách tổng quan về robot. Qua đó ta có thể hiểu một cách sơ bộ nhất về cấu tạo cũng như nguyên lý hoạt động của robot. Trong chương tiếp theo tôi sẽ tiếp tục giới thiệu rõ hơn về phần lý thuyết của từng modul cũng như nguyên lý hoạt động của chúng .
CHƯƠNG 2
GIỚI THIỆU VỀ CÁC MODULE SỬ DỤNG TRONG ROBOT
2.1 Giới thiệu chương
Chương này sẽ giới thiệu về cấu tạo, nguyên lý hoạt động của các module được sử dụng trong robot. Các module được giới thiệu bao gồm: KIT launchpad Msp430G2553, cảm biến từ trường GY-273 HMC5883L, cảm biến siêu âm SRF04, mạch cầu H L298 điều khiển động cơ, encoder 32 xung, công tắc hành trình.
2.2 Giới thiệu KIT launchpad MSP430G2553
2.2.1 Giới thiệu chung
Đây là KIT phát triển về vi điều khiển của hãng Texas Instruments. Kit MSP430 LaunchPad phiên bản ver 1.5 sử dụng MCU MSP430G2553 (16MHz, 16Kb Flash, 512B SRAM, 2 Timer 16-bit, 8 kênh ADC 10-bit, giao tiếp (UART, I2C & SPI). Đây là MCU thuộc dòng Value Line của TI, tiết kiệm năng lượng, đầy đủ chức năng, giá rẻ, rất phù hợp với việc phát triển các ứng dụng trên KIT. Trên KIT có sẵn mạch Program/Debug nên tiện lợi cho việc nạp code vào chip.
Hình 2.1 KIT launchpad MSP430G2553
2.2.2 Đặc điểm chính của KIT lanchpad MSP430
KIT launchpad MSP430G2553 gồm 2 khối chính là khối mạch nạp và khối sử dụng cho ứng dụng của chip MSP430G2553 với các header nối từ các chân của chip MSP430G2553.
MSP430G2553 là vi điều khiển do Texas Instruments sản xuất có kiến trúc kiểu RISC 16 bit, có một số đặc điểm sau:
· Điện thế nguồn từ 1.8V – 3.6V
· Có 5 chế độ tiết kiệm năng lượng
· Có 2 bộ Timer_A 16bit với 3 chế độ Capture/Compare Register
· Tần số dao động lên đến 16MHz
· Có 1 bộ biến đổi ADC 10bit
· Tích hợp sẵn bộ so sánh
· Bộ nhớ: 16K flash, 512 Byte RAM
Hình 2.2 Sơ đồ chân của chip MSP430G2553
2.2.3 Đánh giá hoạt động
KIT launchpad MSP430G2553 hoạt động rất ổn định và chắc chắn. Đảm bảo được hoàn toàn các chức năng yêu cầu sử dụng cho Robot.
2.2.4 Kết luận
Việc sử dụng KIT launchpad MSP430G2553 vào đề tài giúp cho việc phát triển robot được dễ dàng hơn. Nhờ có các header nối từ chân chip MSP430G2553 ra nên có thể linh động thay đổi dễ dàng giữa các phương án. Vì vậy rất thích hợp để phát triển sản phẩm.
2.3 Cảm biến từ trường GY-273 HMC5883L
2.3.1 Giới thiệu chung
Hình 2.3 Module cảm biến từ trường GY-273 HMC5883L
HMC5883L là module được thiết kế để cảm biến từ trường thấp (low-field magnetic sensing) tự động khử từ, loại bỏ offset, sử dụng chuyển đổi ADC 12-bit cho phép độ chính xác cao với giao tiếp I2C thông dụng. HMCL5883L thường được ứng dụng trong Mobile Phone, Hệ thống tự động dẫn đường, thiết bị chỉ dẫn đường cá nhân.
2.3.2 Nguyên lý hoạt động
HMC5883L xuất ra dữ liệu 16 bit 3 trục X,Y,Z để tính độ lớn càm ứng từ của 3 trục, tính theo đơn vị Gauss. Dữ liệu được vi điều khiển đọc về qua giao tiếp I2C và được xử lý, xác định hướng đi thích hợp cho robot.
Hình 2.4 Mô tả 3 trục X, Y, Z của cảm biến từ trường
2.3.3 Đánh giá hoạt động
HMC5883L hoạt động ổn định trong môi trường ít nhiễu từ, thích hợp để sử dụng cho robot lau nhà ứng dụng trong gia đình. Tuy vẫn có lỗi khi gặp những vật dụng gây nhiễu từ tính như sắt, nam châm… nhưng đã có thể xử lý bằng thuật toán chống nhiễu.
2.3.4 Kết luận
Việc lựa chọn cảm biến từ trường để điều hướng cho robot ở những năm gần đây là một hướng mới với nhiều ưu điểm vượt trội so với các phương pháp thông thường như dò vạch, con quay hồi chuyển, xử lý ảnh… vì ít chịu sự ảnh hưởng bởi nhiễu từ bên ngoài. Áp dụng phương pháp này là lựa chọn khá hay, hoàn toàn phù hợp với đề tài.
2.4 Module cảm biến siêu âm SRF-04
2.4.1 Giới thiệu chung
Hình 2.5 Module SRF04
Module cảm biến siêu âm dùng để đo khoảng cách đến vật cản bằng sóng siêu âm. Module có 2 đầu thu và phát sóng, khoảng cách được xác định bằng cách đo khoảng thời gian mà sóng siêu âm được phát ra đến vật chắn rồi phản hồi về.
Sử dụng bằng cách truyền 1 xung vào chân trigger của module, sau đó chờ 1 xung trả về trên chân echo, đo khoảng thời gian từ lúc truyền cho đến lúc nhận, chia đôi rồi nhân với quãng đường cho ta khoảng cách đến vật cản cần đo.
• Nguồn: 5 VDC
• Dòng tiêu thụ tối đa: 2mA
• Góc đo hiệu quả: <15°
• Khoảng cách tối đa: 2cm – 300 cm
• Độ chính xác: 0.3 cm
Thông số một số loại cảm biến siêu âm SRF
Hình 2.6 Bảng thông số của cảm biến siêu âm SRF
*: Ước tính góc của hình nón cảm biến ở ½ cảm biến
**: Số vọng ghi lại bởi cảm biến. Đây là những tiếng vọng ghi từ đọc gần đây nhất, và được ghi đè mới bằng mỗi lần khác nhau.
A: Những cảm biến nhỏ hơn điển hình ( SRF05/04) kích thước.
B: Phạm vi thời gian có thể được điều chỉnh xuống bằng cách điều chỉnh được.
C: Cảm biến này cũng bao gồm một photocell ở mặt trước để phát hiện ánh sáng.
D: Hoạt động ở một tần số 235kHz cao hơn.
2.4.2 Nguyên lý hoạt động
Cảm biến siêu âm và nguyên tắc TOF ( Time Of Flight ): Sóng siêu âm được truyền đi trong không khí với vận tốc khoảng 343m/s. Nếu một cảm biến phát ra sóng siêu âm và thu về sóng phản xạ đồng thời, đo được khoảng thời gian từ lúc đi tới lúc thu về, thì máy tính có thể xác định được quãng đường mà sóng đã di chuyển trong không gian. Quãng đường di chuyển của sóng sẽ bằng 2 lần khoảng cách từ cảm biến tới chướng ngại vật sẽ được tính theo nguyên lý TOF: d = v* t/2.
Hình 2.7 Hình mô tả thời gian truyền và nhận sóng.
Chế độ hoạt động: Cảm biến sử dụng riêng chân kích hoạt và chân cảm biến. Giản đồ định thời SRF04 thể hiện rõ cho chế độ trên. Chỉ cần cung cấp một đoạn xung ngắn 10uS kích hoạt đầu vào để bắt đầu đo khoảng cách. Các SRF04 sẽ cho ra môt chu kỳ 8 burst của siêu âm ở 40kHz và tăng cao dòng phản hồi của nó. Sau đó chờ phản hồi, và ngay sau khi phát hiện nó giảm các dòng phản hồi lại. Dòng phản hồi là một xung có chiều rộng tỷ lệ với khoảng đến đối tượng. Bằng cách đo xung, ta hoàn toàn có thể để tính toán khoảng cách theo inch/cm hoặc đơn vị đo khác. Nếu không phát hiện gì thì SRF04 giảm thấp hơn dòng phản hồi của nó sau khoảng 30mS.
SRF04 có thể được kích hoạt nhanh chóng với mỗi 50mS, hoặc 20 lần mỗi giây. Nên chờ 50ms trước khi kích hoạt kế tiếp, ngay cả khi SRF04 phát hiện một đối tượng gần và xung phản hồi ngắn hơn.
Hình 2.8 Giản đồ hoạt động của SRF04
2.4.3 Đánh giá hoạt động
Cảm biến hoạt động tương đối chính xác ở khoảng cách 2cm- 300cm. Tuy nhiên, góc mở tối đa của cảm biến là 1m chiều rộng từ bên này sang bên kia nên cảm biến rất nhạy với các vật cản ta không mong muốn. Vì vậy để tránh điều này thì việc lập trình sẽ trở nên khó khăn, tuy nhiên ta hoàn toàn có thể khắc phục được điều này nếu đưa ra thuật toán lập trình tốt.
2.4.4 Kết luận
Trong đồ án này, ta kiểm tra vật cản chỉ ở khoảng cách gần nên việc sử dụng cảm biến SRF04 là hoàn toàn phù hợp vì ở khoảng cách này góc mở của cảm biến nhỏ, giá thành của cảm biến cũng tương đối rẻ so với cảm biến có chức năng tương tự.
2.5 Module mạch cầu H L298 điều khiển động cơ
2.5.1 Giới thiệu chung
Module điều khiển động cơ bước/ động cơ DC – L298 có hai ngõ ra điều khiển được tốc độ nhờ điều xung PWM và chiều quay của hai động cơ bước / DC
Hình 2.9 Module mạch cầu H L298
Tham số sản phẩm:
· Sử dụng L298N gồm 2 cầu H điều khiển động cơ DC.
· Điện áp cung cấp: +5 V đến +35 V.
· Dòng điện tối đa: 2A
· Dòng tiêu thụ : 0 ~ 36mA
· Tín hiệu điều khiển điện áp đầu vào khoảng:
Mức độ thấp:-0.3V ≤ Vin ≤ 1.5V
Cao: 2.3V ≤ Vin ≤ VSS
· Cho phép phạm vi tín hiệu điện áp đầu vào:
Mức độ thấp: - 0,3 ≤ Vin ≤ 1,5 V (tín hiệu điều khiển là không hợp lệ)
Cao: 2.3V ≤ Vin ≤ VSS (tín hiệu điều khiển)
· Điện năng tiêu thụ tối đa: 20W (nhiệt độ T = 75 ° C)
· Nhiệt độ hoạt động: -25 ℃ ~ 130 ℃
· Kích thước: 55mm * 49mm * 33mm
· Trọng lượng: 33g
2.5.2 Nguyên lý hoạt động
Mạch hoạt động nhờ IC điều khiển chính là ICL298, ICL298 cấu tạo gồm hai mạch cầu H điều khiển cho hai động cơ. Tín hiệu từ VĐK gửi đến để điều khiển cho một mạch cầu H gồm Direct để điều khiển chiều động cơ và PWM để điều khiển tốc độ động cơ.
Hình 2.10 Sơ đồ nguyên lý module mạch cầu H L298.
Phân tích sơ đồ mạch:
· U1 là IC L298
Các cặp chân In1, In2 và In3, In4 lần lượt điều khiển 4 BJT thuộc nhóm A và B thông qua các cặp cổng AND 1,2 và 3,4. Các chân EnA và EnB được nối nối với mức cao 5V. Các ngõ Out1, Out2 được gắn với động cơ thứ nhất; Out3, Out4 được gắn với động cơ thứ hai. Như vậy, hai chân được In1, In2 nối với vi điều khiển, trong đó một chân sẽ nhận xung điều chế PWM từ vi điều khiển thay đổi tốc độ động cơ , chân còn lại khi ta thay đổi mức logic thì sẽ đảo chiều động cơ. Tương tự cho hai chân In3, In4.
Hình 2.11 Sơ đồ nguyên lý IC L298.
· Các Diode D1 D2 D3 D4 D9 D10 D11 D12 dùng để chống dòng xả ngược từ do động cơ sinh ra về nguồn, gây ảnh hưởng xấu đến nguồn.
· Led D5 D6 D7 D8 dùng để báo chiều quay của động cơ.
· R1 R2 hạn dòng cho các Led.
· Lm 7805 cung cấp nguồn 5V cho IC L298.
2.5.3 Đánh giá hoạt động
Mạch hoạt động trong phạm vi công suất nhỏ (<70W), ít xảy ra sự cố . Tuy nhiên nút bấm swich dễ hỏng.
2.5.4 Kết luận
Động cơ ta chọn là động cơ DC 12W nên việc chọn modul này để điều khiển là hoàn toàn phù hợp. Hơn nữa mạch thiết kế nhỏ gọn, bền nên thuận tiện cho việc lắp ráp với robot và modul có khả năng chịu đựng được sốc khi robot di chuyển.
2.6 Module encoder 32 xung
2.6.1 Giới thiệu chung
Thông số kỹ thuật của encoder
· 32 Xung, 2 kênh A,B lệch pha góc 90º
· Điện áp 5V
· Dòng 20mA
Hình 2.12 Module encoder 32 xung
Module encoder thương được sử dụng để ổn định tốc độ động cơ, xác định số vòng quay của bánh xe…Trong sản phầm của đề tài, encoder được sử dụng để xác đinh tình trạng chuyển động của robot.
2.6.2 Nguyên lý hoạt động
Encoder sử dụng một nguồn phát quang là tia hồng ngoại – infrared, 2 transistor quang cho 2 kênh như sơ đồ mạch ở Hình 2.12. Khi đĩa encoder ở khoảng trống thì lúc này tia hồng ngoại được chiếu vào transistor quang làm cho transistor dẫn bão hòa, lúc này ở kênh A hay kênh B. Hai transistor quang Q1, Q2 được đặt ở vị trí để 2 kênh A, B lệch pha nhau 1 góc 90º.
Hình 2.13 Sơ đồ mạch nguyên lý của encoder
Hình 2.14 thể hiện sự bộ trí của 2 cảm biến kênh A và B lệch pha nhau. Khi cảm biến A bắt đầu bị che thì cảm biến B hoàn toàn nhận được hồng ngoại xuyên qua, và ngược lại hình dưới của Hình 2.14 là dạng xung ngõ ra trên 2 kênh. Xét trường hợp trục quay cùng chiều kim đồng hồ, tín hiệu “đi” từ trái sang phải. Bạn hãy quan sát lúc tín hiệu A chuyển từ mức cao xuống thấp (cạnh xuống) thì kênh B đang ở mức thấp. Ngược lại, nếu động cơ quay ngược chiều kim đồng hồ, tín hiệu “đi” từ phải qua trái. Lúc này, tại cạnh xuống của kênh A thì kênh B đang ở mức cao. Như vậy, bằng cách phối hợp 2 kênh A và B chúng ta biêt được chiều quay của động cơ (thông qua mức của kênh B ở cạnh xuống của kênh A).
Hình 2.14 Hai kênh A và B lệch pha 90º trong encoder
Vì ứng dụng trong sản phẩm của đề tài chỉ để phát hiện có chuyển động hay không nên ta chỉ sử dụng 1 trong 2 kênh A, B để phát hiện có hay không chuyển động của Robot.
2.6.3 Đánh giá hoạt động
Encoder hoạt động với 32 xung như vậy để xác định chuyển động qua thử nghiệm chúng tôi thấy rằng nó dễ gây ra hoạt động không chính xác khi robot dừng lại nhưng bị rung, để phát hiện được chuyển động hay không chúng tôi đã giảm số xung của cảm biến từ 32 xung thành 2 xung bằng cách dán màu đen các khe hở của đĩa encoder lại và chỉ để lại 2 khe hở tương ứng với 2 xung. Vì như vậy sẽ giúp việc phát hiện chuyển động chính xác hơn rất nhiều so với việc sử dụng 32 xung như ban đầu.
2.6.4 Kết luận
Với việc chế tạo lại encoder 32 xung có trên thị trường thành encoder 2 xung, việc phát hiện chuyển động trở nên chính xác hơn rất nhiều và hầu như không xảy ra lỗi nào.
2.7 Công tắc hành trình
2.7.1 Giới thiệu chung
Hình 2.15 Công tắc hành trình
Công tắt hành trình có chức năng đóng mở mạch điện, và nó được đặt trên đường hoạt động của một cơ cấu nào đó sao cho khi cơ cấu đến 1 vị trí nào đó sẽ tác động lên công tắc. Hành trình có thể là tịnh tiến hoặc quay.
2.7.2 Nguyên lý hoạt động
Khi công tắc hành trình được tác động thì nó sẽ làm đóng hoặc ngắt một mạch điện do đó có thể ngắt hoặc khởi động cho một thiết bị khác. Người ta có thể dùng công tắc hành trình vào các mục đích như:
Giới hạn hành trình ( khi cơ cấu đến vị trí dới hạn tác động vào công tắc sẽ làm ngắt nguồn cung cấp cho cơ cấu -> nó không thể vượt qua vị trí giới hạn)
Hành trình tự động: Kết hợp với các role, PLC hay VĐK để khi cơ cấu đến vị trí định trước sẽ tác động cho các cơ cấu khác hoạt động (hoặc chính cơ cấu đó).
2.7.3 Đánh giá hoạt động
Chịu đựng tốt các va chạm, bền, hoạt động chính xác, đơn giản và hiệu quả.
2.7.4 Kết luận
Dựa vào các đặc điểm thuận lợi, nhóm đã quyết định sử dụng công tắc hành trình để phát hiện vật cản khi đặt nó trước mũi robot. Công tắc hoạt động hiệu quả và có độ chính xác cao.
2.8 Sơ đồ ghép nối các khối module
Các module cảm biến từ các vị trí của Robot được nối về 2 chip VĐK để xử lý thông qua các bus nối được mô tả ở Hình 2.16.
Hình 2.16 Sơ đồ ghép nối các khối module
2.9 Kết luận chương
Qua những phần giới thiệu về các module sử dụng trong Robot chúng ta đã có thể hiểu cơ bản về nguyên lý và cách thức hoạt động của các module được sử dụng trong Robot. Qua đó tạo tiền đề cho việc lập trình, sử dụng các module này một cách hiểu quả và chính xác nhất.
CHƯƠNG 3
LẬP TRÌNH CHO ROBOT
3.1 Giới thiệu chương
Bất cứ một thiết bị điện tử thông minh nào thì lập trình cho chíp VĐK trung tâm là phần rất quan trọng. Vì điều đó sẽ quyết định đến độ ổn định cũng như khả năng xử lí các tình huống xấu của thiết bị khi thực hiện một nhiệm vụ nào dó. Trong chương này tôi sẽ giới thiệu về các phương pháp cũng như các thuật toán được sử dụng để lập trình cho robot, qua đó ta sẽ hiểu kỹ hơn về cách mà robot di chuyển và thoát khỏi các chướng ngại vật.
3.2 Phương pháp điều chế xung PWM
3.2.1 Giới thiệu về phương pháp
Điều chế 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 đếm sự thay đổi điện áp ra. Ta 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 ổn định tốc độ động cơ.
Hình 3.1 Hình biểu diễn phương pháp điều chế xung PWM
Với một chu kỳ cố định trước, khi ta thay đổi độ rộng xung ở mức cao thì điện áp ra trung bình sẽ tăng lên theo. Hình 3.1 đã thể hiện rõ điều này
3.2.2 Ứng dụng phương pháp trong điều khiển tốc độ động cơ robot
Robot di chuyển nhờ hai động cơ được gắn với bánh xe có hộp giảm tốc. Mỗi động cơ được điều khiển tốc độ nhờ chân PWM, và hướng nhờ chân DIR được xuất ra từ VĐK thông qua mạch cầu H. Trong đồ án này tôi chọn chân P2.1 và P2.2 lần lượt là PWM và DIR cho bánh trái, chân P2.4 và P2.3 lần lượt là PWM và DIR cho bánh phải. Tần số PWM được chọn là 1KHz. Hai chân DIR cho mỗi bánh được thiết lập mức 1 là tiến, 0 là lùi.
3.2.3 Kết luận
Như vậy, với việc áp dụng phương pháp PWM trong điều khiển động cơ, ta dễ dàng điều khiển được hướng và tốc độ động cơ thông qua hai chân của VĐK. Điều này là rất thuận tiện và chính xác khi kết hợp với thuật toán PID sẽ được giới thiệu dưới đây.
3.3 Thuật toán PID
3.3.1 Giới thiệu về thuật toán
Thuật toán PID (Proportional Integral Derivative) là một trong những thuật toán quan trọng của đề tài, PID giúp cho hướng đi của robot ổn định hơn, đây cũng là mục tiêu quan trọng của đề tài đặt ra.
Một bộ điều khiển vi tích phân tỉ lệ (bộ điều khiển PID- Proportional Integral Derivative) là một cơ chế phản hồi vòng điều khiển (bộ điều khiển) tổng quát được sử dụng rộng rãi trong các hệ thống điều khiển công nghiệp – bộ điều khiển PID được sử dụng phổ biến nhất trong số các bộ điều khiển phản hồi. Một bộ điều khiển PID tính toán một giá trị "sai số" là hiệu số giữa giá trị đo thông số biến đổi và giá trị đặt mong muốn. Bộ điều khiển sẽ thực hiện giảm tối đa sai số bằng cách điều chỉnh giá trị điều khiển đầu vào. Trong trường hợp không có kiến thức cơ bản về quá trình, bộ điều khiển PID là bộ điều khiển tốt nhất. Tuy nhiên, để đạt được kết quả tốt nhất, các thông số PID sử dụng trong tính toán phải điều chỉnh theo tính chất của hệ thống-trong khi kiểu điều khiển là giống nhau, các thông số phải phụ thuộc vào đặc thù của hệ thống.
Hình 3.2
(3.1)
Để vi điều khiển có thể thực hiện được ta tiến hành rời rạc hóa bộ điều khiển PID.
Khâu tích phân được rời rạc hóa với thời gian lấy mẫu là như sau:
(3.2)
Khâu vi phân được rời rạc bằng sai phân hữu hạn lùi:
(3.3)
Từ đây ta xây dựng được đoạn chương trình của bộ điều khiển PID như sau:
Trong đó:
Setpoint: giá trị ban đầu cần ổn định
Output: giá trị đầu ra
dt :thời gian lấy mẫu
Kp, Ki, Kd: các hệ số PID
3.3.2 Áp dụng thuật toán PID để ổn định hướng đi cho robot
Việc áp dụng thuật toán PID để ổn định hướng đi cho robot được mô tả ở Hình 3.3 và Hình 3.4. Chúng ta có thể thấy với việc sử dụng thuật toán PID thì hướng đi của robot sẽ được ổn định hơn, bám sát với hướng cần đi hơn so với việc không dùng thuật toán PID.
Hình 3.3 Đường đi robot khi chưa dùng thuật toán PID
Hình 3.4 Đường đi robot khi dùng thuật toán PID
3.3.3 Sơ đồ thuật toán
Hình 3.5 Sơ đồ thuật toán PID.
3.3.4 Đánh giá thuật toán
Bộ điều khiển PID hoạt động tốt trong ứng dụng của đề tài .Vì không yêu cầu vận tốc cao nên việc tối ưu các thông số cho PID đạt được mức tối ưu cao, vì vậy ổn định được hướng đi tốt cho robot tạo tiền đề cho việc xử lý các tình huống vật cản của robot được tốt hơn.
3.3.5 Kết luận
Nhờ có thuật toán PID nên robot đã di chuyển theo hướng ổn định hơn rất nhiều vì vậy việc di chuyển theo hình zizac để quét toàn bộ sàn nhà được chính xác hơn.
3.4 Thuật toán di chuyển
3.4.1 Giới thiệu về thuật toán
Hình 3.6 Sơ đồ di chuyển cua robot khi lau nhà.
Có nhiều thuật toán di chuyển như xoắn ốc, ngẫu nhiên, ziczac… thì ziczac được sử dụng trong đề tài này vì ưu điểm là sẽ tối ưu được diện tích sàn nhà được lau. Tuy nhiên cần phải có được thuật toán PID tốt để robot có thể di chuyển theo hướng ổn định nhất.
Ở lần lau đi robot có thể bỏ sót ở 1 bên của vật cản, nhưng ở lần lau về thì nó sẽ được robot lau. Vì vậy vẫn đảm bảo được diện tích được lau cao.
3.4.2 Sơ đồ thuật toán
Hình 3.7 Sơ đồ thuật toán di chuyển của robot.
3.4.3 Đánh giá thuật toán
Thuật toán di chuyển hoạt động khá hiệu quả và ổn định, diện tích sàn được lau cao. Tuy nhiên cần phải tăng thêm số cảm biến siêu âm để tăng diện tích sàn được lau lên cao hơn nữa.
3.4.4 Kết luận
Di chuyển theo hình zizac đảm bảo được diện tích sàn nhà lau được là tối đa nhất, đồng thời còn tránh sự trùng lặp. Hơn nữa việc lựa chọn cảm biến từ trường để xác định hướng đi cũng rất thích hợp cho thuật toán di chuyển này.
3.5 Thuật toán tránh vật cản
3.5.1 Giới thiệu về thuật toán
Để robot có thể phản ứng linh hoạt khi gặp vật cản thì chúng tôi đã sử dụng nhiều loại cảm biến như: cảm biến siêu âm SRF04, Encoder, công tắc hành trình, cảm biến từ trường. Với việc sử dụng các cảm biến này thì robot có thể dễ dàng phát hiện các trường hợp xấu mà robot gặp phải và xử lí chúng một cách hiệu quả nhất.
3.5.2 Sơ đồ thuật toán
3.5.2.1 Cảm biến siêu âm SRF04
Sử dụng ba cảm biến siêu âm SRF04 để xác định khoảng cách. Cảm biến thứ nhất đặt ở giữa và hướng xuống dưới giúp robot tránh bị rơi xuống cầu thang hay những nơi có sự chênh lệch độ cao. Hai cảm biến còn lại đặt hai bên giúp robot tránh vật cản khi quay đầu.
Để xác định khoảng cách ta cài đặt:
· Chế độ capture sườn lên và sườn xuống .
· Cho chân VĐK nối với chân Echo của cảm biến SRF04.
· Cho phép ngắt đối với chân VĐK nối với chân Echo này.
· Tạo 1 xung 20 us từ một chân khác của VĐK nối với chân Triger của SRF05, xung này có tác dụng kích cho SRF05 phát ra 8 xung có tần số là 40Khz
· Kể từ lúc phát xung, chân Echo được kéo lên mức cao. Sau khi nhận xung phản hồi về, Echo kéo xuống mức thấp lại.
· Lúc này ta sẽ capture lại được hai giá tri của thanh ghi đếm tại thời điểm xung lên và xung xuống.
(3.4) |
Trong đó:
· khoangcach là khoảng cách ta tính được .
· sau là giá trị thanh ghi đếm tại thời điểm sườn xuống của chân Echo.
· truoc là giá trị thanh ghi đếm tại thời điểm sườn lên của chân Echo .
· V là vận tốc truyền âm trong không khí 344m/s
· là tần số SMCLK của VĐK (ta chọn bằng 1MHz).
(3.5) |
Sơ đồ thuật toán
Hình 3.8 Sơ đồ thuật toán cảm biến siêu âm SRF04.
3.5.2.2 Công tắc hành trình
Công tắc hành trình được đặt ở mũi robot, khi robot va chạm với vật cản công tắc hành trình sẽ được kích hoạt thông qua môt cơ cấu phần cứng. Lúc này, tín hiệu sẽ được truyền đến VĐK xử lý đưa ra thuật toán né tránh.
Sơ đồ thuật toán
Chú thích: CTHT: công tắc hành trình.
Hình 3.9 Sơ đồ thuật toán công tắc hành trình.
3.5.2.3 Encoder
Khi robot di chuyển thì có thể xảy ra các trường hợp xấu làm cho robot ngưng chuyển động như trượt bánh, mắc kẹt. Khi đó, encoder có gắn bánh xe tiếp xúc trực tiếp với mặt sàn sẽ ngưng chuyển động, lúc này sẽ không có xung từ encoder đưa về vi điều khiển. Vi điều khiển sẽ kiểm tra , điều khiển robot đổi hướng để thoát khỏi tình huống xấu này. Chân tín hiệu của encoder được nối với P1.5 của VĐK.
Sơ đồ thuật toán
Hình 3.10 Sơ đồ thuật toán encoder.
3.5.3 Đánh giá thuật toán
Sau khi lập trình đúng theo các lưu đồ thuật toán. VĐK điều khiển robot di chuyển né tránh được vật cản như mong muốn và ít xảy ra lỗi.
3.5.4 Kết luận
Các thuật toán lập trình cho robot hoạt động tương đối hiệu quả. Tuy nhiên, trong thực tế thì luôn xảy ra nhiễu không mong muốn, do đó ta cần phải lập trình thêm các thuật toán chống nhiễu để robot hoạt động một cách ổn định nhất.
3.6 Kết luận chương
Qua việc giới thiệu các thuật toán lập trình cho Robot, chúng ta đã hiểu được sâu hơn về cách hoạt động và nhưng tính năng của Robot lau nhà thông minh mà đề tài có được.
CHƯƠNG 4
KẾT QUẢ VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA ROBOT
4.1 Giới thiệu chương
Trong các chương trước, chúng ta đã nắm được lý thuyết cơ bản và các thuật toán của Robot được trình bày kỹ. Trong chương này tôi đi sâu vào trình bày các kết quả đạt được cũng như những đánh giá hoạt động của robot. Qua đó, ta có thể xác định được tính khả thi của đề tài. Điều này rất quan trọng bởi vì khoa học kỹ thuật được áp dụng vào thực tế thì mới có ý nghĩa.
4.2 Kết quả đạt được và khảo sát
4.2.1 Phần cơ khí và mạch điều khiển
4.2.1.1 Phần cơ khí
Vì đây mới chỉ là phiên bản thử nghiệm nên nhóm đã quyết định chọn ván ép để làm phần cơ khí chính cho robot, các phần được gắn kết với nhau bằng ốc vít. Robot có hai bánh xe sau điều hướng và một bánh đa hướng ở giữa, với thiết kế này robot có thể di chuyển linh hoạt trên sàn nhà gạch men. Robot có kích thước cơ bản là 30x30cm, cao 8cm, các cạch được bo tròn.
Ưu điểm:
· Giá thành rẻ, dễ thi công.
· Robot có thể di chuyển linh hoạt vào những nơi nhỏ hẹp và lau chùi một cách hiệu quả sàn nhà.
Nhược điểm:
· Độ bền chưa cao, dễ cong vênh.
Trong tương lai, nếu sản phẩm được sản xuất công nghiệp thì sẽ được thay thế vật liệu bền hơn như nhựa, composite…
4.2.1.2 Phần mạch điều khiển
Các module mạch điều khiển chính gồm: 2 KIT Launchpad của hãng Texas Instruments, 1 module điều khiển động cơ . Các mạch này được sản xuất công nghiệp nên có độ bền và tính ổn định cao. Ngoài ra, các khối module này còn được kết nối với nhau qua các bus nên việc phát triển là rất thuận lợi.
4.2.2 Phần lập trình
4.2.2.1 Điều hướng cho Robot
Hướng đi của robot ổn định, tuy nhiên khi gặp những vật cản có từ tính, hướng đi có thể bị sai lệch nhưng do sử dụng thuật toán chống nhiễu, nên robot sẽ đi lại hướng ổn định như bình thường sau khi đi qua vật cản đó.
4.2.2.2 Tránh vật cản cho Robot
Robot tránh được hầu hết các vật cản thường gặp trong gia đình. Ngoài ra, việc sử dụng encoder để phát hiện chuyển động của robot giúp giải quyết được vấn đề robot bị trượt bánh và bị dừng khi gặp vật cản. Từ Bảng 4.1 ta có thể thấy khi vào có những trường hợp Robot đi vào khe hẹp khiến Robot không thể quay đầu được. Để khắc phục được tình trạng này, chúng ta cần tránh có những khe hẹp khiến Robot khi lọt vào không thể quay đầu lại trong gia đình.
Các vật cản Robot tránh được |
Số lần robot bị ngưng hoạt động |
Tường, cạnh bàn, ghế |
0 |
Gầm giường, Gầm tủ |
0 |
Gầm bàn + ghế xung quanh |
1 |
Khe hẹp |
10 |
Bậc thang |
1 |
Bảng 4.1 Kết quả robot tránh các vật cản qua 30 lần hoạt động.
4.3 Nhận xét và đánh giá kết quả đạt được
4.3.1 Đánh giá về nguồn điện áp và dung lượng acquy
Nguồn sử dụng là Acquy GS GTZ4V 12V, 3Ah. Nguồn nuôi cho vi điều khiển được cung cấp nhờ IC ổn áp LM7805 có mạch nâng dòng nên hoạt động rất ổn định. Qua thử nghiệm thực tế thì robot có thể hoạt động ổn định trong 3 giờ liên tục. Bảng 4.5 mô tả thời gian hoạt động ổn định của robot qua các lần nạp xả Acquy.
Số lần nạp, xả acquy |
Thời gian hoạt động bình thườngcủa Robot |
1à5 |
3h |
6à10 |
3h |
11à15 |
2,95h |
16à20 |
2,9h |
21à25 |
2,9h |
Bảng 4.5 Thời gian hoạt động ổn định của robot qua các lần nạp xả Acquy
4.3.2 Tính hiệu quả
Hoạt động tương đối hiệu quả trong môi trường ít vật cản. Tùy vào những khu vực có ít hay nhiều vật cản mà diện tích sàn được lau sẽ khác nhau, kết quả được ghi lại qua 30 lần chạy thử nghiệm ở các khu vực trong nhà cụ thể được mô tả ở Bảng 4.3
Khu vực lau |
Diện tích sàn được lau sạch |
Hành lang |
90% |
Nhà Bếp |
70% |
Phòng khách |
80% |
Phòng ngủ |
85% |
Bảng 4.3 Diện tích sàn nhà được lau ở các khu vực trong gia đình
4.3.3 Giá thành của Robot
Với việc thiết kế con robot lau nhà thông minh này, điều kiện không thể thiếu để thành công là tính thương mại của nó. Giá thành để chế tạo ra con robot này được chúng tôi liệt kê ở bảng sau . So với những con robot lau nhà khác trên thị trường với giá từ 8 triệu đến 10 triệu với những tính năng tương đương có thể thấy được sản phẩm ra thị trường sẽ có được sự cạnh tranh cao.
Linh kiện |
Số lượng |
Giá(VND) |
Động cơ |
2 |
80.000 |
Bánh xe sau |
2 |
70.000 |
Bánh xe đa hướng trước |
1 |
5.000 |
Acquy |
1 |
240.000 |
Ốc vít |
|
20.000 |
Khăn lau nhà |
1 |
40.000 |
Chip Msp430g2553 |
2 |
50.000 |
Dây bus |
|
20.000 |
Ván ép |
1 m2 |
20.000 |
IC lm7805+dây+tụ |
1 |
10.000 |
Động cơ có encoder |
1 |
40.000 |
Cảm biến từ trường |
2 |
300.000 |
Cảm biến siêu âm SRF04 |
3 |
210.000 |
Module DCL298N1 |
1 |
140.000 |
Tổng cộng |
|
1.142.000 |
Bảng 4.4 Chi phí làm robot
4.4 Kết luận chương
Qua những kết quả và đánh giá trên, chúng ta đã thấy được phần nào sự thành công của đề tài, đề tài đã đạt được những kết quả như yêu cầu đặt ra. Tuy nhiên qua việc đánh giá chúng tôi cần có khắc phục những nhược điểm và phát triển sản phẩm ngày một hoàn thiện hơn.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
Trong đề tài này chúng tôi đã thiết kế và chế tạo được sản phẩm robot lau nhà thông minh, qua những thử nghiệm thực tế chúng tôi đã có những sửa chữa để ngày càng hoàn thiện sản phẩm, sản phẩm cũng đã trải qua 2 phiên bản thử nghiệm trước đó. Chúng tôi tin rằng nếu được sản xuất với số lượng lớn, sản phẩm sẽ được thiết kế đẹp hơn, ổn định hơn, đủ sức cạnh tranh với các sản phẩm của nước ngoài. Hơn thế nữa một sản phẩm mang thương hiệu “made in Viet Nam” cũng sẽ là một niềm tự hào lớn cho chúng ta.
Hướng phát triển đề tài trong tương lai là phát triển ứng dụng sản phẩm rộng hơn như tăng kích thước của robot để ứng dụng trong việc lau những nơi có diện tích rộng lớn như nhà hàng, siêu thị, khách sạn…, thiết kế chống nước để có thể sử dụng để lau chùi trong môi trường có nước như bể bơi, hồ cá…
TÀI LIỆU THAM KHẢO
[1] Erwin Prassler, Arno Ritter, Christoph Schaeffer, Paolo Fiorini, “A Short History of Cleaning Robots”, 2000-12-01
[2] Robot Vacuum Review and Comparisons 2014 Best, http://robot-vacuum-review.toptenreviews.com/
[3] The Best Robot Floor Cleaners, http://gizmodo.com/5853095/which-robot-maid-will-clean-your-floors-the-best
[4] iRobot Braava™ Floor Mopping Robot, http://www.irobot.com
[5] Eric Richard Bartsch, The Procter & Gamble Company, “Home cleaning robot”, 2002-10-01
[6] Robotics, Automation and Mechatronics (RAM), 2011 IEEE Conference on
[7] Automatic Robot Vacuum Neato XV-25, http://www.generationrobots.com/en/400928-automatic-robot-vacuum-neato-xv-25.html
[8] PID controller, http://en.wikipedia.org/wiki/PID_controller
[9] Texas Instruments (2010) TI Educational Products - MSP-EXP430G2 LaunchPad Tài liệu tham khảo 3.
[10] John H. Davies (September 4, 2008 ) MSP430 Microcontroller Basics
[11] Michael Margolis (Oct 23, 2012), Make an Arduino-Controlled Robot, http://makezine.com/2012/10/23/arduino-controlled-Robots-webcast-with-author-michael-margolis/webcast-with-author-michael-margolis/
[12] Texas Instruments, “MSP430x2xx Family User’s Guide”, January 2010.
[13] SRF04 Technical Documentation - Robot Electronics, http://www.Robot-electronics.co.uk/htm/srf04tech.htm
[14] Applications of magnetic position sensors - Honeywell, http://aerospace.honeywell.com/~/media/UWSAero/common/documents/Applications-of-Magnetic-Position-Sensors.pdf
Chương trình cho MSP430G2553. Hàm main.c
//*********************************************************************//
// FINAL PROJECT
// Description:
// Project Name : Smart cleaner Robot
// Note : // Neu error heading_new > heading_old
// Neu error >=0 --> heading_new < heading_old
// la ban so quay ve ben phia banh trai --> tang heading--> error <0
// la ban so quay ve ben phai banh phai --> giam heading--> error >0
// Created day : 28/02/2014 By : VAN LIC+ BA TUE
// Last fixed : 23/04/2014 By : VAN LIC+ BA TUE
//*********************************************************************
// Define
#include "msp430g2553.h"
#include "I2C.h"
#include "UART.h"
#include "compass.h"
#include "PID.h"
#include "math.h"
#include "GLCD.h"
#include "PWM.h"
#include "SRF05.h"
#define L_speed 5000
#define R_speed 5000
#define xoay 8000
#define lui 8000
//******************************************************************
// Varible
int current_value=0,setpoint=0,heading_error=0,bak=0,set=0;
int temp=1;
double hold=0;
int dir=1;
int i=0;
int offset=0;
char sensor1=0;
int sensor2=0;
unsigned int stop=1,dem=1,dem1=0;
int SCL1=BIT2;
int SDA1=BIT3;
void stop_enable(void)
{ if(stop==0)
{
PWM_LEFT(lui,0);
PWM_RIGHT(lui,0);
__delay_cycles(4000000);
stop=1;
}
}
void stop_enable_1(void)
{ if(stop==0)
{
PWM_LEFT(0,0);
PWM_RIGHT(lui,0);
__delay_cycles(1500000);
PWM_LEFT(lui,1);
PWM_RIGHT(0,0);
__delay_cycles(1500000);
stop=1;
}
}
//******************************************************************
main()
{
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 = CALBC1_16MHZ;
DCOCTL = CALDCO_16MHZ;
BCSCTL3 |= LFXT1S_2;
// Set P2.6 P2.7 in_output
P2SEL &=~(BIT6+BIT7);
P2SEL2 &=~(BIT6+BIT7);
//======================
P1DIR &=~(BIT0+BIT1); // Set input SRF04 trai, phai. trai-->P1.0,phai-->P1.1
P1OUT |= (BIT0+BIT1);
// P1DIR &=~BIT4 ; // set input cho encoder
P2DIR &=~(BIT6+BIT7); // Set input SRF04 giua va cong tac hanh trinh. SRF04 giua --> P2.6, cong tac hanh trinh P2.7
P2OUT |= (BIT6+BIT7); // set pullup resistor
P2REN |= BIT6; // Set internal pullup/pulldown resistor
P2IE |= BIT6+BIT7; // Interrupt Enable in P2.6
P2IES |= BIT6+BIT7 ; // P2.6 Interrupt flag high-to-low transition
P2IFG &= ~(BIT6+BIT7); // P2.6 IFG cleared
//********************************* Configure ********************
P1DIR &=~BIT5 ; // set input cho encoder
P1IE |= BIT5; // Interrupt Enable in P1.0 ( cau hinh cho encoder )
P1IES |= BIT5 ; // P1.0 Interrupt flag high-to-low transition
P1IFG &= ~BIT5; // P1.0 IFG cleared
//******************************************************************
configPWM() ;
GLCD_Congfig(); // Khoi tao GLCD
// xac dinh goc bak
compass_init(); // khoi tao la ban so
bak=(int)compass_heading();
// doi chan I2C
SCL1=BIT6;
SDA1=BIT7;
// xac dinh goc setpoint
compass_init(); // khoi tao la ban so
set=(int)compass_heading(); // dat goc ban dau
display_setpoint(set) ; // hien thi setpoint
display_bak(bak); // hien thi goc se comeback
// Set toc do ban dau
PWM_LEFT(L_speed,1) ;
PWM_RIGHT(R_speed,1) ;
// __delay_cycles(32000000);
TA0CCTL0 = CCIE; // CCR0 interrupt enabled
TA0CCR0 = 10000;
TA0CTL = TASSEL_1 + MC_1+ TACLR ; // ACLK f= 12kHz
__enable_interrupt(); // enable all interrupts
//================================================
while(1)
{
//**************************PID ***********************
current_value=(int)compass_heading(); // xet goc hien tai
heading_error=PID_output(); // tinh PID
if(heading_error<0) {PWM_RIGHT(R_speed,1); PWM_LEFT(L_speed-heading_error,1) ;
}
if(heading_error>0) {PWM_RIGHT(R_speed+heading_error,1);PWM_LEFT(L_speed,1) ;
}
//=========================================================================
display_crt((int)(compass_heading())); // hien thi goc hien tai
if(sensor1) // neu dap cong tac hanh trinh
{
// Quay huong ben trai
if(temp==1)
{
setpoint=bak;
display_setpoint(setpoint) ; // hien thi setpoint
PWM_LEFT(xoay,0);
PWM_RIGHT(0,0);
if(sensor2==1) //delay cho SRF04 giua
{
__delay_cycles(15000000);
sensor2=0;
}
else // delay cho cong tac hanh trinh
__delay_cycles(8000000);
if((P1IN&BIT0)!=0) // ko co vat can ben trai
{
while(!(abs(current_value-setpoint)<=4)) // tim goc quay
{ stop_enable();
current_value=(int)compass_heading();
PWM_LEFT(0,1);
PWM_RIGHT(xoay,1);
display_crt((int)(compass_heading())); // hien thi goc hien tai
}
}
else // co vat can ven trai
{
while(!(abs(current_value-setpoint)<=4)) // tim goc quay
{ stop_enable();
current_value=(int)compass_heading();
PWM_LEFT(7000,0);
PWM_RIGHT(8000,1);
display_crt((int)(compass_heading())); // hien thi goc hien tai
}
}
temp=0;
sensor1=0;
}
// Quay huong ben phai
else
{
setpoint=set;
display_setpoint(setpoint) ; // hien thi setpoint
PWM_LEFT(0,0);
PWM_RIGHT(xoay,0);
if(sensor2==1)
{
__delay_cycles(15000000);
sensor2=0;
}
else
__delay_cycles(10000000);
if((P1IN&BIT1)!=0) //ko co vat can ben phai
{
while(!(abs(current_value-setpoint)<=4)) // tim goc
{ stop_enable();
current_value=(int)compass_heading();
PWM_LEFT(xoay,1);
PWM_RIGHT(0,1);
display_crt((int)(compass_heading())); // hien thi goc hien tai
}
}
else // co vat can ben phai
{
while(!(abs(current_value-setpoint)<=4)) // tim goc
{ stop_enable();
current_value=(int)compass_heading();
PWM_LEFT(8000,1);
PWM_RIGHT(7000,0);
display_crt((int)(compass_heading())); // hien thi goc hien tai
}
}
temp=1;
sensor1=0;
}
}
stop_enable_1();
}
}
#pragma vector=PORT2_VECTOR
__interrupt void Port_2 (void)
{
sensor1=1;
if((P2IN&BIT6)==0)
P2IFG &= ~BIT6; // Clean P2.0 Interrupt Flag
else
{
sensor2=1;
P2IFG &= ~BIT7; // Clean P1.0 Interrupt Flag
}
}
#pragma vector=PORT1_VECTOR
__interrupt void Port_1 (void)
{
dem1++;
if(dem1==3)
{
dem=1;
dem1=0;
}
P1IFG &= ~(BIT4+BIT5); // Clean P1.0 Interrupt Flag
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TIMER0(void)
{
stop=dem;
dem=0;
}