Tải bản đầy đủ (.doc) (27 trang)

ĐỒ án hệ THỐNG số THIẾT kế ROBOT dò ĐƯỜNG TRONG mê CUNG kết hợp điều KHIỂN từ XA QUA RF

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (530.81 KB, 27 trang )

Đồ án hệ thống số

ĐỒ ÁN HỆ THỐNG SỐ
THIẾT KẾ ROBOT DÒ ĐƯỜNG TRONG MÊ CUNG
KẾT HỢP ĐIỀU KHIỂN TỪ XA QUA RF


Đồ án hệ thống số
Menu
Menu...........................................................................................................................................2
Chương 1: Tổng quan về robot tự hành....................................................................................3
1.1Giới thiệu về robot tự hành...............................................................................................3
1.2.Mục tiêu............................................................................................................................5
1.3.Nội dung...........................................................................................................................5
Chương 2: Các thành phần phần cứng và cấu trúc xe.............................................................6
2.1. Các thành phần phần cứng.............................................................................................6
2.1.1. Kit CPLD CoolRuner-II Starter Board.......................................................................6
2.1.2. Thu phát hồng ngoại TCRT5000..............................................................................9
2.1.3. Cầu H L293D..........................................................................................................11
2.1.4. Module RF 4 kênh..................................................................................................13
Chương 3: Thuật toán dò đường và code...............................................................................16
3.1 Sơ đồ khới tổng qt......................................................................................................16
3.2 Tḥt tốn dò đường......................................................................................................17
3.3. Code..............................................................................................................................18
Mục lục:Tài liệu tham khảo......................................................................................................26


Đồ án hệ thống số

Chương 1: Tổng quan về robot tự hành
1.1Giới thiệu về robot tự hành


Robot tự hành hay robot di động (mobile robots, thường được gọi tắt là mobots
) được
định nghĩa là một loại xe robot có khả năng tự dịch chuyển, tự vận động (có thể lập
trình lại được) dưới sự điều khiển tự động để thực hiện thành công công việc được
giao.
Theo lý thuyết, môi trường hoạt động của robot tự hành có thể là đất, nước, khơ
ng khí, khơng gian vũ trụ hay sự tổ hợp giữa chúng. Địa hình bề mặt mà robot di chuy
ển trên đó có thể bằng phẳng hoặc thay đổi, lồi lõm. Theo bộ phận thực hiện chuyển đ
ộng, ta có thể chia robot tự hành làm 2 lớp: chuyển động bằng chân và chuyển động
bằng
bánh.Trong lớp đầu tiên, chuyển động có được nhờ các chân cơ khí bắt chước chuyển
động của con người và động vật.
Robot loại này có thể di chuyển rất tốt trên các định hình lồi lõm, phức tạp.
Tuy nhiên, cách phối hợp các chân cũng như vấn đề giữ vững tư thế là công việc cực
kì khó khăn. Lớp còn lại (di chuyển bằng bánh) tỏ ra thực tế hơn, chúng có thể làm
việc tốt trên hầu hết các địa hình do con người tạo ra. Điều khiến robot di chuyển bằng
bánh cũng đơn giản hơn nhiều, gần như ln đảm bảo tính ổn định cho robot. Lớp này
có thể chia thành 3 loại: loại chuyển động bằng bánh xe, loại chuyển động bằng vòng
xích và loại hỡn hợp bánh và xích.
Tiềm năng của robot tự hành là hết sức rộng lớn. Có thể kể đến robot vân
chuyển vật liệu, hàng hóa trong các nhà máy, tòa nhà, của hàng, sân bay và thư viện;
robot phục vụ quét dọn đường phố; khoang chân không … Mặc dù ứng dụng cao
nhưng hạn chế chưa giải quyết được của robot tự hành như chi phí chế tạo, đã không
cho phép chúng được sử dụng rộng rãi. Một nhược điểm khác của robot tự hành phải
kể đến là còn thiếu tính linh hoạt và thích ứng khi làm việc ở những vị trí khác nhau.


