Mã nguồn NodeJS

Một phần của tài liệu Nghiên cứu, thiết kế và chế tạo robot vận chuyển hành lý trong khách sạn đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ kỹ thuật cơ điện tử (Trang 28)

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 =Ke 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 =Ke 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 =FF =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.1126,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

3 Tốc độ (rpm) 120rpm

4 Tỉ số truyền 75:1

5 Loại encoder Cảm biến

6 Số xung trên mỗi kênh 13

7 Moment xoắn 3,5N.m

Bảng 3.1: Thông số động cơ

3.4.3 Tính toán bộ truyền

Trong phạm vi đồ án này, phương pháp truyền động bằng đai răng được lựa chọn với nhiều ưu điểm như không xảy ra hiện tượng trượt đai, hiệu suất cao, lực tác dụng lên trục và ổ đỡ nhỏ. Đồng thời bộ truyền đai răng được cung cấp phổ biến trên thị trường với những tiêu chuẩn đã định sẵn giúp cho việc hoàn cơ cấu được nhanh chóng và bảo trì thay thế dễ dàng.

Modun đai răng:

3 P Cr. m k N = (3.5) 3 0,06.1 35. 2 120 = 

Trong đó: P là công suất truyền, kW;

44 N là số vòng quay bánh dẫn, vg/ph;

k = 35 là đai gờ hình thang, k = 25 là đai gờ hình tròn;

Cr là hệ số tải trọng động,có giá trị 1,3…2,4 (giá trị lớn với thiết bị làm việc có va đập hoặc quá tải cục bộ thường xuyên).

Bước răng của đai:

p=m. =6, 28 (mm) (3.6) Dựa vào bảng 4.28 tài liệu ( trang 69 1.trịnh chất) Với m=2, chọn bề rộng đai b= 10(mm)

Từ các thông số môđun m=2; bước răng p=6.28 ; bề rộng đai b= 10. Để lựa chọn loại đai có đúng các thông số như trên rất khó, vì vậy loại đai phù hợp được chọn như

sau: Loại đai XL, bước đai p=5,08.

Thông số Kí hiệu Giá trị

Loại đai XL XL

Bước đai p 5.08

Bảng 3.2: Thông số đai

Dựa vào bảng 4.29 trang 70 tài liệu Trịnh chất:

Nhằm đảm bảo tuổi thọ cho đai, số răng bánh đai chủ động Z112  Chọn Z1=20 răng

Chọn tỉ số truyền U= 1 giúp giảm tính toán và sai số trong quá trình điều khiển. Số răng bánh đai bị động:

Z2 =U Z. 1 =20 răng

Khoảng cách trục được chọn theo điều kiện: amin  a amax Trong đó: min 0,5. .( 1 2) 2. 0,5.2.(20 20) 2.2 44 a = m Z +Z + m= + + = (mm). max 2. .( 1 2) 2.2.(20 20) 160 a = m Z +Z = + = (mm).

45 Chọn khoảng cách trục sơ bộ a = 100 mm Số răng đai: 2 1 2 2 1 2 ( ) 2 40 đ a Z Z Z Z p Z p a + − = + + 2 2.100 20 20 (20 20) 5,08 60 5,08 2 40.100 + − = + +  (răng)

Với số răng đai = 60, chọn loại đai 120XL với chiều dài đai L = 304,8 (mm) Xác định lại khoảng cách trục: 1 2 .( ) / 2 304,8 5, 08.(20 20) / 2 203, 2 L p Z Z  = − + = − + = 2 1 .( ) / 2 0 m Z Z  = − = Khoảng cách trục chính xác là: 2 2 2 8 203, 2 203, 2 101,6 4 4 a +  −  + = = =

Thỏa điều kiện amin  a amax

Đường kính vòng chia của các bánh đai:

1 . 1 2.20 40

d =m Z = = mm

2 . 2 2.20 40

d =m Z = = mm Đường kính ngoài của bánh đai:

1 . 1 2 2.20 2.0, 6 38,8 a d =m Z −  = − = mm 2 . 2 2 2.20 2.0, 6 38,8 a d =m Z −  = − = mm

Trong đó:  - khoảng cách từ đáy răng đến đường trung bình của lớp chịu tải, bảng 4.27

• Kiểm nghiệm đai:

Kiểm nghiệm đai về lực vòng riêng

2 . . đ t m F K q q v b = + (3.8) Trong đó:

46 t F là lực vòng đai: 1000 1000.0,06 75 0,8 t P F v = = = (N) đ

K là hệ số tải trọng theo bảng 4.7 tài liệu [3] chọn Kđ= 1, qmlà khối lượng 1 mét đai có chiều rộng 1mm tra bảng 4.31 tài liệu [1] ta chọn qm= 0,0032

b là bề rộng đai b = 10 mm v là vận tốc vòng v = 0,4 m/s

75.1 0,0032.0,82 7,5 10

q= + =

Bảng 4.31 trang 71 tài liệu [1].

Với m =2 thì lực vòng riêng cho phép [q] = 5 Lực vòng riêng trên đai thỏa mãn điều kiện q < [q]

Trục sử dụng trong mô hình là dạng trụ truyền, có thể tiếp nhận đồng thời cả momen uốn và mô men xoắn.

Theo tài liệu [1] trang 189. Chọn đường kính trục dt =(0,8 1, 2). ddc

47

Thông số Kí hiệu Giá trị

Loại đai XL 120XL

Bước đai p 5.08 mm

Bề rộng đai b 10mm

Chiều dài đai L 304,8

mm

Số răng bánh răng chủ động Z1 20 răng

Số răng bánh răng bị động Z2 20 răng

Bề rộng bánh răng B=b+m 12mm

Đường kính ngoài của bánh đai chủ động da1 38,8 mm Đường kính ngoài của bánh đai bị động da2 38,8 mm Đường kính vòng chia bánh răng chủ động d1 40 mm

Đường kính vòng chia bánh răng bị động d2 40 mm

Đường kính trục Puly dt 12mm

Bảng 3.3: Tổng hợp các thông số

Hình 3.6: Bộ truyền đai răng XL

48

3.5.1 Thiết kế đế robot

Việc thiết kế đế robot là là phần cực kì quan trọng và cần thiết vì nó không những cần phải có đủ không gian để lắp đặt các chi tiết như động cơ, các mạch điện, linh kiện điện tử, bộ truyền đai răng, pin, PCB... còn dư đủ không gian tránh việc quá chật dẫn đến các tình trạng linh kiện quá nóng dẫn đến lỗi trong quá trình di chuyển, mà

Một phần của tài liệu Nghiên cứu, thiết kế và chế tạo robot vận chuyển hành lý trong khách sạn đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ kỹ thuật cơ điện tử (Trang 28)

Tải bản đầy đủ (PDF)

(85 trang)