2.5.1.1 Giới thiệu về Website
Website là một tập hợp các trang web bao gồm văn bản, hình ảnh, video, flashv… được lưu trữ trên máy chủ web (web server) có thể truy cập từ xa thông qua Internet. Website có thể được xây dựng bằng nhiều ngôn ngữ lập trình khác nhau như: PHP, NET, Java…
31 Ưu điểm của website là thông tin dễ dàng cập nhật, thay đổi, người dùng có thể xem thông tin ngay tức khắc, ở bất kỳ nơi nào, tiết kiệm chi phí in ấn và không giới hạn khu vực, phạm vi sử dụng
Một website thông thường được chia thành 2 phần :
• Giao diện người dùng(front-end) : Giao diện người dùng là định dạng trang web được hiển thị trên màn hình máy tính của người dùng bằng các trình duyệt web như Internet Explorer, Firefox,…Việc trình bày một website phải đảm bảo các yếu tố về thẩm mỹ đẹp, bố cục đơn giản, tiện lợi, dễ hiểu và dễ sử dụng. Đặc biệt ngày nay, website trở nên sống động với những hiệu ứng đa dạng của hình ảnh và chữ kết hợp với âm thanh.
• Các chương trình được lập trình để website hoạt động (back-end): Là phần lập trình của website lưu trữ trên máy chủ (Server). Sự khác nhau ở phần lập trình back-end của website làm phân ra 2 loại website:
+ Website tĩnh là trang web sử dụng hoàn toàn ngôn ngữ HTML,không có cơ sở dữ liệu mà chỉ là website có nội dung ít thay đổi,người dùng hầu như không thể tương tác với trang web.
+ Website động là website có cơ sở dữ liệu,thông tin trên website thường đường thay đổi và cập nhật liên tục. Loại website này thường được viết bằng các ngôn ngữ lập trình như PHP, Asp.net, JSP, Perl,…, quản trị Cơ sở dữ liệu bằng SQL hoặc MySQL.
2.5.1.2 Ngôn ngữ lập trình web
a) Ngôn ngữ lập trình phía máy chủ
Hiện nay trên thế giới có khá nhiều ngôn ngữ lập trình phía máy chủ như: .NET, PHP, Python, HTML và Javascript, … Tuy nhiên, hai ngôn ngữ là PHP và javascript đều phổ biến hơn cả. Cả 2 đều là ngôn ngữ lập trình web dễ học và phổ biến nhất trên thế giới.
➢ PHP:
PHP là một ngôn ngữ trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ. Nó được được chạy ở phía server nhằm sinh ra mã html trên client. Nhờ vậy mà nó tạo ra các ứng dụng web chạy trên máy chủ. Ưu điểm của PHP là dễ học, có thể chạy trên tất cả các hệ điều hành và trình duyệt.
32 ➢ Javascript
Javascript là dạng ngôn ngữ theo kịch bản và dựa trên chính đối trượng phát triển có sẵn, hoặc là tự định nghĩa ra.Bởi vì sự tiện lợi, hiệu quả ứng dụng cao mà ngôn ngữ lập trình này là một trong những ngôn ngữ phổ biến và được sử dụng rộng rãi trên thế giới.Ngày nay, Javascript được sử dụng để xây dựng các ứng web tương tác và còn có thể xây dựng các ứng dụng di động. Ưu điểm của Javascript cũng tương tự như PHP nhưng có phần phổ biến hơn do sự tiện lợi mà nó mang lại khi có thể lập trình cả phía máy chủ (web server) và phía giao diện người dùng.
b)Ngôn ngữ lập trình web phía giao diện người dùng:
Để có thể lập trình web phía giao diện người dùng, thông thường sẽ cần sử dụng ba ngôn ngữ chính đó là: HTML, CSS, Javascript.
➢ HTML
HTML là viết tắt của cụm từ Hyper Text Markup Language, nghĩa là ngôn ngữ đánh dấu siêu văn bản. HTML có tác dụng dùng để định dạng bố cục cũng như các thuộc tính có liên quan đến cách hiển thị của một đoạn text hay được hiển thị trên một chương trình đặc biệt là Browser, Chorme, Cốc cốc. Cấu trúc của một tập trang web HTML gồm thẻ chính là <html>. Bên trong cặp thẻ <html> gồm hai thẻ là <head> và <body>, các thẻ con sẽ nằm bên trong hai thẻ này, các thẻ đều có một thẻ mở và một thẻ đóng. Các thẻ đóng thì giống như các thẻ mở nhưng có thêm dấu / (ví dụ: <html>…</html>. Các đoạn văn bản nằm giữa các thẻ sẽ được định dạng bởi trình duyệt theo tên của từng thẻ để hiển thị loại nội dung.
➢ CCS
CSS là chữ viết tắt của Cascading Style Sheets, nó là ngôn ngữ tạo phong cách cho trang web,làm cho trang web trở nên sinh động và thẩm mỹ hơn. Bạn có thể hiểu đơn giản rằng, nếu HTML có 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 style vào các phần tử HTML đó như thay đổi màu sắc,font chữ,kích cỡ chữ các đoạn văn bản.
➢ Javascript:
Javascript là một đoạn mã bên phía giao diện người dùng chạy trên trình duyệt web được dùng để truyền nhận dữ liệu một cách tự động và sau đó truy cập vào các thẻ của HTML để hiển thị dữ liệu.
33
2.5.2 Mã nguồn NodeJS 2.5.2.1 NodeJS 2.5.2.1 NodeJS
NodeJS là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine và được sử dụng để thiết kế để viết các ứng dụng internet có khả năng mở rộng, đặc biệt là máy chủ web. NodeJS có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ Window cho tới Linux,… NodeJS cung cấp các thư viện phong phú ở dạng Javascript Module khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở mức thấp nhất.
2.5.2.2 Các đặc tính của NodeJS
• Không đồng bộ: Tất cả các API của NodeJS đều không đồng bộ (none- blocking), nó chủ yếu dựa trên nền của NodeJS Server và chờ đợi Server trả dữ liệu về. Việc di chuyển máy chủ đến các API tiếp theo sau khi gọi và cơ chế thông báo các sự kiện của Node.js giúp máy chủ để có được một phản ứng từ các cuộc gọi API trước (Realtime).
• Chạy rất nhanh: NodeJ được xây dựng dựa vào nền tảng V8 Javascript Engine nên việc thực thi chương trình rất nhanh.
• Đơn luồng nhưng khả năng mở rộng cao: Node.js sử dụng một mô hình luồng duy nhất với sự kiện lặp. cơ chế tổ chức sự kiện giúp các máy chủ để đáp ứng một cách không ngăn chặn và làm cho máy chủ cao khả năng mở rộng như trái ngược với các máy chủ truyền thống mà tạo đề hạn chế để xử lý yêu cầu. • Không đệm: NodeJS không đệm bất kì một dữ liệu nào và các ứng dụng này
chủ yếu là đầu ra dữ liệu.
• Có giấy phép: NodeJS đã được cấp giấy phép bởi MIT License.
2.5.2.3 Hoạt động của NodeJS
Ý tưởng chính của Node js là sử dụng non-blocking, hướng sự vào ra dữ liệu thông qua các tác vụ thời gian thực một cách nhanh chóng. Node js có khả năng mở rộng nhanh chóng, khả năng xử lý một số lượng lớn các kết nối đồng thời bằng thông lượng cao. Nếu như các ứng dụng web truyền thống, các request tạo ra một luồng xử lý yêu cầu và chiếm RAM của hệ thống. Việc tài nguyên của hệ thống sẽ được sử dụng không hiệu quả. Chính vì lẽ đó giải pháp mà Node js đưa ra là sử dụng luồng đơn, kết hợp với non-blocking I/O để thực thi các request, cho phép hỗ trợ hàng chục ngàn kết nối đồng thời.
34
2.5.2.4 Quản lý gói NPM NodeJS
NPM viết tắt của từ Node Package Manager là một công cụ tạo và quản lý các thư viện javascript cho Nodejs. NPM là kho lưu trữ trực tuyến cho các package/module đồng thời cũng quản lý các module javascript và phiên bản của chúng giúp các dự án của chúng ta đơn giản hơn, dễ dàng hơn, tiết kiệm thời gian hơn.
Một số các mô- đun NPM phổ biến nhất hiện nay là: - ws – Websocket
- ExpressJS - jQuery - Bootstrap
2.6 Thuật toán điều khiển động cơ DC PID
Hình 2.10: Thuật toán điều khiển động cơ PID
PID là thuật toán điều khiển tỉ lệ - tích phân – vi phân được sử dụng để điều khiển những đối tượng như nhiệt độ lò nhiệt, mức nước trong bồn chứa, tốc độ và vị trí của động cơ, áp suất,… PID là thuật toán điều khiển được sử dụng phổ biến trong các hệ thống điều khiển phản hồi công nghiệp hiện nay. Để có thể điều khiển được đối tượng, PID phải lấy được giá trị đầu ra y của hệ thống như hình 2.10. Sau đó so sánh với giá trị đặt y0 để tìm ra giá trị sai số e. PID xử lý sai số e để tìm ra tác động vào đối tượng, giúp cho ra trị ngõ ra y bám theo giá trị đặt (Set-point) ban đầu.Bộ điều khiển PID gồm 3 khâu điều khiển là tỉ lệ (P), tích phân (I) và vi phân (D).
Ngõ ra của bộ điều khiển PID chính là tổng của ngõ ra ba khâu:
out out out out
35 Khâu tỉ lệ là tích giữa sai số hiện tại với độ lợi Kp :
( )
out p
P =K e t (2.2)
Khâu tích phân là tích giữa tổng sai số tức thời theo thời gian với độ lợi KI :
0t ( )
out I
I =K e d (2.3)
Khâu vi phân là tích giữa độ dốc sai số theo thời gian với độ lợi vi phân KD : ( ) out D d D K e t dt = (2.4) Vậy ngõ ra tác động là: 0 ( ) p ( ) I t ( ) D d ( ) u t K e t K e d K e t dt = + + (2.5)
Hàm truyền của bộ điều khiển PID liên tục:
( ) I p D K G s K K s s = + + (2.6)
Sự phát triển của các hệ thống điều khiển số yêu cầu cần có những bộ điều khiển rời rạc. Do đó thuật toán điều khiển PID rời rạc cũng được sử dụng rộng rãi trên máy tính cũng như hệ thống nhúng. Chuyển đổi về miền thời gian rời rạc cho từng khâu như sau: Khâu tỉ lệ: ( ) p ( ) u kT =K e kT (2.7) Khâu tích phân: 0 ( ) ( ) k I u kT =K e k T (2.8) Khâu vi phân: u kT( ) KD e kT( ) e k[( 1) ]T T − − = (2.9)
Với T là chu kì lấy mẫu theo thời gian (giây). Từ đó cho ta ngõ ra tác động u (kT) là:
36 0 ( ) [( 1) ] ( ) ( ) ( ) k p I D e kT e k T u kT K e kT K e k T K T − − = + + (2.10)
2.7 Truyền thông UART
UART là một mạch tích hợp được sử dụng trong việc truyền dẫn dữ liệu nối tiếp giữa máy tính và các thiết bị ngoại vi. UART có chức năng chính là truyền dữ liệu nối tiếp. Trong UART, giao tiếp giữa hai thiết bị có thể được thực hiện theo hai phương thức là giao tiếp dữ liệu nối tiếp và giao tiếp dữ liệu song song.
Hình 2.11: Giao tiếp UART
Trong giao tiếp UART có các thông số chính:
Baud rate (tốc độ baud ): Khoảng thời gian để 1 bit được truyền đi. Phải được cài đặt giống nhau ở cả phần gửi và nhận.
Frame (khung truyền): Khung truyền quy định về mỗi lần truyền bao nhiêu bit. Start bit: là bit đầu tiên được truyền trong 1 Frame. Báo hiệu cho thiết bị nhận có một gói dữ liệu sắp đc truyền đến. Đây là bit bắt buộc.
Data: dữ liệu cần truyền. Bit có trọng số nhỏ nhất LSB được truyền trước sau đó đến bit MSB.
Parity bit: kiểm tra dữ liệu truyền có đúng không.
Stop bit : là 1 hoặc các bit báo cho thiết bị rằng các bit đã được gửi xong. Thiết bị nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm bảo tính đúng đắn của dữ liệu. Đây là bit bắt buộc.
37
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG CƠ KHÍ
Trong phần này sẽ trình bày việc tính toán, thiết kế hệ thống truyền động và kết cấu phần cứng của robot để đáp ứng yêu cầu về khả năng vận hành trong môi trường làm việc khách sạn.
3.1 Yêu cầu thiết kế
Để hoàn thành một mô hình hoàn chỉnh dựa trên ứng dụng của Robot chúng ta cần đạt những yêu cầu thiết kế dưới đây:
- Robot di chuyển trên bề mặt bằng phẳng.
- Vì sử dụng trong khách sạn nên cơ cấu di chuyển phải linh hoạt. - Khối lượng hành lý từ 7 – 10 kg.
- Kích thước robot vừa phù hợp không gian di chuyển vừa để có đủ không gian lắp đặt các chi tiết bên trong robot.
- Vì di chuyển trong khách sạn nên lực cản gây ra do gió rất nhỏ. - Tính toán các cơ cấu từ đó xác định được vị trí lắp đặt các chi tiết. - Thiết kế mô hình 3D để có thể nhìn thấy mô hình trực quan nhất.
38
3.2 Sơ đồ khối
Tín hiệu điều khiển Tín hiệu nguồn Kết nối cơ khí
3.3 Nguyên lý hoạt động của robot
39
Hình 3.2: Sơ đồ nguyên lý hoạt động.
Nguyên lý hoạt động: Máy tính sẽ gửi vị trí cần đến của robot. Sau đó bộ điều khiển sẽ so sánh với vị trí hiện tại và xuất ra hai giá trị vận tốc xuống bộ điều khiển PID trên Driver. Driver điều khiển động cơ quay với giá trị vận tốc nhận được làm cho robot chạy. Khi robot chạy, hai encoder sẽ đo được số xung phát ra thông qua bài toán động học thuận sẽ ra được vị trí của robot. Khi vị trí hiện tại bằng vị trí cần đến thì robot dừng.
3.4 Tính toán hệ thống truyền động 3.4.1 Sơ đồ truyền động 3.4.1 Sơ đồ truyền động
Sau khi so sánh ưu điểm nhược điểm và phân tích tính khả thi của các cơ cấu đã tìm hiểu, phương án lựa chọn là cơ cấu lái vi sai 2 bánh tự lựa. Với yêu cầu linh hoạt trong không gian hẹp tốt thì cơ cấu lái vi sai có tâm quay tại tâm robot nên bánh kính quay xe bằng 0 và đặt 2 động cơ so le giúp robot đáp ứng tốt yêu cầu trên. Quá trình thiết kế cơ khí cho cơ cấu này cũng đơn giản hơn các cơ cấu còn lại vì không cần thiết kế hệ thống bẻ lái cho robot.
Trong trường hợp dùng 2 bánh tự lựa thì yêu cầu phải có hệ thống nhún đàn hồi cho 2 bánh tự lựa để đảm bảo các bánh tự lựa luôn tiếp xúc với mặt phẳng di chuyển.
40
Hình 3.4: Phân tích lực tác dụng lên robot khi di chuyển.
3.4.2 Tính toán chọn động cơ Các thông số ban đầu của Robot: Các thông số ban đầu của Robot:
- Khối lượng tối đa ước tính của robot m=30kg - Bánh xe có đường kính d=2r=145mm.
- Tốc độ: 0.8 m/s.
41 Trong đó:
θ là độ dốc của robot so với phương ngang.
N
F là lực tác của robot tác dụng lên mặt đất.
N
F = m g cos
r là bán kính của bánh xe; a là gia tốc của robot. v là vận tốc của robot.
ms
F là lực ma sát, Fms = m g cos (μlà hệ số ma sát).
w
F là lực kéo động cơ.
Do robot chỉ di chuyển trên mặt phẳng ngang của xưởng nên độ dốc = 0, FN= P. Tổng các lực tác dụng lên robot:
w ms F =F −F =ma
(3.1)
Lực kéo do động cơ sinh ra: Fw =m a. +Fms =m a. +. . .cosm g
=30.0,8+0, 03.30.9,8 =32,82 N
Với : xe tăng tốc với gia tốc a= 0.8 m/s 2 hệ số ma sát của bánh xe μ = 0.03; g = 9.8 m/s 2
Moment của động cơ:
w. 32,82.0, 0725 2,38 T =F r= = (N.m) Tốc độ động cơ: N=60.1000.0,8 .D (3.2) 60.1000.0,8 105 .145 = = (vòng/phút) Vận tốc góc: =2 .f (3.3)
42 105 =2 . 2 11 60 60 N = = (rad/s)
Công suất cần thiết của động cơ: Pct =T.
=2,38.1126,18(W) Hiệu suất truyền động:
n = n . . .1n n n2 3 4 =0,97.0,99.0,96.0,99=0,91 Với: n1=0,97: hiệu suất của hộp số.
n2 =0,99: hiệu suất khớp nối.
n3=0,96: hiệu suất bộ truyền đai răng. n4 =0,99: hiệu suất 1 cặp ổ lăn.
Vậy công suất động cơ:
26,18 28,77 0,91 ct P P n = = = (W)
Với yêu cầu moment T = 2,38 N.m, công suất P= 28,77W , số vòng quay động cơ N=105 (vòng/phút). Động cơ được chọn Planet 24V 60W 120rpm 13ppr với các thông số cơ bản được thống kê ở bảng dưới:
43 S
TT
Đặc điểm Giá trị
1 Loại động cơ Động cơ DC Planet có hộp số
2 Công suất 60W