SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
MỤC LỤC
LỜI MỞ ĐẦU................................................................................................ Error! Bookmark not defined.
MỤC LỤC ...................................................................................................................................................1
CHƯƠNG I : TỔNG QUAN VÀ ĐẶT VẤN ĐỀ ........................................................................................3
1.Giới thiệu chung về robot: .....................................................................................................................3
2. Tổng quan về các bài toán của robot di động: ......................................................................................5
3. Bài toán di chuyển tránh vật cản :........................................................................................................7
3.1.Vấn đề :...........................................................................................................................................7
3.2. Giải quyết bài toán:........................................................................................................................7
CHƯƠNG II: CÁC LINH KIỆN CHÍNH VÀ THIẾT KẾ MẠCH..............................................................8
1. Các linh kiện chính của robot : ............................................................................................................8
1.1. Động cơ DC: .............................................................................................................................8
1.2.Cảm biến siêu âm SRF05:...............................................................................................................9
1.3.Chip driver L298D :......................................................................................................................14
1.4. Arduino Uno : ..............................................................................................................................17
1.5. Động cơ servo :............................................................................................................................20
2.Mạch và demo :....................................................................................................................................22
2.1. Mạch : ..........................................................................................................................................22
2.2.Demo :...........................................................................................................................................22
CHƯƠNG III: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ............................................................................24
1. Kết quả:..............................................................................................................................................24
1.1.Phần cứng:.....................................................................................................................................24
1.2.Giải thuật:......................................................................................................................................24
2. Hạn chế và cách khắc phục:...............................................................................................................24
3. Hướng phát triển của đề tài:..............................................................................................................24
PHỤ LỤC ...................................................................................................................................................25
TÀI LIỆU THAM KHẢO ..........................................................................................................................30
CHƯƠNG I : TỔNG QUAN VÀ ĐẶT VẤN ĐỀ
1.Giới thiệu chung về robot:
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, ả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. Về lĩnh vực người máy Nhật Bản là nước
đi đầu thế giới về lĩnh vực này.
Khái niệm Robot xuất hiện lần đầu tiên ở NewYork vào ngày 9/10/1922 trong vở
kịch“Rossum’s Universal Robot” của nhà soạn kịch người Tiệp Khắc là Karen Chapek,
còn từ Robot là một cách gọi khác của từ Robota-theo tiếng Tiệp có nghĩa là công việc
lao dịch. Khi đó, Karen Chapek cho rằng Robot là những người máy có khả năng làm
việc nhưng không có khả năng suy nghĩ.Gần một thế kỷ tiếp theo, khái niệm robot đã liên
tục được phát triển, đóng góp thêm bởi nhiều nhà nghiên cứu, nhiều công ty chuyên về
lĩnh vực robot.
Trước những năm 1970, người ta chỉ tập trung vào việc phát triển những robot tay
máy hoạt động trong các nhà máy công nghiệp. Sau đó mới xuất hiện những khái niệm về
robot thông minh, và các nghiên cứu bắt đầu tập trung hơn vào robot di động. Một trong
những chuyên gia đầu ngành về robot di động là Hans P. Moravec (bắt đầu nghiên cứu từ
năm 1964), và hiện nay, chuyên nghiên cứu về robot di động là Sebastien Thruns.
Các robot di động có người điều khiển đã được dùng cho các mục đích quân sự,
các nhiệm vụ nguy hiểm như phá mìn, thăm dò đáy đại dương, hầm mỏ, kiểm tra các
đường ống ngầm, hay thăm dò sao Hoả…Sản phẩm robot di động được sản xuất đại trà
và đưa vào thị trường lần đầu tiên là robot hút bụi Roomba và Trilobite của hãng
Electrolux năm 2003.
Một số hình ảnh về các Robot và ứng dụng của nó:
Hình 1.1: Robot tự hành Rover thám hiểm sao Hoả
Hình 1.2 : Robot dò mìn
Hình 1.3 : Robot thám hiểm đại dương
2. Tổng quan về các bài toán của robot di động:
Ngày nay, Robot học đã đạt được những thành tựu to lớn trong nền sản xuất
công nghiệp. Những cánh tay robot có khả năng làm việc với tốc độ cao, chính xác và
liên tục làm năng suất lao động tăng nhiều lần. Chúng có thể làm việc trong các môi
trường độc hại như hàn, phun sơn, các nhà máy hạt nhân, hay lắp ráp các linh kiện điện
tử tạo ra điện thoại, máy tính…một công việc đòi hỏi sự tỉ mỉ, chính xác cao. Tuy nhiên
những robot này có một hạn chế chung đó là hạn chế về không gian làm việc. Không gian
làm việc của chúng bị giới hạn bởi số bậc tự do tay máy và vị trí gắn chúng. Ngược lại,
các Robot tự hành lại có khả năng hoạt động một cách linh hoạt trong các môi trường
khác nhau.
Robot tự hành là loại mobile robot có khả năng tự hoạt động, thực thi nhiệm vụ
mà không cần sự can thiệp của con người. Với những cảm biến, chúng có khả năng nhận
biết về môi trường xung quanh. Robot tự hành ngày càng có nhiều ý nghĩa trong các
ngành công nghiệp, thương mại, y tế, các ứng dụng khoa học và phục vụ đời
sống của con người. Với sự phát triển của ngành Robot học, robot tự hành ngày càng
có khả năng hoạt động trong các môi trường khác nhau, tùy mỗi lĩnh vực áp dụng mà
chúng có nhiều loại khác nhau như robot sơn, robot hàn, robot cắt cỏ, robot thám hiểm
đại dương, robot làm việc ngoài vũ trụ. Cùng với sự phát triển của yêu cầu trong thực tế,
robot tự hành tiếp tục đưa ra những thách thức mới cho các nhà nghiên cứu. Vấn đề của
robot tự hành là làm thế nào để robot tự hành có thể hoạt động, nhận biết môi
trường và thực thi các nhiệm vụ đề ra.
Vấn đề đầu tiên là "navigation" (tạm dịch là "di chuyển"), Robot tự hành
nên di chuyển như thế nào và cơ cấu di chuyển nào là sự lựa chọn tốt nhất. Điều hướng
là vấn đề cơ bản trong nghiên cứu và chế tạo Robot tự hành. Trong hiệp hội nghiên cứu
về Robot tự hành có 2 hướng nghiên cứu khác nhau:
- Hướng thứ nhất là nghiên cứu về Robot tự hành có khả năng điều hướng ở tốc độ cao
nhờ thông tin thu được từ cảm biến, đây là loại robot có khả năng hoạt động ở môi trường
trong phòng cũng như môi trường bên ngoài. Loại robot này yêu cầu khả năng tính toán
đồ sộ và được trang bị cảm biến có độ nhạy cao, dải đo lớn để có thể điều khiển robot di
chuyển ở tốc độ cao, trong những môi trường có địa hình phức tạp.
- Hướng thứ hai nhằm giải quyết các vấn đề về các loại robot tự hành chỉ dùng để hoạt
động trong môi trường trong phòng. Loại robot tự hành này có kết cấu đơn giản hơn loại
trên, thực hiện những nhiệm vụ đơn giản.
Vấn đề di chuyển là vấn đề trọng tâm của robot di động. Để di chuyển được, robot
phải thực hiện một loạt các tác vụ, mỗi tác vụ gắn với một bài toán nhỏ trong bài toán
"navigation". Các bài toán đó gồm:
Mapping: là công việc lập bản đồ môi trường hoạt động của robot. Nếu không
được cung cấp dữ liệu trước thì robot phải có khả năng lập bản đồ.
Positioning: là việc định vị, robot phải có khả năng biết được mình đang
ở đâu trong bản đồ toàn cục hoặc địa phương.
Path planning: là việc hoạch định đường đi sắp tới của robot, sau khi nó biết được
bản đồ và biết mình đang ở vị trí nào.
Motion control: là việc điều khiển cho robot di động, tức là điều khiển các cơ cấu
để robot đi theo con đường thu được từ bài toán "path planning".
Obstacle avoidance: là nhiệm vụ tránh chướng ngại vật khi robot đang di chuyển.
3. Bài toán di chuyển tránh vật cản :
3.1.Vấn đề :
Việc di chuyển tránh vật cản là một tác vụ thường thấy ở robot di động, trong các môi
trường biết trước hoặc không biết trước. Tác vụ này được dùng với các nhiệm vụ: tránh
chướng ngại vật, đi theo tường biết trước, đi theo tường không biết trước.
3.2. Giải quyết bài toán:
Để giải quyết bài toán này, trong phạm vi của đồ án , em thiết kế mô hình robot gồm 2
bánh xe chủ động phía sau, 1 bánh xe phía trước chuyển động tự do, 1 cảm biến siêu âm
SRF05 để thu khoảng cách và tránh vật cản, mạch điều khiển được sử dụng ở đây là
Arduino Uno.
CHƯƠNG II: CÁC LINH KIỆN CHÍNH VÀ THIẾT KẾ MẠCH
1. Các linh kiện chính của robot :
 Động cơ DC
 Cảm biến siêu âm SRF 05
 Chip driver L298D
 Arduino Uno
 Động cơ Servo SG90
