Với đề tài “Robot dò đường tránh vậtcản” nhóm chúng em đã vận dụng khả năng tư duy và sáng tạo của các thành viên đã tạora 1 con robot có thể tự động thực hiện các nhiệm vụ trên một đườn
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KIẾN TRÚC ĐÀ NẴNG
Trang 2Lớp : 20CT3
LỜI NÓI ĐẦU
Trong cuộc sống ngày nay đặc biệt là thời đại công nghiệp 4.0, Robot mang tới cho conngười một cuộc sống mới, một cách trải nghiệm cuộc sống và đôi khi còn là người bạn.Robot đang có một sự tác động lớn đến cuộc sống hiện tại của con người Bằng cách sửdụng công nghệ cao và tính năng thông minh, robot đang thay đổi cách mà con người làmviệc, học tập, giải trí và sống.Robot giúp con người tiết kiệm thời gian và nâng cao hiệusuất trong các công việc lặp đi lặp lại, giảm thiểu sự cố và tăng tính an toàn trong cáchoạt động nguy hiểm Hơn nữa, robot còn tạo ra những công việc mới và giúp con ngườitập trung vào các nhiệm vụ sáng tạo hơn
Tuy nhiên, robot cũng đang tạo ra những thách thức và rủi ro cho con người Việc sửdụng robot để thay thế nhân lực có thể gây ra thất nghiệp và ảnh hưởng đến kinh tế Hơnnữa, sự phụ thuộc quá mức vào robot có thể khiến con người trở nên lười biếng và ít sángtạo hơn
Do đó, sự phát triển của robot đang đòi hỏi sự thấu hiểu và hợp tác giữa con người vàcông nghệ Chúng ta cần phải đảm bảo rằng robot được sử dụng đúng cách và có một
tiềm năng tích cực cho cả con người và xã hội Với đề tài “Robot dò đường tránh vật cản” nhóm chúng em đã vận dụng khả năng tư duy và sáng tạo của các thành viên đã tạo
ra 1 con robot có thể tự động thực hiện các nhiệm vụ trên một đường kẻ với độ chính xáccao hơn so với con người, tránh các vật cản trước mặt và xung quanh, và ngoài ra có thểphát ra âm thanh báo tín hiệu khi có vật cản phía trước
Chúng em tin tưởng rẳng với những kết quả có được từ việc tìm hiểu và tính toán trongbài tiểu luận này sẽ là bước đệm quan trọng cho việc phát triển nhiều hơn nữa những ýtưởng trong tương lai về tính toán và thiết kế các loại Robot thông minh
Nhóm xin chân thành cảm ơn thầy Nguyễn Văn Hiền vì những đóng góp qua những bàigiảng và những hướng dẫn trong quá trình trao đổi ở các buổi gặp mặt Những góp ý, sửachữa của thầy sẽ phần nào giúp chúng em tự tin hơn trong cách thức tiếp cận với nềncông nghiệp 4.0 hiện nay Chúng em rất mong có được sự bổ sung, sửa chữa của thầy cô
và các bạn
Chúng em chân thành cảm ơn và chúc thầy sức khỏe!
2
Trang 3MỤC LỤC
LỜI MỞ ĐẦU CHƯƠNG I: CƠ SỞ LÝ THUYẾT4 I.1 Giới thiệu IOT
I.1.1 Khái niệm IOT Hình 1: IoT I.1.2 Xu hướng phát triển thế giới với IOT
PHÂN TÍCH YÊU CẦU VÀ LẬP HỒ SƠ
1.Danh sách Actor 2.Sơ đồ Usercase3.Biểu đồ tuần tự
Sơ đồ Ganttchart
I.1.2 Xu hướng phát triển thế giới với IOT:
Trang 5CHƯƠNG I: CƠ SỞ LÝ THUYẾT
I.1 Giới thiệu IOT:
I.1.1 Khái niệm IOT:
- IoT, viết tắt của Internet of Things, là một thuật ngữ chỉ đến việc kết nối các thiết
bị điện tử thông minh với nhau và với internet để chúng có thể trao đổi dữ liệu vàthực hiện các nhiệm vụ tự động hoặc từ xa Các thiết bị này có thể bao gồm cáccảm biến, máy móc, thiết bị điện gia dụng, đồng hồ thông minh, đèn chiếu sáng,các thiết bị y tế và nhiều thiết bị điện tử khác
- Trong một hệ thống IoT, các thiết bị có khả năng thu thập thông tin, chia sẻ dữliệu và kết nối với nhau thông qua internet, mà không cần sự can thiệp của conngười Thông qua việc kết nối và trao đổi thông tin, các thiết bị IoT có thể tự độngthực hiện các nhiệm vụ, dễ dàng quản lý và giám sát các quy trình hơn, giảm thiểusai sót và tiết kiệm thời gian và chi phí
“Mọi đồ vật sẽ trở nên thông minh hơn” – đấy là lợi ích mà IoT mang lại Chúng
ta đã quá quen với smartphone, smart tivi, hay gần hơn là smarthome, smartkey,
…, thì giờ với IoT chúng ta có mọi thứ xung quanh đều thông minh: đèn thông tin– biết lúc nào cần bật khi có người và tắt để tiết kiệm điện, máy giặt thông minh –
tự điều chỉnh lượng nước phù hợp với số lượng quần áo, hay ngay đến rèm cửacũng thông minh – chủ động đóng mở theo ánh sáng mặt trời
Hình 1: IoT
Trang 6I.1.2 Xu hướng phát triển thế giới với IOT:
- IoT đang trở thành một xu hướng quan trọng trong công nghệ và cách mà con
người sử dụng các công nghệ thông tin trong cuộc sống hàng ngày Nó đang được
áp dụng trong nhiều lĩnh vực khác nhau, từ công nghiệp đến y tế, giao thông vàkinh doanh IoT là yếu tố quan trọng trong sự phát triển của các thành phố thôngminh và các ứng dụng của trí tuệ nhân tạo và học máy
- IoT sẽ đóng vai trò rất quan trọng trong tăng cường kết nối giữa các thiết bị và
người dùng thông qua internet Các thiết bị thông minh sẽ được kết nối với nhau
và truyền tải thông tin nhanh chóng và hiệu quả hơn
- IoT đang đóng vai trò quan trọng trong phát triển các ứng dụng mới trong các
lĩnh vực khác nhau, từ y tế đến quản lý tài sản, giáo dục và tự động hóa Các ứngdụng này có thể giúp cải thiện quản lý và giám sát các quy trình, nâng cao hiệusuất và tiết kiệm thời gian và chi phí
- IoT sẽ đóng vai trò rất quan trọng trong việc phát triển các thiết bị thông minh,
mở ra nhiều cơ hội cho các ứng dụng mới và tiện ích mới Những thiết bị nàykhông chỉ làm cho cuộc sống dễ dàng hơn mà còn giúp cải thiện sức khỏe, giảmthiểu rủi ro và tiết kiệm năng lượng
- Với sự phát triển của IoT, các vấn đề liên quan đến an ninh và bảo mật cũng đượcquan tâm nhiều hơn Việc đảm bảo an toàn và bảo mật cho các dữ liệu và thông tintruyền tải trên mạng được coi là vô cùng cần thiết
-> Trong tương lai, IoT dự kiến sẽ đóng vai trò quan trọng như một yếu tố quan trọnggiúp cải thiện cuộc sống và quản lý đời sống một cách thông minh và tiên tiến hơn
- Theo Gartner, đến năm 2020 thế giới có khoảng 20 tỷ thiết bị đã sử dụng IoT và con sốnày dự kiến sẽ lên tới 41,6 tỷ thiết bị IoT được kết nối Rõ ràng thị trường IoT thực sự rấtlớn và tiềm năng:
6
Trang 7Hình 2: Biểu đồ xu hướng IoT
Trang 8- Với sự phát triển và tiên tiến của công nghệ, các thiết bị nhúng ngày càng trở nênthông minh và phức tạp hơn Lập trình nhúng cung cấp các công cụ và kỹ thuật đểphát triển các thiết bị này với độ tin cậy và hiệu quả cao.
8
Trang 9- RAM là thành phần hỗ trợ lưu trữ chương trình thực thi và các biến tạm
- MCU là bộ xử lý trung tâm hỗ trợ tính toán Các thành phần này đóng vai tròquan trọng trong lập trình nhúng và giúp điều khiển các thiết bị và hệ thống tựđộng
- ADC (Analog-to-Digital Converter) là một thiết bị ngoại vi, cho phép chuyển đổitín hiệu analog sang tín hiệu số để chương trình có thể đọc và xử lý
- DAC (Digital-to-Analog Converter) là một thiết bị ngoại vi, cho phép chuyển đổitín hiệu số sang tín hiệu analog để thiết bị đầu ra có thể xử lý ra được
- I2C (Inter-Integrated Circuit) và UART (Universal Asynchronous ReceiverTransmitter) là các giao thức giao tiếp ngoại vi dùng để kết nối các thiết bị khác,cho phép các thiết bị trao đổi dữ liệu giữa chúng
Các thành phần này đóng vai trò rất quan trọng trong lập trình nhúng, đảm bảo cáchoạt động của các thiết bị điện tử nhúng được thực hiện chính xác và hiệu quả
Trang 10I.2.3 Ứng dụng của lập trình nhúng
- Lập trình nhúng có rất nhiều ứng dụng trong nhiều lĩnh vực khác nhau, bao gồm: + Các thiết bị di động: Lập trình nhúng được sử dụng để phát triển các hệ thốngđiện tử trong điện thoại di động, máy tính bảng, thẻ SIM, các thiết bị hỗ trợ giámsát sức khỏe, v.v
+ Các hệ thống thông minh: Lập trình nhúng là một phần không thể thiếu trongphát triển các hệ thống thông minh, bao gồm nhà thông minh, xe thông minh, hệthống an ninh, v.v
+ Các thiết bị y tế: Lập trình nhúng được sử dụng để phát triển các thiết bị y tế,bao gồm các dụng cụ hỗ trợ y tế, máy giúp đọc được chỉ số sinh lý, máy đo đườnghuyết, các loại máy xét nghiệm khác
+Công nghiệp và hệ thống tự động hóa: Lập trình nhúng được sử dụng trong các
hệ thống tự động hóa công nghiệp, bao gồm các thiết bị giám sát điều khiển, hệthống đo lường, máy khoan, các thiết bị làm sạch, chiếu sáng và các thiết bị phântán khác
+ Internet of Things (IoT): Lập trình nhúng được sử dụng trong các thiết bị IoT,bao gồm các thiết bị kết nối, hệ thống thực tế ảo, các thiết bị giám sát lượng khíthải và các hệ thống thông minh trong các đô thị
+ Điều khiển các thiết bị gia dụng: Lập trình nhúng được sử dụng để điều khiểncác thiết bị gia dụng, bao gồm tủ lạnh, máy giặt, máy sấy, máy hút bụi, v.v
Tóm lại, lập trình nhúng là một lĩnh vực phát triển phần mềm rất quan trọng,đóng vai trò quan trọng trong việc phát triển các thiết bị điện tử nhúng thông minh
và kết nối Các ứng dụng của lập trình nhúng rất đa dạng và được áp dụng trongnhiều lĩnh vực khác nhau
I.3 Tổng quan mô hình đề tài
- Mô hình đề tài về robot dò line tránh vật cản là một dự án điện tử nhúng sử dụng cácthành phần cơ bản như cảm biến siêu âm,cảm biến hồng ngoại, modul
điều khiển động cơ L298N kết hợp arduino uno R3)., để tạo ra một robot di động cókhả năng di chuyển trên một đường line trong điều kiện môi trường thử thách với các vậtcản
- Mô hình này sử dụng cảm biến siêu âm, cảm biến hồng ngoại để xác định vị trí vàkhoảng cách đến các vật cản và điều khiển robot di chuyển theo hướng cần thiết để tránhvật cản và tiếp tục đi theo đường đi bằng line Đồng thời, mô hình đề tài này còn sử dụng
10
Trang 11module truyền thông để truyền dữ liệu giữa robot và máy tính để hiển thị các thông số đođược của các cảm biến cũng như thông tin điều khiển của người dùng Người dùng có thểcài đặt các thông số, chức năng và điều khiển robot thông qua giao diện trên máy tính
- Mô hình đề tài này có nhiều ứng dụng trong thực tế như tự động hóa hệ thống giaothông, nhà máy sản xuất, khai thác mỏ, giải trí và các ứng dụng tương tự Đồng thời, nócũng có thể được sử dụng như một sản phẩm giáo dục hoặc thử nghiệm để giúp học sinhnắm bắt các khái niệm cơ bản trong ngành điện tử và lập trình nhúng
CHƯƠNG II: ARDUINO VÀ CÁC MODULE ĐIỀU KHIỂN
II.1 Tổng quan về Arduino
- Arduino là một nền tảng phát triển phần cứng và phần mềm mã nguồn mở được sử dụngrộng rãi cho các ứng dụng điện tử nhúng và các dự án kỹ thuật số phổ biến Nền tảng nàyđược tạo ra bởi một nhóm các nhà phát triển ở Italy vào năm 2005
- Arduino gồm hai phần chính: board và phần mềm
+ Board Arduino chứa các thành phần như bộ điều khiển (microcontroller), đầu vào/đầu
ra số, đầu vào/đầu ra analog, các thiết bị ngoại vi giao tiếp như USB, I2C, UART, và mộtloạt các chân kết nối để kết nối với mạch bên ngoài
+ Phần mềm đi kèm với Arduino bao gồm các thư viện lập trình và môi trường lập trìnhtích hợp (IDE) cho phép người dùng lập trình và tải chương trình lên board Arduino
- Board Arduino có nhiều phiên bản khác nhau, từ các phiên bản cơ bản đến các phiênbản cao cấp hơn, với nhiều tính năng khác nhau như Wi-Fi, Bluetooth, GPS và thậm chí
là kết nối mạng điện thoại
- Arduino có thể được sử dụng để phát triển nhiều ứng dụng khác nhau như đèn led tựđộng, robot, các hệ thống giám sát môi trường, các cảm biến và hệ thống thông minh, các
hệ thống nhà thông minh và trong nông nghiệp, v.v Nền tảng này cũng rất phổ biến tronggiáo dục và đào tạo điện tử, giúp người học có thể nhanh chóng và dễ dàng bắt đầu vớilập trình nhúng và phát triển các dự án điện tử
Trang 12*Cấu tạo Arduino
Hình 5: Cấu tạo của Arduino Uno R3
12
Trang 13*Các thông số cơ bản của Arduino Uno R3
Hình 6: Các thông số cơ bản của Arduino Uno R3
II.2 Phần mềm Arduino IDE
- Arduino IDE (Integrated Development Environment) là một phần mềm lập trình mãnguồn mở được sử dụng để lập trình các board Arduino IDE cung cấp một giao diện trựcquan và đơn giản để phát triển, biên dịch và tải chương trình lập trình vào các boardArduino
- Một số tính năng chính của Arduino IDE bao gồm:
Trang 14+ Ngôn ngữ lập trình Arduino: Arduino IDE hỗ trợ ngôn ngữ lập trình Arduino, là mộtngôn ngữ dựa trên C/C++ Người dùng có thể tạo ra các chương trình lập trình cho boardArduino bằng cách sử dụng ngôn ngữ lập trình này
+ Biên dịch: Arduino IDE cho phép biên dịch mã nguồn của chương trình lập trìnhArduino thành code máy IDE cũng cung cấp một bộ dịch và trình biên dịch C/C++ phiênbản nhẹ để biên dịch chương trình
+ Kiểm tra lỗi: IDE cung cấp các công cụ để theo dõi kiểm tra lỗi khi chương trình lậptrình đang được phát triển Nó cung cấp thông báo lỗi để giúp người dùng sửa chữa vàkhắc phục các lỗi trong quá trình phát triển
+ Tải chương trình: Arduino IDE cho phép tải chương trình lên trên board Arduino thôngqua cổng giao tiếp USB Người dùng có thể kết nối board Arduino với máy tính và sửdụng IDE để tải chương trình lên board một cách đơn giản
+ Thư viện lập trình: IDE cũng cung cấp nhiều thư viện lập trình được sử dụng rộng rãi,cho phép người dùng sử dụng các chức năng đã được xây dựng trước để phát triểnchương trình Arduino
+ Hỗ trợ cho nhiều loại board: Arduino IDE hỗ trợ nhiều loại board Arduino, bao gồmcác phiên bản cơ bản và phiên bản cao cấp hơn Việc hỗ trợ cho nhiều loại board giúp chocác lập trình viên có thể chọn board phù hợp với các yêu cầu của dự án
+ Giao diện đơn giản: IDE có giao diện đơn giản, giúp cho việc sử dụng nó trở nên dễdàng Giao diện cho phép người dùng tạo, chỉnh sửa và lưu trữ các chương trình lập trìnhmột cách đơn giản và dễ dàng
II.3 Module wifi esp8266
II.3.1 Giới thiệu
- ESP8266 là một module Wi-Fi độc lập nhỏ gọn được phát triển và sản xuất bởicông ty Espressif Systems Nó được phân phối với giá rẻ và được sử dụng rộng rãitrong các ứng dụng IoT (Internet of Things) và các dự án điện tử nhúng khác -ESP8266 có tích hợp Wi-Fi, chức năng xử lý, bộ nhớ RAM và lưu trữ flash trêncùng một chip Bởi vì kích thước của nó nhỏ và có khả năng tiêu thụ năng lượng
14
Trang 15thấp, ESP8266 được sử dụng để kết nối các thiết bị IoT với internet hoặc các mạngWi-Fi khác
- Các tính năng của module Wi-Fi ESP8266 bao gồm:
+ Tích hợp Wi-Fi: Module Wi-Fi ESP8266 có tích hợp Wi-Fi, cho phép kết nối vớicác mạng Wi-Fi một cách dễ dàng và nhanh chóng
+ Cấu trúc nhỏ gọn: ESP8266 có kích thước nhỏ gọn và được tích hợp trên mộtchip duy nhất, giúp cho việc tích hợp nó vào các dự án điện tử trở nên dễ dàng +Tiêu thụ năng lượng thấp: Module Wi-Fi ESP8266 tiêu thụ năng lượng thấp, do
đó, nó phù hợp cho các dự án IoT yêu cầu tiết kiệm năng lượng
+ Tích hợp GPIO: Module Wi-Fi ESP8266 có tích hợp GPIO, cho phép kết nốivới các cảm biến và các mạch điều khiển khác
+ Các thư viện lập trình hỗ trợ: Module Wi-Fi ESP8266 được hỗ trợ bởi nhiều thưviện lập trình, cho phép các lập trình viên phát triển các ứng dụng IoT một cáchnhanh chóng và dễ dàng
+ Các chức năng đa dạng: Module Wi-Fi ESP8266 cung cấp nhiều chức năng đadạng cho các ứng dụng điện tử nhúng như phát và nhận dữ liệu, GPIO, ADC(Analog-to-Digital Converter) và các chức năng trợ giúp khác
- Module Wi-Fi ESP8266 đã trở thành một sản phẩm phổ biến trong cộng đồngđiện tử nhúng và là một lựa chọn phù hợp cho các dự án IoT và các ứng dụng kếtnối Wi-Fi khác
- Có nhiều module khác nhau của nó, các module độc lập như dòng ESP - ## của
AI Thinker hoặc các bộ phát triển hoàn chỉnh như NodeMCU DevKit hoặc WeMosD1 Các bo mạch khác nhau có thể có các chân cắm khác nhau, có ăng-ten Wi-Fikhác nhau hoặc dung lượng bộ nhớ flash khác nhau trên bo mạch
Trang 16Hình 7 Module wifi esp8266 :
II.3.2 Thông số kỹ thuật
- Vi xử lý: ESP8266 sử dụng vi xử lý Tensilica L106 32-bit tốc độ xung nhịp đến80MHz
- Bộ nhớ: ESP8266 có 80KB RAM và 4MB flash memory
- Giao diện: Module Wi-Fi ESP8266 có các giao diện như SPI, UART, I²C, PWM,GPIO, ADC
- Tốc độ baud: Tốc độ baud UART của ESP8266 là 115200 bps
- Wi-Fi: ESP8266 hỗ trợ các chuẩn Wi-Fi 802.11 b/g/n và băng tần hoạt động2.4GHz
- Điện áp hoạt động: Điện áp hoạt động của ESP8266 là 3.3V
- Tiêu thụ điện năng: Tiêu thụ điện năng thấp, chỉ từ 0.5mA đến 215mA
- Kích thước: Kích thước của module ESP8266 là khoảng 2.5cm x 1.5cm Nhờ các tính năng trên, module Wi-Fi ESP8266 đã trở thành một sự lựa chọn phổbiến cho các dự án IoT và các thiết bị điện tử nhúng khác Chúng ta có thể sử dụngESP8266 để kết nối một cách dễ dàng các thiết bị điện tử với Internet hoặc các
16
Trang 17mạng Wi-Fi khác, đồng thời, với các thư viện mã nguồn mở mạnh mẽ, ta có thểphát triển các ứng dụng IoT phong phú và đa dạng.
II.3.3 Ứng dụng của Esp8266
1 Điều khiển thiết bị từ xa qua website (ESP8266 web server)
Hình 8 Điều khiển thiết bị từ xa qua website :
Ứng dụng này sẽ giúp điều khiển thiết bị như: Đèn, quạt, cửa,… sau đó qua môi trườngInternet, có thể dùng trình duyệt bất kỳ trên điện thoại hoặc máy tính để thao tác với thiết
bị thông qua Esp8266
Đây là một ví dụ điển hình của ứng dụng ESP8266, có thể tùy biến các thiết bị điều khiểnsao cho phù hợp với nhu cầu của bạn
Trang 182 Cập nhật Firmware từ xa cho ESP8266 (OTA)
Hình 9 Cập nhật Firmware từ xa cho ESP8266 :
Có thể hiểu đây là công việc nạp code từ xa mà không cần phải kết nối trực tiếp đếnESP8266 NodeMCU ứng dụng này của ESP8266 khá hay và thực sự cần thiết, thử nghĩnếu làm một sản phẩm giao cho khách hàng mà muốn Update gì cứ phải chạy đến để nạpcode thì tốn đến nào
Ứng dụng này có thể sử dụng cho các dự án điều khiển, giám sát tại các nông trại, hoặcsau khi đóng hộp không muốn mở ra thì hoàn toàn có thể chỉnh sửa lại code sau đó nạptrực tiếp thông qua trình duyệt, Arduino IDE miễn sao đã cấu hình cho ESP8266 có khảnăng Update code từ xa (OTA)
18
Trang 193 Điều khiển bằng giọng nói sử dụng ESP8266
Thật vậy, hoàn toàn có thể sử dụng Google Assistant trên điện thoại của mình để nóichuyện với ESP8266
Hình 10: Điều khiển bằng giọng nói sử dụng ESP8266
Tiên tiến hơn các ứng dụng phía trên của ESP8266, tại đây có thể sử dụngchính google để điều khiển thiết bị có kết nối với ESP8266
Chỉ cần điện thoại của là SmartPhone và có kết nối Internet thì hoàn toàn có thể làm việc
đó một cách đơn giản
Trang 204 Điều khiển xe từ xa qua ESP8266
Muốn có một chiếc xe có thể điều khiển qua điện thoại, đây là ứng dụng tuyệt vời
Hình 11: Điều khiển xe từ xa qua ESP8266
20