Đồ án hệ thống số
Bài tốn tìm đường của robot tự hành cũng khơng phảo là loại bài tốn đơn giản như
nhiều người nghĩ lúc ban đầu. Trong đồ án mơn học này, bài tốn tìm đường sẽ được

giải quyết ở mức độ khơng q phức tạp.

Hình 1.1 một số hình ảnh về robot tự hành
Dò đường (navigation) là một khoa học dẫn hướng robot tự hành di chuyển
trong không gian làm việc của nó. Trong vấn đề dò đường, bài tốn được quan tâm
nhiều nhất là tìm đường về đích mà khơng chạm vật cản trên đường đi. Có hai bài
tốn tìm đường cho robot: bài tốn cục bộ (local) và bài tốn tồn cục (global). Trong
bài tốn tồn cục, bản đồ mơi trường làm việc của robot hồn tồn biết trước, vấn đề
chính là tìm được đường đi cho robot trước khi nó xuất phát. Ở bài tốn cục bộ, môi
trường làm việc của robot chưa biết hoặc chỉ biết 1 phần, robot hoàn toàn phải nhờ
vào sự cảm nhận môi trường thông qua cảm biến gắn trên nó để dò đường. Bài tốn


Đồ án hệ thống số
toàn cục tỏ rõ lợi thế là ta biết trước đường đi tới đích hay khơng trước khi robot khởi
hành. Tuy vậy nó lại có hạn chết là đòi hỏi nhiều lệnh tính tốn và bộ nhớ, và đặc biệt
tình huống xấu có thể xảy ra nếu bản đồ môi trường làm việc không được khai báo
chính xác, u cầu biết trước hồn tồn mơi trường làm việc cũng là một nhược điểm
của nó. Trong khi đó, robot tìm đường cục bơ chỉ biết được thơng tin xung quanh qua
sensor cảm nhận môi trường gắn cùng. Vì thế, robot tìm đường cục bộ có thể khơng
hoản thành việc tới đích, khái niệm tối ưu khơng có ý nghĩa trong bài toán này. Tuy
nhiên, dung lương bộ nhớ và khơi lượng tính tốn lại thấp. Ngày nay, cách tiếp cận
giữa cục bộ và toàn cục đang ngày càng phổ biến, giúp robot tự hành tăng tính linh
hoạt và hiệu quả.
1.2.Mục tiêu
Mục tiêu của đề tài là thiết kế, thi công, điều khiển robot tự hành. Robot tự
hành có thể hoạt động ổn định, tự tìm đường đi tới đích xác định của mê cung, có thể
học nhanh chóng cách tìm đường đi khi thay đổi hình dạng mê cung, sử dụng thuật
tốn tìm kiếm theo hướng ưu tiên rẽ 1 hướng trước. Sử dụng kit vi xử lý để xử lý thuật
tốn dò đường.

1.3.Nợi dung
Nội dung nghiên cứu:
Tìm hiểu về kit CPLD: CoolRuner-II Starter Board
Khảo sát phân tích tổng hợp: phân tích cách thức hoạt động của robot tự hành
theo thiết kế bộ phận dò tìm.
Tìm hiểu mạch thu phát hồng ngoại TCRT5000
Khảo sát tính khả thi của thuật tốn dò đường
Thực nghiệm: kiểm tra tính ổn định của robot, tối ưu code
Đánh giá kết quả đạt được


Đồ án hệ thống số
Chương 2: Các thành phần phần cứng và cấu trúc xe
2.1. Các thành phần phần cứng
2.1.1. Kit CPLD CoolRuner-II Starter Board

Hinh2.1 CoolRunner-II Starter Board
Tính năng:
Tần số cố định 8MHz dao động và một ổ cắm cho một Dao động tinh thể
Mở rộng kết nối cho 64 tín hiệu I / O (32 trên các kết nối Pmod và 32 trên song
song kết nối)
Một một dây DS28E01Q EEPROM
Một on-board cổng USB2 cho hội đồng quản trị điện, lập trình JTAG, và dữ
liệu chuyển


