GIỚI THIỆU 
Ngành khoa học công nghệ mới, tạo ra các sản phẩm robot và nghiên cứu ứng dụng chính hình thành trong những thập kỷ gần đây được gọi là Robotics. Trong Robotics có hầu hết các vấn để của “cơ-điện tử”. Thuật ngữ “cơ - điện tử “( mechatronics) thể hiện sự kết hợp giữa cơ học máy và điều khiển điện tử. Đồng thời sự phát triển của mechatronics cũng được phản ánh trong khoa học công nghệ robot. 
Một trong những tiêu chí đặc trưng cho robot là khả năng “lập trình được “(programable). Muốn có khả năng đó robot phải dùng đến máy tính hoặc các thiết bị khác có chức năng tương tự. Máy tính có vai trò như bộ não của robot. 
Ngày nay sự cải thiện của tốc độ máy tính đã tạo ra những bước trưởng thành đáng kể cho robot trong từng giai đoạn phát triển và đang mở ra những triển vọng trở thành những robot thông minh nhờ khả năng xử lý rất nhanh của bộ điều khiển dùng máy tính.Tuy nhiên khả năng hiện thực của robot này không chỉ phụ thuộc vào bộ điều khiển mà còn ở khả năng nhận biết của các “cơ cấu cảm nhận” và khả năng phản ứng kịp thời của cơ cấu “chân tay” chấp hành. 
Robot ngày càng đóng vai trò quan trọng trong công nghiệp và cuộc sống hàng ngày. Chúng sẽ thực hiện những công việc rất hàm chán hoặc nguy hiểm, những công việc mà tốc độ và độ chính xác vượt quá khả năng của con người. 
Bản khoá luận này đề cập đến vấn đề xây dựng một robot di động tránh vật cản dựa trên các sensor siêu âm và sensor địa bàn.
Đề tài: XÂY DỰNG ROBOT DI ĐỘNG TRÁNH VẬT CẢN DỰA TRÊN CÁC SENSOR SIÊU ÂM VÀ SENSOR ĐỊA BÀN
                
              
                                            
                                
            
 
            
                 53 trang
53 trang | 
Chia sẻ: lvcdongnoi | Lượt xem: 3443 | Lượt tải: 1 
              
            Bạn đang xem trước 20 trang tài liệu Khóa luận Xây dựng robot di động tránh vật cản dựa trên các sensor siêu âm và sensor địa bàn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
H HOÀNG GIANG K46ĐC 
10 
 luận tốt nghiệp 
- Chương trình có thể thay đổi được thông qua các panel điều khiển 
hoặc thông qua máy tính. 
Các robot thế hệ này sử dụng cơ cấu điều khiển servo vòng hở (open-
loop nonservo controlled system ). Đây là hệ thống không sử dụng thông tin 
phản hồi từ môi trường về để điều khiển robot. 
Thế hệ thứ hai: Robot được trang bị các sensor cho phép robot giao tiếp 
với môi trường bên ngoài. Các thiết bị này thực chất là các bộ biến đổi năng 
lượng. Nó chuyển các đại lượng không điện thành đại lượng điện mà qua đó bộ 
điều khiển robot có thể biết được trạng thái của môi trường xung quanh nó. 
Nhờ các sensor này robot có thể chọn các phương án khác nhau một cách linh 
hoạt nhằm thích nghi với môi trường bên ngoài. Dạng robot với trình độ điều 
khiển này còn được gọi là robot điều khiển thích nghi cấp thấp. Đây gọi là cơ 
cấu điều khiển servo vòng kín (closed-loop servo controller system). 
Thế hệ thứ ba: các bộ điều khiển logic khả trình PLC (Programmable 
Logic Controller) được sử dụng trong robot với nhiều chức năng chuyên biệt . 
Thế hệ thứ bốn: Khác với PLC bị giới hạn trong chương trình của chúng, 
thế hệ robot này sử dụng các máy tính được trang bị các ngôn ngữ lập trình đặc 
biệt hoặc ngôn ngữ chuẩn như Basic, C, C++...., để tạo ra nhiều ứng dụng 
CAD/CAM và CIM hoặc chương trình không trực tuyến. 
Thế hệ thứ năm: Các bộ điều khiển của robot sử dụng trí tuệ nhân tạo 
(artificial intelligence). Robot được trang bị các kỹ thuật như nhận dạng tiếng 
nói, hình ảnh, xác định khoảng cách, cảm nhận đối tượng tiếp xúc (da nhân tạo) 
để xử lý, ra những quyết định hợp lý. Ngoài ra robot được trang bị mạng 
Neuron giúp nó có khả năng tự học, tự xây dựng kiến thức . 
1.3 Những xu hướng phát triển của robot hiện đại 
Các robot hiện đại sẽ có xu hướng tăng trong tương lai giúp con người 
có thể tạo ra các sản phẩm mới, bảo vệ cơ sở hạ tầng của thế giới, chăm sóc nhà 
cửa, mua bán. 
Một xu hướng quan trọng trong nghiên cứu và phát triển robot là phát 
triển các hệ thống máy vi cơ điện tử (MEMS) có kích thước nhỏ từ vài cm tới 
mm thậm chí nhỏ hơn µ m. Các robot rất nhỏ này có thể di chuyển vào trong 
mạch máu để phân phối thuốc hoặc làm vệ sinh mạch máu; chúng có thể di 
chuyển trong một máy tính lớn để chuẩn đoán các vấn đề xảy ra với máy tính. 
BẠCH HOÀNG GIANG K46ĐC 
11 
 luận tốt nghiệp 
Một xu hướng phát triển hiện nay là việc nghiên cứu phát triển trí tuệ 
nhân tạo, mạng neuron vào trong robot nhằm tạo ra các robot thông minh, có 
khả năng thích nghi với môi trường xung quanh như con người. 
BẠCH HOÀNG GIANG K46ĐC 
12 
 luận tốt nghiệp 
CHƯƠNG 2 
HỆ SENSOR TRONG ROBOT 
Khi được trang bị một hệ thống sensor robot sẽ có khả năng thích ứng 
với sự thay đổi của môt trường xung quanh. Đây cũng là một chỉ tiêu quan 
trọng để đánh giá một robot có thông minh hay không. Các sensor đều là bộ 
biến đổi năng lượng, nó biến năng lượng từ dạng này sang dạng khác, thường 
là biến đổi tín hiệu từ các đại lượng không điện thành các đại lượng điện. Tín 
hiệu này được phản hồi về bộ điều khiển, thông qua nó bộ điều khiển có các 
quyết định cho phù hợp. 
2.1. Phân loại sensor 
Các sensor sử dụng trong robot được chia thành 3 loại: Sensor nội 
(internal sensor), sensor ngoại (external sensor), sensor khoá (interlock sensor). 
2.1.1. Sensor nội 
Được đặt trong bản thân robot, nó sử dụng các thiết bị về cơ khí, điện, 
điện tử hoặc thuỷ lực để nhận các thông tin phản hồi về vị trí của các bộ phận 
trên robot. Sensor nội có thể đơn giản là các công tắc giới hạn nhưng cũng có 
thể phức tạp như đĩa lập mã quang dùng để điều khiển motor. 
2.1.1 Sensor ngoại 
Sensor ngoại là loại sensor giúp robot giao tiếp với môi trường bên 
ngoài như sensor thị giác giúp robot quan sát, sensor xác định khoảng cách 
giúp robot ước lượng được khoảng cách tới đối tượng, sensor xúc giác giúp 
robot có cảm giác khi cầm nắm các vật. Các sensor này sẽ phản ánh các thông 
tin môi trường xung quanh tới robot. 
2.1.3 Sensor khoá 
Đây là loại sensor được dùng trong các tình huống khẩn cấp để bảo vệ 
robot . 
Sau đây xin được đề cập đến một số loại sensor thường được sử dụng . 
2.2. Một số sensor thường gặp 
Trong thực tế nghiên cứu robot, có rất nhiều loại sensor được sử dụng 
cho các mục đích khác nhau. Sau đây, xin giới thiệu một số sensor thường được 
sử dụng trong kĩ thuật robot. 
BẠCH HOÀNG GIANG K46ĐC 
13 
 luận tốt nghiệp 
2.2.1 Sensor xác định khoảng cách (Range sensor) 
Đây là loại sensor được sử dụng giúp robot có thể ước lượng khoảng 
cách từ vị trí đặt sensor (nằm trên robot ) tới đối tượng. Có nhiều cách xác định 
khoảng cách tới đối tượng. Sau đây trình bày hai cách xác định thông dụng 
nhất đó là: 
2.2.1.1 Phương pháp xác định khoảng cách bằng lượng giác 
Phương pháp này sử dụng một nguồn phát sáng phát ra một chùm tia 
hẹp tới đập vào bề mặt vật thể. Do phản xạ, tia sáng chuyển hướng tới bộ thu 
được đặt cách bộ phát một khoảng B, góc phát tia sáng so với phương ngang là 
α ( hình 2.1). 
Đối 
tượng 
D 
Nguồn phát α
Nguồn 
thu 
 B 