1.1. Động cơ DC:
1.1.1.Giới thiệu :
DC động cơ là động cơ điện hoạt động với dòng một chiều. Động cơ DC sử
dụng rộng rãi trong các ứng dụng dân cư cũng như các ngành công nghiệp. Thông
thường động cơ DC chỉ chạy ở một tốc độ khi kết nối với nguồn điện, nhưng chúng
ta vẫn có thể kiểm soát tốc độ và hướng của động cơ với sự hỗ trợ của các mạch
điện tử với phương pháp PWM.
Động cơ DC trong các hình thức của động cơ dân sự thường hoạt động với điện áp
thấp, được sử dụng với tải trọng nhỏ. Trong công nghiệp, động cơ DC được sử
dụng trong các lĩnh vực đòi hỏi phải có mô-men xoắn lớn hơn trên máy tính hoặc yêu cầu
thay đổi trong phạm vi tốc độ.
1.1.2. Điều chế độ rộng xung:
Điều khiển động cơ PWM phương pháp dựa trên nguyên tắc hoạt động cho động
cơ chạy bằng chuỗi xung nhanh chóng mở và đóng. Điện DC được chuyển đổi thành tín
hiệu sóng vuông (chỉ có hai cấp độ và khoảng 0 điện áp hoạt động volt). Tín hiệu
sóngvuông này cho động cơ.Nếu tần số chuyển đổi là đủ lớn động cơ sẽ chạy ở tốc độ ổn
định phụ thuộc vào trục mô-men xoắn.Với phương pháp PWM, điều chỉnh tốc độ động
cơ thông qua điều chế độ rộng xung, tức là thời gian "xung đầy đủ" ("on") của
chuỗi xung vuông cho động cơ. Điều chỉnh này sẽ ảnh hưởng đến công suất trung
bình cho động cơ và do đó sẽ thay đổi cần điều khiển tốc độ động cơ.
1.2.Cảm biến siêu âm SRF05:
1.2.1.Giới thiệu :
Hình 2.1 : Cảm biến đo khoảng cách SRF 05
Cảm biến SRF05 là một loại cảm biến khoảng cách dựa trên nguyên lý thu phát
siêu âm. Cảm biến gồm một bộ phát và một bộ thu sóng siêu âm. Sóng siêu âm từ đầu
phát truyền đi trong không khí, gặp vật cản (vật cần đo khoảng cách tới) sẽ phản xạ
ngược trở lại và được đầu thu ghilại. Khoảng cách đo được của SRF05 nằm trong phạm
vi từ 4cm đến 300cm.
Hình 2.2 : Nguyên lý thu phát siêu âm.
1.2.2. Nguyên tắc hoạt động :
SRF05 có thể thiết lập 2 mode hoạt động khác nhau thông qua các chân điều khiển
MODE. Nối hoặc không nối chân MODE xuống GND cho phép cảm biến được điều
khiển thông qua giao tiếp dùng 1 chân hay 2 chân IO.
a). Mode 1: Tách chân TRIGGER & ECHO dùng riêng:
Trong mode này,SRF05sử dụng cả 2 chân trigger và echo cho việc giao tiếp với
MCU. Để sử dụng mode này,ta chỉ cần để trống chân Mode của module,điện trở bên
trong module sẽ kéo chân pin này lên mức 1.
Hình 2.3 : Cấu hình SRF05 ở mode 1
Để điều khiển SRF05,ta cần cấp cho chân TRIGGER một xung điều khiển với độ
rộng tối thiểu 10uS. Sau đó một khoảng thời gian, đầu phát sóng siêu âm sẽ phát ra sóng
siêu âm, vi xử lý tích hợp trên module sẽ tự xác định thời điểm phát sóng siêu âm và thu
sóng siêu âm. Vi xử lý tích hợp này sẽ đưa kết quả thu được ra chân ECHO. Độ rộng
xung vuông tại chân ECHO tỉ lệ với khoảng cách từ cảm biến tới vật thể.
Hình 2.4 : Nguyên lý hoạt động của SRF05 ở chế độ mode 1
b). Mode 2:chân TRIGGER & ECHO dùng chung:
Được thiết kế nhằm cho mục đích tiết kiệm chân pin cho MCU,nên trong mode
này, SRF05 chỉ sử dụng 1 chân pin cho 2 chức năng TRIGGER và ECHO.Để sử dụng
mode này ,ta kết nối chân Mode xuống GND (0v).Đây cũng là mode sẽ được sử dụng
trong demo.
Hình 2.5: Cấu hình SRF05 ở chế độ mode 2.
Để điều khiển SRF05,đầu tiên xuất một xung với độ rộng tối thiểu 10uS vào chân
TRIGGER-ECHO (chân số 3) của cảm biến. Sau đó vi xử lý tích hợp trên cảm biến sẽ
phát ra tín hiệu điều khiển đầu phát siêu âm. Sau 700uS kể từ lúc kết thúc tín hiệu điều
khiển, từ chân TRIGGER-ECHO có thể đọc ra một xung mà độ rộng tỉ lệ với khoảng
cách từ cảm biến tới vật thể.
Hình 2.6: Nguyên lý hoạt động của SRF05 ở chế độ mode 2.
 Tính toán khoảng cách :