Đồ án hệ thống số
Cấu hình:
Mạch CollRunner-II của CPLD phải được cấu hình từ người sử dụng trước khi
nó có thể thực hiên bất kỳ chức năng nào. Tập tin có thể được tao ra từ sơ đò hoặc tập

tin mã nguồn HDL bằng cách sử dụng ISE
Phần mềm WebPack từ Xilinx, các file được cấu hình có thể được chuyển giao
cho mạch CoolRunner-II sử dụng cáp USB và phần mềm của Xilinx iMPACT hoặc
bằng cách sử dụng 1 cáp được lập trình bên ngồi.
Sau khi cấu hình, CPLD giữ lại trạng thái của nó vơ thời hạn. Mạch
CoolRunner-II đươc hỡ trợ trên hầu hết các cấu hình CPLD có trước. Một cấu hình
mới có thể được nạp bất cứ lúc nào và ngay sau khi cấu hình được tải thì nó định
nghĩa hành vi của CPLD
Nguồn cung cấp:
Mạch CoolRunner-II có thể được cấp nguồn từ cổng USB tách rời của nó hoặc
từ 1 ngồn cấp bên ngồi gắn vào kết nói JB3, jumper JB2 sử dụng mạch nguồn USB
hoặc nguồn bên ngồi.
Nguồn bên ngồi được định tuyến thơng qua 1 điều Maxim LT3028 để sản xuất
nguồn cung cấp điện áp (3.3V i/o và 1.8V cho lõi) theo yêu cầu của các CPLD. Bất cứ
khi nào mạch nguồn được sử dụng sẽ có đền LED báo.
Mạch CoolRunner-II được thiết kế từ mạch 4 lớp với các lớp bên trong dành
riêng cho VCC và GND.
Xung Clocks.
Bao gồm 1 bộ dao động tần số cố định 8MHz, được gán tên PCLK trong các sơ
đồ mạch và được kết nối với pin GCLK2 của CPLD (P38) để nó có thể được chuyển
đến chia đồng hồ nội bộ. Kích thước ổ cắm bằng 1 nửa kích thước theo chuẩn DIP.
Dao động cũng được cung cấp tại điểm IC3.
Chức năng I/O:


Đồ án hệ thống số
Mạch cung cấp 2 nút bấm và hai thiết bị chuyển mạch trượt đầu vào và 4 led
màu đỏ và 4 chữ hiển thị cho kết quả đầu ra,

Hình 2.2 Kết nối I/O

Các nút bấm hoạt động ở mức tích cực thấp, các thiết bị chuyển mạch gồm các
trở kháng ngắn mạch bảo vệ. Các led hoạt động ở mức cao và màn hình hiển thị bảy
đoạn sử dụng tách riêng-tranzitor hoạt động mức cao.Ba led bổ sung cho nguồn USB
(led4), bảng điện (led5), và USB trạng thái (led6).
Kết nối mở rộng:
Mạch cung cấp 4 modun thiết bị ngoại vi kết nối 12-pin mỗi kết nối cung cấp 2
VDD và GND, 8 tín hiệu đặc biệt từ CPLD. Mỡi kết nối có thể chứa 12-pin duy nhất
hoặc 6-pin Pmods. Một số 6-pin Pmods có thể đính kèm các kết nối kể cả loa, bảng


Đồ án hệ thống số
cầu H, bảng cảm biến, … Mạch còn cung cấp 1 kết nối 40-pin mở rộng bao gồm ba
cung cấp năng lượng tín hiệu và 37 I/O cho tín hiệu.
Thiết lập:
Thiết kế được lập trình sẵn vào CPLD có một số chức năng có thể được nhìn
thấy khi thích hợp modun ngoại vi được chèn vào các cổng có liên quan. Trong thiết
kế mẫu, Pmod chuyển đổi đi vào cổng J8, 2 Pmod đi vào J7 và Pmod 7 đoạn vào J5 và
J6. Tất nhiên thiết kế có thể thay đổi đươc các cổng khác nhau.
CPLD thực hiện cả hai cũng như truy cấp 1 bộ giải mã bàn phím PS/2. Màn
hình hiển thị các thiết bị chuyển mạch giữa hai dựa trên giá trị của SW4, SW1,2, và 3
không được sử dụng trong thiết kế. BTN0 là hệ thống thiết lập lai cho việc thết kế.
2.1.2. Thu phát hồng ngoại TCRT5000

