MỤC LỤC
CHƯƠNG 1: GIỚI TỔNG QUAN VỀ MỘT SỐ ROBOT TỰ HÀNH HIỆN CÓ TRÊN THẾ GIỚI1
CHƯƠNG II :GIỚI THIỆU VỀ VI XỬ LÝ HỌ MSC-51 3
I / Giới thiệu cấu trúc phần cứng họ MSC-51 (8951) 3
II/ Sơ đồ chân AT89C51 và chức năng từng chân 3
III/ Cấu trúc bên trong vi điều khiển 7
IV/ Hoạt động Timer của 8951 14
V/ Tổ chức ngắt của c8031/8951 21
VI/ Tóm tắt tập lệnh của 8951 30
CHƯƠNG III : GIỚI THIỆU CÁC LINH KIỆN SỬ DỤNG TRONG LUẬN VĂN42
I/MOSFET42
II/ OPTO PC817 44
III/ GIỚI THIỆU ENCODER45
IV/ CÁC LOẠI CẢM BIẾN QUANG TRONG CÔNG NGHIỆP46
V/GIỚI THIỆU LCD48
VI.GIỚI THIỆU VỀ ĐỘNG CƠ ĐIỆN MỘT CHIỀU55
CHƯƠNG 4: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH58
I/GIỚI THIỆU PHẦN CƠ KHÍ59
II.GIỚI THIỆU SƠ ĐỒ NGUYÊN LÝ CỦA MẠCH ĐIỆN61
CHƯƠNG 5: THUẬT TOÁN ĐIỀU KHIỄN VÀ TÓM LƯỢC CHƯƠNG TRÌNH 65
I/THUẬT TOÁN ĐIỀU KHIỄN65
II/CHƯƠNG TRÌNH HOẠT ĐỘNG70
94 trang |
Chia sẻ: banmai | Lượt xem: 1986 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Thiết kế và thi công Robot tìm báu vật, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ong 128 vùng nhớ thấp và 80H - FFH ở các vùng thanh ghi chức năng
đặc biệt.
Bit Carry C trong thanh ghi PSW của từ trạng thái chương trình và được
dùng như một sự tích lũy đơn của bộ xử lí luận lý. Bit Carry cũng là bit định vị và
có địa chỉ trực tiếp vì nó nằm trong PSW. Hai lệnh CLR C và CLR CY đều có cùng
tác dụng là xóa bit cờ Carry nhưng lệnh này mất 1 byte còn lệnh sau mất 2 byte.
Hoạt động của các lệnh luận lý được tóm tắt như sau:
CLR C : Xóa cờ Carry xuống 0. Có ảnh hưởng cờ Carry.
CLR BIT : Xóa bit xuống 0. Không ảnh hưởng cờ Carry
SET C : Set cờ Carry lên 1. Có ảnh hưởng cờ Carry.
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang42
SET BIT : Set bit lên 1. Không ảnh hưởng cờ Carry.
CPL C : Đảo bit cờ Carry. Có ảnh hưởng cờ Carry.
CPL BIT : Đảo bit. Không ảnh hưởng cờ Carry.
ANL C, BIT : (C) (C) AND (BIT) : Có ảnh hưởng cờ Carry.
ANL C, /BIT: (C) (C) AND NOT (BIT):Không ảnh hưởng cờ Carry.
ORL C, BIT : (C) (C) OR (BIT) : Tác động cờ Carry.
ORL C, /BIT : (C) (C) OR NOT (BIT) : Tác động cờ Carry.
MOV C, BIT : (C) (BIT) : Cờ Carry bị tác động.
MOV BIT, C : (BIT) (C) : Không ảnh hưởng cờ Carry.
Các lệnh xen vào (Miscellamous Intstruction):
NOP : Không hoạt động gì cả, chỉ tốn 1 byte và 1 chu kỳ máy. Ta dùng để
delay những khoảng thời gian nhỏ.
CHƯƠNG III : GIỚI THIỆU CÁC LINH KIỆN SỬ DỤNG
TRONG LUẬN VĂN
I/ MOSFET :
Mosfet sử dụng trong mạch này là IRF540 và IRF9540
Mosfet : Ñöôïc ñieàu khieån ñoùng ngaét baèng ñieän aùp, thôøi gian ñoùng ngaét nhanh,
ñoùng ngaét caùc doøng lôùn.
+ IRF540: Thuộc loại npn, dòng trung bình định mức 28A, điện áp định mức lớn
nhất 100v
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang43
Sơ đồ khối bên trong
- Khi VGS >0V , thì IRF540 daãn .
Các thông số kĩ thuật của IRF540 :
VDS đỉnh có thể chịu được là 100V.
VDGR đỉnh có thể chịu được là 100V.
VGS đỉnh có thể chịu được là V20 .
ID đỉnh có thể chịu được là 28A.
-Khi ñieän aùp döông ñaët leân giöõa coång G vaø S .taùc duïng cuûa ñieän tröôøng seõ
keùo caùc electron töø lôùp n vaøo lôùp p ,cho pheùp doøng ñieän daãn töø cöïc D tôùi cöïc S.
+ IRF9540: loaïi pnp, doøng trung bình ñònh möùc 19A,ñieän aùp ñònh möùc lôùn nhaát
100V.
Sơ đồ bên trong
- Khi VGS <0V , thì IRF9540 daãn .
Các thông số kĩ thuật của IRF9540 :
VDS đỉnh có thể chịu được là -100V.
VDGR đỉnh có thể chịu được là -100V.
VGS đỉnh có thể chịu được là V20 .
ID đỉnh có thể chịu được là -19A.
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang44
-Khi ñieän aùp ñaët leân giöõa coång G vaø S .taùc duïng cuûa ñieän tröôøng seõ keùo caùc
electron töø lôùp n vaøo lôùp p ,cho pheùp doøng ñieän daãn töø cöïc D tôùi cöïc S.
II/ OPTO PC817 :
Opto là loại IC có cấu tạo như 1 tổ hợp Led phát và Phototransistor dùng để
cách ly tín hiệu vào và ra .
Sơ đồ khối bên trong
Chân 1 và 2 được có chức năng như 1 LED phát khi có tín hiệu sẽ dẫn điện áp
từ chân 4 sang chân 3.
Các thông số kĩ thuật của OPTO PC817:
Ngõ vào : Dòng điện IF để có tín hiệu dẫn là 10 mA. Dòng đỉnh có thể chịu được là
100mA. Điện áp ngõ vào có thể chịu được là 6V.
Ngõ ra : Điện áp VCE có thể chịu được là 35V. Dòng điện dẫn IC có thể chịu được
là 50mA.
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang45
III/ GIỚI THIỆU ENCODER:
* Dạng thiết bị mã hoá theo số gia:
Là loại thiết bị mã hoá có dãy xung ra phù hợp với góc của trục quay.thiết bị
mã hoá này không có xung ra khi trục không làm việc .Cần có một bộ đếm xung ra.
Thiết bị mã hoá cho biết vị trí của trục quay bằng số xung được đếm .dạng
thiết bị này có thể xếp vào loại một chiều (chỉ có đầu ra kênh A) là loại chỉ sinh ra
xung khi trục quay và loại hai chiều (có đầu ra kênh A va B)cũng có thể cho biết
chiều của trục quay(nghĩa là thuận hay ngược chiều kim đồng hồ )
* Bộ mã hoá quay(rotary encoder)
Để cảm biến góc,hay vị trí người ta hay dùng bộ mã hoá quay.
Có nhiều loại bộ mã hoá (encoder).Tuỳ theo cách chế tạo đĩa mà ta có ngõ ra
là mã Gray,BCD,là số xung 500 hay 1000,1500xung/vòng quay
** ứng dụng :
Có rất nhiều ứng dụng: định vị sản phẩm trên dây chuyền, định vị vị trí cho xe
tự động ( đồ án), …
**Encoder của omron:
Loại thiết bị mã hoá theo số gia kiểu mới
+ Phạm vi điện áp làm việc rộng từ 5_24 V một chiều(dạng encoder hở)
+ Độ phân giải 2000 xung/1vòng quay.
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang46
+ Pha Z có thể được điều chỉnh dễ dàng bằng việc sử dụng chức năng chỉ thị
ban đầu.
+ Cho phép phụ tải lớn 3 kg(29.4 N) theo hướng xuyên tâm và 2 kg(19.4 N)
theo hướng đè lên.
+có lắp bảo vệ đảm bảo độ tin cậy khi ngắn mạch tải và đảo chiều.
IV. CÁC LOẠI CẢM BIẾN QUANG TRONG CÔNG NGHIỆP:
Với môi trường làm việc trong hóa chất, nhiệt độ cao,… các linh kiện cảm biến
quang phải đảm bảo đạt các yếu cầu sau:
- Có độ bền cơ khí cao, giảm được chấn động, vận tốc quét cao, chống run cơ học,
…
- Có độ nhạy cảm cao, giảm tối thiểu được ảnh hưởng của môi trường làm việc,…
-Thích hợp với nhu cầu và đáp ứng được nhu cầu sử dụng.
Các hãng sản xuất thiết bị tự động đã đưa ra thị trường các loại cảm biến đạt
được các yêu cầu nói trên. Đề tài ứng dụng cảm biến quang (Photo Electric
Sensors) nên chỉ tập trung tìm hiểu về loại cảm biến này.
* Đặc điểm của loại phản hồi
a. Nguyên tắc hoạt động:
Mỗi vật chất đều có tính chất hấp thụ (vật đen) hay phản xạ (gương) năng lượng
từ ngoài tác động vào. Tùy theo mức độ phản xạ của vật thể khi nhận một chùm
tia tới chiếu đến mà chùm tia phản xạ có thể là mạnh hay yếu. Cảm biến quang
dựa theo nguyên tắc phản hồi chính là dựa trên nguyên tắc phản xạ của chùm tia
phản xạ.
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang47
b. Các thông số tiêu chuẩn:
Hình dạng: hình trụ hay khối chữ nhật.
Tầm cảm nhận : 1,570mm.
Đầu vào : 2 đầu dây, 12VDC hay 24VDC.
Đầu ra : 1 đầu dây tín hiệu.
Tần số chuyển : 1,5200Hz.
Theo tài liệu của hãng “PEPPERL+FUCHS” về cường độ phản xạ
tia hồng ngoại trên các gam màu và vật chất ta có bảng sau:
Hình 06: Sơ đồ nguyên
lý hoạt động của bộ thu
phát loại phản hồi
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang48
Vật chất Phản xạ Từ nguyên bản
Trắng tiêu chuẩn 90% Testcard standard white
Xám tiêu chuẩn 18% Testcard standard grey
Giấy trắng 80% White paper
Chữ in trên báo 55% News print
Gỗ thông sạch 75% Clean pine wood
Nút bần 35% Cork
Tấm bảng gỗ sạch 20% Wooden pallets clean
Bọt bia 70% Beer foam
Chai nhựa trong 40% Clear plastic bottes
Chai nhựa nâu trong 60% Transparent brown plastic bottles
Nhựa trắng đục 87% Opaque white plastic
Nhựa đen 14% Black plastic
Đen tuyền 04% Black neoprene
Gáy xoắn đen 02% Black foam carpet backing
Lốp xe hơi 1.5% Automobile tyres
Nhôm nguyên chất 140% Aluminium, untreated
Thép bóng láng 400% Polished stainless steel
V. GIỚI THIỆU LCD
Để có được hiển thị tiết kiệm năng lượng và linh hoạt hơn, người ta sử dụng
bộ hiển thị LCD. Có nhiều loại LCD, trong số đó thông dụng là hiển thị 162 và
20 2 ( có nghĩa là 2 hàng với 16 ký tự trên một hàng và 2 hàng với 20 ký tự trên
một hàng ).
Người ta đã thiết lập chuẩn để cho phép ta có thể giao tiếp với các hãng LCD
bất chấp hãng sản xuất với điều kiện là các LCD có sử dụng cùng IC điều khiển
HD44780.
2. Hình dáng và kích thước của LCD:
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang49
Các LCD được chế tạo từ các hãng như Densitrn, Epson, Hewlett Packard,
Optrex, Sharp,… Với các cấu hình thông dụng là 16, 20, 24, 32, hay 40 ký tự trên
một hàng với màn hình hiển thị 1,2 hay 4 hàng. Thí dụ 202, 404 ….
Có loại LCD hiển thị theo ký tự hay đồ hoạ, các mạch lái trong các module LCD
là các chip điều khiển, thí dụ Hitachi HD44780.
3. Một vài LCD thông dụng :
Hình 3.16
3. Chiếu sáng trong bộ hiển thị LCD:
Người ta sử dụng các kiểu sau :
+ Backlit ( back lighting ), sử dụng neon chiếu sáng sau bộ hiển thị thay vì
dùng ánh sáng phản xạ.
+ CfL( Cold Cathode Flourescent Lamp = Đèn huỳng quang cathod lạnh).
Một loại đèn huỳnh quang đặc biệt để chiếu sáng phía trong các hiển thị LCD hiện
đại, đặc biệt trong các mảng đồ hoại lớn như dùng trong các laptop. Chúng cho
chiếu sáng rất tốt với dòng điện thấp. Được cấp điện bởi nguồn AC cao áp và cao
tần (200-1000V ở tần số 25-75kHz), các yêu cầu về điện của chúng nghiêm ngặt và
phải chính xác khớp với inverter thích hợp do nhà sản xuất đề nghị. Thí dụ mức do
backlit CFL của Stanley 20 character2 line : 230V, 2,5mA, 65KHz
4. Sơ đồ chân và chức năng :
Sơ đồ chân :
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang50
Hình 3.17 : Sơ đồ chân
Mô tả các chân :
Thứ tự
chân
Kí hiệu Mức
logic
Vào /
Ra
Chức
năng
1 Vss - - GND
2 Vcc - - 5V
3 Vee - - Điều
chỉnh độ sáng
4 RS 0/1 Vào 0 = Tín
hiệu chỉ dẫn
1=Dữ
liệu vào
5 R / W 0/1 Vào 0 = Ghi
vào LCD
1 =
Đọc từ LCD
6 E 1,1 ---
>0
Vào Tín hiệu
cho phép
7 DB0 0/1 Vào /Ra Đường
dữ liệu 0
8 DB1 0/1 Vào /
Ra
Đường
dữ liệu1
9 DB2 0/1 Vào /
Ra
Đường
dữ liệu 2
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang51
10 DB3 0/1 Vào /
Ra
Đường
dữ liệu 3
11 DB4 0/1 Vào /
Ra
Đường
dữ liệu 4
12 DB5 0/1 Vào /
Ra
Đường
dữ liệu 5
13 DB6 0/1 Vào /
Ra
Đường
dữ liệu 6
14 DB7 0/1 Vào /
Ra
Đường
dữ liệu 7
Mặc dù theo sổ tay kỹ thuật LCD thì cấp nguồn cho nó là 5VDC ( chỉ
khoảng vài mA ) nhưng cung cấp cho nó 6VDC hay 4,5 VDC thì nó cũng hoạt động
tốt và ngay cả với 3VDC cũng đủ cho một số module. Kết quả là các module LCD
tiêu thụ năng lượng ít.
Chân 3 là chân điều khiển Vee dùng để thay đổi độ tương phản của màn hình
hiển thị. Lý tưởng thì chân này nên nối với nguồn điện áp thay đổi được, người ta
thực hiện bằng cách gắn mạch chia áp dùng biến trở có đầu ra thay đổi đưa và chân
này, tuy nhiên nên chú ý là một số module cần nguồn điện DC_7 VDC. Đơn giản
nhất là người ta nối chân này với nguồn 0V (xuống đất ).
Chân 4 là đường RS (register select = chọn thanh ghi ) đây là một trong 3
ngõ vào điều khiển lệnh. Khi chân này để mức thấp thì các dữ liệu được truyền đến
LCD được xử lý như các mệnh lệnh và các dữ liệu độc ra chỉ trạng thái của nó.
Bằng cách đưa đường RS này lên mức cao thì dữ liệu ký tự có thể xuất/ nhập trên
module này.
Chân 5 là đường R/W (read/write). Chân này được kéo xuống mức thấp để
ghi các lệnh hay dữ liệu ký tự vào module hoặc được kéo lên mức cao để đọc dữ
liệu ký tự hay thông tin trạng thái từ các thanh ghi của nó.
Chân 6 là đường E (enable) ngõ vào này dùng để khởi động việc chuyển các
lệnh hay dữ liệu Khi ghi ra màn hình hiển thị LCD, dữ liệu chỉ được chuyển khi có
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang52
tín hiệu xuống ở cạnh E này. Tuy nhiên khi độc ra từ LCD thì dữ liệu khã dụng sau
khi có chuyển tiếp từ thấp lên cao và duy trì dữ liệu khã dụng cho đến khi dữ liệu
xuống thấp một lần nữa.
Các chân 7 đến 14 là 8 đường bus dữ liệu (DO đến D7). Dữ liệu có thể được
chuyển đến và lấy ra khỏi bộ hiển thị LCD theo dạng một byte 8 bit hay dạng 2 nữa
byte 4 bit (nibble). Trong trường hợp sau có 4 đường dữ liệu trên được sử dụng ( 4
bit cao: D4 đến D7. Chế độ 4 bít này thuận tiện khi xử lý, cần có ít đường xuất/nhập
hơn.
Tóm tắt tập lệnh điều khiển LCD:
ommand
(Lệnh)
RS RW NHỊ PHÂN HEX
D7 D6 D5 D4 D3 D2 D1 D0
NOP
(No operation =
không làm gì cả)
0 0 0 0 0 0 0 0 0 0 00
Clear display
(xoá hiển thị )
0 0 0 0 0 0 0 0 0 1 01
Display&Cursor
home (hiển thị
và đặt cursor ở
vị trí góc trái
phía trên ).
0 0 0 0 0 0 0 0 1 X 02
hoặc
03
Character Entry
mode (chế độ
nhập ký tự ).
0 0 0 0 0 0 0 1 I/D S 04
đến
07
Display
ON/Off&
Cursor (hiển thị
tắt mở và cursor
).
0 0 0 0 0 0 1 D U B 08
đến
0F
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang53
Display / Cursor
Shift(dịch hiển
thị / cursor ).
0 0 0 0 0 1 D/C R/L X X 10
đến
1F
Funtion set( đặt
chúc năng ).
0 0 0 0 1 8/4 2/1 10/7 X X 20
đến
3F
Set CGRAM
address ( đặt địa
chỉ CGRAM ).
0 0 0 1 A A A A A A 40
đến
7F
Set DDRAM
address ( đặt địa
chỉ DDRAM ).
0 0 1 A A A A A A A 80
đến
FF
Busy Flag &
Addr(cờ bận và
bộ đếm địa chỉ ).
0 1 BF Bộ đếm địa chỉ
Read Data ( đọc
dữ liệu từ
CGRAM hoặc
DDRAM ).
1 0 Dữ liệu đọc
Write Data ( ghi
dữ liệu vào
CGRAM hoặc
DDRAM )
1 1 Dữ liệu ghi
Chú thích :
Tên bit Thiết lập
I/D 1 = increment 0= decrement
S 1 = display shift on 0 = display shift off
D 1= display on 0 = display off
U 1= cursor underline on 0 = underline off
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang54
B 1 = cursor blink on 0 = cursor blink off
D/C 1= display shift 0 = cursor move
R/L 1 = right shift 0 = left shift
8/4 1 = 8 bit interface 0 = 4 bit interface
2/1 1= chế độ 2 hàng 0 = chế độ 1 hàng
10/7 1 = 5* 10 dot format 0 = 5*7 dot format
CGRAM = character gernerator RAM
DDRAM = display data RAM
X : don’t care
Bảng ký tự chuẩn LCD :
Hoạt động :
LCD HD 44780 cần 3 đường điều khiển cũng như 4 hay 8 ngõ vào ra cho
dữ liệu. Nếu sử dụng giao tiếp 4 bit thì cần 7 đường ( 3 đường điều khiển và 4
đường giao tiếp ), nếu sử dụng giao tiếp 8 bit thì cần 11 đường ( 3 đường điều khiển
và 8 đường giao tiếp ).
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang55
Ba đường điều khiển là :
EN : Để gởi data đến LCD thì trước hết phải đưa bước này lên
mức cao.Sau
đó đưa 2 bit điều khiển còn lại là RS và RW lên mức cao rồi nhận dữ liệu
từ data bus. Sau đó lại đưa EN về lại mức thấp. Sự chuyển trạng thái từ 0
sang 1 để yêu cầu LCD xem data trên data bus giống như một lệnh yêu
cầu .
RS : Khi RS ở mức thấp thì data xem như một lệnh yêu cầu hay
một chỉ dẫn
đặc biệt ( chẳng hạn như clear display hay cursor position …). Khi RS ở
mức cao thì data trên data bus chính là data được hiển thị trên màn hình.
RW : Là đường điều khiển đọc hay ghi data. Khi RW = 0 thì data
đang được đọc từ data bus. Khi RS ở mức 1 thì chương trình đang xềp
hàng hay đang đọc. Vì vậy chỉ có một trường hợp duy nhất RW = 1 là khi
lệnh chỉ dẫn là đọc một lệnh ( cho biết trạng thái của LCD ), còn lại tất
các trường hợp khác thì RS luôn ở mức thấp
Có thể hiển thị kí tự tên LCD bằng 1 dòng , 2 dòng hay 4 dòng. Trong phạm
vi đồ án này sử dụng LCD hiển thị kí tự trên 2 dòng và mỗi dòng 16 kí tự.
VI.GIỚI THIỆU VỀ ĐỘNG CƠ ĐIỆN MỘT CHIỀU.
Trong thời đại ngày nay, hầu hết các dây chuyền sản xuất đang dần dần được tự
động hóa bằng cách áp dụng các kỹ thuật tiên tiến của khoa học kỹ thuật. Tuy
thế, động cơ điện một chiều vẫn được coi là một loại máy quan trọng. Nó có đặc
tính điều chỉnh tốc độ rất tốt, vì vậy máy được dùng nhiều trong các nghành
công nghiệp có yêu cầu cao về điều chỉnh tốc độ như cán thép, hầm mỏ, giao
thông vận tải…
1.Cấu tạo :
Động cơ điện một chiều gồm hai phần : Phần tĩnh (stator) và phần quay
(rotor).
Phần tĩnh là phần đứng yên của máy. Nó thường bao gồm các bộ phận sau
:
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang56
– Cực từ chính : là bộ phận sinh ra từ trường chính trong vỏ máy, gồm có
lõi sắt cực từ và dây quấn kích từ lồng ngoài lõi sắt cực từ. Lõi sắt cực từ
làm bằng những lá thép kỹ thuật điện hay thép cacbon dày 0,5 1 mm ép
chặt lại với nhau.
– Cực từ phụ : được đặt giữa các cực từ chính và dùng để cải thiện đổi chiều
giúp cho máy điện làm việc không có tia lửa xảy ra giữa chổi điện và
vành đổi chiều. Lõi thép cực từ cực từ phụ thường làm bằng thép khối và
trên thân cực từ phụ có đặt dây quấn.
– Gông từ : dùng để làm mạch từ nối liền các cực từ, đồng thời làm vỏ máy.
– Các bộ phận khác như Nắp máy để bảo vệ, Cơ cấu chổi than.
Phần quay gồm có những bộ phận sau :
– Lõi sắt phần ứng : dùng để dẫn từ, thường dùng những tấm thép kỹ thuật
điện dày 0,5 mm được phủ lớp cách điện và ghép chặt lại với nhau.
– Dây quấn phần ứng : là phần sinh ra sức điện động và có dòng điện chạy
qua. Dây quấn được cách điện cẩn thận với rãnh của lõi thép.
– Các bộ phận khác như cánh quạt dùng để quạt gió làm nguội máy, trục
máy để đặt lõi sắt phần ứng, cổ góp, cánh quạt và ổ bi.
2.Nguyên lý làm việc của động cơ điện một chiều :
Động cơ điện một chiều là một thiết bị biến đổi năng lượng của dòng một chiều
thành cơ năng. Trong quá trình biến đổi đó, một phần năng lượng của dòng xoay
chiều bị tiêu tán do các tổn thất trong mạch phần ứng và trong mạch kích thích.
Phần còn lại là năng lượng được biến đổi thành cơ năng trên trục động cơ.
Khi cho dòng điện một chiều chạy vào dây quấn kích thích và dây quấn
phần ứng sẽ sinh ra từ trường ở phần tĩnh. Từ trường này tác dụng tương hỗ lên
dòng điện trong dây quấn phần ứng tạo ra momen tác dụng lên rotor và làm
rotor quay. Nhờ có vành đổi chiều nên dòng điện một chiều được chỉnh lưu
thành dòng xoay chiều đưa vào dây quấn phần ứng. Điều này làm lực từ tác
dụng lên thanh dẫn dây quấn phần ứng không bị đổi chiều và làm động cơ quay
theo một hướng.
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang57
Công suất ứng với momen điện từ đưa ra đối với động cơ gọi là công suất điện
từ và bằng : Pđt = M = EưIư
Trong đó : M : momen điện từ.
60
2 n
: tốc độ góc phần ứng.
Iư : dòng điện phần ứng.
Eư : suất điện động phần ứng.
3.Đặc điểm:
-Nguồn điện áp cung cấp cho động cơ DC từ 5 24V (tuỳ theo loại
động cơ)
-Tốc độ thay đổi vô cấp (v/p).
-Cókhả năng mang tải ngay khi cấp nguồn điện.
* Phương pháp điều khiển động cơ.
- Dùng điện áp DC 5 24V.
- Cấp nguồn đúng chiều theo yêu cầu.
- Thay đổi chiều quay bằng cách hoán vị các cực .
- + + -
+ -
- +
Hình 3.5 : Phương pháp đảo chiều quay động cơ
Để làm được công việc trên , ở mạch điều khiển ta trang bị các cầu dao đảo
hoặc rơle điện từ .
Dựa theo nguyên lý trên khi ứng dụng lắp ráp ROBOT thì những chuyển
động đảo chiều đó sẽ đảo chiều được hành trình chuyển động của các khâu.
* Nguyên lý hãm ngược
+ Đối với động cơ một chiều thì công việc hãm ngược đơn giản hơn, giả sử
động cơ chạy theo chiều nào đó, có thể cùng chiều hoặc ngược chiều kim đồng hồ.
+ Khi ngưng cấp nguồn đồng thời đưa nguồn điện khác ngược chiều với
nguồn đang hoạt động lập tức động cơ sẽ bị hãm cưỡng bức, lúc ấy lực từ sẽ có
M M
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang58
chiều ngược lại và ta điều chỉnh thời gian sao cho động cơ dừng hẳn thì thôi cấp
nguồn.
CHƯƠNG 4: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH.
Mô hình thiết kế của xe ROBOT gắp vật.
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang59
Mô hình thực của xe ROBOT gắp vật.
I.Giới thiệu phần cơ khí:
+ Thân ROBOT được làm từ các thanh nhôm, liên kết với nhau qua một tấm đế
bằng Meca dày và được kết chặt bởi các ốc vít. Kích thước của thân xe là 2.2x3.2
cm.
+ Trên xe được trang 4 động cơ DC, mỗi động cơ đều có lắp kèm theo hộp số
nhằm tăng moment và giảm tốc độ quay.
+ Tất cả 4 động cơ đều được cấp nguồn 12V
+ Hai động cơ DC chính được vặn chặt với khung nhôm và liên kết chặt với hai
bánh lái.
- Phía trước đầu xe là cánh tay làm bằng các thanh nhôm liên kết lại dùng để gắp
vật, cánh được sử dụng 2 động cơ; một động cơ là dùng gắp và một động cơ là
dùng để nâng tay lên và hạ tay xuống khi gắp vật.
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang60
- Tất cả các các động cơ này đều được điều khiễn bởi mạch công suất ( mạch
cầu sử dụng MOSFET), mạch này có thể thay đổi chiều quay của động cơ một cách
dễ dàng thông qua mạch Vi Xử Lý.
+ Phía trước khung xe đặt một bánh nhỏ có thể quay tự do.
+ Tỷ lệ truyền động giữa motor và bánh xe là: 3:1.
+ Khoảng cách bánh trái và phải là 24cm.
+ Đường kính bánh:10cm
+ Chu vi bánh: 31cm
- Xe chạy thẳng: hai bánh lái cùng quay .
- Xe quay trái: bánh lái phải quay tới đồng thời bánh lái trái quay lui với số
vòng tương ứng.
- Xe quay phải: bánh lái trái quay tới, bánh lái phải quay lùi với số vòng tương
ứng
- Xe dừng: cả hai bánh lái cùng dừng.
- Phía sau đuôi có gắn thêm 2 encoder dùng để đếm số xung khi cần xác định
chính sát quảng đường bánh xe dịch chuyển.
- Cảm biến quang được bố trí như mô hình thực dùng để đọc các tín hiệu phản
hồi khi có vật cản.
+ Cảm biến phía trước có tác dụng phát hiện khi có chướng ngại vật phía trước
đồng phát hiện khi gặp báu vật.
+ Hai cảm biến bên hông là trái và phải dùng để quan sát chướng ngại vật hai
bên trước khi xe quay một góc 900 vì có vật cản phía trước.
*Quan hệ giữa động cơ bánh xe và động cơ trên cánh tay gắp với Vi Xử Lý:
+ Bánh trái quay tới: P0.0 = 0
P0.1 = 1
+ Bánh trái quay lùi: P0.0 = 1
P0.1 = 0
+ Bánh phải quay tới: P0.2 = 1
P0.3 = 0
+ Bánh phải quay lùi: P0.2 = 0
P0.3 = 1
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang61
+ Cánh tay nâng lên: P0.4 = 0
P0.5 = 1
+ Cánh tay hạ xuống: P0.4 = 1
P0.5 = 0
+ Cánh tay đóng lại: P0.6 = 0
P0.7 = 1
+ Cánh tay mở ra: P0.6 =1
P0.7 = 0
Từ mô hình xe và mạch. ta có thể cho xe chay tới, lùi, quay trái, phải.
Muốn cho xe tới hay lùi bao nhiêu ,ta chỉ cần tính số xung .
+ N =
C
S số vòng bánh xe :S = chiều dài đoạn đường,C = chu vi bánh
xe.
+ n = N*
3
10 = số vòng quay của motor.
+ Số xung = n * 360 .
* Ví Dụ:
Xe quay phải 90 độ: lúc này bánh trái quay, bánh phải dừng .
Bánh trái sẽ quay đoạn đường bằng ¼ vòng tròn có bán kính là khoảng
cách giửa 2 bánh xe.
S = 2*24*3.14*1/4 38cm
- Số vòng quay của bánh trái : 38/31 = 1.2
- Số vòng quay của motor: 1.2*10/3
- Số xung = 360*1.2*10/3 =1440 xung.
II.Giới thiệu sơ đồ nguyên lý của mạch điện:
1.Mạch xử lý chính:
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang62
D7
control 7
J9
UP_SENSOR
1
2
3 GND
C1
33p
+ C5
100uF
DOWN
control 8
C
R17 10K*8
1 2
3
4
5
6
7
8
9
Y1 12Mhz
control 3
SENSOR 4 SENSOR 6
START/STOP
RW_16X2
RST
GND
C2
33p
D3
control 2
control 7
control 8
JP2
HEADER 8
1
2
3
4
5
6
7
8
D0
control 3
SENSOR 6
OK
MENU
GND
control 6
R19
8.2K
J7 ENCODER 2
1
2
3
SW HT 1
J10
LEFT_SENSOR
1
2
3
GND
OK VEE
VCC
control 6
VCC
J5
DOWN_SENSOR
1
2
3
RW_16X2
START/STOP
E_16X2
C6
104
SW HT 1
GND
control 1
D1
VEE
SW4 UP
1 2
GND
J6 RIGHT_SENSOR
1
2
3
D7
control 4
J12
FONT_SENSOR
1
2
3
C9
104
control 4
MENU
SENSOR 3
VCC
+C3
10uF
VCC
SENSOR 3
UP
GND
D1
D5
SENSOR 4
control 3
control 4
SW HT 2 SENSOR 5
D5
GND
GND
RST
D6
D4
RS_16X2
U12
LM7805 / TO220
1 3
2
IN OUT
G
N
D
D2
VCC
control 5
D0
C11
104
VCC
+ C4
4700uF
SW1 START/STOP
1 2
- +
D1
1A
2
1
3
4
control 5
control 8
D2
control 5
GNDGND
C7
104
U6 LCD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Gnd
Vcc
Vee
RS
R/W
E
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
SENSOR 5
E_16X2
SW HT 2
GND
control 1
J11
ENCODER1
1
2
3
SENSOR 1
R18
10K
1
3
2
UP
VCC
SENSOR 1
SW5 DOWN
1 2
VCC
D3
GND
control 7
D6
control 2 SW2 MENU
1 2
VCC
control 6
J8 SENSOR 1
1
2
3
C10
104
U1
AT89C51
31
19
18
9
12
13
14
15
1
2
3
4
5
6
7
8
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
17
16
29
30
11
10
EA/VP
X1
X2
RESET
INT0
INT1
T0
T1
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
RD
WR
PSEN
ALE/P
TXD
RXD
SENSOR 2
GND
SW3 OK
1 2
DOWN
VCC
GND
D4
VCC
SENSOR 2
control 2
JP1
12VAC
1
2
VCC
RS_16X2
control 1
C8
104
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang63
2.Khối mạch công suất điều khiễn 4 động cơ:
12V
K4
R3
220
R16
1k
VCC
K2 K3
GND
U2
Q P621
1
2 3
4
Q5540
1
2
3
Q8
540
1
2
3
A -+
MG1
DC TRAI
1 2
K5
Q16
540 1
2
3
R5
220
Q2
9540
1
2
3
12V VCC
12V
GND
DONG CO PHAI
GND
Q6
540
1
2
3
12V
control 4
R9
220
U7
Q P621
1
2 3
4
R13
220
R7
220
GND
12V
A -+
MG4
DC GAP
1 2
Q13
540
1
2
3
control 2
U10
Q P621
1
23
4
DONG CO KEO
k7
Q1
9540
1
2
3
GND
12V
12V
R12
1k
Q7
5401
2
3
VCC
R11
220
R10
1k
Q10
9540
1
2
3
R15
220
control 8
GNDcontrol 1
Q3
9540
1
2
3
U9
Q P621
1
2 3
4
control 3
K4
12V
Q11
9540
1
2
3
U8
Q P621
1
23
4
DONG CO GAP
R2
1k
Q4
9540
1
2
3
A -+
MG3
DC NANG
1 2
k5
12V
DONG CO TRAI
VCC12V
K2K1
R14
1k
R8
1k
Q12
9540
1
2
3
Q15
5401
2
3
control 6
U3
Q P621
1
23
4
K8
GND
VCC
12V
A -+
MG2
DC PHAI
1 2
GND
R4
1k
R1
220
Q14
540
1
2
3
U4
Q P621
1
2 3
4
K6
R6
1k
K3
U5
Q P621
1
23
4
Q9
9540
1
2
3
12V
VCC
K7K6
K1
VCC VCC
control 5 control 7
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang64
3.Khối mạch cách ly dùng cho cảm biến quang:
OUT 2
OUT 4
R?
1k
R?
10k
J?
HEADER 3
1
2
3
12V
5V
U?
Q P621
1
2 3
4
5V
OUT 1
A
0 1Friday , June 09, 2006
Title
Size Document Number Rev
Date: Sheet of
OUT 1
R?
1k
J?
HEADER 6
1
2
3
4
5
6
12V
12V
R?
10k
J?
12V
1
2
12V
OUT 2
J?
HEADER 3
1
2
3
5V12V
J?
HEADER 3
1
2
3
5V
OUT 3
J?
HEADER 3
1
2
3
R?
1k
R?
10k
U?
Q P621
1
2 3
4
R?
1k
U?
Q P621
1
2 3
4
5V
C?
104
OUT 4
R?
10k
U?
Q P621
1
2 3
4
OUT 3
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang65
Chương 5: Thuật toán điều khiễn và tóm lược chương trình
Bắt đầu
Xoá Ram
Thiết lập Timer
Thiết lập LCD
Hiển thi chuổi “RoBot
dò đường gắp vật”
Delay 1S
Gọi chương trình nhập
đích tới
Cho mặc định hướng ban
đầu RoBot là “N”
Chờ phím
Start
Gọi chương trình
dò đường
1
N
Nhập đích tới địa
chỉ 1x1
Gọi chương trình
tìm đường
Nhập đích
tới 0,0
Ret
1
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang66
2
Cảm biến
trái=1
1
Cảm biến
trước=1
Ghi lên LCD
chữ F
Ghi lên LCD
chữ L
Cảm biến
phải=1
Ghi lên LCD
chữ R
Cảm biến
trước=1
cảm biến trái=1
3
4
N
Y
N
Y
Y
y
N
Y
Y
Y
N
N
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang67
Cảm biến
phải=1
4
2
Robot chạy lùi 1 ô
1
Y
3
1
Cảm biến
trái=1
Cảm biến
phải=1
Cảm biến
trước=1
Cảm biến
trước=1
Robot xoay phải Robot xoay trái
Robot chạy tới
1
1
5
Y
N
Y
N
N N
Robot chạy tới
Đích tới x =giá
trị định vị x
5
6
7
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang68
7
Hướng W Hướng E
Gọi chương trình tính
toán cho y
Gọi chương trình tính
toán cho x
Đích tới y = giá
trị định vị y
Bit _finish_x = 1
6
Bit _finish_y = 1
Ret
Chương trình tính
toán cho x,y
8 9
Y
N
Y
N
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang69
Tham chiếu y = S
Robot quay phải
Tham chiếu x= S
Robot quay trái
Ret
Robot quay trái
Robot quay phải
Ret
8 9
Y
N
Y
N
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang70
II.CHƯƠNG TRÌNH HOẠT ĐỘNG
DATABUS EQU P1
count_lcd equ 30h
bit_motor1 bit p0.0
bit_motor2 bit p0.1
bit_motor3 bit p0.3
bit_motor4 bit p0.2
bit_motor5 bit p0.4
bit_motor6 bit p0.5
bit_motor7 bit p0.6
bit_motor8 bit p0.7
EN BIT P2.1
RW BIT P2.0
RS BIT P2.2
save_dh equ 31h
save_dl equ 32h
count_encoder equ 33h
encoder_1 equ 34h
encoder_2 equ 35h
encoder_3 equ 36h
encoder_4 equ 37h
save_encoder equ 38h
save_encoder_1 equ 39h
save_encoder_2 equ 3Ah
save_encoder_3 equ 3Bh
save_encoder_4 equ 3Ch
temp_EWNS equ 3Dh
Process_run equ 3Eh
matrix_x equ 3Fh
matrix_y equ 40h
local_x equ 41h
local_y equ 42h
prefer_x equ 43h
prefer_y equ 44h
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang71
tagret_x equ 45h
tagret_y equ 46h
compass equ 47h
font_sensor bit p3.7
left_sensor bit p3.6
right_sensor bit p3.4
down_sensor bit p3.1
up_sensor bit p3.3
key_menu bit p2.4
key_up bit p2.7
key_down bit p2.6
key_ok bit p2.5
key_start bit p2.3
mode_set equ 48h
temp_a equ 49h
bit_finish_x bit 11
bit_finish_y bit 12
sensor_line bit 13
bit_run bit 14
bit_keypress bit 15
ORG 0000H
ljmp main
org 0003h ; ngat ngoai 0 tac dong encoder
ljmp up_encoder
org 0013h
org 001Bh
org 0030h
main:
lcall reset_ram
setb EX0 ; cho phep ngat ngoai 0
setb IT0 ; cho phep ngat canh xuong
Mov Tmod,#01h
Lcall INIT_LCD
mov count_lcd,#00h
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang72
mov dptr,#sample_text
lcall write_string_lcd
lcall delay1s
Lcall CLEAR_LCD
setb bit_keypress
point_display_encoder:
lcall sub_set_tagret
mov save_encoder,#0FFh
setb EA
lcall display_encoder
mov compass,#'N'
jb key_start,$
lcall delay_key
;lcall process_intelligent_y_finish_x
lcall Thinking_run_find_object
rot_display_information:
lcall drag_object
mov tagret_x,#00
mov tagret_y,#00
lcall Thinking_run_find_object
lcall drag_object
ljmp point_display_encoder
Thinking_run_find_object:
lcall display_information
jb font_sensor,check_left_sensor
mov a,#'F'
lcall write_text
check_left_sensor:
jb left_sensor,check_right_sensor
mov a,#'L'
lcall write_text
check_right_sensor:
jb right_sensor,process_sensor_font
mov a,#'R'
lcall write_text
process_sensor_font:
jb font_sensor,process_left_sensor
jb left_sensor,perfer_process_font
jb right_sensor,perfer_process_font
lcall robot_backward
ljmp Thinking_run_find_object
perfer_process_font:
jnb left_sensor,process_left_sensor
jnb right_sensor,process_left_sensor
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang73
mov a,#'1'
lcall write_text
lcall delay1s
lcall robot_rotate_left
;lcall process_intelligent_y_finish_x
ljmp Thinking_run_find_object
process_left_sensor:
jb left_sensor,process_right_sensor
process_left_sensor_1:
jb font_sensor,process_left_sensor_2
lcall robot_rotate_right
ljmp Thinking_run_find_object
process_left_sensor_2:
mov a,#'2'
lcall write_text
lcall delay1s
lcall robot_forward
ljmp Thinking_run_find_object
process_right_sensor:
jb right_sensor,not_signal_sensor
process_right_sensor_1:
jb font_sensor,process_right_sensor_2
lcall robot_rotate_left
ljmp Thinking_run_find_object
process_right_sensor_2:
mov a,#'3'
lcall write_text
lcall delay1s
lcall robot_forward
ljmp Thinking_run_find_object
not_signal_sensor:
mov a,#'4'
lcall write_text
lcall robot_forward
;lcall delay1s
;lcall delay1s
;lcall delay1s
;lcall robot_rotate_left
mov a,local_x
cjne a,tagret_x,not_finish_tagret_x
setb bit_finish_x
mov a,local_y
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang74
cjne a,tagret_y,not_finish_tagret_y
setb bit_finish_y
lcall display_information
ret
not_finish_tagret_y:
lcall process_intelligent_y_finish_x
ljmp Thinking_run_find_object
not_finish_tagret_x:
clr bit_finish_x
lcall process_intelligent_y_finish_x
ljmp Thinking_run_find_object
process_intelligent_y_finish_x:
mov a,compass
process_x:
cjne a,#'W',process_intelligent_y_point_E_finish_x
jnb bit_finish_x,temp_exit_process_intelligent_y_finish_x
lcall calculate_prefer_y
mov a,prefer_y
cjne a,#'S',process_intelligent_y_point_WN
lcall robot_rotate_right
ljmp exit_process_intelligent_y_finish_x
process_intelligent_y_point_WN:
lcall robot_rotate_left
ljmp exit_process_intelligent_y_finish_x
process_intelligent_y_point_E_finish_x:
cjne a,#'E',againts_wrong_x
jnb bit_finish_x,temp_exit_process_intelligent_y_finish_x
lcall calculate_prefer_y
mov a,prefer_y
cjne a,#'S',process_intelligent_y_point_WN_point_E
lcall robot_rotate_left
ljmp exit_process_intelligent_y_finish_x
process_intelligent_y_point_WN_point_E:
lcall robot_rotate_right
ljmp exit_process_intelligent_y_finish_x
againts_wrong_x:
mov a,compass
cjne a,#'W',againts_wrong_x_2
lcall calculate_prefer_x
mov a,prefer_x
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang75
cjne a,#'E',temp_exit_process_intelligent_y_finish_x
lcall robot_rotate_right
lcall robot_rotate_right
ljmp temp_exit_process_intelligent_y_finish_x
againts_wrong_x_2:
cjne a,#'E',process_Y
lcall calculate_prefer_x
mov a,prefer_x
cjne a,#'W',exit_process_intelligent_y_finish_x
lcall robot_rotate_left
lcall robot_rotate_left
ljmp temp_exit_process_intelligent_y_finish_x
temp_exit_process_intelligent_y_finish_x:
ret
process_Y:
cjne a,#'N',process_intelligent_y
jb bit_finish_x,exit_process_intelligent_y_finish_x
lcall calculate_prefer_x
mov a,prefer_x
cjne a,#'E',process_intelligent_y_1
lcall robot_rotate_right
ljmp exit_process_intelligent_y_finish_x
process_intelligent_y_1:
lcall robot_rotate_left
ljmp exit_process_intelligent_y_finish_x
process_intelligent_y:
cjne a,#'S',againts_wrong_y
jb bit_finish_x,exit_process_intelligent_y_finish_x
lcall calculate_prefer_x
mov a,prefer_x
cjne a,#'E',process_intelligent_y_2
lcall robot_rotate_left
ljmp exit_process_intelligent_y_finish_x
process_intelligent_y_2:
lcall robot_rotate_right
ljmp exit_process_intelligent_y_finish_x
againts_wrong_y:
mov a,compass
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang76
cjne a,#'S',againts_wrong_y_2
lcall calculate_prefer_y
mov a,prefer_y
cjne a,#'N',exit_process_intelligent_y_finish_x
lcall robot_rotate_right
lcall robot_rotate_right
ljmp exit_process_intelligent_y_finish_x
againts_wrong_y_2:
cjne a,#'N',exit_process_intelligent_y_finish_x
lcall calculate_prefer_y
mov a,prefer_y
cjne a,#'S',exit_process_intelligent_y_finish_x
lcall robot_rotate_left
lcall robot_rotate_left
ljmp exit_process_intelligent_y_finish_x
exit_process_intelligent_y_finish_x:
ret
display_information:
lcall CLEAR_LCD
mov dptr,#string_tagret_run
lcall write_string_lcd
mov count_lcd,#07
lcall command_pos_lcd
mov a,#'X'
lcall write_text
mov a,#':'
lcall write_text
mov a,tagret_x
mov b,#10
div ab
orl a,#30h
lcall write_text
mov a,b
orl a,#30h
lcall write_text
mov count_lcd,#12
lcall command_pos_lcd
mov a,#'Y'
lcall write_text
mov a,#':'
lcall write_text
mov a,tagret_y
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang77
mov b,#10
div ab
orl a,#30h
lcall write_text
mov a,b
orl a,#30h
lcall write_text
mov count_lcd,#16
lcall command_pos_lcd
mov a,#'X'
lcall write_text
mov a,#':'
lcall write_text
mov a,local_x
mov b,#10
div ab
orl a,#30h
lcall write_text
mov a,b
orl a,#30h
lcall write_text
mov count_lcd,#21
lcall command_pos_lcd
mov a,#'Y'
lcall write_text
mov a,#':'
lcall write_text
mov a,local_y
mov b,#10
div ab
orl a,#30h
lcall write_text
mov a,b
orl a,#30h
lcall write_text
mov count_lcd,#26
lcall command_pos_lcd
mov a,compass
lcall write_text
mov a,#' '
lcall write_text
ret
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang78
drag_object:
lcall motor_lift_down
jb down_sensor,drag_object
lcall stop_motor_lift
lcall hand_open
lcall delay1s
lcall stop_hand
lcall hand_close
lcall delay1s
lcall stop_hand
lift_up_object:
lcall motor_lift_up
jb up_sensor,lift_up_object
lcall stop_motor_lift
ret
motor_lift_up:
clr bit_motor5
setb bit_motor6
ret
motor_lift_down:
setb bit_motor5
clr bit_motor6
ret
stop_motor_lift:
setb bit_motor5
setb bit_motor6
ret
hand_close:
clr bit_motor7
setb bit_motor8
ret
hand_open:
setb bit_motor7
clr bit_motor8
ret
stop_hand:
setb bit_motor7
setb bit_motor8
ret
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang79
;*******************************************************************
*****
; Process function display and set tagret
;*******************************************************************
*****
sub_set_tagret:
mov a,mode_set
cjne a,#02,process_and_display_tagret
mov mode_set,#00h
lcall clear_lcd
ret
process_and_display_tagret:
lcall process_key_tagret
lcall display_data_tagret
ljmp sub_set_tagret
display_data_tagret:
jnb bit_keypress,exit_display_data_tagret
clr bit_keypress
lcall CLEAR_LCD
mov dptr,#string_tagret
lcall write_string_lcd
mov count_lcd,#19
lcall command_pos_lcd
mov a,#'X'
lcall write_text
mov a,#':'
lcall write_text
mov a,tagret_x
mov b,#10
div ab
orl a,#30h
lcall write_text
mov a,b
orl a,#30h
lcall write_text
mov count_lcd,#25
lcall command_pos_lcd
mov a,#'Y'
lcall write_text
mov a,#':'
lcall write_text
mov a,tagret_y
mov b,#10
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang80
div ab
orl a,#30h
lcall write_text
mov a,b
orl a,#30h
lcall write_text
exit_display_data_tagret:
ret
process_key_tagret:
check_key_up_set_tagret:
jb key_up,check_key_down_set_tagret
setb bit_keypress
lcall delay_key
mov a,mode_set
cjne a,#00,mode_set_tagret_y
inc tagret_x
mov a,tagret_x
cjne a,#100,exit_process_key_tagret
mov tagret_x,#00h
ljmp exit_process_key_tagret
mode_set_tagret_y:
cjne a,#01,exit_process_key_tagret
inc tagret_y
mov a,tagret_y
cjne a,#100,exit_process_key_tagret
mov tagret_y,#00h
ljmp exit_process_key_tagret
check_key_down_set_tagret:
jb key_down,check_key_ok_set_tagret
setb bit_keypress
lcall delay_key
mov a,mode_set
cjne a,#00,mode_set_down_tagret_y
dec tagret_x
mov a,tagret_x
cjne a,#0FFh,exit_process_key_tagret
mov tagret_x,#99
ljmp exit_process_key_tagret
mode_set_down_tagret_y:
cjne a,#01,exit_process_key_tagret
dec tagret_y
mov a,tagret_y
cjne a,#0FFh,exit_process_key_tagret
mov tagret_y,#99
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang81
ljmp exit_process_key_tagret
check_key_ok_set_tagret:
jb key_ok,exit_process_key_tagret
setb bit_keypress
lcall delay_key
inc mode_set
exit_process_key_tagret:
ret
;*******************************************************************
*******
; process
;*******************************************************************
*******
calculate_prefer_x:
mov a,tagret_x
clr c
subb a,local_x
jnc set_prefer_x
mov prefer_x,#'E'
ret
set_prefer_x:
mov prefer_x,#'W'
ret
calculate_prefer_y:
mov a,tagret_y
clr c
subb a,local_y
jnc set_prefer_y
mov prefer_y,#'N'
ret
set_prefer_y:
mov prefer_y,#'S'
ret
robot_rotate_right:
setb EA
setb bit_motor1
clr bit_motor2
clr bit_motor3
setb bit_motor4
;setb bit_run
;jb bit_run,$
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang82
clr EA
lcall delay1s
lcall delay1s
lcall robot_stop
lcall delay1s
mov a,compass
rotate_right_1:
cjne a,#'W',rotate_right_2
mov compass,#'N'
ljmp exit_robot_rotate_right
rotate_right_2:
cjne a,#'N',rotate_right_3
mov compass,#'E'
ljmp exit_robot_rotate_right
rotate_right_3:
cjne a,#'E',rotate_right_4
mov compass,#'S'
ljmp exit_robot_rotate_right
rotate_right_4:
cjne a,#'S',exit_robot_rotate_right
mov compass,#'W'
ljmp exit_robot_rotate_right
exit_robot_rotate_right:
ret
robot_rotate_left:
;setb EA
clr bit_motor1
setb bit_motor2
setb bit_motor3
clr bit_motor4
;setb bit_run
;jb bit_run,$
lcall delay1s
lcall delay1s
;clr EA
lcall robot_stop
lcall delay1s
mov a,compass
rotate_left_1:
cjne a,#'W',rotate_left_2
mov compass,#'S'
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang83
ljmp exit_robot_rotate_left
rotate_left_2:
cjne a,#'S',rotate_left_3
mov compass,#'E'
ljmp exit_robot_rotate_left
rotate_left_3:
cjne a,#'E',rotate_left_4
mov compass,#'N'
ljmp exit_robot_rotate_left
rotate_left_4:
cjne a,#'N',exit_robot_rotate_left
mov compass,#'W'
ljmp exit_robot_rotate_left
exit_robot_rotate_left:
ret
robot_forward:
; setb EA
setb bit_motor1
clr bit_motor2
setb bit_motor3
clr bit_motor4
setb bit_run
; jb bit_run,$
; clr EA
lcall delay1s
lcall robot_stop
mov a,compass
forward_1:
cjne a,#'W',forward_2
inc local_x
ljmp exit_robot_forward
forward_2:
cjne a,#'S',forward_3
dec local_y
ljmp exit_robot_forward
forward_3:
cjne a,#'E',forward_4
dec local_x
ljmp exit_robot_forward
forward_4:
cjne a,#'N',exit_robot_forward
inc local_y
ljmp exit_robot_forward
exit_robot_forward:
ret
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang84
robot_backward:
; setb EA
clr bit_motor1
setb bit_motor2
clr bit_motor3
setb bit_motor4
setb bit_run
lcall delay1s
; jb bit_run,$
; clr EA
lcall robot_stop
mov a,compass
backward_1:
cjne a,#'W',backward_2
inc local_x
ljmp exit_robot_backward
backward_2:
cjne a,#'S',backward_3
inc local_y
ljmp exit_robot_backward
backward_3:
cjne a,#'E',backward_4
dec local_x
ljmp exit_robot_backward
backward_4:
cjne a,#'N',exit_robot_backward
dec local_y
ljmp exit_robot_backward
exit_robot_backward:
ret
robot_stop:
clr bit_motor1
clr bit_motor2
clr bit_motor3
clr bit_motor4
mov encoder_1,#00h
mov encoder_2,#00h
mov encoder_3,#00h
mov encoder_4,#00h
ret
display_encoder:
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang85
clr ea
mov a,save_encoder
cjne a,encoder_1,update_display_encoder
ljmp check_key_ok_test_signal
update_display_encoder:
lcall clear_lcd
mov save_encoder,encoder_1
mov count_lcd,#00h
mov dptr,#string_Encoder
lcall write_string_lcd
mov a,encoder_4
orl a,#30h
lcall write_text
mov a,encoder_3
orl a,#30h
lcall write_text
mov a,encoder_2
orl a,#30h
lcall write_text
mov a,encoder_1
orl a,#30h
lcall write_text
check_key_ok_test_signal:
jb key_ok,check_key_menu_test_signal
lcall delay_key
mov save_encoder_1,encoder_1
mov save_encoder_2,encoder_2
mov save_encoder_3,encoder_3
mov save_encoder_4,encoder_4
mov encoder_1,#00h
mov encoder_2,#00h
mov encoder_3,#00h
mov encoder_4,#00h
ljmp exit_display_encoder
check_key_menu_test_signal:
jb key_menu,exit_display_encoder
lcall delay_key
lcall clear_lcd
lcall clear_lcd
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang86
mov dptr,#string_run
lcall write_string_lcd
ret
exit_display_encoder:
setb ea
ljmp display_encoder
DEMO_LCD: ;Chuong tring Test LCD
Mov Tmod,#01h
Lcall INIT_LCD
loop_demo:
Lcall CLEAR_LCD
;lcall Demo
mov count_lcd,#00h
mov dptr,#sample_text
lcall write_string_lcd
lcall delay1s
lcall delay1s
lcall delay1s
lcall delay1s
Lcall CLEAR_LCD
mov count_lcd,#00h
mov dptr,#sample_name
lcall write_string_lcd
lcall delay1s
lcall delay1s
lcall delay1s
lcall delay1s
ljmp loop_demo
up_encoder: ; dung bien r1 chu yeu
mov temp_a,a
inc count_encoder
mov r1,count_encoder
cjne r1,#10,exit_up_encoder
mov count_encoder,#00
normal_up:
inc encoder_1
mov r1,encoder_1
cjne r1,#10,compare_save_encoder
mov encoder_1,#00
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang87
inc encoder_2
mov r1,encoder_2
cjne r1,#10,compare_save_encoder
mov encoder_2,#00
inc encoder_3
mov r1,encoder_3
cjne r1,#10,compare_save_encoder
mov encoder_3,#00
inc encoder_4
mov r1,encoder_4
cjne r1,#10,compare_save_encoder
mov encoder_4,#00
compare_save_encoder:
jnb bit_run,exit_up_encoder
mov a,encoder_4
cjne a,save_encoder_4,exit_up_encoder
mov a,encoder_3
cjne a,save_encoder_3,exit_up_encoder
mov a,encoder_2
cjne a,save_encoder_2,exit_up_encoder
mov a,encoder_1
cjne a,save_encoder_1,exit_up_encoder
lcall robot_stop
clr bit_run
exit_up_encoder:
mov a,temp_a
reti
delay_key:
mov r7,#03
loop_r6:
mov r6,#200
loop_r5:
mov r5,#250
djnz r5,$
djnz r6,loop_r5
djnz r7,loop_r6
ret
write_string_lcd:
mov r3,#00h
mov a,#00h
mov save_dh,dph
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang88
mov save_dl,dpl
loop_write_string_lcd:
mov a,R3
mov dph,save_dh
mov dpl,save_dl
movc a,@a+dptr
cjne a,#01h,countinue_write_text
ret
countinue_write_text:
lcall write_text
inc r3
ljmp loop_write_string_lcd
exit_write_string:
ret
WAIT_LCD : ;Chuong tring kiem tra trang thai LCD
Setb EN ;bat dau truyen lenh vao LCD
Clr RS ;Noi cho Lcd chi thi la LENH
Setb RW ;Doc Lcd
MOV DATABUS,#0FFh ;Gan DATABUS la FF
MOV A,DATABUS
Jb ACC.0,WAIT_LCD ;Neu bit 7 o muc cao , thi Lcd dang ban
Clr EN ;Ket thuc lenh
Clr RW ;Chuan bi RW cho lenh toi
Ret
INIT_LCD: ;Khai bao LCD
MOV R3,#4
SETUP: Setb EN
Clr RS
mov a,#038H
lcall convert_invert_data
Mov DATABUS,a ;Khai bao che do LCD : 8 bit , ky tu : 5X8
character
Clr EN
Lcall WAIT_LCD
DJNZ R3,SETUP
setb EN
CLR RS
CLR RW
mov a,#0Ch
lcall convert_invert_data
Mov DATABUS,a ;Bat man hinh LCD
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang89
Clr EN
Lcall WAIT_LCD
Lcall Clear_Lcd
Ret
CLEAR_LCD: ;Chuong trinh xoa man hinh
mov count_lcd,#00h
Setb EN
Clr RS
clr rw
mov a,#02H
lcall convert_invert_data
Mov DATABUS,a ;Dua con tro ve dau dong
Clr EN
Lcall WAIT_LCD
Setb EN
Clr RS
clr rw
mov a,#01H
lcall convert_invert_data
Mov DATABUS,a ;Lenh xoa man hinh
Clr EN
Lcall WAIT_LCD
mov count_lcd,#00h
Ret
WRITE_TEXT: ;Chuong tring ghi ky tu vao LCD
Setb EN
Setb RS
clr rw
lcall convert_invert_data
Mov DATABUS,A
Clr EN
Lcall WAIT_LCD
inc count_lcd
lcall command_pos_lcd
Ret
command_pos_lcd:
setb en
clr rs
clr rw
mov a,count_lcd
mov dptr,#pos_lcd
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang90
movc a,@a+dptr
orl a,#10000000b
lcall convert_invert_data
Mov DATABUS,a
Clr EN
Lcall WAIT_LCD
mov a,count_lcd
cjne a,#32,exit_write_text_lcd
mov count_lcd,#00h
exit_write_text_lcd:
ret
DELAY1S:
MOV R7,#20
AGAIN : MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
WAIT : JNB TF0,WAIT
CLR TF0
CLR TR0
DJNZ R7,AGAIN
RET
reset_ram:
mov r0,#20h
loop_del:
inc r0
mov @r0,#00h
cjne r0,#80h,loop_del
ret
convert_invert_data:
mov c,acc.7
mov 01,c
mov c,acc.6
mov 02,c
mov c,acc.5
mov 03,c
mov c,acc.4
mov 04,c
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang91
mov c,acc.3
mov 05,c
mov c,acc.2
mov 06,c
mov c,acc.1
mov 07,c
mov c,acc.0
mov 08,c
;convert
mov c,08
mov acc.7,c
mov c,07
mov acc.6,c
mov c,06
mov acc.5,c
mov c,05
mov acc.4,c
mov c,04
mov acc.3,c
mov c,03
mov acc.2,c
mov c,02
mov acc.1,c
mov c,01
mov acc.0,c
ret
sample_text:
db ' Robot do duong '
db ' Gap vat ',01h
sample_name:
db ' NGUYEN HOP '
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang92
db '04D3N - 410639D',01h
string_Encoder:
db 'Encoder : ',01h
string_tagret:
db ' Input tagret',01h
string_tagret_run:
db 'Tagret ',01h
string_lengh:
db 'Input encoder',01h
string_saved_encoder:
db 'Saved encoder',01h
string_run:
db ' Press key ST '
db ' To Run' ,01
pos_lcd:
db 00h,01h,02h,03h,04h,05h,06h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
db 40h,41h,42h,43h,44h,45h,46h,47h,48h,49h,4Ah,4Bh,4Ch,4Dh,4Eh,4Fh
END
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang93
TÀI LIỆU THAM KHẢO
1.HỌ VI ĐIỀU KHIỄN 8051
Tác giả: TốNG VĂN ON
HOÀNG ĐỨC HẢI
NHÀ XUẤT BẢN LAO ĐỘNG XÃ HỘI
2.CẤU TRÚC VÀ LẬP TRÌNH HỌ VI ĐIỀU KHIỄN 8051
Tác giả: NGUYỄN TĂNG CƯỜNG
PHAN QUỐC THẮNG
NHÀ XUẤT BẢN KHOA HỌC VÀ KỸ THUẬT
3.ĐIỆN TỬ CÔNG SUẤT
Tác giả: NGUYỄN VĂN NHỜ
NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
4.SƠ ĐỒ CHÂN LINH KIỆN
Tác giả: DƯƠNG MINH TRÍ
5.MỘT SỐ TÀI LIỆU TRÊN MẠNG INTERNET
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT
Trang94
MỤC LỤC
Trang
Nhiệm vụ luận văn tốt nghiệp.
Nhiệm vụ luận văn tốt nghiệp.
Lịch trình luận văn tốt nghiệp.
Nhận xét của Giáo viên hướng dẫn
Nhận xét của Giáo viên phản biện
Lời cảm ơn
Lời nói đầu
CHƯƠNG 1: GIỚI TỔNG QUAN VỀ MỘT SỐ ROBOT TỰ HÀNH HIỆN
CÓ TRÊN THẾ GIỚI…………………………………………………………..1
CHƯƠNG II :GIỚI THIỆU VỀ VI XỬ LÝ HỌ MSC-51 ........................... 3
I / Giới thiệu cấu trúc phần cứng họ MSC-51 (8951) .............................. 3
II/ Sơ đồ chân AT89C51 và chức năng từng chân ................................. 3
III/ Cấu trúc bên trong vi điều khiển ....................................................... 7
IV/ Hoạt động Timer của 8951 ............................................................... 14
V/ Tổ chức ngắt của c8031/8951 .......................................................... 21
VI/ Tóm tắt tập lệnh của 8951 ................................................................. 30
CHƯƠNG III : GIỚI THIỆU CÁC LINH KIỆN SỬ DỤNG TRONG LUẬN
VĂN……………………………………………………………………………..42
I/MOSFET………………………………………………………………..42
II/ OPTO PC817 …………………………………………………………44
III/ GIỚI THIỆU ENCODER…………………………………………….45
IV/ CÁC LOẠI CẢM BIẾN QUANG TRONG CÔNG NGHIỆP……... 46
V/GIỚI THIỆU LCD……………………………………………………48
VI.GIỚI THIỆU VỀ ĐỘNG CƠ ĐIỆN MỘT CHIỀU…………………..55
CHƯƠNG 4: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH.................................58
I/GIỚI THIỆU PHẦN CƠ KHÍ………………………………………….59
II.GIỚI THIỆU SƠ ĐỒ NGUYÊN LÝ CỦA MẠCH ĐIỆN…………….61
CHƯƠNG 5: THUẬT TOÁN ĐIỀU KHIỄN VÀ TÓM LƯỢC CHƯƠNG
TRÌNH ………………………………………………………………………….65
I/THUẬT TOÁN ĐIỀU KHIỄN………………………………………………..65
II/CHƯƠNG TRÌNH HOẠT ĐỘNG…………………………………………...70
Các file đính kèm theo tài liệu này:
- TRINH BAY.pdf