Theo sơ đồ thời gian của SRF05 như trên, ta chỉ cần cung cấp một xung ngắn tối thiểu
10uS làm tín hiệu trigger. Sau đó cảm biến sẽ gửi một khối 8 chu kỳ sóng siêu âm tại
40kHz và xuất xung echo. Sau đó SRF05 đợi sóng siêu âm phả n hồi sau khi gặp vật cản,
khi nhận được sóng phản hồi thì xung echo bị ngắt. Như vậy, xung echo có chiều rộng tỉ
lệ thuận với khoảng cách tới vật cản. Thời gian xung echo tồn tại có thể cho ta biết được
khoảng cách giữa cảm biến với vật. Nếu trường hợp không phát hiện được vật cản, hoặc
vật cản ngoài tầm xác định của SRF05 (4m) thì sau 30ms xung echo cũng được đưa về
mức thấp. SRF05 có thể được kích hoạt nhanh nhất mỗi 50ms (20 lần mỗi giây). Nên chờ
mỗi 50ms rồi thực hiện lần đo tiếp theo. Điều này đảm bảo cho các nhiễu siêu âm phản
xạ của lần đo trước không gây sai lệch kết quả thu được.Công thức tính khoảng cách từ
cảm biến tới vật cản:
1.3.Chip driver L298D :
1.3.1.Giới thiệu :
L298D là một chip tích hợp 2 mạch cầu H trong gói 15 chân. Tất cả các mạch kích,
mạch cầu đều được tích hợp sẵn. L298D có điện áp danh nghĩa cao (lớn nhất 50V) và
dòng điện danh nghĩa lớn hơn 2A nên rất thích hợp cho các các ứng dụng công suất nhỏ
như các động cơ DC loại nhỏ và vừa. Vì là loại “all in one” nên là lựa chọn hoàn hảo cho
những người chưa có nhiều kinh nghiệm làm mạch điện tử. Trong bài học này ta dùng
chip L298D để làm driver cho motor. Hình sau thể hiện mô hình thật của chip và cấu trúc
bên trong chip.
Hình 2.7. Chip driver L298D
Hình 2.8. Mạch Chip L298D
Hình phía trên là hình dáng bên ngoài và tên gọi các chân của L298D. Hình phía
dưới là cấu trúc bên trong chip. Có 2 mạch cầu H trên mỗi chip L298D nên có thể điều
khiển 2 đối tượng chỉ với 1 chip này. Mỗi mạch cầu bao gồm 1 đường nguồn Vs (thật ra
là đường chung cho 2 mạch cầu), một đường current sensing (cảm biến dòng), phần cuối
của mạch cầu H không được nối với GND mà bỏ trống cho người dùng nối một điện trở
nhỏ gọi là sensing resistor. Bằng cách đo điện áp rơi trên điện trở này chúng ta có thể tính
được dòng qua điện trở, cũng là dòng qua động cơ trên. Mục đích chính của việc đo dòng
điện qua động cơ là để xác định các trường hợp nguy hiểm xảy ra trong mạch, ví dụ quá
tải. Nếu việc đo dòng động cơ không thật sự cần thiết bạn có thể nối đường current
sensing này với GND (trong mạch điện của bài này, ta nối chân current sensing với
GND). Động cơ sẽ được nối với 2 đường OUT1, OUT2 (hoặc OUT3, OUT4 nếu dùng
mạch cầu bên phải). Một chân En (EnA và EnB cho 2 mạch cầu) cho phép mạch cầu hoạt
động, khi chân En được kéo lên mức cao, mạch cầu sẵn sang hoạt động. Các đường kích
mỗi bên của mạch cầu được kết hợp với nhau và nhưng mức điện áp ngược nhau do một
cổng Logic NOT. Bằng cách này chúng ta có thể tránh được trường hợp 2 transistor ở
cùng một bên được kích cùng lúc (ngắn mạch). Như vậy, sẽ có 2 đường kích cho mỗi cầu
H gọi là In1 và In2 (hoặc In3, In4). Để motor hoạt động chúng ta phải kéo 1 trong 2
đường kích này lên cao trong khi đường kia giữ ở mức thấp, ví dụ In1=1, In2=0. Khi đảo
mức kích của 2 đường In, động cơ sẽ đảo chiều quay. Tuy nhiên, do L298D không chỉ
được dùng đề đảo chiều động cơ mà còn điều khiển vận tốc động cơ bằng PWM, các
đường In cần được “tổ hợp lại” bằng các cổng Logic (xem phần tiếp theo). Ngoài ra,
trên chip L298D còn có các đường Vss cấp điện áp cho phần logic (5V) và GND chung
cho cả logic và motor .
Trong thực tế, công suất thực mà L298D có thể tải nhỏ hơn so với giá trị danh
nghĩa của nó (V=50V, I=2A). Để tăng dòng điện tải của chip lên gấp đôi, chúng ta có thể
nối 2 mạch cầu H song song với nhau (các chân có chức năng như nhau của 2 mạch cầu
được nối chung).
1.3.2.Mạch logic cho L298D:
Thông thường, khi thiết kế một mạch driver cho motor người ta thường dành 3 đường
điều khiển đó là PWM dùng điều khiển vận tốc, DIR điều khiển hướng và En cho phép
mạch hoạt động. Chip L298D đã có sẵn đường En nhưng 2 đường điều khiển In1 và In2
không thật sự chức năng như chúng ta mong muốn. Vì thế, chúng ta sẽ thiết kế một mạch
logic phụ với 2 ngõ vào là PWM và DIR trong khi 2 ngõ ra là 2 đường điều khiển In1 và
In2.
Bảng chân trị của mạch logic cần thiết kế được trình bày trong bảng 1.
Bảng 1. Bảng chân trị của mạch logic cho driver L298D.
Từ bảng chân trị này, chúng ta có thể viết hàm bool cho 2 ngõ In1 và In2:
In1=PWM.NOT(DIR)
In2=PWM.DIR
Mạch logic vì thế sẽ có dạng như trong hình sau :
Hình 2.9. Mạch logic cho L239
Với mạch logic này, đường DIR có chức năng đảo chiều động cơ trong khi đường PWM
điều khiển vận tốc động cơ bằng tín hiệu PWM.
1.4. Arduino Uno :
1.4.1. Giới thiệu về Arduino :
Hình 2.10 :Một số loại arduino .
Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là những người
tự chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây, gần giống với
những gì Apple đã làm được trên thị trường thiết bị di động. Số lượng người dùng cực
lớn và đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học.
Arduino là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị
phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác. Đặc điểm nổi bật của
Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình
có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình. Và
điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ
phần cứng tới phần mềm. Chỉ với khoảng $30, người dùng đã có thể sở hữu một bộ.
Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vị vua vào
thế kỷ thứ 9 là King Arduin. Arduino chính thức được đưa ra giới thiệu vào năm 2005
như là một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một
trong những người phát triển Arduino, tại trường Interaction Design Instistute Ivrea
(IDII). Mặc dù hầu như không được tiếp thị gì cả, tin tức về Arduino vẫn lan truyền với
tốc độ chóng mặt nhờ những lời truyền miệng tốt đẹp của những người dùng đầu tiên.
Hiện nay Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nơi
đã sản sinh ra Arduino.
1.4.2. Hoạt động của arduino :
Hình 2.11. Arduino uno
Theo như hình minh họa, có 14 cổng in/out (đánh số 0-13). Đây là các chân cắm
của Arduino và có chức năng input hoặc output, tạo nên cốt lõi của thiết bị.
Có 6 chân kỹ thuật số, được đánh dấu bởi dấu ~ để thực hiện Xung.
Chân 13 đặc biệt có một LED được ghép vào. Việc này giúp cho việc thử nghiệm.
Bạn có thể sử dụng LED có sẵn, bằng cách xuất ra chân 13 hoặc ra các chân khác.
Ở phần bên phải ở dưới có một cổng analog 6 chân input. Chúng giúp đọc các giá
trị của cảm biến analog.
Ở bên trái là các cổng analog tương tự cổng nguồn. bạn chỉ cần nguồn 3,3 vol
hoặc 5 vol.
Cuối cùng, một công tắc chuyển dùng để reset Arduino. nó sẽ giúp khởi động lại
bất kỳ chương trình nào trong bộ nhớ.
Arduino có một khoảng bộ nhớ, và nếu chương trình của bạn quá lớn, compiler sẽ
báo lỗi.
Các thông số của arduino uno R3 như sau :
Cấu trúc một chương trình Arduino
Mỗi chương trình Arduino được chia làm 2 chức năng :
Đầu tiên là cài đặt chức năng. Việc này giúp khởi tạo và dùng để Arduino biết sẽ
kết nối đến thiết bị nào, cũng như khởi tạo biến mà bạn cần trong chương trình.
Thứ hai là vòng lặp. Đây là nền tảng của mỗi chương trình Arduino. Khi Arduino
hoạt động, sau khi chức năng cài đặt hoàn tất, vòng lặp sẽ chạy tất cả các code, sau đó
thực hiện lại đến khi nào mất nguồn hoặc bị reset. Quãng thời gian để hoàn thành dựa
trên code được nạp vào. Bạn có thể viết code để chạy vài giờ nếu không muốn lặp quyết
định.
Hình 2.12 : Cấu trúc chương trình Arduino.
1.5. Động cơ servo :
1.5.1. Giới thiệu :
Động cơ DC và động cơ bước vốn là những hệ hồi tiếp vòng hở- ta cấp điện để
động cơ quay nhưng chúng quay bao nhiêu thì ta không biết, kể cả đối với động cơ bước
là động cơ quay một góc xác định tùy vào số xung nhận được. Việc thiết lập một hệ
thống điều khiển để xác định những gì ngăn cản chuyển động quay của động cơ hoặc làm
động cơ không quay cũng không dễ dàng.
Mặt khác, động cơ servo được thiết kế cho những hệ thống hồi tiếp vòng kín. Tín
hiệu ra của động cơ được nối với một mạch điều khiển. Khi động cơ quay, vận tốc và vị
trí sẽ được hồi tiếp về mạch điều khiển này. Nếu có bầt kỳ lý do nào ngăn cản chuyển
động quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong
muốn. Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được điểm chính xác.
Động cơ servo có nhiều kiểu dáng và kích thước, được sử dụng trong nhiếu máy
khác nhau, từ máy tiện điều khiển bằng máy tính cho đến các mô hình máy bay và xe hơi.
Ứng dụng mới nhất của động cơ servo là trong các robot, cùng loại với các động cơ dùng
trong mô hình máy bay và xe hơi.
1.5.2. Hoạt động :
1, Động Cơ
2, Các bản mạch điện tử
3, Dây nguồn chính ( đỏ)
4, Dây tín hiệu ( vàng hoặc trắng)
5, Dây âm/ dây nối đất ( mầu đen)
6, Bộ chỉnh điện áp ( bộ chia áp).
7, Trục đầu ra/ Bánh răng.
8, Mặt bích lắp ( ghá) động cơ Servo/ bánh răng.
9, Hộp động cơ Servo.
10, Chíp tích hợp điều khiển.
Hình 2.13.Cấu Tạo RC Servo.
Động cơ và vôn kế nối với mạch điều khiển tạo thành mạch hồi tiếp vòng kín. Cả
mạch điều khiển và động cơ đều được cấp nguồn DC (thường từ 4.8 – 7.2 V).
Để quay động cơ, tín hiệu số được gới tới mạch điều khiển. Tín hiệu này khởi
động động cơ, thông qua chuỗi bánh răng, nối với vôn kế. Vị trí của trục vôn kế cho biết
vị trí trục ra của servo. Khi vôn kế đạt được vịtrí mong muốn, mạch điều khiển sẽ tắt
động cơ.
Như ta dự đoán, động cơ servo được thiết kế để quay có giới hạn chứ không phải
quay liên tục như động cơ DC hay động cơ bước. Mặc dù ta có thể chỉnh động cơ servo
R/C quay liên tục (sẽtrình bày sau) nhưng công dụng chính của động cơ servo là đạt được
góc quay chính xác trong khoảng từ 900
– 1800
. Việc điều khiển này có thể ứng dụng để
lái robot, di chuyển các tay máy lên xuống, quay một cảm biến để quét khắp phòng…
2.Mạch và demo :
2.1. Mạch :
Hình 2.14. Mạch xe tránh vật cản sử dụng SRF05.
2.2.Demo :
Hình 2.15. Xe tránh vật cản sử dụng cảm biến siêu âm SRF05
CHƯƠNG III: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN
1. Kết quả:
1.1.Phần cứng:
- Kết cấu chắc chắn, linh hoạt do có bánh Omni phía trước, chịu được va chạm.
- Động cơ mạnh, tốc độ tối đa khi cấp nguồn 24V.
- Cảm biến siêu âm chính xác tới 1cm.
1.2.Giải thuật:
- Đo được khoảng cách từ robot tới tường, từ đó xác định vị trí của Robot.
- Luật điều khiển đơn giản nhưng khá hiệu quả.
2. Hạn chế và cách khắc phục:
- Robot hoạt động chưa linh hoạt.
- Tần số hoạt động của SRF05 bị hạn chế ở 20Hz, nên dùng các cảm biến có tầm đo
ngắn và tần số cao.
3. Hướng phát triển của đề tài:
Robot có thể giúp các công việc công việc như sơn dọc mép tường, di chuyển
hàng hóa , thám hiểm…
PHỤ LỤC
1.CODE:
#include <Ultrasonic.h>
#include <Servo.h>
#define MOTOR_1_FORWARD 8
#define MOTOR_1_BACK 9
#define MOTOR_2_FORWARD 10
#define MOTOR_2_BACK 11
#define TRIG 6
#define ECHO 7
#define HEAD_SERVO 5
#define OBSTRACLE_DISTANCE 30.0
#define TURN_DELAY 200
#define LOG false
Ultrasonic ultrasonic(TRIG, ECHO);
Servo headServo;
int servoAngle = 90;
int angleStep = 30;
float distance = 0;
void setup()
{
pinMode(MOTOR_1_FORWARD, OUTPUT);
pinMode(MOTOR_1_BACK, OUTPUT);
pinMode(MOTOR_2_FORWARD, OUTPUT);
pinMode(MOTOR_2_BACK, OUTPUT);
stopMove();
headServo.attach(HEAD_SERVO);
if(LOG) Serial.begin( 9600 );
}
void loop()
{
updateHeadAngle();
checkDistance();
moove();
delay(10);
}
void checkDistance()
{
distance = ultrasonic.Ranging(CM);
if(LOG) Serial.println(distance);
}
void moove()
{
if( distance > OBSTRACLE_DISTANCE )
{
if(LOG) Serial.println("FORWARD");
goForward();
delay(TURN_DELAY);
}
else
{
stopMove();
checkObstracle();
}
}
void checkObstracle()
{
int obsLeft = 0;
int obsRight = 0;
// Count the obstacles from left and right side
for(servoAngle = 0; servoAngle <= 180; servoAngle += 30)
{
headServo.write(servoAngle);
delay(TURN_DELAY);
checkDistance();
if(distance < OBSTRACLE_DISTANCE && servoAngle < 90) obsLeft++;
else if(distance < OBSTRACLE_DISTANCE) obsRight++;
}
if(LOG) Serial.print("TURN");
if(obsLeft && obsRight)
{
goBack();
delay(TURN_DELAY * 2);
if(obsLeft < obsRight) goLeft();
else goRight();
delay(TURN_DELAY);
}
else if(obsRight)
{
goLeft();
delay(TURN_DELAY);
}
else if(obsLeft)
{
goRight();
delay(TURN_DELAY);
}
else
{
goForward();
delay(TURN_DELAY);
}
}
void updateHeadAngle()
{
headServo.write(servoAngle);
servoAngle += angleStep;
if(servoAngle >= 150)
{
servoAngle = 150;
angleStep *= -1;
}
if(servoAngle <= 30)
{
servoAngle = 30;
angleStep *= -1;
}
}
void goForward()
{
digitalWrite(MOTOR_1_FORWARD, HIGH);
digitalWrite(MOTOR_1_BACK, LOW);
digitalWrite(MOTOR_2_FORWARD, HIGH);
digitalWrite(MOTOR_2_BACK, LOW);
}
void goBack()
{
digitalWrite(MOTOR_1_FORWARD, LOW);
digitalWrite(MOTOR_1_BACK, HIGH);
digitalWrite(MOTOR_2_FORWARD, LOW);
digitalWrite(MOTOR_2_BACK, HIGH);
}
void goLeft()
{
digitalWrite(MOTOR_1_FORWARD, LOW);
digitalWrite(MOTOR_1_BACK, HIGH);
digitalWrite(MOTOR_2_FORWARD, HIGH);
digitalWrite(MOTOR_2_BACK, LOW);
}
void goRight()
{
digitalWrite(MOTOR_1_FORWARD, HIGH);
digitalWrite(MOTOR_1_BACK, LOW);
digitalWrite(MOTOR_2_FORWARD, LOW);
digitalWrite(MOTOR_2_BACK, HIGH);
}
void stopMove()
{
digitalWrite(MOTOR_1_FORWARD, LOW);
digitalWrite(MOTOR_1_BACK, LOW);
digitalWrite(MOTOR_2_FORWARD, LOW);
digitalWrite(MOTOR_2_BACK, LOW);
}
2.Thư Viện :
*Ultrasonic.h:
#ifndef Ultrasonic_h
#define Ultrasonic_h
#include "Arduino.h"
#define CM 1
#define INC 0
class Ultrasonic
{
public:
Ultrasonic(int TP, int EP);
long Timing();
long Ranging(int sys);
private:
int Trig_pin;
int Echo_pin;
long duration,distacne_cm,distance_inc;
};
#endif
*Ultrasonic.cpp:
#include "Arduino.h"
#include "Ultrasonic.h"
Ultrasonic::Ultrasonic(int TP, int EP)
{
pinMode(TP,OUTPUT);
pinMode(EP,INPUT);
Trig_pin=TP;
Echo_pin=EP;
}
long Ultrasonic::Timing()
{
digitalWrite(Trig_pin, LOW);
delayMicroseconds(2);
digitalWrite(Trig_pin, HIGH);
delayMicroseconds(10);
digitalWrite(Trig_pin, LOW);
duration = pulseIn(Echo_pin,HIGH);
return duration;
}
long Ultrasonic::Ranging(int sys)
{
Timing();
distacne_cm = duration /29 / 2 ;
distance_inc = duration / 74 / 2;
if (sys)
return distacne_cm;
else
return distance_inc;
}
TÀI LIỆU THAM KHẢO
[1] Tài liệu tìm được trên google.com.vn
[2] Các diễn đàn: dientuvietnam.net, ti.com.vn, webdien.com
-----------------------THE END---------------------

Contenu connexe

Similaire à 352763585-Đồ-An-Xe-Tranh-Vật-Cản (1).pdf

00 su dung_plc_dieu_khien_he_thong_truyen_dong_trong_robot_cong_nghiep_3002
00 su dung_plc_dieu_khien_he_thong_truyen_dong_trong_robot_cong_nghiep_300200 su dung_plc_dieu_khien_he_thong_truyen_dong_trong_robot_cong_nghiep_3002
00 su dung_plc_dieu_khien_he_thong_truyen_dong_trong_robot_cong_nghiep_3002Dat Than
 
4.2.8. sử dụng plc điều khiển hệ thống truyền động robot công nghiệp
4.2.8. sử dụng plc điều khiển hệ thống truyền động robot công nghiệp4.2.8. sử dụng plc điều khiển hệ thống truyền động robot công nghiệp
4.2.8. sử dụng plc điều khiển hệ thống truyền động robot công nghiệphttps://www.facebook.com/garmentspace
 
bai-tieu-luan-robot.pdf
bai-tieu-luan-robot.pdfbai-tieu-luan-robot.pdf
bai-tieu-luan-robot.pdfTrung Le
 
Robot dưới nước
Robot dưới nướcRobot dưới nước
Robot dưới nướcMan_Ebook
 
Computer Vision Report
Computer Vision ReportComputer Vision Report
Computer Vision ReportMan_Ebook
 
BTL TÍNH TOÁN THIẾT KẾ ROBOT GẮP CHI TIẾT
BTL TÍNH TOÁN THIẾT KẾ ROBOT GẮP CHI TIẾTBTL TÍNH TOÁN THIẾT KẾ ROBOT GẮP CHI TIẾT
BTL TÍNH TOÁN THIẾT KẾ ROBOT GẮP CHI TIẾTnataliej4
 