Hình 2.3. Thu phát hồng ngoại TCRT-5000
TCRT5000 và TCRT500L là cảm biến phản xạ trong đó bao gồm một emitter
hồng ngoại và phototransistor trong một gói pha chì chặn ánh sáng nhìn thấy. các gói
bao gồm hai đoạn gắn kết.


Đồ án hệ thống số

Được sử dụng trong các trường hợp: Cảm biến vị trí phát hiện bộ mã hóa trục
vật liệu phản chiếu như giấy, IBM thẻ, băng từ ... bất cứ nơi nào khơng gian được giới
hạn

Hình 2.4. Sơ đồ modun TCRC-5000
Thông số đầu vào: IC<=1mA, nguồn VDD=5V
Nguyên lý hoạt động: khi có nguồn cung, led phát, nếu led thu nhận được tín
hiệu thì tranzitor thơng bão hòa, tín hiều ở đầu ra ở mức 1. Khi led thu khơng nhận
được tín hiệu thì tín hiệu đầu ra ở mức 0.


Đồ án hệ thống số
Hình 2.5 Sơ đồ so sánh sử dụng LM324
Tín hiệu nhận được từ modun thu phát được truyền tới bộ so sánh. Tại đây
được so sánh với 1 giá trị nhất định (với khoảng cách xác định) để biết được hướng đó
đi được hay khơng. Nếu đầu ra ở mức cao tức là hướng đó đi được, nếu ở mức thấp
tức là hướng đó được xác định là đường cụt.
2.1.3. Cầu H L293D
L293D là IC cầu H điều khiển động cơ
L293D gồm 4 kênh điều khiển có thể điều khiển 2 động cơ DC hoặc 1 động cơ
bước 4 pha (5 dây). Để điều khiển động cơ DC, bạn sẽ sử dụng 2 kênh của L293D cho
1 động cơ.
L293D đã được tích hợp sẵn đi ốt bảo vệ vi điều khiển chống lại dòng cảm ứng
khi động cơ khởi động hoặc tắt. Vì vậy, bạn chỉ cần gắn motor vào L293D và các chân
của vi điều khiển tương ứng, là có thể làm cho động cơ chạy ngay. Dòng L293 có 2
loại: L293B/E và L293D, dòng L293B có khả năng chịu tải cao hơn (1A so với
600mA của L293D) nhưng khơng có đi ốt bảo vệ vi điều khiển.
Với mỗi motor, bạn cần 3 chân từ vi điều khiển kết nối với L293D, trong đó có
1 chân điều khiển tốc độ đông cơ dùng xung PWM, 2 chân còn lại là logic 0 hoặc 1
dùng điều chỉnh chiều quay của motor.

Tín hiệu điều khiển được xử lý độc lập với nhau với từng đầu ra. Ví dụ: bạn có
thể điều khiển 2 động cơ DC chạy với tốc độ khác nhau, hướng khác nhau, 1 động cơ
dừng còn 1 động cơ chạy...
Mỗi kênh của L293D chịu được tải 600mA và dòng đỉnh là 1A.
Để sử dụng các động cơ công suất cao hơn, bạn chỉ việc gắn song song 2 hoặc
nhiều L293 lại với nhau. Với 2 IC L293, bạn sẽ có tải chịu được là 1.2A và tải đỉnh là
2A.
Ngồi ra, L293D có chức năng tự động ngắt khi bị nóng quá mức nhằm bảo vệ
IC.
Lưu ý: tuyệt đối không bao giờ làm chập mạch các ngõ ra motor của L293D,
nếu không bạn sẽ làm cháy một bên cầu H ngay lập tức.


