Professional Documents
Culture Documents
ĐỀ TÀI:
NGHIÊN CỨU, THIẾT KẾ ROBOT ĐIỀU KHIỂN THEO QUỸ ĐẠO
ỨNG DỤNG LA BÀN SỐ VÀ CẢM BIẾN KHOẢNG CÁCH
Hà Nội – 2019
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
Hà Nội, ngày tháng năm 2018
Giáo viên hướng dẫn
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
Hà Nội, ngày tháng năm 2018
Giáo viên phản biện
LỜI NÓI ĐẦU
Kỹ thuật robot là một lĩnh vực phát triển hết sức nhanh chóng, là một
trong những công nghệ mũi nhọn của thế kỉ 21. Cùng với sự phát triển của xã
hội, kỹ thuật robot ngày càng được ứng dụng rộng rãi vào cuộc sống con người.
Ngày nay, chúng ta có thể thấy robot đã làm thay con người rất nhiều công việc.
Đó là những công việc mà con người cảm thấy nhàm chán, khó thực hiện, yêu
cầu độ chính xác hoặc có mức độ nguy hiểm cao. Ví dụ như robot lau nhà, robot
lắp ráp trong công nghiệp, robot trong ngành năng lượng hạt nhân, robot để
thám hiểm vũ trụ….
Để góp phần giúp sinh viên hiểu hơn về cấu tạo và nguyên lí hoạt động
của Mobile robot nhóm em đã chọn đề tài Mobile robot 3 bánh di chuyển theo
quỹ đạo, ứng dụng la bàn số và cảm biến khoảng cách. Dựa trên các kiến thức
đã tìm hiểu ở loại Mobile robot truyền thống, nhóm em ứng dụng thêm la bàn
số để tăng tính chính xác và điều khiển tối ưu quỹ đạo của robot hơn.
Em xin chân thành cám ơn thầy Lê Ngọc Duy đã hướng dẫn, nhiệt tình
giúp đỡ chúng em trong quá trình thực hiện đồ án. Chúng em cũng gửi lời cảm
ơn tới nhà trường, đặc biệt là quý thầy cô trong bộ môn cơ khí, cơ điện tử,
những người đã trang bị kiến thức nền tảng và giúp đỡ chúng em trong thời
gian qua.
Do kiến thức còn hạn chế nên đồ án còn nhiều sai sót. Chúng em mong
được sự giúp đỡ và đóng góp của các thầy và các bạn để đồ án được hoàn thiện
hơn. Chúng em xin chân thành cảm ơn!
2.1. Tính toán, lựa chọn phương pháp điều khiển ........................................ 9
2.2.2. Tính toán động học, động lực học cho robot ................................ 10
2.2.3. Tính toán động học cho robot cho một số chuyển động cơ bản ... 13
2.3.2. Xây dựng mô hình động cơ điện một chiều dưới dạng hàm truyền
................................................................................................................. 17
Chương trình lập trình ứng dụng điều khiển trên điện thoại: ..................... 57
DANH MỤC HÌNH ẢNH
Hình 1-1: Robot vận chuyển hàng hóa tự động trong kho hàng Amazon
........................................................................................................................... 2
Hình 1-3: Robot thám hiểm Sao Hỏa Curiosity của NASA ................... 3
Hình 1-6: Robot Omni do Trường ĐHBK Đà Nẵng nghiên cứu ........... 6
Hình 1-7: Robot Omni tránh vật cản sử dụng hồng ngoại...................... 7
Hình 2-1: Mô hình động học và động lực học cho Omni Robot ............ 9
Hình 3-22: Hình ảnh giao diện lập trình ứng dụng............................... 43
Hình 3-23: Giao diện điều khiển bằng điện thoại ................................. 43
Robot là một từ chỉ người lao động trong hệ ngôn ngữ Sla-vơ. Cho đến
nay có rất nhiều định nghĩa khác nhau về robot. Những định nghĩa đó có nội
dung tương tự như nhau.
Robot hay người máy là một loại máy có thể thực hiện những công việc
một cách tự động bằng sự điều khiển của máy tính hoặc các vi mạch điện tử
được lập trình.
Robot là một tác nhân cơ khí, nhân tạo, thường là một hệ thống cơ khí-
điện tử. Với sự xuất hiện và chuyển động của mình, robot gây cho người ta cảm
giác rằng nó giác quan giống như con người. Từ "robot" (người máy) thường
được hiểu với hai nghĩa: robot cơ khí và phần mềm tự hoạt động.
Ngày nay, người ta vẫn còn đang tranh cãi về vấn đề: “Một loại máy như
thế nào thì đủ tiêu chuẩn để được gọi là một robot?” Một cách gần chính xác,
robot phải có một vài (không nhất thiết phải đầy đủ) các đặc điểm sau đây:
Phân loại Mobile Robot: Có thể phân loại Mobile robot theo phương
pháp di chuyển.
- Robot có chân, di chuyển giống con người hay động vật.
- Robot di chuyển bằng xích, đai.
- Robot di chuyển bằng bánh xe.
Các dạng điều khiển:
- Robot điều khiển từ xa bằng tay qua sóng RF, wifi, hồng ngoại hay
Bluetoot…Robot điều khiển từ xa giúp con người tránh khỏi nguy hiểm,
không phải di chuyển theo robot.
- Thực thi theo lộ trình: dạng robot thường thấy đó là robot dò line, phát
hiện đường đi theo vạch chỉ sẵn; hay lập trình sẵn quỹ đạo và robot di chuyển
theo quỹ đạo đó.
- Robot hoạt động độc lập với những chuyển động ngẫu nhiên: Về cơ bản
đó là chuyển động nhảy bật lên tường, hay di chuyển trong khoảng không gian
nhất định, có sử dụng cảm biến tránh vật cản như robot hút bụi, máy cắt cỏ…
Ứng dụng của Mobile robot:
Mobile robot được dùng trong các nhà máy vận chuyển hàng hóa.
Hình 1-1: Robot vận chuyển hàng hóa tự động trong kho hàng Amazon
Ứng dụng trong đời sống, hỗ trợ con người làm việc nhà như hút bụi, lau
sạch bể bơi, giám sát an ninh, cắt cỏ, đồ chơi…
3
Hình 1-3: Robot thám hiểm Sao Hỏa Curiosity của NASA
1.1.2. Giới thiệu chung về robot omni
Robot Omni là một loại mobile robot di chuyển bằng những bánh xe đã
được ứng dụng nhiều trong thực tế do quỹ đạo chuyển động của nó rất đa dạng.
Đặc biệt là Omni có kết cấu lạ với 3 bánh xe, nhưng chính do sự phối hợp hoạt
động của 3 bánh xe lại cho ta khả năng điều khiển tốt quỹ đạo của robot.
4
xe omni-directional (gồm 1 bánh lớn và nhiều bánh nhỏ có trục vuông góc với
bánh lớn). Alexis có thể di chuyển trực tiếp đến bất kỳ vị trí nào trên đường đi
bằng thao tác của người lái thông qua một núm điều khiển nó sẽ gửi tín hiệu
đến vi xử lý để điều tốc độ của ba bánh xe. Xe được tạo ra để phục vụ người
tàn tật và các cựu chiến binh không có khả năng đi lại bình thường.
Thật không may, Alexis không bao giờ được sản xuất ra thị trường vì Jon
King, giám đốc điều hành Intex đã tham ô hàng triệu đô la vốn đầu tư. Ông này
sau đó đã bị kết án 10 năm tù giam trong nhà tù liên bang. Nhưng Alexis đã đi
tiên phong trong công nghệ ứng dụng của loại xe sử dụng bánh xe Omni giúp
đỡ người tàn tật.
Điểm mạnh:
- Có khả năng vận hành tự động hoặc điều khiển từ xa
- Tính linh hoạt cao
- Độ chính xác cực kì cao
- Trọng tải siêu lớn
- Có thể lắp ghép mô-đun.
Các nghiên cứu trong nước
- Omni Robot cân bằng trên quả cầu.
Khối điều khiển trung tâm là một mạch Arduino Mega2560, nhận dữ liệu
trạng thái từ IMU và tính toán, truyền đến khối điều khiển động cơ, các giá trị
đặt cho mỗi động cơ. Mạch này cũng đảm bảo các kết nối không dây để điều
khiển và thu thập dữ liệu BBR từ xa. Hệ thống động lực robot bao gồm ba động
cơ DC dẫn động ba bánh xe đa hướng và các mạch driver tương ứng. Vị trí trục
và dòng điện của các động cơ được đo bằng encoder và cảm biến dòng. Các
7
thông tin này được khối điều khiển động cơ sử dụng để điều chỉnh tốc độ và
momen xoắn của mỗi động cơ theo phương pháp điều chế độ rộng xung (PWM
- Pulse Width Modulation).
- Omni Robot tránh vật cản:
Điều khiển phối hợp 3 động cơ RC Servo và sử dụng 3 cảm biến hồng
ngoại đi theo những quy đạo đơn giản và tránh chướng ngại vật do nhóm sinh
viên đại học bách khoa Hà Nội chế tạo.
Hình 1-7: Robot Omni tránh vật cản sử dụng hồng ngoại
1.2. Mục tiêu của đề tài
Về mặt thiết kế cơ khí: Mobile robot có thiết kế đơn giản, nhỏ gọn, đảm
bảo độ cứng vững và đủ không gian lắp ráp các linh kiện. Các bánh được lắp
đặt theo góc đều nhau và đảm bảo trọng tâm của mô hình trong quá trình di
chuyển.
Hệ thống điều khiển: Sử dụng các linh kiện điện tử phổ biến trên thị
trường, dễ dàng trong quá trình thiết kế hệ thống điều khiển, lập trình. Các linh
kiện, đường đi dây được bố trí hợp lí, gọn gàng, không bị lỏng lẻo, ngắt kết nối
trong quá trình hoạt động.
Mục tiêu hoạt động của mô hình: Mobile robot có khả năng di chuyển đa
hướng, di chuyển theo quỹ đạo đơn giản được thiết kế trên giao diện điện thoại.
8
Mô hình có thể sử dụng chế độ điều khiển bằng tay và chế độ điều khiển tự
động được kết nối thông qua modul bluetooth với độ chính xác trên 95%.
1.3. Phương pháp thực hiện đề tài
Chuyển động của robot là do chuyển động của các bánh xe. Các bánh xe
chuyển động do động cơ lắp ở mỗi trục bánh quay và sinh ra lực kéo. Vậy ta
xét đến mô hình robot, trong đó các lực kéo đặt ở các bánh xe. Vận tốc của
robot được tính dựa vào vận tốc của các bánh xe. Từ đó ta có mô hình robot
như sau:
Hình 2-1: Mô hình động học và động lực học cho Omni Robot
Robot gồm 3 bánh đặt lệch nhau 1200, tiếp tuyến với một đường tròn
đường kính 350mm. Gọi các bánh xe lần lượt là 1,2,3. Chọn 2 hệ trục tọa độ
như sau: hệ trục tọa độ Oxy gắn cố định với mặt phẳng sàn, hệ trục tọa độ Ox1y1
gắn với robot như trên hình vẽ. Tại thời điểm ban đầu giả thiết rằng hai trục tọa
10
độ trùng với nhau. Tại thời điểm t, hai hệ trục tọa độ lệch nhau 1 góc 𝜃 chính
là góc quay của robot so với vị trí ban đầu.
Trong đó:
- x: vị trí của robot trong hệ trục tọa độ Oxy theo phương Ox
- y: vị trí của robot trong hệ trục tọa độ Oxy theo phương Oy
- d: khoảng cách giữa các bánh và tâm robot [m]
- v1, v2, v3: vận tốc dài của các bánh xe [m/s]
- 𝜔1 , 𝜔2 , 𝜔3 : vận tốc góc của các bánh [rad/s]
- f1, f2, f3: lực do động cơ sinh ra trên các bánh [N]
- T1, T2, T3 : Momen kéo do động cơ sinh ra đặt lên các bánh [Nm]
- v, vn : Vận tốc theo 2 phương trên hệ trục Ox1y1 của robot [m/s]
- : vận tốc góc của robot: [rad/s]
- Fv, Fvn: lực tác dụng lên robot dọc theo phương 0x1 và 0y1 [N]
- T: Momen robot (theo ) [Nm]
2.2.2. Tính toán động học, động lực học cho robot
Gọi vx(t), vy(t), t là vận tốc tức thời của robot trên hệ trục tọa độ Oxy. Ta
có:
𝑑𝑥(𝑡)
𝑣𝑥 (𝑡) =
𝑑𝑡 (2.1)
𝑑𝑦(𝑡)
𝑣𝑦 (𝑡) =
𝑑𝑡
𝑑𝜃(𝑡)
𝜔(𝑡) =
𝑑𝑡
Chiếu các vận tốc trên lên hệ trục tọa độ Ox1y1 gắn với robot, ta có:
Viết lại các công thức trên dưới dạng ma trận, ta được công thức liên hệ giữa
vận tốc theo 2 hệ trục tọa độ khác nhau:
∑ 𝐹 = 𝑀𝑣̇
∑ 𝑇 = 𝐽𝜔̇
Ta có:
12
𝑑𝑣(𝑡)
𝑀 = ∑ 𝐹𝑣 (𝑡) − 𝐹𝐵𝑣 (𝑡) − 𝐹𝐶𝑣 (𝑡)
𝑑𝑡
𝑑𝑣𝑛(𝑡)
𝑀 = ∑ 𝐹𝑣𝑛 (𝑡) − 𝐹𝐵𝑣𝑛 (𝑡) − 𝐹𝐶𝑣𝑛 (𝑡)
𝑑𝑡
𝑑𝜔(𝑡)
𝐽. = ∑ 𝑇(𝑡) − 𝑇𝐵𝜔 (𝑡) − 𝑇𝐶𝜔 (𝑡)
𝑑𝑡
Trong đó:
M [kg]: khối lượng robot
J [kgm2]: Mô men quán tính của robot
𝐹𝐵𝑣 ,𝐹𝐵𝑣𝑛 [N]: Lực ma sát nhớt dọc theo phương Ox1 và Oy1 tác dụng lên robot
𝑇𝐵𝜔 [Nm]: Mô men ma sát nhớt tác dụng lên robot
𝐹𝐶𝑣 ,𝐹𝐶𝑣𝑛 [N]: Lực ma sát khô dọc theo phương Ox1 và Oy1 tác dụng lên robot
𝑇𝐶𝜔 [Nm]: Mô men ma sát khô tác dụng lên robot
Lực ma sát nhớt tỉ lệ với vận tốc của robot:
𝐹𝐵𝑣 (𝑡) = 𝐵𝑣 . 𝑣(𝑡)
𝐹𝐵𝑣𝑛 (𝑡) = 𝐵𝑣𝑛 . 𝑣𝑛(𝑡)
𝐹𝐵𝑣𝑛 (𝑡) = 𝐵𝜔 . 𝜔(𝑡) (2.7)
𝐵𝑣 ,𝐵𝑣𝑛 [N/(m/s)]: Hệ số ma sát nhớt
𝐵𝜔 [Nm/(rad/s)]: Hệ số ma sát nhớt do vận tốc quay
Độ lớn của các lực ma sát khô là hằng số:
𝐹𝐶𝑣 (𝑡) = 𝐶𝑣 . 𝑠𝑖𝑛(𝑣(𝑡))
𝐹𝐶𝑣𝑛 (𝑡) = 𝐶𝑣𝑛 . 𝑠𝑖𝑛(𝑣𝑛(𝑡))
(2.8)
𝑇𝐶𝜔 (𝑡) = 𝐶𝜔 . 𝑠𝑖𝑛(𝜔(𝑡))
𝐶𝑣 ,𝐶𝑣𝑛 [N]: hệ số ma sát khô dọc theo phương Ox1 và Oy1
𝐶𝜔 [Nm]: hệ số ma sát khô theo w
13
Lực kéo trên mỗi bánh được ước lượng theo mô men kéo có thể xác định
được bằng cách sử dụng dòng điện của động cơ, được miêu tả bằng công thức
dưới đây:
𝑇𝑗 (𝑡)
𝑓𝑗 (𝑡) =
𝑟
𝑇𝑗 (𝑡) = 𝑙. 𝐾𝑡 . 𝑖𝑗 (𝑡) (2.10)
l: hệ số của hộp tốc độ
r [m]: bán kính bánh xe
Kt [Nm/A]: hằng số mô men động cơ
ij: dòng động cơ [A]: j= động cơ thứ j
2.2.3. Tính toán động học cho robot cho một số chuyển động cơ bản
Các chuyển động dùng để lập trình cho robot gồm có:
14
Chuyển động tịnh tiến: Khi cho 2 bánh bất kỳ trong 3 bánh quay cùng lúc
theo 1 phương nào đó (2 bánh đó quay ngược chiều nhau) thì sẽ làm cho robot
chuyển động tịnh tiến (hình 2.1b)
Tổng hợp 2 chuyển động trên ta có vector chuyển động tịnh tiến của
robot: (2.11)
Chuyển động quay: Khi cho 3 bánh xe quay cùng chiều thì sẽ làm cho
robot quay quanh tâm của nó (hình 2.5). Tùy vào góc quay mà độ lớn vận tốc
và hướng quay của các bánh sẽ khác nhau. Căn cứ vào vận tốc các bánh mà ta
có thể điều khiển góc quay và vận tốc của robot.
Dựa vào các tính toán động học cơ cấu Omni, góc chuyển động và vận tốc
của robot phụ thuộc vào tốc độ các bánh. Vì vậy bằng cách thiết lập tốc độ cho
trước ta có thể tính toán được tốc độ của các động cơ cơ cấu bánh omni.
Do đó bài toán được đưa về điều khiển tốc độ dùng phương pháp PID
cho từng động cơ.
Một bộ điều khiển vi tích phân tỉ lệ (bộ điều khiển PID) là một cơ chế
phản hồi vòng điều khiển tổng quát được sử dụng rộng rãi trong các hệ thống
bộ điều khiển công nghiệp- bộ điều khiển PID được sử dụng phổ biến nhất
trong số các bộ điều khiển có phản hồi. Một bộ điều khiển PID tính toán một
giá trị ‘sai số’ là hiệu số giữa giá trị thông số đo được và giá trị mong muốn đạt
được. Bộ điều khiển sẽ thực hiện giảm tối đa sai số bằng cách điều chỉnh giá trị
điều khiển đầu vào. Trong trường hợp không có kiến thức cơ bản về quá trình,
bộ điều khiển PID là sự lựa chọn tốt nhất. Tuy nhiên, để đạt được kết quả tốt
nhất, các thông số PID sử dụng trong tính toán phải điều chỉnh theo tính chất
của hệ thống- trong khi kiểu điều khiển là giống nhau, các thông số phải phụ
thuộc vào đặc thù của hệ thống.
Một bộ điều khiển PID bao gồm 3 khâu: khâu tỷ lệ (P), khâu tích phân (I),
khâu vi phân (D). Trong miền thời gian, bộ điều khiển PID được mô tả bằng
mô hình vào ra:
𝑡
𝑑𝑒(𝑡)
𝑢(𝑡) = 𝐾𝑝 𝑒(𝑡) + 𝐾1 ∫ 𝑒(𝑡) 𝑑𝑡 + 𝐾𝐷
0 𝑑𝑡
Trong đó u(t) là tín hiệu ngõ vào, e(t) là tín hiệu ngõ ra của bộ điều khiển.
Tín hiệu u sẽ được gửi tới cơ cấu chấp hành, và cho ra đầu ra y. Đầu ra y
sẽ được gửi đến cảm biến đo và ta lại có giá trị sai số e mới. Bộ điều khiển sẽ
16
lại lấy giá trị sai số mới, tính toán tích phân, vi phân và lại đưa ra tín hiệu điều
khiển. Quá trình này sẽ được lặp đi lặp lại.
Luật điều khiển P có tác dụng làm giảm thời gian xác lập nhưng không thể
khử được sai số trạng thái xác lập.
Luật điều khiển I có tác dụng khử được sai số trạng thái, nhưng nó làm
giảm khả năng đáp ứng tức thời của hệ thống.
Luật điều khiển D có tác dụng tăng độ ổn định của hệ thống và giảm độ
quá điều chỉnh, và cải thiện khả năng đáp ứng tức thời.
Hiệu quả của từng luật điều khiển P, I và D lên hệ thống vòng kín được
tổng kết qua bảng sau:
Bảng 2-1: : Nhận xét về các thông số Kp, Ki, Kd
2.3.2. Xây dựng mô hình động cơ điện một chiều dưới dạng hàm truyền
Động cơ điện một chiều có thể được mô hình thành mạch điện phần ứng
và rotor như hình vẽ:
V: điện áp vào
𝑒 = 𝐾𝑒 𝜃̇ = 𝐾𝜃̇
Mà mô men trên trục T có quan hệ với dòng điện phần ứng I thông qua hằng
số Kt:
𝑇 = 𝐾𝑡 𝑖 = 𝐾𝑖
Do đó:
𝐾(𝑉 − 𝐾𝑠𝜙(𝑠))
𝑠(𝐽𝑠 + 𝑏)𝜙(𝑠) =
(𝐿𝑠 + 𝑅)
Từ đây ta có thể rút ra được hàm truyền của hệ thống với đầu vào là điện áp V,
đầu ra là vận tốc góc của rotor :
𝜃 𝐾
= (𝐽𝑠+𝑏)(𝐿𝑠+𝑅)+𝐾2 (3.5)
𝑉
19
Yêu cầu: Di chuyển linh hoạt và chính xác theo quỹ đạo được thiết kế sẵn,
hoặc chế độ điều khiển bằng tay.
3.1.1. Thiết kế phần đế và nắp robot omi
Với nhiệm vụ vừa là phần đế, nắp giống nhau đồng thời là bộ khung thân
của robot, các linh kiện đều được bắt vít vào đế. Phần đế phải đảm bảo độ bền
chịu tải trọng của toàn bộ thân robot 3 bánh. Do vậy chúng em đã chọn vật liệu
thép tấm không gỉ (Inox), có sẻ các rảnh để dễ dàng tùy chỉnh bắt vít các linh
kiện và đồng thời giảm trọng lượng của đế mà vẫn đảm bảo độ bền. Phần bích
để bắt động cơ vào khung được thiết kế dạng chữ U gắn liền với đế bằng
bulong- đai ốc để tạo sự liền mạch và chắc chắn.
- Phương pháp gia công: gia công máy cắt plasma CNC
Phần nắp có nhiệm vụ bảo vệ các bộ phận bên trong robot, được thiết kế
giống như phần đế với các rãnh có thể linh động lắp ghép với các module (Giá
chứa phôi, tay máy robot…).
20
Bánh xe omni là một loại bánh xe đặc biệt, gồm một bánh xe lớn và các
bánh xe nhỏ có trục theo phương tiếp tuyến với bánh lớn và vuông góc với trục
bánh. Nhờ đó bánh xe có thể di chuyển theo phương song song với trục bánh
xe. Ưu điểm của bánh xe Omni là sự kết hợp chuyển động của mỗi bánh xe sẽ
tạo nên chuyển động đa hướng mà không cần có cơ cấu quay của robot. Từ ưu
điểm đó, đã có rất nhiều loại hình dạng bánh xe Omni ra đời, mỗi loại phù hợp
với những điều kiện hoạt động khác nhau.
Để xe chuyển động, động cơ có vai trò cung cấp moment cho các bánh.
Quá trình chuyển động này chịu ảnh hưởng đáng kể của khối lượng xe và ma
sát giữa bánh xe và mặt đường.
Tốc độ lớn nhất của 1 động cơ chính bằng Vtt=0.7= 𝜔𝑟 (m/s), r=0.05m suy
ra tốc độ góc bánh xe (tốc độ góc động cơ) là 𝜔=14 rad/s <=> tốc độ quay
động cơ 133,69 vòng/phút. Vậy tốc độ tối thiểu của động cơ phải là 133.69
vòng /phút.
𝜏 − 𝐹𝑚𝑠 . 𝑟 = 𝐼. 𝛾
(3.2)
⟺ 𝜏 = 𝐹𝑚𝑠 . 𝑟 + 𝐼. 𝛾
𝐹𝑚𝑠 ≤ 𝜇𝑁
⇔ 𝜏 ≤ 𝜇𝑁𝑟 + 𝐼𝛾
1 1
⇔ 𝜏 ≤ 𝜇 ( 𝑀 + 𝑚) 𝑔𝑟 + 𝑚𝑟 2 𝛾
2 2
24 (3.3)
1 1
𝜏 = 𝜇 ( 𝑀 + 𝑚) 𝑔𝑟 + 𝑚𝑟 2 𝛾 (3.4)
2 2
Công suốt động cơ: 𝑃 = 𝜔. 𝜏
Trong đó:
1 2
0,72 1
𝜏 = . 0,35. 0,05 . + ( . 3 + 0.35) . 0,7.9,81.0,05 = 0,639 N. m
2 0,05 2
0.7
𝑃 = 1,2.0,639. = 10.7352 𝑊
0.05
Dựa vào thông số tốc độ, mô-men và công suất chúng em chọn loại động
cơ có hộp giảm tốc 12V DC Motor GA37V1 w/Encoder.
- C1: Kênh A của Encoder, xuất xung mức tín hiệu 3.3 VDC.
- C2: Kênh B của Encoder, xuất xung mức tín hiệu 3.3 VDC.
- 3.3V: Nguồn dương 3.3VDC cho Encoder hoạt động.
- M2: Chân cấp nguồn cho động cơ, tối đa 12VDC.
Arduino đã và đang được sử dụng rất rộng rãi trên thế giới, và ngày càng
chứng tỏ được sức mạnh của chúng thông qua vô số ứng dụng độc đáo của
người dùng cộng đồng nguồn mở (open-soure). Hiện nay ở Việt Nam arduino
cũng đang được phát triển và ứng dụng vào học tập nghiên cứu rất phổ biến.
Ở đây, chúng em chọn Arduino Mega 2560 R3 làm bộ điều khiển cho hệ
thống, với các ưu điểm như mạnh mẽ với bộ nhớ flash lớn, số chân nhiều hơn
và cùng số lượng shield hỗ trợ không hề nhỏ. Arduino Mega đã được đưa vào
các dự án lớn hơn như xử lý thông tin nhiều luồng, điều khiền nhiều động cơ,
xe điều khiển từ xa, LED cube hay còn mở rộng cánh cửa với thế giới IOT.
Cấu tạo của Arduino Mega 2560 gồm các phần chính:
- Cổng USB: Đây là cổng giao tiếp dùng để nạp chương trình (Code) từ
máy tính lên bộ điều khiển Arduino, đồng thời nó cũng là giao tiếp serial
để truyền dữ liệu giữa vi điều khiển mà máy tính.
28
- Jack nguồn: Để cung cấp nguồn cho Arduino ta có thể sử dụng nguồn từ
cổng USB máy tính, nhưng trong trường hợp đối tượng điều khiển di
chuyển, ta cần có nguồn riêng. Vì vậy, ta cần sử dụng nguồn riêng DC 9-
12V.
- Có 14 chân ra/vào đánh số thứ tự từ 0 đến 13, ngoài ra có một số chân
nối đất (GND) và một chân điện áp tham chiếu (AREF).
- Vi điều khiển AVR: đây là bộ xử lí trung tâm của bo mạch. Với mỗi mâu
Arduino khác nhau thì chip khác nhau. Riêng mạch Arduino Mega 2560
thì sử dụng ATMega 2560.
- Có một nút nhấn Reset và một đầu ICSP.
Ưu điểm của Arduino:
- Chạy trên đa nền tảng: Việc lập trình Arduino có thể thực hiện trên các
hệ điều hành khác nhau như Windows, Mac Os, Linux trên Desktop,
Android trên điện thoại.
- Ngôn ngữ lập trình đơn giản dễ hiểu.
- Nền tảng mở: Arduino được phát triển dựa trên nguồn mở nên phần
mềm chạy trên Arduino được chia sẻ dễ dàng và tích hợp vào các nền
tảng khác nhau.
- Mở rộng phần cứng: Arduino được thiết kế và sử dụng theo dạng
module nên việc mở rộng phần cứng cũng dễ dàng hơn.
- Đơn giản và nhanh: Mọi người dễ dàng chia sẻ mã nguồn với nhau mà
không lo lắng về ngôn ngữ hay hệ điều hành mình đang sử dụng.
- Có nhiều loại module dạng lắp ghép rất nhanh gọn, dễ sử dụng.
29
Nhiệm vụ của Arduino Nano: Nhận và chuyển đổi tín hiệu đọc từ module
gia tốc MPU6050 đến bộ xử lý trung tâm là Arduino Mega 2560. Việc này giảm
gánh nặng tính toán và tránh nhiễu tín hiệu khi cùng đọc trên một bộ xử lý
Arduino Mega 2560.
Board Arduino Nano là một trong những phiên bản nhỏ gọn của board
Arduino. Arduino Nano có đầy đủ các chức năng và chương trình có trên
Arduino Uno do cùng sử dụng MCU ATmega328P. Nhờ việc sử dụng IC dán
của ATmega328P thay vì IC chân cắm nên Arduino Nano có thêm 2 chân
Analog so với Arduino Uno.
Bảng 3-4: Bảng thông số của Arduino Nano
IC chính: ATmega328P
SRAM: 2KB
EEPROM: 1KB
Khối lượng: 5g
3.2.3. Lựa chọn module bluetooth
Có nhiệm vụ nhận lệnh dạng dữ liệu ký tự text từ ứng dụng trên điện thoại
gửi tới bộ điều khiển robot.
Với ưu điểm thiết kế nhỏ gọn, tiện lợi, giao tiếp với vi điều khiển chỉ bằng
2 chân (Tx và Rx), vì vậy module bluetooth HC06 truyền dẫn và điều khiển từ
xa một cách dễ dàng.
Đặc điểm của module HC06 chỉ có thể chạy được 1 chế độ Slave (khác
với HC05 có thể hoạt động với chế độ Mater hoặc Slave). Điều này có nghĩa
là không thể chủ động kết nối từ vi điều khiển đến các thiết bị ngoại vi. Mà
cách kết nối là: phải sử dụng thiết bị ngoại vi (điện thoại thông minh, máy
tính laptop) để dò tín hiệu kêt nối Buletooth mà HC06 phát ra. Sau khi pair
thành công có thể gửi tín hiệu từ vi điều khiển đến các thiết bị ngoại vi này,
và ngược lại.
32
- Output A/ Output B: Đầu ra 2 động cơ A/B (đấu ngược chiều +/- sẽ đổi
chiều quay động cơ.
3.2.5. Cảm biến gia tốc
Yêu cầu: Sử dụng cảm biến, với độ chính xác và độ linh hoạt cao, dễ dàng
trong việc kết nối và viết chương trình cho Robot. Do vậy, nhóm đã chọn cảm
biến gia tốc và la bàn số MPU-6050.
MPU-6050 có thể kết hợp với cảm biến từ trường (bên ngoài) để tạo thành
bộ cảm biến 9 góc đầy đủ thông qua giao tiếp I2C.
Các cảm biến bên trong MPU-6050 sử dụng bộ chuyển đổi tương tự - số
(Anolog to Digital Converter - ADC) 16-bit cho ra kết quả chi tiết về góc quay,
tọa độ... Với 16-bit bạn sẽ có 2^16 = 65536 giá trị cho 1 cảm biến.
Tùy thuộc vào yêu cầu của bạn, cảm biến MPU-6050 có thể hoạt động ở
chế độ tốc độ xử lý cao hoặc chế độ đo góc quay chính xác (chậm hơn). MPU-
6050 có khả năng đo ở phạm vi:
- Con quay hồi chuyển: ± 250 500 1000 2000 dps
- Gia tốc: ± 2 ± 4 ± 8 ± 16g
Hơn nữa, MPU-6050 có sẵn bộ đệm dữ liệu 1024byte cho phép vi điều
khiển phát lệnh cho cảm biến, và nhận về dữ liệu sau khi MPU-6050 tính toán
xong.
3.2.6. La bàn số
từ trường xung quanh nó như của nam châm hoặc điện trường, khi phát hiện
được từ trường từ bên ngoài, nó có thể xác định được khoảng cách tương đối
hoặc chiều đến vật phát ra từ trường đó.
Yêu cầu: Cung cấp nguồn cho động cơ và hệ thống vi điều khiển, cảm
biến, la bàn số, các driver điều khiển động cơ. Nguồn đảm bảo cung cấp điện
có khả năng hoạt động liên tục 30 – 45 phút, nhỉ gọn và có thể tích hợp trên mô
hình.
Ở đây, chúng ta sẽ chọn nguồn cho hệ thống là loại Pin có thông số sau:
Để cấp nguồn cho các linh kiện điện tử như bộ điều khiển, mạch động lực,
la bàn số cần có một bộ chuyển đổi nguồn 12VDC từ Pin thành 5VDC, vì vậy
nhóm đã chọn mạch hạ áp để đáp ứng nguồn điện cho toàn hệ thống.
MIT App Inventor dành cho Android là một ứng dụng web nguồn mở ban
đầu được cung cấp bởi Google và hiện tại được duy trì bởi Viện Công nghệ
41
Massachusetts (MIT). Nền tảng cho phép nhà lập trình tạo ra các ứng dụng
phần mềm cho hệ điều hành Android (OS). Bằng cách sử dụng giao diện đồ
họa, nền tảng cho phép người dùng kéo và thả các khối mã (blocks) để tạo ra
các ứng dụng có thể chạy trên thiết bị Android.
Giao diện quản lý Project: chúng ta có thể quản lý các project với giao
diện rất đơn giản dễ sử dụng.
42
Hình 3-22: Hình ảnh giao diện lập trình ứng dụng
Giao diện điện thoại: ứng dụng chụp màn hình trên điện thoại:
Khung máy: là bộ phận để lắp ráp các chi tiết, linh kiện khác trong máy
nên được tính toán, chế tạo phù hợp với mô hình, như khả năng chịu tải, độ
vững chắc, đủ kích thước lắp ráp các linh kiện.
Khung bao gồm tấm đế và tấm bảo vệ ở phía trên, được kết nối với nhau
bằng khớp nối U. Các chi tiết được gia công, cắt bằng máy cắt Plasma CNC,
sau đó được gia công nguội để đảm bảo tính thẩm mĩ, an toàn cho người và
đảm bảo chính xác khi lắp ráp. Riếng khớp nối U, sau khi cắt Plasma còn được
chấn để tạo biên dạng.
Hệ thống điện, điện tử được chúng em sử dụng phụ thuộc vào yêu cầu,
công năng của Robot, chúng em tìm hiểu các loại linh kiện có trên thị trường
và tổng hợp để chọn sao cho tối ưu với mô hình cần đạt được.
Tổng hợp các linh kiện điện tử được sử dụng trong mô hình:
Bảng 3-7 :Các linh kiện điện, điện tử.
STT Tên linh kiện Hình ảnh Địa chỉ mua
Arduino
Banlinhkien.vn
1 Mega 2560
Arduino
2 Banlinhkien.vn
Nano
Module
4 Banlinhkien.vn
bluetooth
Cảm biến
5 Banlinhkien.vn
MPU-6050
La bàn số
6 Banlinhkien.vn
HMC5883L
Banlinhkien.vn
7 Mạch hạ áp
Chotroihn.vn
8 Nguồn (Pin)
47
[5] Tham khảo từ nguồn youtuber Kris Temmerman, Omni wheel Robot,
2017.
49
PHỤ LỤC
#include <PID_v1.h>
#include<SoftwareSerial.h>
int dir1 = 8;
int dir2 = 9;
int dir3 = 10;
int pwm1 = 5;
int pwm2 = 6;
int pwm3 = 7;
String tinhieu;
int goc;
float vx, vy;
int v1, v2, v3;
float Vtt = 137; //toc do dat 137 vong/phut
float Vquay = 137;
void setup() {
pinMode(dir1, OUTPUT);
pinMode(dir2, OUTPUT);
pinMode(dir3, OUTPUT);
pinMode(pwm1, OUTPUT);
pinMode(pwm2, OUTPUT);
pinMode(pwm3, OUTPUT);
myPID1.SetMode(AUTOMATIC);
myPID1.SetSampleTime(1);
myPID1.SetOutputLimits(-255, 255);
myPID2.SetMode(AUTOMATIC);
myPID2.SetSampleTime(1);
myPID2.SetOutputLimits(-255, 255);
myPID3.SetMode(AUTOMATIC);
myPID3.SetSampleTime(1);
myPID3.SetOutputLimits(-255, 255);
digitalWrite(dir1, HIGH);
digitalWrite(dir2, HIGH);
digitalWrite(dir3, HIGH);
}
void quaynguoc()
{
analogWrite(pwm1, output1);
analogWrite(pwm2, output2);
analogWrite(pwm3, output3);
digitalWrite(dir1, LOW);
digitalWrite(dir2, LOW);
digitalWrite(dir3, LOW);
53
}
void ngung()
{
digitalWrite(pwm1, LOW);
digitalWrite(pwm2, LOW);
digitalWrite(pwm3, LOW);
}
void tinhtien()
{
vx = cos(goc * PI / 180);
vy = sin(goc * PI / 180);
v1 = vx;
v2 = sqrt(3) / 2 * vy - 0.5 * vx;
v3 = sqrt(3) / 2 * vy + 0.5 * vx;
v1 = Vtt * abs(v1);
v2 = Vtt * abs(v2);
v3 = Vtt * abs(v3);
}
void loop()
{
if (Serial.available() > 0) // nếu có kết nối cổng serial
54
{
while (1)
{
tinhieu = Serial.readStringUntil('w'); // đọc chuỗi dc gửi tới
if (tinhieu.startsWith("s"))
{
tinhieu.replace("s", ""); // tách chuỗi lấy tín hiệu analog
goc = tinhieu.toInt(); // chuyển tính hiệu thành kiểu int
tinhtien();
analogWrite(pwm1, output1);
analogWrite(pwm2, output2);
analogWrite(pwm3, output3);
delay(10);
55
}
if (tinhieu.startsWith("T"))
{
setpoint1 = Vquay; //cài đặt tốc độ động cơ
input1 = encoderPos1 ; // nhận dữ liệu từ encoder1
myPID1.Compute(); // tính toán đầu ra dc1
quaythuan();
}
if (tinhieu.startsWith("N"))
{
setpoint1 = Vquay; //cài đặt tốc độ động cơ
input1 = encoderPos1 ; // nhận dữ liệu từ encoder1
myPID1.Compute(); // tính toán đầu ra dc1
quaynguoc();
}
if (tinhieu.startsWith("o"))
{
ngung();
}
delay(10);
}
}
}
57
Chương trình lập trình ứng dụng điều khiển trên điện thoại:
58