tailieuxanh_robot_cong_nghiep_7729.ppt
tailieuxanh_robot_cong_nghiep_7729.ppttailieuxanh_robot_cong_nghiep_7729.ppt
tailieuxanh_robot_cong_nghiep_7729.pptThaiHuynhNgoc1
 
Thiết kế và chế tạo cánh tay robot 3 bậc tự do ứng dụng trong phân loại sản p...
Thiết kế và chế tạo cánh tay robot 3 bậc tự do ứng dụng trong phân loại sản p...Thiết kế và chế tạo cánh tay robot 3 bậc tự do ứng dụng trong phân loại sản p...
Thiết kế và chế tạo cánh tay robot 3 bậc tự do ứng dụng trong phân loại sản p...Man_Ebook
 
Bài giảng Rôbôt công nghiệp.pdf
Bài giảng Rôbôt công nghiệp.pdfBài giảng Rôbôt công nghiệp.pdf
Bài giảng Rôbôt công nghiệp.pdfMan_Ebook
 
Hướng dẫn bộ kĩ sư robot chuyên sâu Lego Education
Hướng dẫn bộ kĩ sư robot chuyên sâu Lego EducationHướng dẫn bộ kĩ sư robot chuyên sâu Lego Education
Hướng dẫn bộ kĩ sư robot chuyên sâu Lego EducationCat Van Khoi
 
TÌM HIỂU ROBOT CÔNG NGHIỆP TRONG HỆ THỐNG FMS
TÌM HIỂU ROBOT CÔNG NGHIỆP TRONG HỆ THỐNG FMSTÌM HIỂU ROBOT CÔNG NGHIỆP TRONG HỆ THỐNG FMS
TÌM HIỂU ROBOT CÔNG NGHIỆP TRONG HỆ THỐNG FMShuongcdt
 
Đồ Án Tốt Nghiệp Về Thiết Kế, Chế Tạo Và Điều Khiển Cánh Tay Robot 3 Bậc Tự D...
Đồ Án Tốt Nghiệp Về Thiết Kế, Chế Tạo Và Điều Khiển Cánh Tay Robot 3 Bậc Tự D...Đồ Án Tốt Nghiệp Về Thiết Kế, Chế Tạo Và Điều Khiển Cánh Tay Robot 3 Bậc Tự D...
Đồ Án Tốt Nghiệp Về Thiết Kế, Chế Tạo Và Điều Khiển Cánh Tay Robot 3 Bậc Tự D...mokoboo56
 
Nghiên cứu hệ thống cấp dây của Robot hàn di động.pdf
Nghiên cứu hệ thống cấp dây của Robot hàn di động.pdfNghiên cứu hệ thống cấp dây của Robot hàn di động.pdf
Nghiên cứu hệ thống cấp dây của Robot hàn di động.pdfMan_Ebook
 

Similaire à 352763585-Đồ-An-Xe-Tranh-Vật-Cản (1).pdf (20)

Đề tài: Xe tự hành tránh vật cản, HAY
Đề tài: Xe tự hành tránh vật cản, HAYĐề tài: Xe tự hành tránh vật cản, HAY
Đề tài: Xe tự hành tránh vật cản, HAY
 
NGHIÊN CỨU, THIẾT KẾ, MÔ PHỎNG ROBOT CÔNG NGHIỆP - TẢI FREE ZALO: 0934 573 149
NGHIÊN CỨU, THIẾT KẾ, MÔ PHỎNG ROBOT CÔNG NGHIỆP  - TẢI FREE ZALO: 0934 573 149NGHIÊN CỨU, THIẾT KẾ, MÔ PHỎNG ROBOT CÔNG NGHIỆP  - TẢI FREE ZALO: 0934 573 149
NGHIÊN CỨU, THIẾT KẾ, MÔ PHỎNG ROBOT CÔNG NGHIỆP - TẢI FREE ZALO: 0934 573 149
 
00 su dung_plc_dieu_khien_he_thong_truyen_dong_trong_robot_cong_nghiep_3002
00 su dung_plc_dieu_khien_he_thong_truyen_dong_trong_robot_cong_nghiep_300200 su dung_plc_dieu_khien_he_thong_truyen_dong_trong_robot_cong_nghiep_3002
00 su dung_plc_dieu_khien_he_thong_truyen_dong_trong_robot_cong_nghiep_3002
 
Chương 1 tq kt robot new
Chương 1 tq kt robot newChương 1 tq kt robot new
Chương 1 tq kt robot new
 
4.2.8. sử dụng plc điều khiển hệ thống truyền động robot công nghiệp
4.2.8. sử dụng plc điều khiển hệ thống truyền động robot công nghiệp4.2.8. sử dụng plc điều khiển hệ thống truyền động robot công nghiệp
4.2.8. sử dụng plc điều khiển hệ thống truyền động robot công nghiệp
 
bai-tieu-luan-robot.pdf
bai-tieu-luan-robot.pdfbai-tieu-luan-robot.pdf
bai-tieu-luan-robot.pdf
 
Btl cơ điện tử 1
Btl cơ điện tử 1 Btl cơ điện tử 1
Btl cơ điện tử 1
 
Robot dưới nước
Robot dưới nướcRobot dưới nước
Robot dưới nước
 
Computer Vision Report
Computer Vision ReportComputer Vision Report
Computer Vision Report
 
BTL TÍNH TOÁN THIẾT KẾ ROBOT GẮP CHI TIẾT
BTL TÍNH TOÁN THIẾT KẾ ROBOT GẮP CHI TIẾTBTL TÍNH TOÁN THIẾT KẾ ROBOT GẮP CHI TIẾT
BTL TÍNH TOÁN THIẾT KẾ ROBOT GẮP CHI TIẾT
 
tailieuxanh_robot_cong_nghiep_7729.ppt
tailieuxanh_robot_cong_nghiep_7729.ppttailieuxanh_robot_cong_nghiep_7729.ppt
tailieuxanh_robot_cong_nghiep_7729.ppt
 
Luận văn: Nhận dạng mặt người trên matlab, HAY, 9Đ
Luận văn: Nhận dạng mặt người trên matlab, HAY, 9ĐLuận văn: Nhận dạng mặt người trên matlab, HAY, 9Đ
Luận văn: Nhận dạng mặt người trên matlab, HAY, 9Đ
 
Thiết kế và chế tạo cánh tay robot 3 bậc tự do ứng dụng trong phân loại sản p...
Thiết kế và chế tạo cánh tay robot 3 bậc tự do ứng dụng trong phân loại sản p...Thiết kế và chế tạo cánh tay robot 3 bậc tự do ứng dụng trong phân loại sản p...
Thiết kế và chế tạo cánh tay robot 3 bậc tự do ứng dụng trong phân loại sản p...
 
Luận văn: Bộ điều khiển lai mờ Nơron cho cánh tay robot hai thanh
Luận văn: Bộ điều khiển lai mờ Nơron cho cánh tay robot hai thanhLuận văn: Bộ điều khiển lai mờ Nơron cho cánh tay robot hai thanh
Luận văn: Bộ điều khiển lai mờ Nơron cho cánh tay robot hai thanh
 
Bài giảng Rôbôt công nghiệp.pdf
Bài giảng Rôbôt công nghiệp.pdfBài giảng Rôbôt công nghiệp.pdf
Bài giảng Rôbôt công nghiệp.pdf
 
Hướng dẫn bộ kĩ sư robot chuyên sâu Lego Education
Hướng dẫn bộ kĩ sư robot chuyên sâu Lego EducationHướng dẫn bộ kĩ sư robot chuyên sâu Lego Education
Hướng dẫn bộ kĩ sư robot chuyên sâu Lego Education
 
TÌM HIỂU ROBOT CÔNG NGHIỆP TRONG HỆ THỐNG FMS
TÌM HIỂU ROBOT CÔNG NGHIỆP TRONG HỆ THỐNG FMSTÌM HIỂU ROBOT CÔNG NGHIỆP TRONG HỆ THỐNG FMS
TÌM HIỂU ROBOT CÔNG NGHIỆP TRONG HỆ THỐNG FMS
 
Đề tài: Thiết kế và mô hình hóa mô phỏng động học robot Kuka
Đề tài: Thiết kế và mô hình hóa mô phỏng động học robot KukaĐề tài: Thiết kế và mô hình hóa mô phỏng động học robot Kuka
Đề tài: Thiết kế và mô hình hóa mô phỏng động học robot Kuka
 
Đồ Án Tốt Nghiệp Về Thiết Kế, Chế Tạo Và Điều Khiển Cánh Tay Robot 3 Bậc Tự D...
Đồ Án Tốt Nghiệp Về Thiết Kế, Chế Tạo Và Điều Khiển Cánh Tay Robot 3 Bậc Tự D...Đồ Án Tốt Nghiệp Về Thiết Kế, Chế Tạo Và Điều Khiển Cánh Tay Robot 3 Bậc Tự D...
Đồ Án Tốt Nghiệp Về Thiết Kế, Chế Tạo Và Điều Khiển Cánh Tay Robot 3 Bậc Tự D...
 
Nghiên cứu hệ thống cấp dây của Robot hàn di động.pdf
Nghiên cứu hệ thống cấp dây của Robot hàn di động.pdfNghiên cứu hệ thống cấp dây của Robot hàn di động.pdf
Nghiên cứu hệ thống cấp dây của Robot hàn di động.pdf
 

Plus de KhiVu2

DO_AN_TOT_NGHIEP-1 (1).pptx
DO_AN_TOT_NGHIEP-1 (1).pptxDO_AN_TOT_NGHIEP-1 (1).pptx
DO_AN_TOT_NGHIEP-1 (1).pptxKhiVu2
 
Thuyet-minhA4.pdf
Thuyet-minhA4.pdfThuyet-minhA4.pdf
Thuyet-minhA4.pdfKhiVu2
 
mô hình hoá ô tô điện Tesla model S P85.pptx
mô hình hoá ô tô điện Tesla model S P85.pptxmô hình hoá ô tô điện Tesla model S P85.pptx
mô hình hoá ô tô điện Tesla model S P85.pptxKhiVu2
 
Group-13_process-control.pptx
Group-13_process-control.pptxGroup-13_process-control.pptx
Group-13_process-control.pptxKhiVu2
 
Group14.pptx
Group14.pptxGroup14.pptx
Group14.pptxKhiVu2
 
ung_dung.pptx
ung_dung.pptxung_dung.pptx
ung_dung.pptxKhiVu2
 
a.docx
a.docxa.docx
a.docxKhiVu2
 
352763585-Đồ-An-Xe-Tranh-Vật-Cản.pdf
352763585-Đồ-An-Xe-Tranh-Vật-Cản.pdf352763585-Đồ-An-Xe-Tranh-Vật-Cản.pdf
352763585-Đồ-An-Xe-Tranh-Vật-Cản.pdfKhiVu2
 
Kiểm tra quy chế kỳ 20212-1.pdf
Kiểm tra quy chế kỳ 20212-1.pdfKiểm tra quy chế kỳ 20212-1.pdf
Kiểm tra quy chế kỳ 20212-1.pdfKhiVu2
 
G_16.pptx
G_16.pptxG_16.pptx
G_16.pptxKhiVu2
 
khai.pptx
khai.pptxkhai.pptx
khai.pptxKhiVu2
 

Plus de KhiVu2 (11)

DO_AN_TOT_NGHIEP-1 (1).pptx
DO_AN_TOT_NGHIEP-1 (1).pptxDO_AN_TOT_NGHIEP-1 (1).pptx
DO_AN_TOT_NGHIEP-1 (1).pptx
 
Thuyet-minhA4.pdf
Thuyet-minhA4.pdfThuyet-minhA4.pdf
Thuyet-minhA4.pdf
 