Đồ án hệ thống số

Hình 2.6. Sơ đồ chân L293D

Hình 2.7. Sơ đồ L293D nối với 2 motor


Đồ án hệ thống số
2.1.4. Module RF 4 kênh

Hình 2.8. Module RF 4 kênh.
PT2262 có 2 loại chính : loại có 8 địa chỉ mã hóa , 4 địa chỉ dữ liệu và loại có 6
địa chỉ mã hóa và 6 địa chỉ dữ liệu. Mã hóa 12 bit 1 khung A0-->A7, D0-->D3.
Các linh kiện PT2262 đưa vào việt Nam chỉ có loại PT2262 với 8 địa chỉ mã hóa và 4
địa chỉ dữ liệu. Tương tự với PT2262 có 2 kiểu thì PT2272 cũng có 2 kiểu:




PT2272 có 8 địa chỉ giải mã và 4 dữ liệu đầu ra thường

được kí hiệu: T2272 - L4


PT2272 có 6 địa chỉ giải mã và 6 giữ liệu ra: kí

hiệu PT2272 - L6 .
PT2262 có " 3 mũ 12 " mã hóa tức là có thể mã hóa 531441 mã mới có thể trùng lặp
lại. So với thằng anh HT12E ra đời trước nó thì nó trội hơn hẳn về cái khoản mật mã
này. Cách mã hóa PT2262 có thể làm được bằng cách nối ngắn mạch các chân "mã
hóa địa chỉ " lên dương nguồn (mã hóa +) và xuống âm nguồn (mã hóa -) . Dữ liệu +
mã hóa được truyền trên một khung 12 bit gồm 8 bit đầu là mã hóa (A0-->A7 ) và 4
dữ liệu . Bởi vậy bạn có thể truyền được song song 4 bit dữ liệu 0 hoặc 1. Nếu để
truyền dữ liệu thì nên để mặc định cho 4 chân dữ liệu này là 0 hoặc là 1 bằng cách nối