Hình 2.1 Sensor đo khoảng cách sử dụng phương pháp lượng giác. 
Nếu D là khoảng cách từ đối tượng tới detector thì khoảng cách này 
được tính như sau: 
D = B. tgα 
2.2.1.2. Phương pháp xác định khoảng cách bằng đo khoảng thời gian 
truyền sóng 
Trong phương pháp này sử dụng nguồn phát lazer xung để phát ra xung 
sáng, sau đó thu lại ánh sáng phản xạ của nó với điều kiện chùm sáng đi và 
chùm sáng về phải đồng trục. Khi đó khoảng cách từ sensor tới đối tượng sẽ 
được tính như sau: 
D = C . T/2 
Trong đó: D là khoảng cách từ sensor tới đối tượng . 
BẠCH HOÀNG GIANG K46ĐC 
14 
 luận tốt nghiệp 
C là vận tốc truyền ánh sáng 
T là thời gian kể từ khi phát xung sáng cho tới khi 
nhận được xung sáng. 
Với công thức này, để đo khoảng cách D sẽ gặp phải khó khăn đó là 
khoảng thời gian T thường rất nhỏ cỡ picrogiây. Thực tế, người ta thường sử 
dụng đo thời gian trễ giữa sóng phát ra và sóng phản xạ. Trong cách này, một 
nguồn laser sẽ phát liên tục, bộ đo sẽ thực hiện đo pha giữa hai sóng tới và sóng 
phản xạ. Sơ đồ thực hiện có thể được chỉ ra trên hình 2.2. 
Trong sơ đồ, chùm laser phát được tới một gương bán mạ, gương này sẽ 
chia chùm laser thành hai chùm sáng như nhau. Một truyền tới đối tượng, một 
truyền tới bộ đo pha. Chùm laser truyền tới đối tượng sẽ phản xạ và đi tới bộ đo 
pha. Bộ đo pha ở đây đóng vai trò là một detector. Gọi L là khoảng cách từ tia 
chuẩn tới Detector, D là khoảng cách từ đối tượng tới gương bán mạ. Khi đó 
tổng quãng đường đi của laser tới vật thể và quay trở về Detector là : 
D’ = 2D + L 
Gương bán mạ
 L 
Laser 
bộ đo pha
vật 
 D 
Hình 2.2 Đo khoảng cách bằng đo pha 
Nếu đối tượng ở gần (D = 0) khi đó pha của hai tia sáng như nhau. Khi 
D tăng thì độ lệch pha tăng dần độ dịch pha giữa hai tia trong trường hợp này 
sẽ là: 
D’= L + λθ . /3600 
 do đó D = λθ . / (2. 3600 ). 
BẠCH HOÀNG GIANG K46ĐC 
15 
 luận tốt nghiệp 
Cũng cần lưu ý: khi θ = 3600 bộ đo pha sẽ không phân biệt được D’ = L 
+ n (với n là số nguyên ) hay D’ = L. Như vậy cách này chỉ đo với các giá trị 
lệch pha θ < 3600 hay với khoảng cách 2D < λ . 
Bên cạnh việc sử dụng đo khoảng cách bằng nguồn phát lazer, trên thực 
tế người ta còn sử dụng nguồn thu phát siêu âm. Chùm xung siêu âm phát ra 
đập tới bề mặt phản xạ của đối tượng, xung phản xạ được thu ở đầu thu siêu âm 
có thời gian kéo dài xung tỉ lệ với khoảng cách từ sensor tới vật. Nếu đo được 
khoảng thời gian kéo dài xung phản xạ ta hoàn toàn có thể đo được khoảng 
cách tới vật. 
2.2.2 Sensor phát hiện vật thể gần (Proximity sensor) 
Đây là loại sensor được sử dụng để xác định xem có hay không có vật 
thể nằm trong vùng hoạt động của sensor. Các loại sensor phát hiện vật thể gần 
thường cho lối ra tín hiệu số. 
2.2.2.1 Sensor siêu âm 
Loại sensor này phát ra xung siêu âm. Nếu tồn tại vật thể trong vùng làm 
việc của sensor sẽ xuất hiện sóng phản xạ về đầu thu. Cấu trúc một sensor siêu 
âm thường gồm những phần được miêu tả trong hình 2.3. Phần tử cơ bản của 
sensor này là bộ biến âm thường là gốm áp điện được bảo vệ bằng một chất 
nhựa tổng hợp nhằm chống lại sự ẩm ướt, bụi bẩn và các nhân tố khác của môi 
trường. Bộ thu âm thanh sẽ hứng âm đưa tới bộ biến đổi âm thanh thành tín 
hiệu điện. Tất cả các thành phần này được để trong một vỏ. Một dạng sóng điển 
hình được trình bày trong hình 2.4 mô tả hoạt động của sensor siêu âm. Dạng 
sóng A là tín hiệu điều khiển tín hiệu truyền. Dạng sóng B là tín hiệu lối ra khi 
có cả tín hiệu tiếng vọng (echo) trong đó B1 là tín hiệu phát ra còn B2 là tín 
hiệu phản xạ lại. Các xung C tách biệt tín hiệu truyền và tín hiệu nhận. Để phân 
biệt sự khác nhau giữa các xung tương ứng với tín hiệu mang và tín hiệu phản 
xạ lại ta xem xét tín hiệu D. Trong đó t1 là khoảng thời gian phát hiện nhỏ 
nhất và ∆ t1 + ∆ t2 là khoảng thời gian phát hiện lớn nhất. Các khoảng thời 
gian này tương ứng với khoảng thời gian truyền sóng trong môi trường khi 
nhận được tín hiệu phản xạ lại (lúc đó tín hiệu D có giá trị lớn nhất) sẽ hình 
thành tín hiệu E, nó sẽ bằng 0 khi kết thúc xung tín hiệu A. Cuối cùng tín hiệu 
F được hình thành khi xuất hiện xung tín hiệu E và sẽ là tín hiệu ra của sensor 
siêu âm hoạt động theo chế độ nhị phân . 
BẠCH HOÀNG GIANG K46ĐC 
16 
 luận tốt nghiệp 
Vỏ bọc bên ngoài
của sensor Vỏ bọc 
kim loại 
Hình 2.3 : Các thành phần cấu tạo sensor siêu âm 
Nhựa 
Cáp điện 
 Phần tử 
 áp điện 
BẠCH HOÀNG GIANG K46ĐC 
17 
 luận tốt nghiệp 
CHƯƠNG 3 
CƠ CẤU CHUYỂN ĐỘNG TRONG ROBOT DI ĐỘNG 
Khác với cánh tay máy tại các robot tĩnh, robot di động có cơ cấu 
chuyển động nhằm đưa bệ máy của toàn hệ thống robot tới một vị trí mong 
muốn trong không gian hoạt động. Cơ cấu này có thể là các máy thuỷ lực, khí 
nén, motor điện nhưng trong đề tài này chỉ sử dụng loại motor điện. Vì vậy 
chương này cũng chỉ trình bày tóm tắt các tìm hiểu về motor điện và hệ thống 
liên quan đến điều khiển motor. 
3.1.Phân loại motor điện 
Motor điện thường là loại máy chuyển đổi năng lượng điện thành năng 
lượng cơ, thường là chuyển động tròn. Motor được cấu trúc từ hai phần chính: 
Rotor và Stator. Rotor là phần chuyển động nằm ở lõi motor bao gồm cuộn dây 
được cuốn quanh một lõi thép. Lõi này được gắn vào trục của motor. Stator là 
phần không chuyển động, nó được cấu tạo từ nam châm vĩnh cửu. Khi có dòng 
điện đi qua motor sẽ sinh ra một từ trường chống lại từ trường của nam châm 
vĩnh cửu làm cho motor quay. 
Có hai loại motor thường được sử dụng trong các robot di động là: 
 - Motor một chiều (DC motor) 
 - Motor bước (Step motor) 
3.1.1. Motor một chiều 
Motor một chiều được cấu tạo từ một cuộn dây và hệ thống nam châm 
vĩnh cửu. Loại motor này có thể dùng trực tiếp nguồn một chiều hoặc có thể 
điều khiển thông qua độ rộng xung. Tốc độ motor sẽ được quy định bởi điện áp 
một chiều hay độ rộng xung đặt vào. Một nhược điểm khi sử dụng motor một 
chiều là kém về độ chính xác trong chuyển động. Điều này được khắc phục khi 
sử dụng motor bước. 
3.1.2. Motor bước 
Khác với motor một chiều, motor bước được cấu tạo từ nhiều cuộn dây. 
Mỗi cặp cuộn dây tương ứng với một pha trong chuyển động. Việc điều khiển 
motor bước được thực hiện qua các xung có độ lệch pha so với nhau lần lượt đi 
qua các cặp cuộn dây. Chính nhờ việc cho các tín hiệu lần lượt chạy qua các 
BẠCH HOÀNG GIANG K46ĐC 
18 
 luận tốt nghiệp 