mô hình hoá ô tô điện Tesla model S P85.pptx
mô hình hoá ô tô điện Tesla model S P85.pptxmô hình hoá ô tô điện Tesla model S P85.pptx
mô hình hoá ô tô điện Tesla model S P85.pptx
 
Group-13_process-control.pptx
Group-13_process-control.pptxGroup-13_process-control.pptx
Group-13_process-control.pptx
 
Group14.pptx
Group14.pptxGroup14.pptx
Group14.pptx
 
ung_dung.pptx
ung_dung.pptxung_dung.pptx
ung_dung.pptx
 
a.docx
a.docxa.docx
a.docx
 
352763585-Đồ-An-Xe-Tranh-Vật-Cản.pdf
352763585-Đồ-An-Xe-Tranh-Vật-Cản.pdf352763585-Đồ-An-Xe-Tranh-Vật-Cản.pdf
352763585-Đồ-An-Xe-Tranh-Vật-Cản.pdf
 
Kiểm tra quy chế kỳ 20212-1.pdf
Kiểm tra quy chế kỳ 20212-1.pdfKiểm tra quy chế kỳ 20212-1.pdf
Kiểm tra quy chế kỳ 20212-1.pdf
 
G_16.pptx
G_16.pptxG_16.pptx
G_16.pptx
 
khai.pptx
khai.pptxkhai.pptx
khai.pptx
 

Dernier

SGK mới sự thụ tinh. Sự làm tổ và sự phát triển của trứng..pdf
SGK mới sự thụ tinh. Sự làm tổ và sự phát triển của trứng..pdfSGK mới sự thụ tinh. Sự làm tổ và sự phát triển của trứng..pdf
SGK mới sự thụ tinh. Sự làm tổ và sự phát triển của trứng..pdfHongBiThi1
 
SINH LÝ TẾ BÀO.doc rất hay nha các bạn bs
SINH LÝ TẾ BÀO.doc rất hay nha các bạn bsSINH LÝ TẾ BÀO.doc rất hay nha các bạn bs
SINH LÝ TẾ BÀO.doc rất hay nha các bạn bsHongBiThi1
 
SGK Hội chứng tắc ruột Y4.pdf rất hay nha các bạn trẻ
SGK Hội chứng tắc ruột Y4.pdf rất hay nha các bạn trẻSGK Hội chứng tắc ruột Y4.pdf rất hay nha các bạn trẻ
SGK Hội chứng tắc ruột Y4.pdf rất hay nha các bạn trẻHongBiThi1
 
SGK Viêm tụy cấp Y4.pdf rất hay nha các bạn
SGK Viêm tụy cấp Y4.pdf rất hay nha các bạnSGK Viêm tụy cấp Y4.pdf rất hay nha các bạn
SGK Viêm tụy cấp Y4.pdf rất hay nha các bạnHongBiThi1
 
Tim mạch - Suy tim.pdf ở trẻ em rất hay nha
Tim mạch - Suy tim.pdf ở trẻ em rất hay nhaTim mạch - Suy tim.pdf ở trẻ em rất hay nha
Tim mạch - Suy tim.pdf ở trẻ em rất hay nhaHongBiThi1
 
SGK mới Cơ chế đẻ và chẩn đoán ngôi thế kiểu thể.pdf
SGK mới Cơ chế đẻ và chẩn đoán ngôi thế kiểu thể.pdfSGK mới Cơ chế đẻ và chẩn đoán ngôi thế kiểu thể.pdf
SGK mới Cơ chế đẻ và chẩn đoán ngôi thế kiểu thể.pdfHongBiThi1
 
SGK mới sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdf
SGK mới sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdfSGK mới sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdf
SGK mới sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdfHongBiThi1
 
SGK Ung thư dạ dày Y4.pdf rất hay nha các bạn
SGK Ung thư dạ dày Y4.pdf rất hay nha các bạnSGK Ung thư dạ dày Y4.pdf rất hay nha các bạn
SGK Ung thư dạ dày Y4.pdf rất hay nha các bạnHongBiThi1
 
Hot SGK mớiTiêu chảy kéo dài ở trẻ em.pdf
Hot SGK mớiTiêu chảy kéo dài ở trẻ em.pdfHot SGK mớiTiêu chảy kéo dài ở trẻ em.pdf
Hot SGK mớiTiêu chảy kéo dài ở trẻ em.pdfHongBiThi1
 
SGK cũ Tiêu chảy cấp trẻ em.pdf rất hay nha các bạn
SGK cũ Tiêu chảy cấp trẻ em.pdf rất hay nha các bạnSGK cũ Tiêu chảy cấp trẻ em.pdf rất hay nha các bạn
SGK cũ Tiêu chảy cấp trẻ em.pdf rất hay nha các bạnHongBiThi1
 
SGK cũ sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdf
SGK cũ sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdfSGK cũ sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdf
SGK cũ sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdfHongBiThi1
 
SGK cũ các phần phụ của thai đủ tháng.pdf
SGK cũ  các phần phụ của thai đủ tháng.pdfSGK cũ  các phần phụ của thai đủ tháng.pdf
SGK cũ các phần phụ của thai đủ tháng.pdfHongBiThi1
 
Sự chuyển vị trong hóa học hữu cơ
Sự chuyển vị trong hóa học hữu cơ Sự chuyển vị trong hóa học hữu cơ
Sự chuyển vị trong hóa học hữu cơ 19BiPhng
 
23.Tim bẩm sinh.pdf rất hay các bác sĩ ạ
23.Tim bẩm sinh.pdf rất hay các bác sĩ ạ23.Tim bẩm sinh.pdf rất hay các bác sĩ ạ
23.Tim bẩm sinh.pdf rất hay các bác sĩ ạHongBiThi1
 
SGK cũ suy tim ở trẻ em.pdf rất là hay luôn
SGK cũ suy tim ở trẻ em.pdf rất là hay luônSGK cũ suy tim ở trẻ em.pdf rất là hay luôn
SGK cũ suy tim ở trẻ em.pdf rất là hay luônHongBiThi1
 
SGK cũ Tiêu chảy kéo dài ở trẻ em.pdf hay nha các bạn
SGK cũ Tiêu chảy kéo dài ở trẻ em.pdf hay nha các bạnSGK cũ Tiêu chảy kéo dài ở trẻ em.pdf hay nha các bạn
SGK cũ Tiêu chảy kéo dài ở trẻ em.pdf hay nha các bạnHongBiThi1
 
Y4.SUA.DIEU TRI SOI MAT VÀ VIEM TUY CAP.pdf
Y4.SUA.DIEU TRI SOI MAT VÀ VIEM TUY CAP.pdfY4.SUA.DIEU TRI SOI MAT VÀ VIEM TUY CAP.pdf
Y4.SUA.DIEU TRI SOI MAT VÀ VIEM TUY CAP.pdfHongBiThi1
 
Tin tức Phòng Khám Đa Khoa Tân Bình lừa đảo có đúng không_.pdf
Tin tức Phòng Khám Đa Khoa Tân Bình lừa đảo có đúng không_.pdfTin tức Phòng Khám Đa Khoa Tân Bình lừa đảo có đúng không_.pdf
Tin tức Phòng Khám Đa Khoa Tân Bình lừa đảo có đúng không_.pdfPhngKhmaKhoaTnBnh495
 
SGK Thủng ổ loét dạ dày tá tràng Y4.pdf rất hay
SGK Thủng ổ loét dạ dày tá tràng Y4.pdf rất haySGK Thủng ổ loét dạ dày tá tràng Y4.pdf rất hay
SGK Thủng ổ loét dạ dày tá tràng Y4.pdf rất hayHongBiThi1
 
SGK XHTH do loét dạ dày tá tràng Y6.pdf rất hay
SGK XHTH do loét dạ dày tá tràng Y6.pdf rất haySGK XHTH do loét dạ dày tá tràng Y6.pdf rất hay
SGK XHTH do loét dạ dày tá tràng Y6.pdf rất hayHongBiThi1
 

Dernier (20)

SGK mới sự thụ tinh. Sự làm tổ và sự phát triển của trứng..pdf
SGK mới sự thụ tinh. Sự làm tổ và sự phát triển của trứng..pdfSGK mới sự thụ tinh. Sự làm tổ và sự phát triển của trứng..pdf
SGK mới sự thụ tinh. Sự làm tổ và sự phát triển của trứng..pdf
 
SINH LÝ TẾ BÀO.doc rất hay nha các bạn bs
SINH LÝ TẾ BÀO.doc rất hay nha các bạn bsSINH LÝ TẾ BÀO.doc rất hay nha các bạn bs
SINH LÝ TẾ BÀO.doc rất hay nha các bạn bs
 
SGK Hội chứng tắc ruột Y4.pdf rất hay nha các bạn trẻ
SGK Hội chứng tắc ruột Y4.pdf rất hay nha các bạn trẻSGK Hội chứng tắc ruột Y4.pdf rất hay nha các bạn trẻ
SGK Hội chứng tắc ruột Y4.pdf rất hay nha các bạn trẻ
 
SGK Viêm tụy cấp Y4.pdf rất hay nha các bạn
SGK Viêm tụy cấp Y4.pdf rất hay nha các bạnSGK Viêm tụy cấp Y4.pdf rất hay nha các bạn
SGK Viêm tụy cấp Y4.pdf rất hay nha các bạn
 
Tim mạch - Suy tim.pdf ở trẻ em rất hay nha
Tim mạch - Suy tim.pdf ở trẻ em rất hay nhaTim mạch - Suy tim.pdf ở trẻ em rất hay nha
Tim mạch - Suy tim.pdf ở trẻ em rất hay nha
 
SGK mới Cơ chế đẻ và chẩn đoán ngôi thế kiểu thể.pdf
SGK mới Cơ chế đẻ và chẩn đoán ngôi thế kiểu thể.pdfSGK mới Cơ chế đẻ và chẩn đoán ngôi thế kiểu thể.pdf
SGK mới Cơ chế đẻ và chẩn đoán ngôi thế kiểu thể.pdf
 
SGK mới sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdf
SGK mới sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdfSGK mới sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdf
SGK mới sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdf
 
SGK Ung thư dạ dày Y4.pdf rất hay nha các bạn
SGK Ung thư dạ dày Y4.pdf rất hay nha các bạnSGK Ung thư dạ dày Y4.pdf rất hay nha các bạn
SGK Ung thư dạ dày Y4.pdf rất hay nha các bạn
 
Hot SGK mớiTiêu chảy kéo dài ở trẻ em.pdf
Hot SGK mớiTiêu chảy kéo dài ở trẻ em.pdfHot SGK mớiTiêu chảy kéo dài ở trẻ em.pdf
Hot SGK mớiTiêu chảy kéo dài ở trẻ em.pdf
 
SGK cũ Tiêu chảy cấp trẻ em.pdf rất hay nha các bạn
SGK cũ Tiêu chảy cấp trẻ em.pdf rất hay nha các bạnSGK cũ Tiêu chảy cấp trẻ em.pdf rất hay nha các bạn
SGK cũ Tiêu chảy cấp trẻ em.pdf rất hay nha các bạn
 
SGK cũ sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdf
SGK cũ sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdfSGK cũ sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdf
SGK cũ sự thay đổi giải phẫu và sinh lý ở phụ nữ khi có thai.pdf
 
SGK cũ các phần phụ của thai đủ tháng.pdf
SGK cũ  các phần phụ của thai đủ tháng.pdfSGK cũ  các phần phụ của thai đủ tháng.pdf
SGK cũ các phần phụ của thai đủ tháng.pdf
 
Sự chuyển vị trong hóa học hữu cơ
Sự chuyển vị trong hóa học hữu cơ Sự chuyển vị trong hóa học hữu cơ
Sự chuyển vị trong hóa học hữu cơ
 
