CHƯƠNG 5: THIẾT KẾ HỆ THỐNG ĐIỆN VÀ GIẢI THUẬT ĐIỀU KHIỂN
5.2. Giải thuật điều khiển
5.2.1. Giải thuật tầng Application
Hình 5.10: Sơ đồ hóa chi tiết ý tưởng
52 Trong đó:
• GUI Manager: là giao diện người dùng của người quản lý vận hành kho và xử lý yêu cầu của khách hàng.
• GUI Customer: là giao diện người dùng của khách hàng, dùng để đặt hàng.
• Server: là máy chủ MariaDB đặt trên hệ điều hành Linux.
• Robot: là máy tính giao tiếp với MCU thông UART, xử lý ảnh nhận diện mã QR và đồng thời cũng là nơi đặt máy chủ Server
a. Sơ đồ tuần tự vận hành của hệ thống:
• Để sử dụng GUI Customer và GUI Manager ta cần máy tính hỗ trợ hệ điều hành Windows, MacOS X hoặc Linux
• Để vận hành robot thì cần 1 máy tính sử dụng hệ điều hành Linux ( Windows không tối ưu về bảo mật) để xử lý ảnh và giao tiếp với MCU, đồng thời cũng là nơi chứa database.
• Tất cả các máy tính và Server phải kết nối chung 1 hệ thống mạng nội bộ.
Sơ đồ 5.9: Sơ đồ tuần tự của GUI Manager
53 Mô tả hoạt động chi tiết:
• Khi bật chương trình GUI sẽ kết nối với database và phản hồi kết nối đã thiết lập được chưa, thông báo qua terminal. Sau khi kết nối thành công sẽ ghi menu vào database để đảm bảo menu được cập nhật mới nhất.
• Tiếp theo sau đó liên tục cập nhật order từ customer
• Tùy theo nút nhấn mà có cách Query database khác nhau, Cụ thể:
- Nút nhấn RUN: ghi dữ liệu order vào log_order database và trigger signal cho robot chạy
- Nút nhấn Remove: xóa dữ liệu order trong database - Nút nhấn Reset: Reset lại chương trình
Sơ đồ 5.10: Sơ đồ tuần tự của GUI Customer Mô tả hoạt động chi tiết:
• Khi bật chương trình GUI sẽ kết nối với database và phản hồi kết nối đã thiết lập được chưa, thông báo qua terminal. Sau khi kết nối thành công sẽ tải lên dữ liệu menu từ database để cho customer order.
• Tùy theo nút nhấn mà có cách Query database khác nhau, Cụ thể:
54
- Nút nhấn Add: ghi dữ liệu nội bộ vào 1 checklist để cho customer kiểm tra danh sách những món mình đã thêm vào, nếu cần thêm số lượng thì customer chỉ cần click Add lại số lượng sẽ cập nhật thêm 1.
- Nút nhấn Remove: xóa dòng tại con trỏ hiện tại, cần thiết nếu người dùng order nhầm.
- Nút nhấn Order: Ghi vào database dữ liệu ở check list để manager xử lý.
Sơ đồ 5.11: Sơ đồ tuần tự của Computer Mô tả hoạt động chi tiết:
• Khi khởi động computer sẽ kiểm tra kết nối với database và MCU để thiết lập kết nối.
• Khi khi thiết lập hoàn thành, computer sẽ vào vòng lặp kiểm tra order từ database, nếu có:
- Computer sẽ gửi tín hiệu UART đến MCU để MCU bắt đầu chạy, đồng thời bật camera để detect QR đúng vị trí cần tìm
55
- Khi tìm được đúng vị trí, computer sẽ gửi tín hiệu UART tới MCU, để MCU dừng lại và chờ người dùng lấy hàng xong
- Cuối cùng computer sẽ xử lý camera để tìm vị trí QR home để trigger MCU 1 lần nữa, sau khi hoàn thành đơn hàng computer sẽ xóa dữ liệu order từ database.
b. Giới thiệu về giao diện người dùng của hệ thống robot vận chuyển đa năng Giao diện người dùng cho customer:
Hình 5.11: Giao diện người dùng của customer Giao diện người dùng customer bao gồm:
[1] : Danh sách menu được tải lên từ database do manager ghi vào
[2]: Nút nhấn Add dùng để thêm vật phẩm muốn vào trong check list ( dùng để xem lại trước khi đặt hàng), mỗi lần nhấn sau lần thứ nhất thì số lượng của vật phẩm sẽ tăng lên 1.
[3]: Nút nhấn Remove dùng để loại bỏ vật phẩm trong check list mà customer không muốn đặt hàng nữa hoặc bị sai số lượng.
[4]: Checkout List ( danh sách kiểm tra trước khi đặt hàng) tạo sự trực quan giúp người dùng kiểm tra dễ dàng hơn những vật phẩm sắp đặt.
[5]: Combo box Table: dạng cửa sổ xổ xuống cho người dùng nhấn chọn vị trí bàn của mình.
[6]: Nút nhấn Order: Ghi đơn hàng từ checkout list vào database
56
Hình 5.12: Giao diện người dùng của Manager [1]: Danh sách đơn hàng tải lên từ database do customer yêu cầu
[2]: Nút RUN dùng để gửi đơn hàng đã chọn từ danh sách [1] vào trạng thái giao hàng của robot trong database. Khi chưa hoàn thành đơn hàng nút RUN không thể click lại được để tránh sự nhầm lẫn.
[3]: Nút Remove dùng để loại bỏ những đơn hàng lỗi hoặc có thông báo hủy từ customer.
[4]: Nút Reset khởi động lại tuần tự chương trình của GUI.