cặp cuộn dây đã tạo ra các bước trong chuyển động. Tuỳ thuộc mỗi loại motor 
bước mà tương ứng với nó là các góc của bước. Góc của bước càng nhỏ thì độ 
chính xác của motor càng lớn. Đây là điều khác hẳn với motor một chiều. Việc 
điều khiển bước của motor sẽ giúp thực hiện các chuyển động một cách chính 
xác tới các vị trí yêu cầu. 
3.2. Các đặc tính của motor điện 
Một motor khi sử dụng cần quan tâm đến các thông số sau: 
- Điện áp sử dụng, dòng điện tiêu thụ. 
- Tốc độ tối đa có thể đạt được. 
- Lực xoắn của motor. 
Sau đây sẽ đề cập đến từng phần . 
3.2.1 Điện áp sử dụng và dòng tiêu thụ của motor 
Trên vỏ mỗi motor thường ghi các thông số về giới hạn điện áp sử dụng 
và dòng điện tiêu thụ cực đại khi motor hoạt động. Thông số này rất quan trọng 
đối với người sử dụng. Nó quyết định việc thiết kế các mạch công suất để điều 
khiển motor. Việc thiết kế này hoàn toàn khác nhau khi sử dụng các motor có 
dòng tiêu thụ cực đại khác nhau. 
3.2.2 Tốc độ cực đại của motor 
Tốc độ cực đại của motor được quan tâm khi có tải và không tải. Việc 
đo tốc độ cực đại có thể thực hiện bằng cách đếm xung thu được từ một sensor. 
Tốc độ cực đại khi cấp điện áp cho phép cực đại vào motor hoặc khi độ rộng 
xung cấp tới motor là cực đại. Tốc độ này là một hàm phụ thuộc vào tải của 
motor. Nó quyết định tới độ linh động của robot di động và là một thông số 
quan trọng cần tính đến khi lập trình điều khiển motor vì liên quan đến quán 
tính trong quá trình hãm hoặc dừng motor. 
3.2.3 Lực xoắn của motor 
Lực xoắn của motor là thông số dùng để đánh giá khả năng chịu tải của 
motor. Motor có lực xoắn càng lớn thì càng khoẻ. Lực xoắn được đo bằng tỉ số 
giữa trọng lượng lực đặt lên motor mà motor vẫn kéo được vật làm cho dây 
treo vật vuông góc với bán kính đi qua tâm motor chia cho bán kính khoảng 
cách từ tâm trục motor tới dây treo như hình 3.1. Lực xoắn sẽ giảm khi tăng tốc 
độ của motor. Điều này chứng tỏ khi motor chạy với tốc độ cao thi tải dùng cho 
BẠCH HOÀNG GIANG K46ĐC 
19 
 luận tốt nghiệp 
motor se bị giảm xuống. Để tăng lực xoắn cho motor người ta thường dùng cho 
motor qua các cơ chế giảm tốc. Đây thực chất chỉ là các cơ cấu bánh răng. Tỉ 
số độ giảm tốc càng lớn thi lực xoắn motor sẽ càng lớn tuy nhiên tốc độ motor 
sẽ bị hạn chế. 
bán kính
Trục motor
Trọng lượng đặt 
lên trục motor 
Lực xoắn = trọng lực /bán kính 
Hình 3.1: Mô tả cách đo lực xoắn của motor 
3.3 Điều khiển chuyển động của motor 
Việc thiết kế mạch điều khiển motor phải căn cứ vào công suất tiêu thụ 
của motor và loại motor để có thiết kế hợp lý. Trong báo cáo này trình bày 2 
loại mạch điều khiển motor áp dụng cho 2 loại motor thường gặp đó là motor 
DC và motor bước. 
3.3.1 Điều khiển motor DC 
Thông thường, có thể điều khiển tốc độ của motor một chiều bằng thay 
đổi mức điện áp đặt vào motor. Nhưng việc này gặp phải khó khăn khi mức 
điện áp trở nên quá thấp làm việc điều chỉnh tốc độ thấp không chính xác. Còn 
một cách khác là sử dụng các xung điện có biên độ bằng mức điện áp cực đại 
nhưng có độ rộng xung khác nhau để điều khiển tốc độ motor. Độ rộng xung 
càng lớn, năng lượng trung bình cấp cho motor càng lớn và tốc độ quay của 
motor ứng với một tải nhất định càng cao. Việc này được thực hiện bằng các 
chuyển mạch điện tử công suất lắp trên các tranzitor có sẵn hiện nay là khá 
thuận lợi. 
BẠCH HOÀNG GIANG K46ĐC 
20 
 luận tốt nghiệp 
3.3.2 Điều khiển motor bước 
Khác với motor DC chỉ có hai đường điều khiển, motor bước có nhiều 
pha khác nhau. Ứng với số pha sẽ tương ứng với số đường tín hiệu điều khiển. 
Sơ đồ hình 3.2 là thí dụ trình bày mạch điều khiển motor bước 4 pha. Mạch cầu 
tới 4 đường điều khiển. Với yêu cầu dòng điều khiển có giá trị cực đại phải lớn, 
trong sơ đồ này, mỗi đường tín hiệu điều khiển từ vi xử lý được khuyếch đại 
qua một tầng Darlingtơn để tăng dòng cho tín hiệu điều khiển. 
Hình 3.2 : Sơ đồ khuyếch đại tín hiệu điều khiển motor bước 
Ta thấy rằng 4 cuộn dây của motor bước được sắp xếp thành từng cặp 
(cuộn 1 với cuộn 2), (cuộn 3 với cuộn 4). Sơ đồ mạch tạo ra hai cặp tín hiệu 
điều khiển (bít 1 và bit 2), (bít 3 và bít 4). 
BẠCH HOÀNG GIANG K46ĐC 
21 
 luận tốt nghiệp 
CHƯƠNG 4 
KHẢO SÁT MỘT SỐ LOẠI SENSOR SỬ DỤNG 
TRONG ROBOT DI ĐỘNG 
Như đã được nhắc đến, sensor là yếu tố giúp robot thích nghi kịp thời 
với môi trường xung quanh. Trong phần này sẽ đưa ra một số loại sensor có thể 
sử dụng để dẫn đường cũng như phát hiện vật cản, đo khoảng cách của robot 
tới vật để tránh vật. 
4.1. Sensor hồng ngoại 
Đây là loại sensor quang sử dụng thu phát ánh sáng gần vùng hồng 
ngoại. Bước sóng ánh sáng sử dụng trong các sensor này cỡ 880nm. Loại 
sensor này có thể sử dụng để phát hiện màu đen/trắng hoặc phát hiện vật cản. 
Khả năng thực hiện được tuỳ thuộc vào việc thiết kế mạch. 
4.1.1. Sensor hồng ngoại sử dụng phát hiện màu đen trắng 
Mạch điện thu phát hồng ngoại dùng để phát hiện vạch đen trắng được 
giới thiệu trong hình 4.1 
Hình 4.1 Sơ đồ mạch thu phát hồng ngoại phát hiện đen /trắng 
Trong sơ đồ này sử dụng một diode phát hồng ngoại phát ra ánh sáng 
gần vùng hồng ngoại. Diode này được mắc nối tiếp với một điện trở nhằm hạn 
chế dòng. Đầu thu sử dụng ở đây là một phototransistor với điện áp cực base 
thay đổi theo lượng ánh sáng hồng ngoại thu nhận được. Tín hiệu từ collector 
của phototransistor được đưa tới đầu đảo của bộ so sánh với đầu vào cộng đặt 
ngưỡng. Lối ra của bộ so sánh dùng vi mạch khuyếch đại thuật toán LM324 sẽ 
BẠCH HOÀNG GIANG K46ĐC 
22 
 luận tốt nghiệp 
có hai mức hoặc cao, hoặc thấp tuỳ thuộc vào điện áp đầu vào đảo so với 
ngưỡng. Đèn LED được mắc ở đầu ra bộ so sánh sẽ chỉ thị như sau. Khi gặp 
vạch trắng cực base của phototransistor thu được nhiều ánh sáng phản xạ nhất 
làm cho tín hiệu ở collector thấp, khi đó lối vào đảo này sẽ có mức điện áp nhỏ 
hơn ngưỡng làm cho lối ra có mức cao làm LED chỉ thị tối. Ngược lại khi gặp 
vạch đen, phototransistor nhận yếu làm co lối vào đảo có mức điện áp cao hơn 
lối vào đặt ngưỡng dẫn tới lối ra có giá trị cao làm đèn LED chỉ thị sáng. Mạch 
thiết kế như hình trên sử dụng thu phát hồng ngoại một chiều. Trong thực tế 
gặp phải vấn đề khó khăn là nhiễu của các nguồn ánh sáng có tiềm ẩn nguồn 
hồng ngoại tác động. Cự li sử dụng để phát hiện vạch đen trắng khoảng 3 cm. 
Loại mạch này chỉ nên sử dụng trong các điều kiện môi trường lý tưởng không 
can nhiễu. 
4.1.2. Nghiên cứu các sensor hồng ngoại có mặt trên thị trường đã được 
tích hợp cả bộ thu và phát trong một vỏ. 
Hiện nay, trên thị trường có bán các sensor hồng ngoại đã được tích hợp 
sẵn các đầu thu phát trên cùng một vỏ. Loại sensor này thường chỉ có 3 dây nối 
trong đó hai dây nguồn nuôi và một dây tín hiệu. Tín hiệu lối ra thường có mức 
logic 0 hoặc 1. Sau đây xin giới thiệu một photo sensor mang kí hiệu E3S-
DS30E4 của hãng OMRON. 
Hình 4.2 Photo sensor E3S-DS30E4 
Các đặc tính của sensor có thể kể ra như sau: 
- Sensor hồng ngoại sử dụng ánh sáng có bước sóng 880nm. 
- Ánh sáng hồng ngoại được điều chế. 
- Sử dụng để phát hiện vật cản trong cự ly 70cm, có khả năng phân biệt 
được vạch trắng/đen. 
BẠCH HOÀNG GIANG K46ĐC 
23 
 luận tốt nghiệp 