23.Tim bẩm sinh.pdf rất hay các bác sĩ ạ
23.Tim bẩm sinh.pdf rất hay các bác sĩ ạ23.Tim bẩm sinh.pdf rất hay các bác sĩ ạ
23.Tim bẩm sinh.pdf rất hay các bác sĩ ạ
 
SGK cũ suy tim ở trẻ em.pdf rất là hay luôn
SGK cũ suy tim ở trẻ em.pdf rất là hay luônSGK cũ suy tim ở trẻ em.pdf rất là hay luôn
SGK cũ suy tim ở trẻ em.pdf rất là hay luôn
 
SGK cũ Tiêu chảy kéo dài ở trẻ em.pdf hay nha các bạn
SGK cũ Tiêu chảy kéo dài ở trẻ em.pdf hay nha các bạnSGK cũ Tiêu chảy kéo dài ở trẻ em.pdf hay nha các bạn
SGK cũ Tiêu chảy kéo dài ở trẻ em.pdf hay nha các bạn
 
Y4.SUA.DIEU TRI SOI MAT VÀ VIEM TUY CAP.pdf
Y4.SUA.DIEU TRI SOI MAT VÀ VIEM TUY CAP.pdfY4.SUA.DIEU TRI SOI MAT VÀ VIEM TUY CAP.pdf
Y4.SUA.DIEU TRI SOI MAT VÀ VIEM TUY CAP.pdf
 
Tin tức Phòng Khám Đa Khoa Tân Bình lừa đảo có đúng không_.pdf
Tin tức Phòng Khám Đa Khoa Tân Bình lừa đảo có đúng không_.pdfTin tức Phòng Khám Đa Khoa Tân Bình lừa đảo có đúng không_.pdf
Tin tức Phòng Khám Đa Khoa Tân Bình lừa đảo có đúng không_.pdf
 
SGK Thủng ổ loét dạ dày tá tràng Y4.pdf rất hay
SGK Thủng ổ loét dạ dày tá tràng Y4.pdf rất haySGK Thủng ổ loét dạ dày tá tràng Y4.pdf rất hay
SGK Thủng ổ loét dạ dày tá tràng Y4.pdf rất hay
 
SGK XHTH do loét dạ dày tá tràng Y6.pdf rất hay
SGK XHTH do loét dạ dày tá tràng Y6.pdf rất haySGK XHTH do loét dạ dày tá tràng Y6.pdf rất hay
SGK XHTH do loét dạ dày tá tràng Y6.pdf rất hay
 

