Đặc biệt,các loại robot có khả năng hoạt động tự động mà không cần sự can thiệp của conngười đã giúp giảm bớt gánh nặng công việc hàng ngày của con người.Theo sự tiến bộ đáng kể trong lĩ
Trang 1TÊN SINH VIÊN:
ĐẶNG HUỲNH QUỐC HUY - 2032202022 LỚP: 11DHTDH2
THÀNH PHỐ HỒ CHÍ MINH, THÁNG … NĂM …
Trang 2TÊN SINH VIÊN:
ĐẶNG HUỲNH QUỐC HUY - 2032202022 LỚP: 11DHTDH2
Trang 3THÀNH PHỐ HỒ CHÍ MINH, THÁNG … NĂM …
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi và được sựhướng dẫn của GVHD.TS Văn Tấn Lượng Các nội dung nghiên cứu, kết quảtrong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trướcđây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét,đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phầntài liệu tham khảo
Ngoài ra, trong Đồ án Chuyên ngành còn sử dụng một số nhận xét, đánhgiá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn
và chú thích nguồn gốc
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung Đồ án Chuyên ngành của mình Trường Đại học CôngThương Thành Phố Hồ Chí Minh không liên quan đến những vi phạm tác quyền,bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)
TP Hồ Chí Minh, ngày … tháng … năm …
Sinh viên
Huy
Đặng Huỳnh Quốc Huy
Trang 5LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành đến thầy Văn Tấn Lượng, GVHD môn
đồ án chuyên ngành, trường Đại học Công Thương Tp.HCM đã hướng dẫn, chỉbảo tận tình, trang bị giúp em những kỹ năng cơ bản và kiến thức cần thiết đểhoàn thành được đồ án này
Tuy nhiên, trong quá trình làm đồ án do kiến thức chuyên ngành của emcòn hạn chế nên không thể tránh khỏi một vài thiếu sót khi trình bày và đánh giávấn đề Rất mong nhận được sự góp ý, đánh giá của các thầy cô bộ môn để đề tàicủa em thêm hoàn thiện hơn
Em xin chân thành cảm ơn!
TP Hồ Chí Minh, ngày … tháng … năm …
Sinh viên
Huy
Đặng Huỳnh Quốc Huy
Trang 6MỤC LỤC
LỜI CẢM ƠN iii
MỤC LỤC………
……… iv
DANH SÁCH HÌNH vi
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 2
1.1 Lý do chọn đề tài 2
1.2 Mục tiêu 6
1.3 Đối tượng và phạm vi nghiên cứu 6
1.4 Phương pháp nghiên cứu 6
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 7
2.1 Cơ sở liên quan đến lý thuyết đề tài 7
CHƯƠNG 3 GIỚI THIỆU PHẦN MỀM 29
3.1 Giới thiệu chung 29
3.1.1 Ngôn ngữ lập trình 29
3.1.2 Thư viện phong phú 30
3.2 Giao diện đơn giản, dễ sử dụng 31
3.3 Hướng dẫn tải và cài đặt Arduino IDE 33
3.3.1.Hướng dẫn tải 33
3.2.2.Hướng dẫn cài đặt 35
CHƯƠNG 4 KẾT QUẢ VÀ THẢO LUẬN 38
4.1 Sơ đồ hệ thống 38
4.1.1 Sơ đồ khối 38
4.1.2 Sơ đồ đấu dây 39
4.2 Lưu đồ giải thuật 40
4.3 Lập trình hệ thống 40
4.4 Hình ảnh mô hình 51
Trang 74.3.1 Mô hình 51
4.3.2 Đoạt giải Robotic 52
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 53
5.1 Kết luận 53
5.2 Hướng phát triển đề tài 53
TÀI LIỆU THAM KHẢO 54
Trang 8DANH SÁCH HÌNH
Hình 1: Tự động hoá trong sản xuất ô tô 2
Hình 2: Mobile Robot 4
Hình 3: Mê cung đường 5
Hình 4: Arduino Uno R3 7
Hình 5: Các cổng vào/ra của Arduino Uno R3 9
Hình 6: Chức năng của các chân 10
Hình 7: Màn hình chính khi lập trình 11
Hình 8: Module L298 12
Hình 9: Sơ đồ chân của Module L298 13
Hình 10: Sơ đồ khối mạch cầu L298 14
Hình 11: Động cơ DC V1 15
Hình 12: Bánh xe 15
Hình 13: Cảm biến siêu âm 16
Hình 14: Cơ chế hoạt động của cảm biến siêu âm 17
Hình 15: Cảm biến dò line đơn 18
Hình 16: Động cơ Servo SG90 19
Hình 17: Động cơ RC Servo MG996R 20
Hình 18: Mạch Motor Shield L293D 22
Hình 19: Sơ đồ khối mạch điều khiển động cơ L293D 23
Hình 20: Minh hoạ cánh tay robot 24
Hình 21: Minh hoạ Line để cảm biến nhận biết 25
Hình 22: Cơ chế hoạt động 25
Hình 23: Xe chạy theo line trong cuộc thi Robotic 26
Hình 24: Lưu đồ mạch xe lệch phải 27
Hình 25: Lưu đồ mạch xe lệch trái 28
Hình 26: Màn hình khởi động Arduino IDE 29
Hình 27: Khu vực lập trình 30
Hình 28: Mục quản lí thư viện 31
Hình 29: Nút kiểm tra chương trình 32
Hình 30: Nút tải đoạn code 32
Trang 9Hình 31: Vùng lập trình 33
Hình 32: Thanh Menu 33
Hình 33: Trang chủ tải phần mềm Arduino IDE 34
Hình 34: Mục chọn hệ điều hành máy tính 34
Hình 35: Mục tải về 34
Hình 36: Chọn nơi cần lưu 35
Hình 37: Giao diện khởi động phần mềm 35
Hình 38: Cấp giấy phép cho phần mềm 36
Hình 39: Đợi hoàn hành việc cài đặt 36
Hình 40: Cài đặt thành công 37
Hình 41: Sơ đồ khối xe dò line 38
Hình 42: Sơ đồ đấu dây xe dò line 39
Hình 43: Sơ đồ đấu dây cánh tay Robot 39
Hình 44: Lưu đồ giải thuật 40
Hình 45: Hình xe dò line có tay gắp 51
Hình 46: Hình ảnh đoạt giải trong cuộc thi Robotics 52
Trang 10CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài
Trong thời đại hiện đại, vai trò của robot đã trở nên ngày càng quan trọngtrong cuộc sống của chúng ta Chúng không chỉ thay thế mà còn đóng vai trò làmviệc cùng con người trong nhiều lĩnh vực, bao gồm vận chuyển hàng hóa, kiểmtra các môi trường nguy hiểm và hỗ trợ trong các công việc gia đình Đặc biệt,các loại robot có khả năng hoạt động tự động mà không cần sự can thiệp của conngười đã giúp giảm bớt gánh nặng công việc hàng ngày của con người.Theo sự tiến bộ đáng kể trong lĩnh vực khoa học và công nghệ, việc pháttriển một loại robot có khả năng thực hiện các nhiệm vụ trong gia đình, như việclàm sạch nhà, trở nên cấp thiết Dựa trên những ý tưởng này, việc lựa chọn đề tài
"Robot hút bụi" cho bài đồ án này trở nên hợp lý và cần thiết
Hình: 1 vài mẫu robot hút bụi được bán ở Điện Máy Xanh
Tính mới của đề tài
Robot hút bụi tự động được xây dựng để hoạt động độc lập mà không cần
sự can thiệp của con người Nó có khả năng tự động di chuyển trong không giannhà, và đặc biệt, có khả năng tự động tránh những vật cản Điều này cho phéprobot hoàn thành nhiệm vụ làm sạch mọi vị trí trong ngôi nhà mà không gặp khókhăn Trong quá trình hoạt động, robot sử dụng công nghệ mạch logic để xác
Trang 11định và tránh các vật cản Mặc dù công nghệ này đã được áp dụng từ rất sớm và
đã đạt được một số thành tựu đáng kể, nhưng cũng tồn tại một số nhược điểm,khiến cho việc xác định vật cản và thực hiện việc tránh chúng một cách chính xáctrở nên khó khăn
Để khắc phục nhược điểm này, đồ án đã thực hiện việc xây dựng và thiết
kế một hệ thống tránh vật cản thông qua việc sử dụng tín hiệu từ cảm biến siêu
âm Các tín hiệu từ cảm biến siêu âm được đưa về vi điều khiển, và tại đây,chúng được xử lý để đưa ra tín hiệu điều khiển cho các cơ cấu chấp hành, baogồm động cơ và các module điều khiển động cơ khác Trong đồ án, vi điều khiểnArduino Uno R3 được sử dụng, đây là một module rất phổ biến và dễ dàng lậptrình
Ngoài ra, phần hút bụi của robot được thiết kế sử dụng các vật liệu phổbiến và dễ tìm kiếm trên thị trường như ống nước, các tấm vải, động cơ V1, vànhiều linh kiện khác Điều này giúp đơn giản hóa quá trình chế tạo và lắp ráprobot hút bụi, đồng thời làm giảm chi phí và thời gian cần thiết cho việc xâydựng dự án này
1.2 Mục tiêu
- Hoàn thành thiết kế và thi công một mô hình
- Tạo ra một sản phẩm thực tế
- Hiệu suất làm sạch hiệu quả
- Có thêm nhiều kinh nghiệm về lĩnh vực Mobile Robot
1.3 Đối tượng và phạm vi nghiên cứu
Trang 12Tích hợp Công nghệ Tránh Vật Cản: Mục tiêu là phát triển và tích hợpcông nghệ để robot có khả năng xác định và tránh vật cản trong quá trình làmsạch.
Hiệu suất Làm sạch: Đánh giá hiệu suất làm sạch của robot, bao gồmphạm vi mà robot có thể làm sạch một cách hiệu quả
Thiết kế Thẩm mỹ: Tùy theo yêu cầu, phạm vi nghiên cứu có thể bao gồm
cả thiết kế ngoại hình của robot để đảm bảo tính thẩm mỹ
Tùy chỉnh và Mở rộng (tuỳ chọn): Mục tiêu có thể bao gồm sự dễ dàngtùy chỉnh và mở rộng tính năng của robot để đáp ứng nhu cầu cụ thể của ngườidùng
1.4 Phương pháp nghiên cứu
- Nghiên cứu Mô hình Lý thuyết
- Phương pháp nghiên cứu tài liệu
- Phương pháp thực nghiệm
- Phương pháp phân tích tổng kết kinh nghiệm
- Thực nghiệm thử và sai
Trang 13CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Cơ sở liên quan đến lý thuyết đề tài
Arduino UNO R3
Arduino Uno R3 là một loại bo mạch vi điều khiển dựa trên ATmega328P
Nó bao gồm toàn bộ những thứ cần thiết để giữ bộ vi điều khiển chỉ cần gắn nóvào PC với sự trợ giúp của cáp USB và cung cấp nguồn điện bằng bộ chuyển đổiAC-DC hoặc pin để bắt đầu Thuật ngữ Uno có nghĩa là “một” trong ngôn ngữ
“Ý” và được chọn để đánh dấu việc phát hành phần mềm Arduino’s IDE 1.0 R3Arduino Uno là bản sửa đổi thứ 3 cũng như gần đây nhất của Arduino Uno BảngArduino và phần mềm IDE là phiên bản tham chiếu của Arduino và hiện đangđược phát hành mới Bảng mạch Uno là bảng chính trong chuỗi USB- BảngArduino và mô hình tham chiếu được thiết kế cho nền tảng Arduino
Hình: ARUINO R3
Các Arduino UNO R3 thường xuyên được sử dụng bảng vi điều khiểntrong họ Arduino Đây là phiên bản thứ ba mới nhất của bảng Arduino và đượcphát hành vào năm 2011 Ưu điểm chính của bảng này là nếu chúng ta mắc lỗi,chúng ta có thể thay đổi bộ vi điều khiển trên bảng Các tính năng chính của bomạch này chủ yếu bao gồm, nó có sẵn trong DIP (gói nội tuyến kép), có thể tháorời và vi điều khiển ATmega328 Lập trình của bảng này có thể dễ dàng được tảibằng cách sử dụng chương trình máy tính Arduino Bo mạch này có sự hỗ trợ rấtlớn từ cộng đồng Arduino, điều này sẽ tạo ra một cách rất đơn giản để bắt đầulàm việc trong thiết bị điện tử nhúng và nhiều ứng dụng khác
Trang 14- Thông số kỹ thuật:
Vi điều khiển ATmega328 họ 8bit
Điện áp hoạt động: 5V DC (chỉ được cấp qua cổng USB)
Tần số hoạt động: 16 MHz
Dòng tiêu thụ khoảng: 30mA
Điện áp vào khuyên dùng: 7-12V DC
Điện áp vào giới hạn: 6-20V DC
Số chân Digital I/O: 14 (6 chân hardware PWM)
Số chân Analog: 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O: 30 mA
- Các chân năng lượng:
GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi bạn dùng
các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải đượcnối với nhau
5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA 3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương
của nguồn với chân này và cực âm của nguồn với chân GND
IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở
chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V
từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn
RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với
việc chân RESET được nối với GND qua 1 điện trở 10KΩ
- Bộ nhớ:
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
Trang 1532KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ
Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này sẽ đượcdùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ nàyđâu
2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai
báo khi lập trình sẽ lưu ở đây Bạn khai báo càng nhiều biến thì càng cần nhiều
bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thànhthứ mà bạn phải bận tâm Khi mất điện, dữ liệu trên SRAM sẽ bị mất
1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ
liệu vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM
- Các cổng vào/ra:
Hình 1: Các cổng vào/ra của Arduino Uno R3
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúngchỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA
Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiểnATmega328 (mặc định thì các điện trở này không được kết nối)
Một số chân digital có các chức năng đặc biệt như sau:
2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive –
RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua
2 chân này Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serialkhông dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân nàynếu không cần thiết
Trang 16Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ
phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàmanalogWrite() Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ởchân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chânkhác
Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các chức
năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thứcSPI với các thiết bị khác
LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút
Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13.Khi chân này được người dùng sử dụng, LED sẽ sáng
Hình 2: Chức năng của các chân
Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREFtrên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chânanalog Tức là nếu bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng cácchân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là10bit
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếpI2C/TWI với các thiết bị khác
- Lập trình cho Arduino:
Trang 17Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn riêng.Ngôn ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói Và Wiringlại là một biến thể của C/C++ Một số người gọi nó là Wiring, một số khác thì gọi
là C hay C/C++ Ngôn ngữ Arduino bắt nguồn từ C/C++ phổ biến hiện nay do đórất dễ học, dễ hiểu
Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, nhómphát triển dự án này đã cũng cấp đến cho người dùng một môi trường lập trìnhArduino được gọi là Arduino IDE (Intergrated Development Environment) nhưhình dưới đây
Hình 3: Màn hình chính khi lập trình
Lưu ý khi sử dụng Arduino Uno R3:
Arduino UNO không có bảo vệ cắm ngược nguồn vào Do đó ta phải hếtsức cẩn thận, kiểm tra các cực âm, dương của nguồn trước khi cấp cho ArduinoUno Việc làm chập mạch nguồn vào của Arduino Uno sẽ biến nó thành mộtmiếng nhựa chặn giấy Ta nên dùng nguồn từ cổng USB nếu có thể
Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra chocác thiết bị khác, không phải là các chân cấp nguồn vào Việc cấp nguồn sai vị trí
có thể làm hỏng board Điều này không được nhà sản xuất khuyến khích
Trang 18Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện ápdưới 6V có thể làm hỏng board.
Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điềukhiển ATmega328
Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog củaArduino Uno nếu vượt quá 200mA sẽ làm hỏng vi điều khiển
Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino Uno
sẽ làm hỏng vi điều khiển
Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của ArduinoUno vượt quá 40mA sẽ làm hỏng vi điều khiển Do đó nếu không dùng để truyềnnhận dữ liệu, phải mắc một điện trở hạn dòng
Module L298
Module điều khiển động cơ L298 là bộ điều khiển sử dụng mạch cầu H để
dễ dàng điề u khiển chiều quay và tốc độ của tối đa 2 động cơ DC
Hình 4: Module L298
Module này dễ sử dụng, chi phí thấp, dễ lắp đặt Module L298N đượcdùng để chế tạo xe điều khiển, xe dò đường, các thiết bị sử dụng động cơ DChoặc động cơ bước … sử dụng kết hợp với vi điều khiển
- Cấu tạo của Module L298 bao gồm các chân sau:
Trang 19• Hai chân cấp nguồn trực tiếp đến động cơ là 12V power và 5V power.Ngoài ra bạn cũng có thể cấp nguồn 9 -12V ở 12V.
• Power GND là GDN của nguồn cấp cho động cơ
• 2 Jump A enable và B enable
• 4 chân Input gồm có: IN1, IN2, IN3,IN4
• Output A sẽ được nối với động cơ A Khi nối bạn phải chú ý ký hiệu “
+;-” vì khi bạn nối ngược động cơ sẽ chạy theo chiều ngược
• Gồm hai phần điều khiển động cơ Có thể điều khiển cho động cơ 4 dây vàđộng cơ 6 dây
Trang 20- Sơ đồ chân của Module L298
Hình 5: Sơ đồ chân của Module L298
• Khi nối mạch để điều khiển động cơ, bạn cần chú ý hai cực +; – của động
cơ sao cho tương xứng với chân + ; – của Output
• Tiếp theo cấp nguồn cho module L298, khi đó phải chú ý chọn đúngJump
• Đối với động cơ dưới 1A bạn có thể sử dụng chân 5V của Arduino
• Các chân Input IN1, IN2, IN3, IN4 của L298 sẽ được nối tương ứng vớicác chân D7, D6, D5, D4 của Arduino
• Các đầu ra High và Low có nhiệm vụ điều khiển chiều quay của động cơ ởcác chân INx
Ví dụ:
Chân IN1 là chân OutA 1, chân IN2 là chân OutA 2
Khi cấp nguồn cực dương vào IN1 và cực âm vào IN2 thì động cơ quay 1chiều
Còn khi cực âm vào IN1 và cực dương vào IN2 thì động cơ quay chiềucòn lại
Trang 21Cực dương sẽ mang điện thế 5V, cực âm điện thế 0V Hiệu điện thế bằngđiện thế IN1 – điện thế IN2 Nếu hiệu điện thế 5V là mạnh nhất để điều khiểnđộng cơ thì khi bạn hạ hiệu điện thế xuống động cơ sẽ tự động yếu đi Và khihiệu điện thế bằng 0 thì động cơ sẽ đổi chiều.
- Chức năng của các chân
Bốn chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5, 7,
10, 12 của IC L298N Đây là các chân nhận tín hiệu điều khiển.Bốn chânOUTUT: 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 IC L298N Các chân này sẽ được nối với động
cơ DC hoặc động cơ bước
Hình 6: Sơ đồ khối mạch cầu L298
Hai chân cho phép ENA và ENB dùng để điều khiển mạch cầu H trong ICL298N 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 Các chân này cũngđược dùng để điều khiển tốc độ của động cơ
+ Khi ENA = 0: Động cơ không quay với mọi đầu vào
Trang 22+ Khi ENA = 1:
+ IN1 = 1; IN2 = 0: Động cơ quay thuận
+ IN1 = 0; IN2 = 1: Động cơ quay nghịch
+ IN1 = IN2: Động cơ dừng ngay lập tức Với ENB cũng tương tự với IN3,IN4
Trang 23Động cơ V1
Động cơ L298 điều khiển động cơ với 2 mạch cầu H đã tích hợp sẵn ở bêntrong Trong mỗi IC L298 được tích hợp 2 cầu H, mỗi cầu H chịu được 2 dòngAmpe Khi nối các chân có cùng chức năng của 2 cầu H trên IC với nhau thì IC
có thể cung cấp được dòng 4 Ampe đủ để cho động cơ hoạt động hết công suất
Trang 24Cảm biến siêu âm
Hình 9: Cảm biến siêu âm
Cảm biến siêu âm là một thiết bị cảm biến hoạt động dựa trên sóng siêu
âm Cũng giống như các loại cảm biến áp suất hay cảm biến nhiệt độ, cảm biếnsiêu âm được dùng chủ yếu là để đo khoảng cách hoặc vận tốc Ngoài ra thì cònđược sử dụng trong các ứng dụng như làm sạch bằng sóng siêu âm hoặc dùngtrong siêu âm y khoa (siêu âm chuẩn đoán hình ảnh)
Cảm biến siêu âm HC-SR04 (Ultrasonic Sensor) được sử dụng rất phổbiến để xác định khoảng cách vì RẺ và CHÍNH XÁC Cảm biến HC-SR04 sửdụng sóng siêu âm và có thể đo khoảng cách trong khoảng từ 2 -> 300cm, với độchính xác gần như chỉ phụ thuộc vào cách lập trình
Trang 25Hình 10: Cơ chế hoạt động của cảm biến siêu âm
Cảm biến siêu âm HC-SR04 sử dụng nguyên lý phản xạ sóng siêu âm.Cảm biến gồm 2 module trong đó 1 module phát ra sóng siêu âm và 1 module thusóng siêu âm phản xạ về Đầu tiên cảm biến sẽ phát ra 1 sóng siêu âm với tần số40khz Nếu có chướng ngại vật trên đường đi, sóng siêu âm sẽ phản xạ lại và tácđộng lên module nhận sóng Bằng cách đo thời gian từ lúc phát đến lúc nhậnsóng ta sẽ tính được khoảng cách từ cảm biến đến chướng ngại vật
Trang 26Mạch Motor Shield L293D được trang bị hai kênh độc lập để điều khiểnđộng cơ DC và có thể điều khiển động cơ có dòng điện lên đến 600mA và điện
Trang 27áp lên đến 36V Nó cũng hỗ trợ điều khiển động cơ bước bằng cách tạo ra cácxung đầy đủ và bán đầy đủ và hỗ trợ các động cơ bước có số bước từ 4 đến 8.Mạch Motor Shield L293D có thể được kết nối trực tiếp với Arduino hoặccác vi điều khiển khác thông qua các chân giao tiếp và được điều khiển thôngqua thư viện Arduino Motor Shield Thư viện này cho phép điều khiển tốc độ vàhướng quay của động cơ DC và thực hiện các chức năng khác như đọc trạng thái
của nút nhấn và cảm biến
Hình 11: Mạch Motor Shield L293D
- Thông số kỹ thuật:
• Nguồn hoạt động: 5VDC từ Arduino
• Nguồn cấp cho động cơ: 4.8~35VDC
• Có Jumper để thiết lập nguồn cấp cho động cơ nối với chân Vin để cấpnguồn cho Arduino tuy nhiên nếu nguồn cấp cho động cơ > 9VDC vui lòngkhông sử dụng và cấp nguồn riêng (áp dụng cho các mạch Arduino TQ, không ápdụng cho Vietduino)
• IC driver động cơ: 2 x L293D
• Điều khiển được 4 động cơ DC hoặc 2 động cơ bước công suất nhỏ ( <600mA, 4.5~36VDC)
• Điều khiển được 2 động cơ RC Servo
• Tích hợp ngõ ra cho các chân Analog của Arduino
Trang 28• Tích hợp nút nhấn Reset.
Hình 12: Sơ đồ khối mạch điều khiển động cơ L293D
Trang 292.2 Lưu đồ robot hút bụi
Hình 13: Lưu đồ mạch robot hút bụi
Trang 30CHƯƠNG 3 GIỚI THIỆU PHẦN MỀM
3.1 Giới thiệu chung
Arduino IDE là một phần mềm soạn thảo văn bản chính hãng, giúp bạnviết code để nạp vào bo mạch Arduino một cách nhanh chóng, dễ dàng và hoàn
Hình 14: Màn hình khởi động Arduino IDE
IDE trong Arduino IDE là phần có nghĩa là mã nguồn mở, nghĩa là phầnmềm này miễn phí cả về phần tải về lẫn phần bản quyền: Người dùng có quyềnsửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung được nhà
Trang 31phát hành cho phép mà không cần xin phép ai, điều mà họ không được phép làmđối với các phần mềm nguồn đóng.
Tuy là phần mềm mã nguồn mở nhưng khả năng bảo mật thông tin củaArduino IDE là vô cùng tuyệt vời, khi phát hiện lỗi nhà phát hành sẽ vá nó vàcập nhật rất nhanh khiến thông tin của người dùng không bị mất hoặc rò rỉ ra bênngoài
3.1.1 Ngôn ngữ lập trình
Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn riêng.Ngôn ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói Và Wiringlại là một biến thể của C/C++ Một số người gọi nó là Wiring, một số khác thì gọi
là C hay C/C++ Ngôn ngữ Arduino bắt nguồn từ C/C++ phổ biến hiện nay do đórất dễ học, dễ hiểu
Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, nhómphát triển dự án này đã cũng cấp đến cho người dùng một môi trường lập trìnhArduino được gọi là Arduino IDE (Intergrated Development Environment)
Hình 15: Khu vực lập trình
3.1.2 Thư viện phong phú
Arduino IDE tích hợp với hơn 700 thư viện, được viết và chia sẻ bởi nhàphát hành Arduino Software và thành viên trong cộng đồng Arduino, có thể tận