- Độ nhạy của sensor có thể hiệu chỉnh được thông qua một biến trở. 
- Trên sensor có bố trí hai đèn chỉ thị: đèn chỉ thị nguồn và đèn chỉ thị 
trạng thái tín hiệu ra. 
4.2 Sensor siêu âm 
Trên thị trường hiện nay phổ biến hai loại sensor siêu âm trong đó loại 
thứ nhất bộ thu phát siêu âm được tích hợp với nhau trên cùng một đế. Loại thứ 
hai bộ thu phát được chế tạo độc lập (có một đầu thu và một đầu phát ). Trong 
khoá luận này nghiên cứu khảo sát cả hai loại sensor kể trên thông qua hai loại 
mang kí hiệu MUST01a và Devantech SRF04. Sensor siêu âm có thể sử dụng 
để đo khoảng cách thông qua đo thời gian tín hiệu phản xạ hoặc phát hiện vật 
cản. 
4.2.1 Sensor siêu âm MUST01d 
Đây là loại sensor có bộ thu phát được tích hợp trên cùng một đế 
( không phân biệt đầu thu và đầu phát ). Đặc tính của nó có thể kể ra như sau: 
- Sử dụng nguồn nuôi một chiều 8-16V, dòng cực đại cho phép là 30mA. 
- Sensor cho tín hiệu lối ra tương tự từ 0-5 V tuy nhiên giá trị cực đại 
trong thực tế chỉ đạt được 4,096V 
- Khoảng cách sensor phát hiện được vật từ 1cm-3m với sai số 2% 
- Góc mở chùm siêu âm phát ra là 150 
Cấu trúc của sensor và các chân được mô tả trong hình 4.1. 
Khi có xung kích, siêu âm phát ra sẽ đập vào vật và phản xạ trở lại, tín 
hiệu điện thu được ở lối ra của sensor có mức điện áp tỉ lệ với khoảng cách. Cụ 
thể, nếu không có sóng phản xạ điện áp lối ra ở mức cao. Ngược lại, có tín hiệu 
phản xạ tuỳ thuộc vào sóng phản xạ mạnh hay yếu (vật ở gần hay xa) mà điện 
áp giảm lối ra sẽ giảm dần. 
BẠCH HOÀNG GIANG K46ĐC 
24 
 luận tốt nghiệp 
Hình 4.1 Sơ đồ mô tả sensor siêu âm MUST01d 
Bảng 4.1 Cấu trúc chân của sensor siêu âm MUST01d như sau 
Chân Chức năng 
1 Nguồn nuôi được ổn áp 8-16V(30mA) 
2 Đất 
3 Xung kích ngoài mức TTL (không sử dụng) 
4 Cho phép xung kích (không sử dụng) 
5 Xung đồng hồ lối ra mức TTL(Không sử dụng) 
6 LốI ra tương tự tỉ lệ với khoảng cách 0-5VDC 
7 Không sử dụng 
Với một giới hạn nhất định (ngưỡng) sensor này hoàn toàn có thể sử 
dụng để phát hiện vật cản. Điều này có nghĩa là với khoảng cách vượt giới hạn 
thì lối ra có mức điện áp tương xứng với mức logic cao, trong trường hợp nằm 
trong giới hạn cho phép tín hiệu lối ra có giá trị logic thấp. 
Sensor siêu âm MUST01d hoàn toàn có thể sử dụng để đo khoảng cách 
tới vật phản xạ. Việc đo khoảng cách được thực hiện thông qua tín hiệu số từ 
lối ra của sensor. Giá trị thu được tỉ lệ với khoảng cách từ sensor tới vật. 
Tuỳ thuộc khoảng cách từ sensor tới vật là bao nhiêu mà xung đó có độ 
rộng khác nhau. Xác định được độ rộng xung này ta sẽ xác định được khoảng 
cách từ vật tới robot. 
BẠCH HOÀNG GIANG K46ĐC 
25 
 luận tốt nghiệp 
4.2.2. Sensor siêu âm Devantech SRF04 
Siêu âm Devantech SRF04 được sử dụng để thu các thông tin về khoảng 
cách một cách chính xác trong dải từ 3cm đến 3m. Sensor này gồm bộ thu phát 
siêu âm tách biệt, sensỏ có 4 chân nối trong đó hai chân cho nguồn nuôi, hai 
chân còn lại một cho xung tín hiệu vào, một cho tín hiệu ra. 
Hình 4.2 Sensor siêu âm Devantech SRF04 
SRF04 hoạt động thông qua việc truyền một xung âm thanh có tần số 
nằm ngoài dải tần số nghe của con người. Xung này truyền ở tốc độ âm thanh 
khoảng 0.9ft/giây, dưới dạng một chùm hình nón, âm thanh phản xạ trở lại tới 
đầu thu từ vật thể bất kì trên đường đi của sóng siêu âm. Tín hiệu điện tại đầu 
thu có dạng các xung với độ kéo dài xung phụ thuộc vào khoảng cách phản xạ 
kể từ vị trí vật tới đầu thu. Để việc thu phát làm việc hiệu quả, bộ phát tạm 
ngừng phát sóng trong khoảng thời gian siêu âm được truyền sau đó đợi tín 
hiệu phản xạ. Xung ở đầu ra của sensor được đưa tới bộ xử lý. Việc xác định 
thời gian kéo dài xung sẽ giúp cho robot xác định được khoảng cách. Các đặc 
trưng của SRF04 có thể kể ra như sau: 
- Điện áp sử dụng 5VDC, dòng tiêu thụ cực đại 50mA, thường là 30mA. 
- Vùng làm việc của sensor: phát hiện khoảng cách từ 3cm tới 3m. 
- Tần số sử dụng 40Khz. 
- Xung kích phát 10us mức cao tương thích TTL. 
- Xung phản xạ mức cao có độ rộng xung tỉ lệ với khoảng cách. 
- Góc mở của bộ phát là 300. 
BẠCH HOÀNG GIANG K46ĐC 
26 
 luận tốt nghiệp 
Hình 4.3: Góc mở của bộ phát siêu âm SRF04 
Một số yêu cầu về khoảng thời gian thu phát siêu âm: 
Tín hiệu xung kích phát siêu âm được giữ ở mức thấp (logic 0) và sau đó 
đưa lên mức cao (logic 1) trong 10us để khởi phát xung siêu âm. Xung siêu âm 
được tạo ra thông qua sườn xuống của tín hiệu lối vào. Sau khi được kích phát, 
sóng siêu âm sẽ được phát ra trong 8 chu kì burst. Bộ nhận sẽ giữ khoảng trống 
trong khoảng thời gian chừng 100us để tránh nhiễu, ồn từ các âm sắc nhọn của 
sự khởi phát và sau đó cho phép nghe âm thanh phản xạ. Đường tín hiệu dội âm 
ở mức thấp cho đến khi cho phép nhận âm thanh. Khi quá trình nhận được cho 
phép, bộ thu sẽ phát hiện sườn xuống của tín hiệu dội âm (nếu có vật) hoặc 
timeout (vượt quá thời gian cho phép). Việc đo thời gian được tiến hành từ 
sườn xuống của tín hiệu lối vào và kết thúc khi sườn xuống của tín hiệu dội âm. 
Nếu không có vật được phát hiện xung phản xạ sẽ vượt quá thời gian cỡ 36ms. 
Giản đồ thời gian thu phát siêu âm được mô tả hình 4.4. 
Với tốc độ truyền âm thanh, cứ 73,746us âm thanh sẽ đi được một 
khoảng là 1 inch (2,56 cm). Nếu sử dụng bộ định thời như mô tả dưới đây với 
hệ số chia trong là 12 và tần số dao động 12MHz thì tần số phát của timer sẽ là 
1MHz tương đương với khoảng thời gian kéo dài xung là 2us. Mỗi cung của 
timer phát được gọi là 1 tick. Khoảng cách tối đa sensor có thể phát hiện được 
là 3m =118 inch =300cm, quãng đường cực đại âm thanh phải đi là 118*2=236 
inch. Với quãng đường như vậy, cần khoảng thời gian di chuyển là 236*73,746 
us. Do đó số tick cực đại thu được là : 
( 234 * 73,746 ) / 2 = 8702 
BẠCH HOÀNG GIANG K46ĐC 
27 
 luận tốt nghiệp 