Đồ án hệ thống số
thêm điện trở " kéo lên " hoặc " đưa xuống GND) để tránh nhiễu.
PT2262 dùng dao động ngoài: đơn giản là chỉ cần lắp thêm 1 điện trở dao động vào
chân 15 và chân 16 của PT 2262.
+ Tín hiệu encoder được đưa ra ở chân 17 của PT2262, chân này thường ở mức
1 khi tín hiệu nghỉ và mức 0 khi tín hiệu hoạt động. Tín hiệu đưa ra gồm : sóng mang
dao động < 700KHz + địa chỉ mã hóa + dữ liệu.
+ Tần số Sóng mang dao động được quyết định bởi R chân 15 và 16 và được
tính bằng : f = R/12 . Ví dụ : mắc điện trở 470k vào chân 15 và 16 đầu ra chân 17 sẽ
có 470/12 = khoảng 39Khz ( cái này có thể làm điều khiển hoặc truyền dữ liệu bằng
hồng ngoại với con PT2262 đấy nhé. ). (PT2262 có điện áp rộng : Có thể làm việc
được từ 2,5V đến 15 V . Trong datasheet của nó là từ 4 V nhưng qua thời gian rất dài

làm việc và nghiên cứu con này có thể khẳng định được về điện áp của nó làm việc rất
thấp. --- " đã từng chế tạo và xuất xưởng gần 1 vạn mạch sử dụng cặp PT2262
và PT2272 để làm điều khiển ".
PT2272 là con giải mã của PT2262 nó cũng có 8 địa chỉ giải mã tương ứng + 4
dữ liệu ra + 1 chân báo hiệu mã đúng VT ( chân 17 ). Cách giải mã như sau : Chân 15
và 16 cũng cần một điện trở để làm dao động giải mã . Trong dải hồng ngoại hoặc
dưới 100KHz có thể dùng R rất lớn hoặc không cần. Nhưng từ khoảng 100KHz dao
động trở lên --- thì bắt buộc phải dùng R để tạo dao động cho PT2272.
Giá trị R của PT2272 sẽ bằng khoảng : ( Giá trị R của PT2262) chia cho 10
---> ví dụ : PT2262 mắc điện trở 4,7 megaom thì PT2272 sẽ mắc 470k
Giải mã : các chân mã hóa của PT2262 ( chân 1 đến chân 8 ),nối thế nào thì các chân
giải mã của PT2272cũng phải nối tương tự như vậy. Chân nào nối dương, chân nào
nối âm, chân nào bỏ trống ...v.v thì chân ( 1 đến 8 )của PT2272 hãy làm như thế . Khi
truyền một mã đúng và giải mã đúng thì chân 17 của PT2272 sẽ có điện áp cao đưa ra,
báo hiệu là đã đúng mã hóa. 4 chân dữ liệu có thể truyền song song, nối tiếp rất động
lập.
Tóm lại bạn xài cặp này bạn có thể làm mạch RF rồi lấy data ở ngõ ra pt2262 và trả lại


Đồ án hệ thống số
data cho pt2272, rồi toàn quyền xử lý(có thể nối với vi điều khiển) hoặc mua mạch RF
có bán sẵn rồi nối với cặp pt là xong.
Sơ đồ mạch phát dùng PT2262:

Hình 2.9. Sơ đồ phát PT2262
Sơ đồ mạch thu dùng PT2272:

Hình 2.10. Sơ đồ thu PT2272



Đồ án hệ thống số
2.2 Cấu trúc cơ khí của xe
Sử dụng hai động cơ DC 1 chiều mỗi động cơ điều khiển 1 cặp bánh xe có sử
dụng các bánh răng để tạo giảm tốc nhanh.
Kit CoolRunner-II được sử dụng để nhận tín hiệu từ 4 modul Hồng ngoại rồi
xuất tín hiệu ra điều khiển 2 động cơ DC (tiến, lùi, rẽ …).
Modul Hồng ngoại được gắn trên 3 hướng của xe, phía bên trái được lắp 2
modun nhằm tránh xe quay ln khi nhìn thấy ngã rẽ.
Điều khiển xe từ tín hiệu RF.
Chương 3: Tḥt tốn dò đường và code
3.1 Sơ đồ khối tổng quát
Sơ đồ khối tổng quát:

Hình 3.1 Sơ đồ tổng quát
Mục tiêu:


Đồ án hệ thống số
Xác định 1 ma trận mê cung bất kỳ 1 lối vào 1 lối ra
Xây dựng mơ hình robot tự hành có 2 động cơ di chuyển, 1 động
cơ chỉnh góc quay của cảm biến
Sử dụng cảm biến siêu âm
Kết quả: robot có thể di chuyển, nhận tín hiệu từ cảm biến điều chỉnh hướng đi,
đi vào từ lối vào và ra từ lối ra của ma trận
3.2 Thuật toán dò đường
Sử dụng 3 modun thu phát hồng ngoại để xác nhận khoảng cách từ 3 hướng
trái, phải, giữa. Tín hiệu từ 3 biến này được truyền tới kit CPLD xác nhận và đưa tín
hiệu ra 4 chân của 2 động cơ DC.
Ưu tiên rẽ trái rồi đến đi thẳng và rẽ phải nếu cả 3 hướng khơng đi được thì
quay đầu.

Lưu đồ thuật tốn:
Sơ đồ mê cung đơn giản

Hình 3.3. Sơ đồ mê cung đơn giản


Đồ án hệ thống số
3.3. Code
----------------------------------------------------------------------------------- Company: the fisrt
-- Engineer: vando
--- Create Date: 09:05:07 03/22/2013
-- Design Name:

probe line robot

-- Module Name: code2013_03_22 - Behavioral
-- Project Name:

final

-- Target Devices:
-- Tool versions:
-- Description:
--- Dependencies:
--- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
----------------------------------------------------------------------------------library IEEE;
use IEEE.STD_LOGIC_1164.ALL;



Đồ án hệ thống số
use ieee.std_logic_unsigned.all;

entity code2013_03_22 is
port (
rf1 : in std_logic;
rf2 : in std_logic;
rf4 : in std_logic;
rf3 : in std_logic;
chon: in std_logic;
sensor1 : in std_logic;
sensor2 : in std_logic;
sensor3 : in std_logic;
sensor4 : in std_logic;
clk

: in std_logic;

left1

: out std_logic;

left2 : out std_logic;
right1 : out std_logic;
right2 : out std_logic
);
end code2013_03_22;
architecture Behavioral of code2013_03_22 is
signal clk1 : std_logic;



Đồ án hệ thống số

begin
process (clk)
variable tre1 :integer range 0 to 100000000;
variable tre2 :integer range 0 to 100000000;
variable tre3 :integer range 0 to 100000000;
variable tre4 :integer range 0 to 100000000;
begin
if (clk'event and clk ='1') then--3-4
if( chon ='1' )then
if (sensor3 ='1' and sensor4 ='1') then
tre1 := tre1 +1;
tre2:=0;
tre3:=0;
if (tre1 >= 2400000 and tre1 <=
3200000) then
left1 <= '1';
left2 <= '0';
right1 <= '1';
right2 <= '0';


Đồ án hệ thống số
elsif (tre1 >= 0 and tre1 < 1600000)
then
--quay trai--


left1 <= '1';
left2 <= '0';
right1 <= '0';
right2 <= '1';

else
left1 <= '0';
left2 <= '0';
right1 <= '0';
right2 <= '0';

end if;
tre1 := 0;
--wait until tre >= 5000;
elsif( sensor2 ='1')then --2
--di thang--


Đồ án hệ thống số
tre1:=0;
tre2:=0;
tre3 := tre3 + 1;
if(tre3 >0 and tre3 < 500000) then
left1 <= '1';
left2 <= '0';
right1 <= '1';
right2 <= '0';
elsif(500000 <= tre3 and tre3 <=
700000) then
left1 <= '0';

left2 <= '0';
right1 <= '0';
right2 <= '0';
tre3:=0;
elsif( tre3 > 700000) then
tre3:=3;
else
null;

end if;


Đồ án hệ thống số
elsif (sensor1 ='1') then
tre2 := tre2 +1;
tre1:=0;
tre3:=0;
if (tre2 > 0 and tre2 <= 1600000) then
--re phai-left1 <= '0';
left2 <= '1';
right1 <= '1';
right2 <= '0';

else
left1 <= '0';
left2 <= '0';
right1 <= '0';
right2 <= '0';
end if;
tre2 := 0;

elsif (sensor3 ='0' and sensor4 ='0' and sensor2 ='0'
and sensor1 ='0')then
--tre := tre +1;
--quaydau--


Đồ án hệ thống số
left1 <= '0';
left2 <= '1';
right1 <= '1';
right2 <= '0';
--wait until sensor1 <= '1';
--left1 <= '1';
--left2 <= '0';
--right1 <= '1';
--right2 <= '0';
--tre := 0;
--end if;
else
null;
end if;

elsif(chon='0') then
if( rf1 ='1') then
left1 <= '1';
left2 <= '0';
right1 <= '0';
right2 <= '1';
elsif(rf2='1') then



Đồ án hệ thống số
left1 <= '0';
left2 <= '1';
right1 <= '1';
right2 <= '0';
elsif(rf3='1') then
left1 <= '1';
left2 <= '0';
right1 <= '1';
right2 <= '0';
elsif(rf4 ='1') then

left1 <= '0';
left2 <= '1';
right1 <= '0';
right2 <= '1';
elsif( rf1='0' and rf2='0' and rf3='0' and rf4='0' ) then
left1 <= '0';
left2 <= '0';
right1 <= '0';
right2 <= '0';
else null;
end if;


×