352763585-Đồ-An-Xe-Tranh-Vật-Cản (1).pdf

  • 1. MỤC LỤC LỜI MỞ ĐẦU................................................................................................ Error! Bookmark not defined. MỤC LỤC ...................................................................................................................................................1 CHƯƠNG I : TỔNG QUAN VÀ ĐẶT VẤN ĐỀ ........................................................................................3 1.Giới thiệu chung về robot: .....................................................................................................................3 2. Tổng quan về các bài toán của robot di động: ......................................................................................5 3. Bài toán di chuyển tránh vật cản :........................................................................................................7 3.1.Vấn đề :...........................................................................................................................................7 3.2. Giải quyết bài toán:........................................................................................................................7 CHƯƠNG II: CÁC LINH KIỆN CHÍNH VÀ THIẾT KẾ MẠCH..............................................................8 1. Các linh kiện chính của robot : ............................................................................................................8 1.1. Động cơ DC: .............................................................................................................................8 1.2.Cảm biến siêu âm SRF05:...............................................................................................................9 1.3.Chip driver L298D :......................................................................................................................14 1.4. Arduino Uno : ..............................................................................................................................17 1.5. Động cơ servo :............................................................................................................................20 2.Mạch và demo :....................................................................................................................................22 2.1. Mạch : ..........................................................................................................................................22 2.2.Demo :...........................................................................................................................................22 CHƯƠNG III: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ............................................................................24 1. Kết quả:..............................................................................................................................................24 1.1.Phần cứng:.....................................................................................................................................24 1.2.Giải thuật:......................................................................................................................................24 2. Hạn chế và cách khắc phục:...............................................................................................................24 3. Hướng phát triển của đề tài:..............................................................................................................24 PHỤ LỤC ...................................................................................................................................................25 TÀI LIỆU THAM KHẢO ..........................................................................................................................30
  • 2.
  • 3. CHƯƠNG I : TỔNG QUAN VÀ ĐẶT VẤN ĐỀ 1.Giới thiệu chung về robot: 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, ả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. Về lĩnh vực người máy Nhật Bản là nước đi đầu thế giới về lĩnh vực này. Khái niệm Robot xuất hiện lần đầu tiên ở NewYork vào ngày 9/10/1922 trong vở kịch“Rossum’s Universal Robot” của nhà soạn kịch người Tiệp Khắc là Karen Chapek, còn từ Robot là một cách gọi khác của từ Robota-theo tiếng Tiệp có nghĩa là công việc lao dịch. Khi đó, Karen Chapek cho rằng Robot là những người máy có khả năng làm việc nhưng không có khả năng suy nghĩ.Gần một thế kỷ tiếp theo, khái niệm robot đã liên tục được phát triển, đóng góp thêm bởi nhiều nhà nghiên cứu, nhiều công ty chuyên về lĩnh vực robot. Trước những năm 1970, người ta chỉ tập trung vào việc phát triển những robot tay máy hoạt động trong các nhà máy công nghiệp. Sau đó mới xuất hiện những khái niệm về robot thông minh, và các nghiên cứu bắt đầu tập trung hơn vào robot di động. Một trong những chuyên gia đầu ngành về robot di động là Hans P. Moravec (bắt đầu nghiên cứu từ năm 1964), và hiện nay, chuyên nghiên cứu về robot di động là Sebastien Thruns. Các robot di động có người điều khiển đã được dùng cho các mục đích quân sự, các nhiệm vụ nguy hiểm như phá mìn, thăm dò đáy đại dương, hầm mỏ, kiểm tra các đường ống ngầm, hay thăm dò sao Hoả…Sản phẩm robot di động được sản xuất đại trà và đưa vào thị trường lần đầu tiên là robot hút bụi Roomba và Trilobite của hãng Electrolux năm 2003.
  • 4. Một số hình ảnh về các Robot và ứng dụng của nó: Hình 1.1: Robot tự hành Rover thám hiểm sao Hoả Hình 1.2 : Robot dò mìn
  • 5. Hình 1.3 : Robot thám hiểm đại dương 2. Tổng quan về các bài toán của robot di động: Ngày nay, Robot học đã đạt được những thành tựu to lớn trong nền sản xuất công nghiệp. Những cánh tay robot có khả năng làm việc với tốc độ cao, chính xác và liên tục làm năng suất lao động tăng nhiều lần. Chúng có thể làm việc trong các môi trường độc hại như hàn, phun sơn, các nhà máy hạt nhân, hay lắp ráp các linh kiện điện tử tạo ra điện thoại, máy tính…một công việc đòi hỏi sự tỉ mỉ, chính xác cao. Tuy nhiên những robot này có một hạn chế chung đó là hạn chế về không gian làm việc. Không gian làm việc của chúng bị giới hạn bởi số bậc tự do tay máy và vị trí gắn chúng. Ngược lại, các Robot tự hành lại có khả năng hoạt động một cách linh hoạt trong các môi trường khác nhau. Robot tự hành là loại mobile robot có khả năng tự hoạt động, thực thi nhiệm vụ mà không cần sự can thiệp của con người. Với những cảm biến, chúng có khả năng nhận biết về môi trường xung quanh. Robot tự hành ngày càng có nhiều ý nghĩa trong các ngành công nghiệp, thương mại, y tế, các ứng dụng khoa học và phục vụ đời sống của con người. Với sự phát triển của ngành Robot học, robot tự hành ngày càng có khả năng hoạt động trong các môi trường khác nhau, tùy mỗi lĩnh vực áp dụng mà chúng có nhiều loại khác nhau như robot sơn, robot hàn, robot cắt cỏ, robot thám hiểm đại dương, robot làm việc ngoài vũ trụ. Cùng với sự phát triển của yêu cầu trong thực tế, robot tự hành tiếp tục đưa ra những thách thức mới cho các nhà nghiên cứu. Vấn đề của
  • 6. robot tự hành là làm thế nào để robot tự hành có thể hoạt động, nhận biết môi trường và thực thi các nhiệm vụ đề ra. Vấn đề đầu tiên là "navigation" (tạm dịch là "di chuyển"), Robot tự hành nên di chuyển như thế nào và cơ cấu di chuyển nào là sự lựa chọn tốt nhất. Điều hướng là vấn đề cơ bản trong nghiên cứu và chế tạo Robot tự hành. Trong hiệp hội nghiên cứu về Robot tự hành có 2 hướng nghiên cứu khác nhau: - Hướng thứ nhất là nghiên cứu về Robot tự hành có khả năng điều hướng ở tốc độ cao nhờ thông tin thu được từ cảm biến, đây là loại robot có khả năng hoạt động ở môi trường trong phòng cũng như môi trường bên ngoài. Loại robot này yêu cầu khả năng tính toán đồ sộ và được trang bị cảm biến có độ nhạy cao, dải đo lớn để có thể điều khiển robot di chuyển ở tốc độ cao, trong những môi trường có địa hình phức tạp. - Hướng thứ hai nhằm giải quyết các vấn đề về các loại robot tự hành chỉ dùng để hoạt động trong môi trường trong phòng. Loại robot tự hành này có kết cấu đơn giản hơn loại trên, thực hiện những nhiệm vụ đơn giản. Vấn đề di chuyển là vấn đề trọng tâm của robot di động. Để di chuyển được, robot phải thực hiện một loạt các tác vụ, mỗi tác vụ gắn với một bài toán nhỏ trong bài toán "navigation". Các bài toán đó gồm: Mapping: là công việc lập bản đồ môi trường hoạt động của robot. Nếu không được cung cấp dữ liệu trước thì robot phải có khả năng lập bản đồ. Positioning: là việc định vị, robot phải có khả năng biết được mình đang ở đâu trong bản đồ toàn cục hoặc địa phương. Path planning: là việc hoạch định đường đi sắp tới của robot, sau khi nó biết được bản đồ và biết mình đang ở vị trí nào. Motion control: là việc điều khiển cho robot di động, tức là điều khiển các cơ cấu để robot đi theo con đường thu được từ bài toán "path planning". Obstacle avoidance: là nhiệm vụ tránh chướng ngại vật khi robot đang di chuyển.
  • 7. 3. Bài toán di chuyển tránh vật cản : 3.1.Vấn đề : Việc di chuyển tránh vật cản là một tác vụ thường thấy ở robot di động, trong các môi trường biết trước hoặc không biết trước. Tác vụ này được dùng với các nhiệm vụ: tránh chướng ngại vật, đi theo tường biết trước, đi theo tường không biết trước. 3.2. Giải quyết bài toán: Để giải quyết bài toán này, trong phạm vi của đồ án , em thiết kế mô hình robot gồm 2 bánh xe chủ động phía sau, 1 bánh xe phía trước chuyển động tự do, 1 cảm biến siêu âm SRF05 để thu khoảng cách và tránh vật cản, mạch điều khiển được sử dụng ở đây là Arduino Uno.
  • 8. CHƯƠNG II: CÁC LINH KIỆN CHÍNH VÀ THIẾT KẾ MẠCH 1. Các linh kiện chính của robot :  Động cơ DC  Cảm biến siêu âm SRF 05  Chip driver L298D  Arduino Uno  Động cơ Servo SG90 1.1. Động cơ DC: 1.1.1.Giới thiệu : DC động cơ là động cơ điện hoạt động với dòng một chiều. Động cơ DC sử dụng rộng rãi trong các ứng dụng dân cư cũng như các ngành công nghiệp. Thông thường động cơ DC chỉ chạy ở một tốc độ khi kết nối với nguồn điện, nhưng chúng ta vẫn có thể kiểm soát tốc độ và hướng của động cơ với sự hỗ trợ của các mạch điện tử với phương pháp PWM. Động cơ DC trong các hình thức của động cơ dân sự thường hoạt động với điện áp thấp, được sử dụng với tải trọng nhỏ. Trong công nghiệp, động cơ DC được sử dụng trong các lĩnh vực đòi hỏi phải có mô-men xoắn lớn hơn trên máy tính hoặc yêu cầu thay đổi trong phạm vi tốc độ. 1.1.2. Điều chế độ rộng xung: Điều khiển động cơ PWM phương pháp dựa trên nguyên tắc hoạt động cho động cơ chạy bằng chuỗi xung nhanh chóng mở và đóng. Điện DC được chuyển đổi thành tín hiệu sóng vuông (chỉ có hai cấp độ và khoảng 0 điện áp hoạt động volt). Tín hiệu sóngvuông này cho động cơ.Nếu tần số chuyển đổi là đủ lớn động cơ sẽ chạy ở tốc độ ổn định phụ thuộc vào trục mô-men xoắn.Với phương pháp PWM, điều chỉnh tốc độ động cơ thông qua điều chế độ rộng xung, tức là thời gian "xung đầy đủ" ("on") của chuỗi xung vuông cho động cơ. Điều chỉnh này sẽ ảnh hưởng đến công suất trung bình cho động cơ và do đó sẽ thay đổi cần điều khiển tốc độ động cơ.
  • 9. 1.2.Cảm biến siêu âm SRF05: 1.2.1.Giới thiệu : Hình 2.1 : Cảm biến đo khoảng cách SRF 05 Cảm biến SRF05 là một loại cảm biến khoảng cách dựa trên nguyên lý thu phát siêu âm. Cảm biến gồm một bộ phát và một bộ thu sóng siêu âm. Sóng siêu âm từ đầu phát truyền đi trong không khí, gặp vật cản (vật cần đo khoảng cách tới) sẽ phản xạ ngược trở lại và được đầu thu ghilại. Khoảng cách đo được của SRF05 nằm trong phạm vi từ 4cm đến 300cm.
  • 10. Hình 2.2 : Nguyên lý thu phát siêu âm. 1.2.2. Nguyên tắc hoạt động : SRF05 có thể thiết lập 2 mode hoạt động khác nhau thông qua các chân điều khiển MODE. Nối hoặc không nối chân MODE xuống GND cho phép cảm biến được điều khiển thông qua giao tiếp dùng 1 chân hay 2 chân IO. a). Mode 1: Tách chân TRIGGER & ECHO dùng riêng: Trong mode này,SRF05sử dụng cả 2 chân trigger và echo cho việc giao tiếp với MCU. Để sử dụng mode này,ta chỉ cần để trống chân Mode của module,điện trở bên trong module sẽ kéo chân pin này lên mức 1.
  • 11. Hình 2.3 : Cấu hình SRF05 ở mode 1 Để điều khiển SRF05,ta cần cấp cho chân TRIGGER một xung điều khiển với độ rộng tối thiểu 10uS. Sau đó một khoảng thời gian, đầu phát sóng siêu âm sẽ phát ra sóng siêu âm, vi xử lý tích hợp trên module sẽ tự xác định thời điểm phát sóng siêu âm và thu sóng siêu âm. Vi xử lý tích hợp này sẽ đưa kết quả thu được ra chân ECHO. Độ rộng xung vuông tại chân ECHO tỉ lệ với khoảng cách từ cảm biến tới vật thể. Hình 2.4 : Nguyên lý hoạt động của SRF05 ở chế độ mode 1
  • 12. b). Mode 2:chân TRIGGER & ECHO dùng chung: Được thiết kế nhằm cho mục đích tiết kiệm chân pin cho MCU,nên trong mode này, SRF05 chỉ sử dụng 1 chân pin cho 2 chức năng TRIGGER và ECHO.Để sử dụng mode này ,ta kết nối chân Mode xuống GND (0v).Đây cũng là mode sẽ được sử dụng trong demo. Hình 2.5: Cấu hình SRF05 ở chế độ mode 2.
  • 13. Để điều khiển SRF05,đầu tiên xuất một xung với độ rộng tối thiểu 10uS vào chân TRIGGER-ECHO (chân số 3) của cảm biến. Sau đó vi xử lý tích hợp trên cảm biến sẽ phát ra tín hiệu điều khiển đầu phát siêu âm. Sau 700uS kể từ lúc kết thúc tín hiệu điều khiển, từ chân TRIGGER-ECHO có thể đọc ra một xung mà độ rộng tỉ lệ với khoảng cách từ cảm biến tới vật thể. Hình 2.6: Nguyên lý hoạt động của SRF05 ở chế độ mode 2.  Tính toán khoảng cách : Theo sơ đồ thời gian của SRF05 như trên, ta chỉ cần cung cấp một xung ngắn tối thiểu 10uS làm tín hiệu trigger. Sau đó cảm biến sẽ gửi một khối 8 chu kỳ sóng siêu âm tại 40kHz và xuất xung echo. Sau đó SRF05 đợi sóng siêu âm phả n hồi sau khi gặp vật cản, khi nhận được sóng phản hồi thì xung echo bị ngắt. Như vậy, xung echo có chiều rộng tỉ lệ thuận với khoảng cách tới vật cản. Thời gian xung echo tồn tại có thể cho ta biết được khoảng cách giữa cảm biến với vật. Nếu trường hợp không phát hiện được vật cản, hoặc vật cản ngoài tầm xác định của SRF05 (4m) thì sau 30ms xung echo cũng được đưa về mức thấp. SRF05 có thể được kích hoạt nhanh nhất mỗi 50ms (20 lần mỗi giây). Nên chờ mỗi 50ms rồi thực hiện lần đo tiếp theo. Điều này đảm bảo cho các nhiễu siêu âm phản xạ của lần đo trước không gây sai lệch kết quả thu được.Công thức tính khoảng cách từ cảm biến tới vật cản:
  • 14. 1.3.Chip driver L298D : 1.3.1.Giới thiệu : L298D là một chip tích hợp 2 mạch cầu H trong gói 15 chân. Tất cả các mạch kích, mạch cầu đều được tích hợp sẵn. L298D có điện áp danh nghĩa cao (lớn nhất 50V) và dòng điện danh nghĩa lớn hơn 2A nên rất thích hợp cho các các ứng dụng công suất nhỏ như các động cơ DC loại nhỏ và vừa. Vì là loại “all in one” nên là lựa chọn hoàn hảo cho những người chưa có nhiều kinh nghiệm làm mạch điện tử. Trong bài học này ta dùng chip L298D để làm driver cho motor. Hình sau thể hiện mô hình thật của chip và cấu trúc bên trong chip. Hình 2.7. Chip driver L298D
  • 15. Hình 2.8. Mạch Chip L298D Hình phía trên là hình dáng bên ngoài và tên gọi các chân của L298D. Hình phía dưới là cấu trúc bên trong chip. Có 2 mạch cầu H trên mỗi chip L298D nên có thể điều khiển 2 đối tượng chỉ với 1 chip này. Mỗi mạch cầu bao gồm 1 đường nguồn Vs (thật ra là đường chung cho 2 mạch cầu), một đường current sensing (cảm biến dòng), phần cuối của mạch cầu H không được nối với GND mà bỏ trống cho người dùng nối một điện trở nhỏ gọi là sensing resistor. Bằng cách đo điện áp rơi trên điện trở này chúng ta có thể tính được dòng qua điện trở, cũng là dòng qua động cơ trên. Mục đích chính của việc đo dòng điện qua động cơ là để xác định các trường hợp nguy hiểm xảy ra trong mạch, ví dụ quá tải. Nếu việc đo dòng động cơ không thật sự cần thiết bạn có thể nối đường current sensing này với GND (trong mạch điện của bài này, ta nối chân current sensing với GND). Động cơ sẽ được nối với 2 đường OUT1, OUT2 (hoặc OUT3, OUT4 nếu dùng mạch cầu bên phải). Một chân En (EnA và EnB cho 2 mạch cầu) cho phép mạch cầu hoạt động, khi chân En được kéo lên mức cao, mạch cầu sẵn sang hoạt động. Các đường kích mỗi bên của mạch cầu được kết hợp với nhau và nhưng mức điện áp ngược nhau do một cổng Logic NOT. Bằng cách này chúng ta có thể tránh được trường hợp 2 transistor ở cùng một bên được kích cùng lúc (ngắn mạch). Như vậy, sẽ có 2 đường kích cho mỗi cầu H gọi là In1 và In2 (hoặc In3, In4). Để motor hoạt động chúng ta phải kéo 1 trong 2 đường kích này lên cao trong khi đường kia giữ ở mức thấp, ví dụ In1=1, In2=0. Khi đảo mức kích của 2 đường In, động cơ sẽ đảo chiều quay. Tuy nhiên, do L298D không chỉ được dùng đề đảo chiều động cơ mà còn điều khiển vận tốc động cơ bằng PWM, các đường In cần được “tổ hợp lại” bằng các cổng Logic (xem phần tiếp theo). Ngoài ra, trên chip L298D còn có các đường Vss cấp điện áp cho phần logic (5V) và GND chung cho cả logic và motor .
  • 16. Trong thực tế, công suất thực mà L298D có thể tải nhỏ hơn so với giá trị danh nghĩa của nó (V=50V, I=2A). Để tăng dòng điện tải của chip lên gấp đôi, chúng ta có thể nối 2 mạch cầu H song song với nhau (các chân có chức năng như nhau của 2 mạch cầu được nối chung). 1.3.2.Mạch logic cho L298D: Thông thường, khi thiết kế một mạch driver cho motor người ta thường dành 3 đường điều khiển đó là PWM dùng điều khiển vận tốc, DIR điều khiển hướng và En cho phép mạch hoạt động. Chip L298D đã có sẵn đường En nhưng 2 đường điều khiển In1 và In2 không thật sự chức năng như chúng ta mong muốn. Vì thế, chúng ta sẽ thiết kế một mạch logic phụ với 2 ngõ vào là PWM và DIR trong khi 2 ngõ ra là 2 đường điều khiển In1 và In2. Bảng chân trị của mạch logic cần thiết kế được trình bày trong bảng 1. Bảng 1. Bảng chân trị của mạch logic cho driver L298D. Từ bảng chân trị này, chúng ta có thể viết hàm bool cho 2 ngõ In1 và In2: In1=PWM.NOT(DIR) In2=PWM.DIR
  • 17. Mạch logic vì thế sẽ có dạng như trong hình sau : Hình 2.9. Mạch logic cho L239 Với mạch logic này, đường DIR có chức năng đảo chiều động cơ trong khi đường PWM điều khiển vận tốc động cơ bằng tín hiệu PWM. 1.4. Arduino Uno : 1.4.1. Giới thiệu về Arduino : Hình 2.10 :Một số loại arduino . Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là những người tự chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây, gần giống với
  • 18. những gì Apple đã làm được trên thị trường thiết bị di động. Số lượng người dùng cực lớn và đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học. Arduino là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác. Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình. Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm. Chỉ với khoảng $30, người dùng đã có thể sở hữu một bộ. Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vị vua vào thế kỷ thứ 9 là King Arduin. Arduino chính thức được đưa ra giới thiệu vào năm 2005 như là một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một trong những người phát triển Arduino, tại trường Interaction Design Instistute Ivrea (IDII). Mặc dù hầu như không được tiếp thị gì cả, tin tức về Arduino vẫn lan truyền với tốc độ chóng mặt nhờ những lời truyền miệng tốt đẹp của những người dùng đầu tiên. Hiện nay Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nơi đã sản sinh ra Arduino. 1.4.2. Hoạt động của arduino : Hình 2.11. Arduino uno Theo như hình minh họa, có 14 cổng in/out (đánh số 0-13). Đây là các chân cắm của Arduino và có chức năng input hoặc output, tạo nên cốt lõi của thiết bị.
  • 19. Có 6 chân kỹ thuật số, được đánh dấu bởi dấu ~ để thực hiện Xung. Chân 13 đặc biệt có một LED được ghép vào. Việc này giúp cho việc thử nghiệm. Bạn có thể sử dụng LED có sẵn, bằng cách xuất ra chân 13 hoặc ra các chân khác. Ở phần bên phải ở dưới có một cổng analog 6 chân input. Chúng giúp đọc các giá trị của cảm biến analog. Ở bên trái là các cổng analog tương tự cổng nguồn. bạn chỉ cần nguồn 3,3 vol hoặc 5 vol. Cuối cùng, một công tắc chuyển dùng để reset Arduino. nó sẽ giúp khởi động lại bất kỳ chương trình nào trong bộ nhớ. Arduino có một khoảng bộ nhớ, và nếu chương trình của bạn quá lớn, compiler sẽ báo lỗi. Các thông số của arduino uno R3 như sau : Cấu trúc một chương trình Arduino Mỗi chương trình Arduino được chia làm 2 chức năng :
  • 20. Đầu tiên là cài đặt chức năng. Việc này giúp khởi tạo và dùng để Arduino biết sẽ kết nối đến thiết bị nào, cũng như khởi tạo biến mà bạn cần trong chương trình. Thứ hai là vòng lặp. Đây là nền tảng của mỗi chương trình Arduino. Khi Arduino hoạt động, sau khi chức năng cài đặt hoàn tất, vòng lặp sẽ chạy tất cả các code, sau đó thực hiện lại đến khi nào mất nguồn hoặc bị reset. Quãng thời gian để hoàn thành dựa trên code được nạp vào. Bạn có thể viết code để chạy vài giờ nếu không muốn lặp quyết định. Hình 2.12 : Cấu trúc chương trình Arduino. 1.5. Động cơ servo : 1.5.1. Giới thiệu : Động cơ DC và động cơ bước vốn là những hệ hồi tiếp vòng hở- ta cấp điện để động cơ quay nhưng chúng quay bao nhiêu thì ta không biết, kể cả đối với động cơ bước là động cơ quay một góc xác định tùy vào số xung nhận được. Việc thiết lập một hệ thống điều khiển để xác định những gì ngăn cản chuyển động quay của động cơ hoặc làm động cơ không quay cũng không dễ dàng. Mặt khác, động cơ servo được thiết kế cho những hệ thống hồi tiếp vòng kín. Tín hiệu ra của động cơ được nối với một mạch điều khiển. Khi động cơ quay, vận tốc và vị trí sẽ được hồi tiếp về mạch điều khiển này. Nếu có bầt kỳ lý do nào ngăn cản chuyển động quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong muốn. Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được điểm chính xác.
  • 21. Động cơ servo có nhiều kiểu dáng và kích thước, được sử dụng trong nhiếu máy khác nhau, từ máy tiện điều khiển bằng máy tính cho đến các mô hình máy bay và xe hơi. Ứng dụng mới nhất của động cơ servo là trong các robot, cùng loại với các động cơ dùng trong mô hình máy bay và xe hơi. 1.5.2. Hoạt động : 1, Động Cơ 2, Các bản mạch điện tử 3, Dây nguồn chính ( đỏ) 4, Dây tín hiệu ( vàng hoặc trắng) 5, Dây âm/ dây nối đất ( mầu đen) 6, Bộ chỉnh điện áp ( bộ chia áp). 7, Trục đầu ra/ Bánh răng. 8, Mặt bích lắp ( ghá) động cơ Servo/ bánh răng. 9, Hộp động cơ Servo. 10, Chíp tích hợp điều khiển. Hình 2.13.Cấu Tạo RC Servo. Động cơ và vôn kế nối với mạch điều khiển tạo thành mạch hồi tiếp vòng kín. Cả mạch điều khiển và động cơ đều được cấp nguồn DC (thường từ 4.8 – 7.2 V). Để quay động cơ, tín hiệu số được gới tới mạch điều khiển. Tín hiệu này khởi động động cơ, thông qua chuỗi bánh răng, nối với vôn kế. Vị trí của trục vôn kế cho biết
  • 22. vị trí trục ra của servo. Khi vôn kế đạt được vịtrí mong muốn, mạch điều khiển sẽ tắt động cơ. Như ta dự đoán, động cơ servo được thiết kế để quay có giới hạn chứ không phải quay liên tục như động cơ DC hay động cơ bước. Mặc dù ta có thể chỉnh động cơ servo R/C quay liên tục (sẽtrình bày sau) nhưng công dụng chính của động cơ servo là đạt được góc quay chính xác trong khoảng từ 900 – 1800 . Việc điều khiển này có thể ứng dụng để lái robot, di chuyển các tay máy lên xuống, quay một cảm biến để quét khắp phòng… 2.Mạch và demo : 2.1. Mạch : Hình 2.14. Mạch xe tránh vật cản sử dụng SRF05. 2.2.Demo :
  • 23. Hình 2.15. Xe tránh vật cản sử dụng cảm biến siêu âm SRF05
  • 24. CHƯƠNG III: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 1. Kết quả: 1.1.Phần cứng: - Kết cấu chắc chắn, linh hoạt do có bánh Omni phía trước, chịu được va chạm. - Động cơ mạnh, tốc độ tối đa khi cấp nguồn 24V. - Cảm biến siêu âm chính xác tới 1cm. 1.2.Giải thuật: - Đo được khoảng cách từ robot tới tường, từ đó xác định vị trí của Robot. - Luật điều khiển đơn giản nhưng khá hiệu quả. 2. Hạn chế và cách khắc phục: - Robot hoạt động chưa linh hoạt. - Tần số hoạt động của SRF05 bị hạn chế ở 20Hz, nên dùng các cảm biến có tầm đo ngắn và tần số cao. 3. Hướng phát triển của đề tài: Robot có thể giúp các công việc công việc như sơn dọc mép tường, di chuyển hàng hóa , thám hiểm…
  • 25. PHỤ LỤC 1.CODE: #include <Ultrasonic.h> #include <Servo.h> #define MOTOR_1_FORWARD 8 #define MOTOR_1_BACK 9 #define MOTOR_2_FORWARD 10 #define MOTOR_2_BACK 11 #define TRIG 6 #define ECHO 7 #define HEAD_SERVO 5 #define OBSTRACLE_DISTANCE 30.0 #define TURN_DELAY 200 #define LOG false Ultrasonic ultrasonic(TRIG, ECHO); Servo headServo; int servoAngle = 90; int angleStep = 30; float distance = 0; void setup() { pinMode(MOTOR_1_FORWARD, OUTPUT); pinMode(MOTOR_1_BACK, OUTPUT); pinMode(MOTOR_2_FORWARD, OUTPUT); pinMode(MOTOR_2_BACK, OUTPUT); stopMove(); headServo.attach(HEAD_SERVO); if(LOG) Serial.begin( 9600 ); } void loop() { updateHeadAngle(); checkDistance(); moove(); delay(10); } void checkDistance()
  • 26. { distance = ultrasonic.Ranging(CM); if(LOG) Serial.println(distance); } void moove() { if( distance > OBSTRACLE_DISTANCE ) { if(LOG) Serial.println("FORWARD"); goForward(); delay(TURN_DELAY); } else { stopMove(); checkObstracle(); } } void checkObstracle() { int obsLeft = 0; int obsRight = 0; // Count the obstacles from left and right side for(servoAngle = 0; servoAngle <= 180; servoAngle += 30) { headServo.write(servoAngle); delay(TURN_DELAY); checkDistance(); if(distance < OBSTRACLE_DISTANCE && servoAngle < 90) obsLeft++; else if(distance < OBSTRACLE_DISTANCE) obsRight++; } if(LOG) Serial.print("TURN"); if(obsLeft && obsRight) { goBack(); delay(TURN_DELAY * 2); if(obsLeft < obsRight) goLeft(); else goRight(); delay(TURN_DELAY); } else if(obsRight) { goLeft(); delay(TURN_DELAY); }
  • 27. else if(obsLeft) { goRight(); delay(TURN_DELAY); } else { goForward(); delay(TURN_DELAY); } } void updateHeadAngle() { headServo.write(servoAngle); servoAngle += angleStep; if(servoAngle >= 150) { servoAngle = 150; angleStep *= -1; } if(servoAngle <= 30) { servoAngle = 30; angleStep *= -1; } } void goForward() { digitalWrite(MOTOR_1_FORWARD, HIGH); digitalWrite(MOTOR_1_BACK, LOW); digitalWrite(MOTOR_2_FORWARD, HIGH); digitalWrite(MOTOR_2_BACK, LOW); } void goBack() { digitalWrite(MOTOR_1_FORWARD, LOW); digitalWrite(MOTOR_1_BACK, HIGH); digitalWrite(MOTOR_2_FORWARD, LOW); digitalWrite(MOTOR_2_BACK, HIGH); } void goLeft() { digitalWrite(MOTOR_1_FORWARD, LOW); digitalWrite(MOTOR_1_BACK, HIGH); digitalWrite(MOTOR_2_FORWARD, HIGH); digitalWrite(MOTOR_2_BACK, LOW);
  • 28. } void goRight() { digitalWrite(MOTOR_1_FORWARD, HIGH); digitalWrite(MOTOR_1_BACK, LOW); digitalWrite(MOTOR_2_FORWARD, LOW); digitalWrite(MOTOR_2_BACK, HIGH); } void stopMove() { digitalWrite(MOTOR_1_FORWARD, LOW); digitalWrite(MOTOR_1_BACK, LOW); digitalWrite(MOTOR_2_FORWARD, LOW); digitalWrite(MOTOR_2_BACK, LOW); } 2.Thư Viện : *Ultrasonic.h: #ifndef Ultrasonic_h #define Ultrasonic_h #include "Arduino.h" #define CM 1 #define INC 0 class Ultrasonic { public: Ultrasonic(int TP, int EP); long Timing(); long Ranging(int sys); private: int Trig_pin; int Echo_pin; long duration,distacne_cm,distance_inc; }; #endif
  • 29. *Ultrasonic.cpp: #include "Arduino.h" #include "Ultrasonic.h" Ultrasonic::Ultrasonic(int TP, int EP) { pinMode(TP,OUTPUT); pinMode(EP,INPUT); Trig_pin=TP; Echo_pin=EP; } long Ultrasonic::Timing() { digitalWrite(Trig_pin, LOW); delayMicroseconds(2); digitalWrite(Trig_pin, HIGH); delayMicroseconds(10); digitalWrite(Trig_pin, LOW); duration = pulseIn(Echo_pin,HIGH); return duration; } long Ultrasonic::Ranging(int sys) { Timing(); distacne_cm = duration /29 / 2 ; distance_inc = duration / 74 / 2; if (sys) return distacne_cm; else return distance_inc; }
  • 30. TÀI LIỆU THAM KHẢO [1] Tài liệu tìm được trên google.com.vn [2] Các diễn đàn: dientuvietnam.net, ti.com.vn, webdien.com -----------------------THE END---------------------