Ở đây đưa ra một khái niệm gọi là hệ số chuyển đổi. Hệ số này được xác 
định như sau : 
Hệ số chuyển đổi = 8702/118 = 74 (ứng với đơn vị inch) 
Hệ số chuyển đổi = 8702/300 = 74 (ứng với đơn vị cm) 
Khoảng cách đo được xác định như sau : 
Khoảng cách = thời gian kéo dài xung thu được/hệ số chuyển đổi. 
xung nhỏ nhất 10µ s 10ms trễ giữa 2 xung 
Lối vào 
Âm thanh 
Lối ra 8 chu kì burst
Xung ph át hiện vật thể 
100µ s-18ms 
Hình 4.4: Giản đồ xung thu phát siêu âm SRF04 
Trong khoá luận này ngoài việc sử dụng sensor siêu âm đo khoảng cách 
em còn sử dụng sensor la bàn để đo góc lệch khi robot di chuyển so với hướng 
đi ban đầu của robot. 
4.3 Giới thiệu về sensor địa bàn CMPS03 
Module địa bàn trên trợ giúp cho robot. Nó sử dụng sensor trường Philips 
KMZ51, loại n ày có đủ độ nhạy để nhận biết từ trường của trái đất. Hai lối ra 
của nó liên kết theo hình tam giác và mỗi trong số chúng sử dụng để tính toán 
chiều của các thành phần từ trường trái đất. Ta có một số ví dụ sử dụng mô 
hình rút gọn này cho các hệ điều khiển lớn hơn và ở những ứng dụng phổ biến 
hơn. 
Sơ đồ kết nối module: 
BẠCH HOÀNG GIANG K46ĐC 
28 
 luận tốt nghiệp 
Hình 4.5: Sensor địa bàn 
Mô hình này yêu cầu nguồn điện 5V và dòng khoảng 15mA.Có hai cách kiểm 
tra thông số của module này: tín hiệu PWM ở đầu số ra 4 hay giao tiếp là I2C 
được cung cấp ở các đầu số 2 và 3. 
Chân Chức năng 
1 Nguồn 5V 
2 SCL 
3 SDA 
4 Tín hiệu PWM 
5 Không dùng 
6 Định cỡ 
7 50/60Hz 
8 Không dung 
9 GND 
 Tín hiệu PWM là xung được điều chế với độ rộng xung biến thiên tam 
giác, độ rộng xung biến thiên từ 1mS(0o) đến 36.99mS(359.9o) theo cách gọi 
khác là 100uS/1o với một +1mS offset.Tín hiệu đi khoảng 65mS giữa xung, nên 
trong khoảng thời gian 65mS, độ rộng xung biến thiên từ 66mS đến 102mS. 
Xung được mã hóa bởi 16 bit thời gian của bộ vi xử lý, và khả năng cho phép 
của vi xử lý là 1uS, tuy nhiên có một lời khuyên là không nên đo bất cứ cái gì 
vượt quá 0.1o(10uS). Hãy chắc chắn là đã kết nối tới các đầu I2C, SCL và SDA, 
tới nguồn cấp 5 V nếu bạn sử dụng PWM, cũng như là không sử dụng điện trở 
cao tại các đầu dò. 
BẠCH HOÀNG GIANG K46ĐC 
29 
 luận tốt nghiệp 
 Đầu ra 2 và 3 là một giao tiếp I2C và có thể sử dụng để đọc trực tiếp các 
thông số. Nếu giao tiếp I2C không được sử dụng sau khi các đầu được nạp điện 
áp cao(tới 5V) qua một cặp điện trở. Độ khoảng 47k là vừa, các giá trị đó 
không phải là nhất thiết chính xác lắm. 
Sensor địa bàn dùng để xác định góc lệch, trong khoá luận này dùng 
sensor để xác định góc lệch của robot so với hướng đi ban đầu. 
Các thông số của Sensor địa bàn 
 - Nguồn vào là 5V. 
- Dòng là 20mA. 
- Độ phân giải là 0.1o. 
- Sai số là 3o-4o. 
- Lối ra 1: xung thời gian 1mS-37mS. 
- Lối ra 2: giao diện I2C, 0-255 và 0-3599, SCL tốc độ 1MHz. 
- Kích thước: 32mm x 35mm. 
Sensor này sử dụng 2 cuộn dây KMZ51, đặt vuông góc với nhau. 
H ình 4.6 
 Giao thức truyền thông I2C sử dụng module rút gọn trên được sử dụng 
phổ biến trong EEPROOM như là của 24C04.Trong bit được truyền đầu 
tiên,địa chỉ của module(0xC0) với bit ghi/đọc được đặt ở mức thấp, sau đó thì 
ghi số mà bạn muốn đọc.Điều này sẽ lặp lại tại lúc khởi động module địa chỉ 
lần nữa với các bit đọc/ghi ở mức cao(0xC1).Bây giờ bạn có thể đọc một hay 
hai byte cho 8 bit hay 16 bit thanh ghi.Thanh ghi 16 bit đọc byte cao trước.Mô 
hình này có mảng gồm 16 byte thanh ghi.Có một số được nâng lên thành 16 bit 
thanh ghi như hình 4.7 
BẠCH HOÀNG GIANG K46ĐC 
30 
 luận tốt nghiệp 
PHẦN 2 
THỰC NGHIỆM THIẾT KẾ 
XÂY DỰNG MỘT ROBOT DI ĐỘNG 
TỰ TRÁNH VẬT 
BẠCH HOÀNG GIANG K46ĐC 
31 
 luận tốt nghiệp 
CHƯƠNG 5 
KHẢO SÁT THIẾT KẾ BỘ ĐIỀU KHIỂN ROBOT 
Bên cạnh hệ sensor giúp robot cảm nhận với môi trường bên ngoài. Bộ 
điều khiển là một thành phần quan trọng nhất quyết định sự thông minh của 
robot. Các bộ điều khiển có khả năng tính toán xử lý mạnh, sẽ giúp robot thực 
hiện các bài toán phức tạp. Đối với các ứng dụng trung bình và nhỏ, bộ điều 
khiển robot thường được thiết kế trên cơ sở các vi điều khiển. Khóa luận này 
nghiên cứu, thiết kế bộ điều khiển dựa trên vi điều khiển BASIC STAMP 
BS2SX. 
Trước khi trình bày thiết kế bộ điều khiển, cần đề cập đến những hiểu 
biết về vi điều khiển BASIC STAMP. 
5.1 Chip vi điều khiển BASIC Stamp 2sx 
Bộ phận điều khiển trung tâm của robot là một vi điều khiển BASIC 
Stamp 2sx. BASIC Stamp 2sx là một mạch tích hợp vài IC cỡ lớn gồm có 24 
chân như hình 5.1. Chức năng của các chân được miêu tả trong bảng 5.1 
Để lập trình cho vi điều khiển BASIC Stamp, một phần mềm rất mạnh 
được viết riêng cho chíp gọi là Basic Stamp. Chi tiết phần mềm này được giới 
thiệu ở phần sau. 
Hình 5.1: Vi điều khiển Basic Stamp 2sx 
BẠCH HOÀNG GIANG K46ĐC 
32 
 luận tốt nghiệp 
Bảng 5-1 
Số chân Tên chân Miêu tả 
1 SOUT Lối ra nối tiếp: Nối tới chân RX của cổng COM trong PC 
2 SIN Lối vào nối tiếp: Nối tới chân TX của cổng COM trong PC 
3 ATN Chú ý: Nối tới chân DTR của cổng COM 
4 VSS Đất hệ thống: (giống như chân 23). Nối tới chân đất của cổng COM 
6-20 P0-P15 
Các chân vào/ra chung: mỗi một chân có thể là đầu ra hoặc đầu vào , 
dòng lớn nhất có thể đạt được là 30mA. Tuy nhiên, dòng tổng của tất 
cả các chân không được vượt quá 75 mA nếu sử dụng bộ ổn áp 5V nội. 
Dòng tổng trong các nhóm 8 chân (từ P0-P7 hoặc P8-P15) không được 
vượt quá 100mA nếu sử dụng ổn áp ngoài. 
21 VDD 
Lối vào/ra 5V: Nếu cung cấp nguồn bất thường vào chân VIN, thì điện 
áp lối ra của chân VIN là 5V. Nếu không có điện áp nào đặt vào chân 
này thì chân này sẽ có điện áp nằm trong khoảng 4,5V và 5,5V 
22 RES 
Reset lối vào/ra: nó sẽ ở mức low khi nguồn cung cấp nhỏ hơn 4,2V, 
điều này làm reset BASIC Stamp. Có thể đưa xuống thấp để reset chip. 
Chân này không nhất thiết phải nối, không được đặt nó lên cao. 
23 VSS 
Đất hệ thống (giống như chân 4 )được nối với chân đất của thiết bị đầu 
cuối. 
24 VIN 
Nguồn một chiều chưa ổn định có thể chấp nhận điện áp 5,5V-12VDC 
(Thông thường là 7,5V). Chân này có thể không được sử dụng nếu như 
sử dụng bộ ổn áp ngoài. 
Để kết nối BASIC Stamp với PC và các mạch khác, ta dùng mạch có 
cấu tạo như hình 5.2 
Muốn lập trình cho mạch trên ta chỉ cần kết nối nó với máy tính thông 
qua cổng COM. Chỉ cần cắm dây cáp từ cổng nối tiếp của PC vào bộ vi điều 
khiển. Nạp chương trình vào vi điều khiển. Khi ấn phím Run thì chương trình 
được nạp vào vi điều khiển và sẽ tự động chạy chương trình. Sau đó có thể bỏ 
dây cáp nối giữa máy tính và vi điều khiển ra. Do từ mã được lưu trong 
EEFROM nên chương trình được bảo vệ khi mất nguồn nuôi. Nếu muốn thay 
đổi chương trình, phải nạp từ mã mới. Vi điều khiển sẽ dừng lại và chấp nhận 
từ mã mới và sau đó sẽ chạy chương trình với những từ mã mới này. 
BẠCH HOÀNG GIANG K46ĐC 
33 
 luận tốt nghiệp 
