TCP/IP là sự kết hợp của hai giao thức riêng biệt: Giao thức kiểm soát truyền tin (TCP) và giao thức Internet (IP). Giao thức Internet cho phép các gói được gửi qua mạng; Nó cho biết các gói tin được gửi đi đâu và làm thế nào để đến đó. IP có một phương thức cho phép bất kỳ máy tính nào trên Internet chuyển tiếp gói tin tới một máy tính khác thông qua một hoặc nhiều khoảng (chuyển tiếp) gần với người nhận gói tin. Bạn có thể nghĩ về nó giống như các công nhân trong một đường chuyền tảng đá từ một mỏ đá đến một chiếc xe tải khai thác mỏ.
Giao thức điều khiển truyền dẫn có trách nhiệm đảm bảo việc truyền dữ liệu đáng tin cậy qua các mạng kết nối Internet. TCP kiểm tra các gói dữ liệu xem có lỗi không và gửi yêu cầu truyền lại nếu có lỗi được tìm thấy.
2.8.3 Các giao thức TCP/IP phổ biến nhất
● HTTP – Được sử dụng giữa một web client và một web server, để truyền dữ liệu không an toàn. Một web client(tức là trình duyệt Internet trên máy tính) gửi một yêu cầu đến một web server để xem một trang web. Máy chủ web nhận được yêu cầu đó và gửi thông tin trang web về cho web client.
● HTTPS – Được sử dụng giữa một web client và một web server, để truyền dữ liệu an toàn. Thường được sử dụng để gửi dữ liệu giao dịch thẻ tín dụng hoặc dữ liệu cá nhân khác từ một web client(ví dụ trình duyệt Internet trên máy tính) tới một web server.
● FTP – Được sử dụng giữa hai hoặc nhiều máy tính. Một máy tính gửi dữ liệu đến hoặc nhận dữ liệu từ máy tính khác một cách trực tiếp.
26
Chương 3: THIẾT KẾ HỆ THỐNG 3.1 Thuật toán đường đi
3.1.1 Tầm quan trọng của thuật toán
Robot thông minh đang ngày càng trở nên quen thuộc với con người, nó có thể giúp đỡ con người trong nhiều lĩnh vực như sản xuất, nghiên cứu, cũng như những công việc thường nhật trong gia đình và robot lau nhà cũng không ngoại lệ.Đối với robot lau nhà để có được năng suất cao rất cần thuật toán đường đi tối ưu để có thể lau hết được diện tích phòng.
3.1.2 Một số thuật toán dùng cho robot thông minh:
● Breadth First Search:
Hình 3.1.1:Xuất phát từ đỉnh 1
Hình 3.1.2:Đi đến đỉnh 2, như vậy nút 1 là nút cha của nút 2
Hình 3.1.4: Xuất phát từ đỉnh 2,đi đến đỉnh 3,nút cha của đỉnh 3 là đỉnh 2 Hình 3.1.3:Hết tất cả các đỉnh
27
● Ưu điểm: Thuật toán tìm kiếm theo chiều rộng, ít phức tạp.
● Khuyết điểm: Độ tối ưu thấp
Do thao tác trong nhà nên địa hình thường là mặt phẳng chữ nhật đơn giản nên có thể sử dụng một số thuật toán thông thường có tính phức tạp thấp hơn để đáp ứng
Một số thuật toán có thể áp dụng trong nhà:
Chạy ôm tường: Độ phức tạp thấp nhưng chỉ có thể lau xung quanh phòng.
● Ưu điểm: Thuật toán đơn giản dễ vận hành.
● Khuyết điểm: Độ tối ưu thấp.
Hình 3.1.6 Minh họa thuật toán ôm tường Hình 3.1.5 : Xuất phát từ đỉnh 2, bôi
đen đỉnh 4, nút cha của đỉnh 4 là đỉnh 2
28
Chạy xoắn ốc:
● Ưu điểm: Diện tích lau được tối ưu hơn so với thuật toán trên.
● Khuyết điểm : Đòi hỏi độ phức tạp cao hơn về phần cứng (đòi hỏi các cảm biến về góc) cũng như phần mềm nhưng vẫn chưa đạt độ tối ưu tối đa.
Hình 3.1.7 Minh họa thuật toán xoắn ốc
Như đã thấy mặc dù diện tích lau đã được tăng lên đáng kể nhưng vẫn còn thiếu xót.
Chạy theo kiểu zic zag:
Độ phức tạp thấp có thể lau hầu hết phòng mà không bỏ sót những góc phòng. Ngoài ra thuật toán zic zag cũng có thể lau khắp phòng mặc dù có những vật dụng trong phòng điều mà chạy ôm tường và chạy xoắn ốc không làm được.
Giới thiệu thuật toán zic zag:
Như đã nêu ở trên trong nhiều thuật toán di chuyển xoắn ốc,ngẫu nhiên,ôm tường thì zic zag đượ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
Ở lần lau đi robot có thể bỏ sót ở một bên của vật cản, nhưng ở lần lau về thì nó sẽ được robot lau.Vì vậy đảm bảo diện tích được lau là tối đa.
● Ưu điểm: Phần cứng đơn giản hơn so với thuật toán xoắn ốc diện tích lau tối ưu.
● Khuyết điểm: Để đạt tối ưu về diện tích được lau thì robot phải hoàn thành cả lượt đi lẫn về nên thời gian hoàn thành sẽ có phần lâu hơn các thuật toán khác.
29
Hình 3.1.8 Minh họa thuật toán zic zag Trong đó:Khoảng cách d chính bằng kích thước robot.
Trong tất cả các thuật toán nêu trên, thuật toán zic zag đạt được độ tối ưu cao nhất cả về phần cứng lẫn năng suất hoạt động của robot nên thuật toán zic zag được sử dụng làm giải thuật đường đi cho đồ án.
3.2 Thiết kế giao diện điều khiển 3.2.1 Giao diện web 3.2.1 Giao diện web
Ngôn ngữ lập trình html và css
● Giới thiệu về html và css
Được sử dụng trong việc tao ra giao diện điều khiển trên web của đồ án. 1.Giới thiệu về HTML
HTML là chữ viết tắt của cụm từ HyperText Markup Language(dịch là Ngôn ngữ đánh dấu siêu văn bản) được sử dụng để tạo một trang web, trên một website có thể sẽ chứa nhiều trang và mỗi trang được quy ra là một tài liệu HTML
Một tài liệu HTML được hình thành bởi các phần tử HTML (HTML Elements) được quy định bằng các cặp thẻ (tag), các cặp thẻ này được bao bọc bởi một dấu ngoặc ngọn (ví dụ <html>) và thường là sẽ được khai báo thành một cặp, bao gồm thẻ mở và thẻ đóng (ví <strong> dụ </strong> và ). Các văn bản muốn được đánh dấu bằng HTML sẽ được khai báo bên trong cặp thẻ (ví dụ <strong>Đây là chữ in đậm</strong>). Nhưng một số thẻ đặc biệt lại không có thẻ đóng và dữ liệu được khai báo sẽ nằm trong các thuộc tính (ví dụ như thẻ <img>).
30
Một tập tin HTML sẽ bao gồm các phần tử HTML và được lưu lại dưới đuôi mở rộng là .html hoặc .htm.
2. Giới thiệu về Css
CSS là chữ viết tắt của Cascading Style Sheets, nó là một ngôn ngữ được sử dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh dấu (ví dụ như HTML). Bạn có thể hiểu đơn giản rằng, nếu HTML đóng vai trò định dạng các phần tử trên website như việc tạo ra các đoạn văn bản, các tiêu đề, bảng,…thì CSS sẽ giúp chúng ta có thể thêm một chút “phong cách” vào các phần tử HTML đó như đổi màu sắc trang, đổi màu chữ, thay đổi cấu trúc,…rất nhiều.
Giao diện web
Giao diện điều khiển web của đồ án được chia làm 2 phần:Giao diện đăng nhập và giao diện điều khiển.
3.2.2 Thiết kế giao diện điện thoại
Phần mềm lập trình Android Studio
Android Studio là môi trường phát triển tích hợp (IDE) chính thức dành cho phát triển nền tảng Android.Android Studio cũng cho phép lập trình viên tạo ứng dụng, dễ dàng thực hiện các thay đổi và xem trước trong thời gian thực.
Android Studio hỗ trợ một loạt các giả lập để xem trước ứng dụng, vì vậy ngay cả khi không có thiết bị thử nghiệm, vẫn có thể chắc chắn rằng mọi thứ đều hoạt động trơn tru.
31
Hình 3.2.2.1 Giao diện lập trình điện thoại Nguyên lý hoạt động :
Sau khi khởi động chương trình điện thoại sẽ xuất hiện giao diện đăng nhập
32
Sau khi đăng nhập thành công giao diện điều khiển xuất hiện giao diện điều khiển.
Lúc này nhập ip mặc định của robot để kết nối điều khiển khi kết nối thành công các nút điều khiển có thể hoạt động.
Sử dụng joystick để điều khiển robot ở chế độ điều khiển. Có 2 chế độ điều khiển tự đông và điều khiển
● Khi chọn chế độ “tự động” điện thoại sẽ gửi 1 chuỗi mã đến NODEMCU, lúc này thông qua giao tiếp UART với PIC16F887, NODEMCU sẽ gủi cho PIC 1 chuổi ký tự để PIC nhận biết được là đang ở chế độ chạy tự động.
● Khi chọn chế độ “điều khiển” điện thoại sẻ gủi liên tục các chuỗi đến NODEMCU, lúc này thông qua giao tiếp UART với PIC16F887, NODEMCU sẽ gủi cho PIC16F887 các chuỗi này để robot có thể đi đúng huống mong muốn.
Khi điện thoại không kết nối đến NODEMCU thì robot mặc định chạy ở chế độ tự động.
33
Chương 4: XÂY DỰNG HỆ THỐNG
4.1 Sơ đồ khối hệ thống 4.1.1 Yêu cầu của hệ thống:
Hệ thống có khả năng tạo ra giao diện để giao tiếp trực quan với người dùng, có thể thay đổi qua lại 2 chế độ: Tự vận hành và điều khiển bằng tay.
Robot giao tiếp với điện thoại và web server qua wifi để thực thi các yêu cầu của người sử dụng.
4.1.2 Sơ đồ khối:
34
4.1.3 Sơ đồ nguyên lý
Hình 4.1.2 Sơ đồ nguyên lý
4.1.4 Chức năng từng khối:
● Điều khiển thông qua di động hoặc web: Điều khiển robot theo ý muốn của người sử dụng thông qua giao diện được thiết kế sẵn.Chọn lựa giữa 2 chế độ điều khiển hoặc tự động.
● Khối giao tiếp wifi:Kết nối robot với hệ thống mạng
● Khối xử lý trung tâm:Nhận tính hiệu từ khối điều cũng như cập nhật dữ liệu từ camera đến giao diện của khối điều khiển.Khi có tín hiệu từ khối điều khiển khối xử lý trung tâm sẽ thực hiện chế độ điều khiển hoặc tự động.
● Khối camera:Cập nhật vi trí của robot hổ trợ chế độ điều khiển
● Khối cảm biến:Đươc đặt xung quanh thân và ở đáy robot có chức năng xác định vật cản cũng như những vùng đia hình lõm.
35
4.1.5 Hoat động của hệ thống: 4.1.5.1 Hoạt động giao diện
Giao diên web:
● Bao gồm một giao diện đăng nhập, bao gồm hai ô password, cùng với một nút nhấn xác nhập.
● Sau khi đăng nhập thành công người dùng sẽ được liên kết đến giao diện điều khiển.
Giao diện điều khiển của chương trình, bao gồm:
● Nếu chọn chế độ tự vận hành, các cảm biến siêu âm và hồng ngoại sẽ hoạt động để giúp robot tránh vật cản và địa hình xấu
● Nếu chọn chế độ điều khiển bằng tay, người dùng sẽ sử dụng những phím điều hướng để điều khiển xe theo ý mình.
Giao diện điện thoại:
● Chỉ gồm giao diện điều khiển có chức năng tương tự như giao diện web.
4.1.5.2 Hoạt động robot
● Robot sẽ luôn trong trạng thái chớ lệnh từ điện thoại hoặc web server. Khi nhận được lệnh, robot sẽ thực thi theo yêu cầu.
4.2 Thiết kế tính toán hệ thống. 4.2.1Khối cảm biến: 4.2.1Khối cảm biến:
Yêu cầu:
Để phát hiện được vật cản và xe có phản xạ kịp thời, cảm biến cần phải phát hiện chính xác trong tầm khoảng cách 20cm.
Các loại thường gặp:
STT Tên Khoảng cách phát hiện Giá 1 Cảm biến hồng ngoại Analog
SHARP
20 – 150 cm 230.000 VND
2 Cảm biến hồng ngoại V1 2 -5 cm 20.000 VND
3 Cảm biến siêu âm SRF 04 2 - 300 cm 30.000 VND
36
Giải pháp:
● Trong các loại cảm biến thường gặp thì cảm biến IR có giá thành thấp nhất nhưng khi lau nhà trong môi trường có ánh sáng mặt trời các cảm biến hồng ngoại lại không đảm bảo về độ chính xác.
● Do đó cảm biến siêu âm sẽ là sự lựa chọn tốt để thực hiện chức năng tránh vật cản của robot.So với srf04 thì srf05 có khoảng cách phát hiện xa hơn,giá thành không chênh lệch nhiều.
● Xác định địa hình xấu: Ngược lại so với chức năng tránh vật cản các cảm biến dò địa hình được đặt ở gầm robot, nơi ánh sáng hạn chế rất thích hợp sử dụng cảm biến hồng ngoại,tối ưu về giá thành.
Giải pháp được chọn: Dùng cảm biến siêu âm SRF-05 vì có khoảng cách phát hiện xa và giá thành rẻ.
4.2.2 Khối điều khiển động cơ
Yêu cầu:
● Điều khiển được motor 12V.
● Có thể nhận điện áp điều khiển mức logic từ 3.3V -5V cho phù hợp với các vi điều khiển hiện nay.
ST T
Tên Giá Điện áp đầu vào Dòng cực đại mỗi ngõ vào
1 L298 55.000 VND 5 – 30V 2A
2 L9110 45.000 VND 2.5 - 12V 0.8A
3 Mini H1 45.000 VND 2 -10V 1.5A
4 TB6612 70.000 VND < 15V 1.2A
Giải pháp: Chọn module L298 do:
● Có mạch bảo vệ chống quá dòng bên trong, dễ sử dụng.
● Dù có giá tiền rẻ hơn nhưng Mini H1 và L9110 không có được mạch bảo vệ quá dòng, để gây hư hỏng các linh kiện khác trong hệ thống.
37
4.2.3Khối giao tiếp wifi
Yêu cầu:
● Phù hợp với chuẩn Wifi hiện nay (802.11).
● Hoạt động ổn định.
● Có thể ưu tiên chọn các board mạch nhúng tích hợp sẵn module wifi.
Giải pháp: Chọn NodeMCU ESP8266 là do:
● Dễ dàng trong việc lập trình giao diện.
● Nhìu chân gpio hỗ trợ giao tiếp camera.
4.2.4 Khối xử lý trung tâm
Khối xử lý trung tâm chọn dòng vi điều khiển PIC vì đây là loại vi điều khiển phổ biến giá thành rẻ dễ dàng gia công.
Tính toán số lượng chân cần thiết :
STT Tên linh kiện Số chân kết nối Số lượng
1 Cảm biến hồng
ngoại
1 6
2 Esp8266 2 1
3 Cảm biến góc 6 1
4 Cảm biến siêu âm 4 1
5 Cảm biến điện áp 2 1
6 Động cơ encoder 1 2
Sau khi tính toán thì cần ít nhất 24 chân I/O. Tốc độ xử lý dữ liệu từ 16bit đến 32bit.
Tên Giá
Pic16F887 45.000đ
Bộ Raspberry pi zero 500.000đ
38
● Trong những cái tên được nêu ở trên thì Pic 16F887 có giá thành thấp nhất nhưng vẫn có thể đảm bảo được số chân I/O cần thiết cũng như tốc độ xử lý.Ngoài ra robot lau nhà cần nhỏ gọn để có thể lau dọn trong những không gian hẹp nên Pic 16F887 là sự lựa chọn để tối ưu diện tích phần cứng.
● Chức năng ngõ vào ra, kết nối.
● Port B kết nối với các cảm biến hồng ngoại vì trên PIC có cho phép ngắt ngoài bằng port B.
● Port C kết nối với module ESP8266 và đọng cơ encoder.
● Port A kết nối với cảm biến điện áp để đo dung lượng pin.
● Port D, B,E kết nối với các module còn lại.
Các chương trình con được lập trình sẵn trên pic khi người dùng chọn chế độ thực hiện thì dữ liệu được truyền qua module esp8266 giao tiếp với pic bằng chân usart để thực hiện chế độ.
Các trương trình con bao gồm các nhiệm vụ sau :
● Cài đặt các thông số ban đầu cho pic và module esp8266.
● Thực hiện các lênh kiểm tra tín hiệu đầu vào.
● Điều khiển động cơ hoạt động theo mong muốn và thuật toán đã được lập trình.
4.2.5 Khối nguồn:
● Cho Motor : Dùng 2 pin 4.2V và 1 viên 3.7V loại sạc lại để tạo điện áp 12.1V cho Motor.
Tên Giá Điện áp ra Dòng xả
Pin sạc Panasonic 1100mAh 30.000 VND 3.7V 2A
Pin sạc Panasonic 1100mAh 30.000 VND 4.2V 2A
39
4.3 Lưu đồ giải thuật 4.3.1 Lưu đồ giao diện 4.3.1 Lưu đồ giao diện
4.3.1.1 Lưu đồ đăng nhập web
Khi truy cập đến web, hiển thị ô đăng nhập các chức năng điều khiển bị vô hiệu.
Sau khi nhập đúng password, có thể sử dụng các chức năng điều khiển.
Ưu điểm
Đáp ứng đầy đủ những chức năng cần thiết.
Camera hỗ trợ quá trình điều khiển.
Khuyết điểm
Giao diện còn đơn giản.
40
4.3.1.2 Lưu đồ giao diện điều khiển web và android
Gồm 2 chế độ điều khiển:
Chế độ tự động:
Phát tín hiệu “auto” đến robot để robot chạy theo thuật toán được lập trình sẵn.
Chế độ điều khiển:
Phát tín hiệu từ các phím điều khiển, robot sẽ di chuyển theo yêu cầu của người sử dụng dưới sử hỗ trợ của camera quan sát.