Hình 5.2: Mạch điều khiển dùng BSe2sx 
Sơ đồ nguyên lý của mạch vi điều khiển. 
Hình 5.3: Sơ đồ nguyên lý của mạch vi điều khiển 
5.2 Giới thiệu về ngôn ngữ BASIC STAMP 
BẠCH HOÀNG GIANG K46ĐC 
34 
 luận tốt nghiệp 
Hình 5.4: Giao diện của ngôn ngữ Basic Stamp 2 
Một chíp vi điều khiển cũng có thể coi là một máy tính, các hệ sử dụng 
vi điều khiển thường yêu cầu các bộ phận của nó phải gọn nhẹ, khả năng làm 
việc hiệu quả và đặc biệt là công suất tiêu thụ thấp. Các hệ như vậy thường 
được gọi là các máy tính nhúng (Embedded PC) đây là một trong những bộ 
phận sử dụng công nghệ tích hợp cao. 
BASIC là ngôn ngữ lập trình rất dễ sử dụng, BASIC STAMP được xây 
dựng dựa trên ngôn ngữ BASIC, nó là bộ vi điều khiển có giá tương đối rẻ (nhỏ 
hơn 50$). BASIC STAMP thế hệ đầu tiên được giới thiệu vào năm 1993 
(California-based Parallax, Inc). Vào mùa hè năm 2000 xuất hiện hai loại ngôn 
ngữ Stamp là BASIC STAMP I (BS 1) và BASIC STAMP II (BS 2 ) được viết 
riêng cho chíp vi điều khiển này. 
Tất cả Stamp đều có các đặc điểm sau : 
+ Kích thước nhỏ. 
+ Có sẵn chương trình viết bằng BASIC. 
+ Nguồn cung cấp 9V. 
BẠCH HOÀNG GIANG K46ĐC 
35 
 luận tốt nghiệp 
Chương trình được lưu trữ trong bộ nhớ vĩnh cửu EEPROM (có thể xoá 
được ). Bất cứ khi nào được cấp nguồn thì chương trình BASIC trong bộ nhớ 
sẽ chạy. Stamp có thể được lập trình lại bằng cách nối tạm thời với máy tính 
thông qua chương trình chủ. 
 Các lối vào/ra có thể được nối với các thiết bị số khác, như 
chuyển mạch sensor, thậm chí điều khiển trực tiếp các loại tải nhỏ như 
LED. 
 Bộ xử lý PIC sử dụng công nghệ Microchip Inc, nên cho 
phép hoạt động với tốc độ 5 triệu mã máy trên 1 giây. 
5.2.1 Một số câu lệnh chính trong Basic Stamp. 
a) Nhãn, lệnh nhảy gotos. 
Tất cả các chương trình vừa giới thiệu đều chạy trực tiếp. Chúng bắt đầu 
chạy từ lệnh đầu tiên và chạy từng dòng một. Nhưng điều hay nhất trong lập 
trình đó là khả năng thay đổi trật tự của các lệnh trong chương trình. Hãy xem 
dòng lệnh sau 
debug”Ready…” 
debug”Ready…” 
debug”Set..” 
BS2 
debug”Set..” 
debug”Go!” 
debug”Go!” 
Bây giờ, có thể đoán trước được kết quả của chương trình; Stamp sẽ 
hiển thị. 
Có thể thay đổi chương trình như sau 
BS2 
debug ”Ready...” 
goto Start 
debug “Set” 
Start: 
BẠCH HOÀNG GIANG K46ĐC 
36 
 luận tốt nghiệp 
debug “Go!”,cr 
 Nhận được: 
Ready...Go! 
Stamp bỏ qua các lệnh in Set.. do sử dụng lệnh nhảy goto Start, Stamp 
sẽ thấy nó bỏ qua câu lệnh 
debug “Set..” 
Điều này minh họa cách đơn giản nhất để thay đổi tiến trình hoạt động 
của chương trình. Nhãn bao gồm một tên và kết thúc là dấu (:), nhãn thường 
đứng trước lệnh sẽ là đích của lệnh nhảy goto. 
Thông thường, cập goto/label được sử dụng để tạo vòng lặp. Chúng ta 
hãy xem ví dụ dưới đây xem có gì khác với các ví dụ trên không. 
BS1: 
 debug ”Ready...” 
goto Start 
debug “Set” 
Start: 
debug “Go!”,cr 
goto Start 
Nếu chạy chương trình sẽ thấy sự lặp lại các chỉ thị, và Stamp sẽ hiển 
thị: 
Ready...Set..Go! Go! Go! 
Nó sẽ lặp lại lệnh Go! Đến vô tận. 
b) Vòng lặp For...Next 
Giả sử muốn lặp lại lệnh Go! Ba lần hoặc một số lần. Cặp lệnh 
goto/label không cho phép đặt được số vòng lặp, nhưng có một cặp lệnh cho 
phép điều khiển chúng. 
BS2: 
Symbol loops = b0 
FOR loops=1 to 3 
BẠCH HOÀNG GIANG K46ĐC 
37 
 luận tốt nghiệp 
debug “Go!”,cr 
NEXT 
debug “Done” 
Chúng ta sẽ có 
Go! Go! Go! Done. 
Cặp lện For ...Nẽt sử dụng biến để đếm số vòng lặp. Lệnh For đặt giá trị 
ban đầu của biến: 
FOR loops=1 ... 
Phần sau câu lệnh For là ...to 3, thực chất là để thông báo cho lệnh Next. 
Lệnh Next thêm 1 vào biến (vòng lặp) và so sánh kết quả với giá trị cuối cùng 
được gửi từ lện For (trong trường hợp này bằng 3). Nếu giá trị biến nhỏ hơn 
hoặc bằng với kết quả cuối cùng, lệnh Nẽt làm cho vòng lặp của chương trình 
quay trở lại lệnh For. Nếu giá trị biến lớn hơn giá trị cuối cùng thì lệnh Next 
kết thúc vòng lặp và để chương trình chạy tiếp các câu lệnh khác. 
For...Next sẽ chạy các câu lệnh nằm giữa chúng và vẫn tiếp tục cho đến 
khi giá trị biến vượt quá giá trị cuối cùng. 
c) Cấu điều kiện If...Then 
Trong BASIC sử dụng câu điều kiện If...Then. Ví dụ: 
BS2 
x varbyte 
x=99 
IF x<100 then saySo 
debug “x is 100 or more” 
End 
saySo 
debug “x is less than 900” 
chương trình đưa ra x=99 nhỏ hơn 100. Thay đổi x=99 gán giá trị x bằng 
100 hoặc nhiều hơn (nhưng không lớn hơn 255, giá trị lớn nhất của byte) và trở 
lại chương trình. Bây giờ chương trình sẽ hiển thị thông điệp “x is 100 or 
more”. (x lớn hơn hoặc bằng 100). 
BẠCH HOÀNG GIANG K46ĐC 
38 
 luận tốt nghiệp 
Có hai phần trong câu lệnh If...Then. phần đầu là điều kiện- câu lệnh 
này là mối quan hệ giữa hai giá trị, như là x<100. Nếu câu lệnh If đúng thì vế 
thứ hai sẽ được thực hiện. Nếu câu điều kiện sai thì câu lẹnh If...then sẽ không 
lam gì cả. nó cho phép chương trình tiếp tục chạy các câu lệnh khác. 
Biểu 
tượng 
ý nghĩa 
= 
< 
> 
<= 
>= 
Bằng 
Nhỏ hơn 
Lớn hơn 
Không bằng 
Nhỏ hơn hoặc bằng 
Lớn hơn hoặc bằng 
Ví dụ: 
BS2 
Loops var byte 
Loops=0 
Repeat: 
Debug “looping:”, DEC loops,cr 
Loops=loops +1 
If loops <=5 then repeat 
Debug “Done:”, DEC loops 
d) Lệnh Gosub 
Các lệnh trong ngôn ngữ Stamp đều sử dụng hòm công cụ để xây dựng 
chương trình. Và thùng công cụ này nhỏ, chỉ có 36 lệnh trong BS2. trong một 
số trường hợp, nhóm lệnh sẽ rất hữu ích vì nó sẽ sử dụng nhiều hơn một lần 
trong chương trình đơn, ở đó ta sử dụng câu lệnh Gosub...Return. 
BẠCH HOÀNG GIANG K46ĐC 
39 
 luận tốt nghiệp 
Gosub là một biến thể của lệnh Goto, nó gọi chương trình con được bắt 
đầu bằng một nhãn và bao giờ cũng kết thúc bằng lệnh Return. Sau đây là một 
ví dụ có sử dụng chương trình con: 
BS2 
Loops var byte 
Debug “Subroutine Example” 
GOSUB mySub 
For loops=0 to 5 
Debug DEC loops 
GOSUB mySub 
Next 
end 
mySub: 
pause 500 
debug cls,”>” 
RETURN 
Chương trình con mySub sẽ làm tạm dừng chương trình Stamp một nửa 
giây (500/1000ths/sec), xóa màn hình Debug bằng lệnh cls, và ghi ra màn hình 
ký tự >. Khi chạy chương trình, chương trình con được đưa vào đầu chương 
trình và được gọi một lần trong mỗi bước của vòng lặp. 
5.3 Mạch điều khiển công suất động cơ. 
Mạch được thiết kế theo nguyên lý mạch cầu H để đảo chiều của động 
cơ DC. ở đây em sử dụng cặp transistor trường kênh P là IRF9540 và kênh N là 
IRF640. 
IRF9540: Nếu thế mở VGS = -10V thì dòng điện cực đại đi qua liên tục 
là 25 Ampe, dòng điện xung là 75 Ampe. Thế đánh thủng VGS là 20V. 
IRF640: Nếu thế mở VGS = +10V thì dòng điện cực đại đi qua liên tục 
là 18 Ampe, dòng điện xung là 75 Ampe. Thế đánh thủng VGS là 20V. 
Nguyên lý hoạt động của mạch. Ở cầu H thứ nhất khi không có tín hiệu 
điều khiển vào, hai transistor Q1 và Q2 đóng, lúc đó thế vào cực Gate của các 
BẠCH HOÀNG GIANG K46ĐC 
40 
 luận tốt nghiệp 
transistor công suất là mức cao, do đó Q5, Q6 mở, không có dòng điện đi qua 
động cơ. Khi có tín hiệu điều khiển vào, chẳng hạn chân 1, lúc đó Q1 mở, nó sẽ 
làm cho Q6 và Q9 cùng mở, Q5 và Q10 cùng đóng, dòng điện sẽ đi qua động 
cơ theo chiều thuận. Khi tín hiệu vào chân số 2, Q2 mở, dẫn đến Q5, Q10 mở 
còn Q6, Q9 đóng. Dòng điện sẽ đi qua động cơ theo chiều nghịch. 
Hình 5.4: Sơ đồ nguyên lý mạch điều khiển động cơ 
Tương tự khi không có tín hiệu điều khiển vào, hai transistor Q3 và Q4 
đóng, lúc đó thế vào cực Gate của các transistor công suất là mức cao, do đó 
Q7, Q8 mở, không có dòng điện đi qua động cơ. Khi có tín hiệu điều khiển vào, 
chẳng hạn chân 3, lúc đó Q3 mở, nó sẽ làm cho Q8 và Q11 cùng mở, Q7 và 
Q12 cùng đóng, dòng điện sẽ đi qua động cơ theo chiều thuận. Khi tín hiệu vào 
chân số 4, Q4 mở, dẫn đến Q7, Q12 mở còn Q8, Q11 đóng. Dòng điện sẽ đi 
qua động cơ theo chiều nghịch. 
Hình 5.5: Mạch công suất điều khiển động cơ 
BẠCH HOÀNG GIANG K46ĐC 
41 
 luận tốt nghiệp 
Điểm đặc biệt của mạch cầu này là có chế độ “phanh động “ (có nghĩa là 
khi ta ngắt không điều khiển động cơ nữa thì hai transistor ở nửa trên sẽ cùng 
mở, tức là hai cực của động cơ sẽ chập vào nhau, chống lại quán tính quay của 
động cơ ). Mạch này cũng có cơ chế tự bảo vệ, khi ta cung cấp tín hiệu điều 
khiển vào cả hai chân chiều tiến và lùi vẫn không xảy ra xung đột, chập cháy 
mạch mà vẫn là ở chế độ phanh động. 
5.4 Kết cấu cơ khí của robot 
5.4.1 Sơ đồ thiết kế 
Robot được liên kết bởi các thanh nhôm, có kích thước và kết cấu được 
chỉ ra ở hình 5.6 
 ắcqui 
Sensor 
địa bàn 
45cm 
39cm 
 sensor 
siêu âm 
Hình 5.6: Hình dạng và kích thước của robot 
Khung đế của robot hình chữ nhật, chiều dài 36cm, chiều rộng là 31cm, 
chiều cao tính từ mặt sàn tới sonar là 30cm. Bao gồm 3 bánh xe, 2 bánh phát 
động và một bánh bị động. 
BẠCH HOÀNG GIANG K46ĐC 
42 
 luận tốt nghiệp 
 Hình 5.7: Hình dạng robot nhìn từ phía trên 
Hình 5.8: Sơ đồ đế và các bánh của robot 
5.4.2 Các thành phần khác của Robot 
Robot sử dụng một nguồn nuôi là acqui 12V-5Ah để cung cấp nguồn 
điện cho các mạch điện. 
- Động cơ sử dụng cho robot là động cơ 12V DC. 
- Sensor siêu âm dùng để đo khoảng cách. 
- Compass Sensor 
BẠCH HOÀNG GIANG K46ĐC 
43 
 luận tốt nghiệp 
CHƯƠNG 6 
ROBOT DI ĐỘNG TRÁNH VẬT CẢN 
6.1 Yêu cầu bài toán đặt ra 
Khoá luận này nghiên cứu, xây dựng chương trình điều khiển robot thực 
hiện 3 bài toán : 
- Điều khiển robot đi thẳng. 
- Nếu gặp vật cản thì tránh. 
- Điều khiển robot trở về hướng đi trùng với hướng đi ban đầu. 
6.2 Các trường hợp của vật cản trên đường đi của robot 
Có 3 trường hợp chính khi gặp vật cản : 
6.2.1 Có một vật cản nằm trên đường đi của robot: 
Để biết được có vật cản trên đường đi của robot hay không ta dùng một 
sensor siêu âm xác định khoảng cách. Sensor siêu âm dùng ở đây là sensor 
must01d đã được nhắc đến ở trên. Nhờ việc chuẩn hoá khoảng cách ta có thể 
xác định được khoảng cách từ robot tới vật cản là bao nhiêu để có thể tránh vật. 
Vì robot có kích thước xác định nên ta có thể xác định được khoảng cách tối 
thiểu giữa robot và vật cản mà robot bắt đầu tránh. Để đơn giản cho bài toán ta 
giả sử vật cản là một khối hộp hình chữ nhật như hình 6.1. Ta cần xác định 
khoảng cách nhỏ nhất (Dmin) để robot bắt đầu tránh vật. 
Robot Vật cản 
α
αα 
L 
P 
Q R 
M
A 
H
O 
T
α
Hình 6.1: Trường hợp có 1 vật cản 
BẠCH HOÀNG GIANG K46ĐC 
44 
 luận tốt nghiệp 
Do kích thước của robot ta có thể xác định ngay từ ban đầu nên việc xác 
định Dmin sẽ trở nên đơn giản hơn. Khi robot quay thì 1 bánh tiến và 1 bánh 
lùi nên coi như tâm quay (O) ở giữa 2 bánh, và khi robot quay thì quay quanh 
đường tròn tâm O. Nên để cho cạnh của robot không chạm vào vật cản thì 
Dmin OA – OH.. Ta có thể lấy Dmin = OA - OH +≥ ∆d (∆d là một sai số). 
Robot 
Vật cản 
O 
Â
Hình 6.2 Xác định Dmin 
Sau khi xác định được khoảng cách ngắn nhất để robot bắt đầu quay thì 
điều khiển cho robot quay tránh vật. Nhưng còn 1 vấn để đặt ra là làm thế nào 
để robot biết được nó đã quay 1 góc là bao nhiêu để điểm A trên robot không 
chạm vào vật. Do sensor siêu âm dùng ở đây có góc mở bé nên khi robot quay 
được 1 góc α nào đó thì sensor không còn nhìn thấy vật cản nữa trong khi 
robot chưa thực sự thoát hẳn khỏi vật cản. Để xác định được điểm A trên robot 
đã thực sự thoát khỏi vật cản chưa ta có thể dùng 1 sensor siêu âm hoặc sensor 
hồng ngoại phát hiện màu đen trắng đặt tại điểm A. 
Nhưng trong khoá luận này em đã giải quyết vấn đề trên bằng cách tạo 
trễ. Tức là khi robot quay đến 1 góc mà sensor siêu âm không còn nhìn thấy vật 
nữa thì em cho robot quay thêm một góc nhỏ nữa (qua thực nghiệm có thể xác 
định được góc này). Sau khi robot đã quay 1 góc để tránh vật thì nó còn phải đo 
xem nó đã quay góc α là bao nhiêu. Việc xác định độ lớn của góc quay dựa 
vào sensor la bàn. Xác định độ lớn của góc quay này là rất cần thiết vì sau khi 
tránh vật ta dùng nó để điều khiển robot quay trở về hướng đi ban đầu. 
BẠCH HOÀNG GIANG K46ĐC 
45 
 luận tốt nghiệp 
Tiến trình của robot tránh vật là: 
- Tại điểm P quay bên phải 1 góc α để điểm A của robot ra khỏi vật cản. 
- Tiến 1 đoạn L tới điểm Q để điểm D của robot ra khỏi hướng chắn của 
vật cản. 
- Tại điểm D quay lại bên trái 1 góc α để trở lại hướng đi song song với 
hướng ban đầu. 
- Tiến 1 đoạn M đến điểm R để robot thực sự thoát khỏi vật. 
- Tại điểm R lại quay bên trái 1 góc α . 
- Tiến 1 đoạn L để robot tới điểm T. 
Tại điểm T robot quay bên phải 1 góc α để robot trở lại hướng đi ban 
đầu sau khi đã tránh được vật cản. 
6.2.2 Trường hợp đặt 2 vật so le nhau. 
Vật cản 1 βP 
Y 
Vật 
cản 2α
Robot 
L 
m
Q R 2L 
Lα X βT
Hình 6.3: 2 vật cản sắp xếp so le với l < AB 
Trong trường hợp này khi robot tránh vật cản thứ nhất rồi lại gặp luôn 
vật cản thứ 2 thì nó sẽ tránh tiếp vật cản thứ 2, sau đó nó quay trở về hướng đi 
ban đầu. Vấn đề đặt ra ở đây là điều kiện khi nào thì nó coi vật 2 là vật cản. 
Do kích thước của robot ta đã xác định được trước nên ta có thể xác đinh 
được khi nào nó coi vật 2 là vật cản. 
BẠCH HOÀNG GIANG K46ĐC 
46 
 luận tốt nghiệp 
Như ở trên đã trình tại điểm Q robot tiến 1 đoạn QR để thoát khỏi vật 1, 
nếu khe hở giữa 2 vật không đủ để robot lách qua thì nó sẽ tránh vật thứ 2. Sau 
đó với quay trở về hướng đi ban đầu. 
Giả sử khi robot đi tới điểm R mà khoảng cách do sensor siêu âm đo 
được so với vật 2 là m < Dmin tức là khe hở giữa 2 vật không đủ để robot có 
thể lách qua được thì robot sẽ tiếp tục tránh vật 2. Việc xử lý tránh vật 2 cũng 
tương tự như việc xử lý tránh vật 1. Sau khi tránh vật 2 và robot tiến tiếp tới 
điểm Y thì tại điểm Y nó sẽ quay trái 1 góc β . Sau khi quay xong thì không 
giống với trường hợp 1 là nó tiến 1 đoạn L, mà nó phải đi 1 đoạn là 2L để về 
điểm T. Tại T nó quay phải 1 góc β để về hướng đi ban đầu. 
6.2.3 Trường hợp robot lách giữa 2 vật cản. 
Robot Vật 
cản 1
T
P 
R
m
 x 
 M 
Vật cản 2
Q 
Hình 6.4: Robot lách qua 2 vật 
Trong trường hợp này thì tại điểm R sensor siêu âm đo được khoảng 
cách từ robot tới vật cản 2 là m > Dmin, tức là khoảng cách giữa vật đủ để 
robot lách qua. Thì nó sẽ không coi vật 2 là vật cản và nó sẽ tiếp tục công việc 
quay trở về hướng đi ban đầu của nó. 
BẠCH HOÀNG GIANG K46ĐC 
47 
 luận tốt nghiệp 
 START
ĐI THẲNG
KC<Dmin
S
Đ
 RẼ PHẢI
KC<Dmin
Đ
S 
 RẼ TRÁI
Hình 6.1: Lưu đồ thuật toán chương trình tránh vật cản 
BẠCH HOÀNG GIANG K46ĐC 
48 
 luận tốt nghiệp 
Chương trình điều khiển robot 
' {$STAMP BS2sx} 
' {$PBASIC 2.5} 
' {$PORT COM1} 
'**************** 
'*KHAI BAO BIEN * 
'**************** 
gocquay VAR Word 'bien luu so xung cua goc lech 
gocbd VAR Word 
gocsau VAR Word 
acc VAR Word 'bien luu so xung khoang cach tu vat toi sensor 
kc VAR Word 'bien luu khoang cach tu vat toi sensor 
chuankc VAR Word 
Dmin VAR Word 'Bien luu khoang cach de quay tranh vat 
loops VAR Word 
temp VAR Word 
delta VAR Word 
'********************* 
'* CHUONG TRINH CHINH* 
'********************* 
main: 
Batdau: 
 HIGH 5 
 IF IN5 =0 THEN Tien 'Neu chan 5 dc an thi bat dau chay 
GOTO Batdau 
Tien: 'Tien thang cho toi khi gap vat 
 GOSUB Dogoclech 
 gocbd=gocquay 
 PULSIN 0,1,kc 
 IF kc=0 THEN tien 
 kc=20+((kc-1583)/70) 
IF kc<30 THEN 
 GOTO quaysangfai 
 ELSEIF kc>50 THEN 
 GOTO tienthang 
ENDIF 
tienthang: 
 GOSUB banhtraitien 
 GOSUB banhfaitien 
GOTO tien 
quaysangfai: 
 DO 
 GOSUB quayfai 
Tien1: 'Tien thang cho toi khi gap vat 
 PULSIN 0,1,kc 
 IF kc=0 THEN tien1 
 kc=(kc-1583)/70 +20 
 IF kc>50 THEN EXIT 
LOOP 
BẠCH HOÀNG GIANG K46ĐC 
49 
 luận tốt nghiệp 
quaysangtrai: 
 GOSUB quayfai 'quay tiep mot doan de tranh khoi vat truoc 
khi quay nguoc lai 
 PAUSE 500 
 GOSUB banhtraitien 'tien thang sau khi quay trai 
 GOSUB banhfaitien 
 PAUSE 3000 
 GOSUB Dogoclech 'do goc lech de quay nguoc lai 
 gocsau=gocquay 'goc lech khi tranh vat 
 delta = gocsau-gocbd 'luu goc lech 
DO 
 GOSUB quaytrai 'quay sang trai de co huong // huong ban 
dau 
 GOSUB dogoclech 
 IF gocquay<gocbd+10 THEN EXIT 'sai so goc quay la 10 do 
LOOP 
 GOSUB banhtraitien 'Tien 1 doan de thoat khoi vat 
 GOSUB banhfaitien 
 PAUSE 4000 
DO 'quay tiep ben trai de ve duong di ban dau 
 GOSUB quaytrai 
 GOSUB dogoclech 
 IF gocquay<gocbd-delta THEN EXIT 'quay ve huong ban dau - goc 
lech 
LOOP 
 GOSUB banhtraitien 
 GOSUB banhfaitien 
 PAUSE 3000 
DO 
 GOSUB quayfai 'quay ve huong ban dau 
 GOSUB dogoclech 
 IF gocquay>gocbd+1 THEN EXIT 
LOOP 
 GOSUB banhtraitien 
 GOSUB banhfaitien 
GOTO tien 
GOTO main 
'************************************ 
'* CHUONG TRINH CON DIEU KHIEN MOTOR* 
'************************************ 
banhtraitien: 
BẠCH HOÀNG GIANG K46ĐC 
50 
 luận tốt nghiệp 
LOW 15 'enable motor left 
HIGH 14 'derector motor left tien 
RETURN 
banhfaitien: 
LOW 13 'enable motor right 
HIGH 12 'derector motor right tien 
RETURN 
banhtrailui: 
HIGH 15 'enable motor left 
LOW 14 'derector motor left lui 
RETURN 
banhfailui: 
HIGH 13 'enable motor right 
LOW 12 'derector motor right lui 
RETURN 
stopbanhtrai: 
HIGH 15 'Stop motor left 
HIGH 14 
RETURN 
stopbanhfai: 
LOW 13 'Stop motor right 
LOW 12 
RETURN 
stop2banh: 
HIGH 13 'Stop motor right 
HIGH 12 
HIGH 15 'Stop motor left 
HIGH 14 
RETURN 
'************************************* 
'*CHUONG TRINH CON QUAY TRAI,QUAY FAI* 
'************************************* 
quaytrai: 
HIGH 15 'banh trai lui 
LOW 14 
LOW 13 'banh fai tien 
HIGH 12 
RETURN 
quayfai: 
HIGH 13 'banh fai lui 
LOW 12 
LOW 15 'banh trai tien 
HIGH 14 
RETURN 
BẠCH HOÀNG GIANG K46ĐC 
51 
 luận tốt nghiệp 
'****************************** 
'*CHUONG TRINH CON DO GOC LECH* 
'****************************** 
Dogoclech: 
PULSIN 9,1,temp 
temp = (temp-1250)/125 
IF temp514 THEN gocquay=temp 
RETURN 
BẠCH HOÀNG GIANG K46ĐC 
52 
 luận tốt nghiệp 
Tài liệu tham khảo 
 [1] Parallax Inc. www.parallaxinc.com. 
 [2] Scott Edwards “programming and Customizing the Basic Stamp omputer”. 
[3] 
[4] www.semiconductors.philips.com/ acrobat/datasheets/KMZ51_3.pdf 
[5]Trần Thị Thúy Hà “Nghiên cứu cấu trúc và phát triển chương trình điều 
khiển thông minh của các robot nhiều bậc tự do”. 
[6] Trần Duy Hưng “Nghiên cứu xây dựng một robot di động thông minh hoạt 
động tự quản trị”. 
[7]Phan Hữu Phú “Nghiên cứu thử nghiệm một mô hình thị giác máy tính dùng 
cho bám đối tượng và dẫn đường của robot di động thông minh”. 
BẠCH HOÀNG GIANG K46ĐC 
53 
            Các file đính kèm theo tài liệu này:
 Xây dựng robot di động tránh vật cản dựa trên các sensor siêu âm và sensor địa bàn.pdf Xây dựng robot di động tránh vật cản dựa trên các sensor siêu âm và sensor địa bàn.pdf